转 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

 

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

posted @ 2017-06-30 18:36  feiyun8616  阅读(167)  评论(0编辑  收藏  举报