转 Dock 外 命令解析


RUN vs CMD vs ENTRYPOINT - 每天5分钟玩转 Docker 容器技术(17)

小结:

run 主要是安装镜像,安装软件。

CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参数替换。

ENTRYPOINT 配置容器启动时运行的命令。

:Shell 格式和 Exec 格式

shell 格式,是在一个shell 里执行

exec ,是每一条命令,都是独立的

Exec 格式 比较复杂,

ENTRYPOINT 的 Exec 格式用于设置要执行的命令及其参数,同时可通过 CMD 提供额外的参数。

ENTRYPOINT 中的参数始终会被使用,而 CMD 的额外参数可以在容器启动时动态替换掉。

比如下面的 Dockerfile 片段:

ENTRYPOINT ["/bin/echo", "Hello"]  

CMD ["world"]

-->这里CMD ["param1","param2"] 为 ENTRYPOINT 提供额外的参数,此时 ENTRYPOINT 必须使用 Exec 格式。 这一点注意下

当容器通过 docker run -it [image] 启动时,输出为:

Hello world

而如果通过 docker run -it [image] CloudMan 启动,则输出为:

Hello CloudMan

关于其中的差别,还是需要进一步归纳,

原文地址:https://www.cnblogs.com/feiyun8616/p/7100257.html