总结一下,
run 可以有多个,cmd 和entrypoint 只能有一个(常用来跑app)
cmd 可以被docker 指令overwrite ,entrypoint不可以
此命令会在容器启动且 docker run 没有指定其他命令时运行。
-
如果 docker run 指定了其他命令,CMD 指定的默认命令将被忽略。
-
如果 Dockerfile 中有多个 CMD 指令,只有最后一个 CMD 有效。
ENTRYPOINT 的 Exec 格式用于设置要执行的命令及其参数,同时可通过 CMD 提供额外的参数。
ENTRYPOINT 中的参数始终会被使用,而 CMD 的额外参数可以在容器启动时动态替换掉。
比如下面的 Dockerfile 片段:
ENTRYPOINT ["/bin/echo", "Hello"]
CMD ["world"]
当容器通过 docker run -it [image] 启动时,输出为:
Hello world
而如果通过 docker run -it [image] CloudMan 启动,则输出为:
Hello CloudMan
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)