一、核心区别
ENTRYPOINT:
- 用于定义不可变的主命令。
- 它告诉 Docker 容器必须始终运行这个命令。
- 可以结合容器启动时的参数,形成灵活的执行效果。
CMD:
- 用于定义默认命令或参数。
- 如果在运行容器时指定了其他命令或参数,它会被覆盖。
二、解释
假设你开了一家披萨店:
- ENTRYPOINT 就像是固定的主菜:披萨永远是店里必备的产品。无论顾客点什么附加的调料(参数),披萨都会被做出来。
- CMD 就像是披萨的默认口味。如果顾客不说要什么口味(没有额外指定参数),那就按默认的“玛格丽特披萨”来做。
三、代码示例
使用 CMD
FROM ubuntu
CMD ["echo", "Hello World"]
如果你运行容器:docker run myimage,它会输出:
Hello World
如果你运行容器时指定命令:docker run myimage echo Bye,它会输出:
Bye
(CMD被覆盖了)</

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



