Docker中CMD与ENTRYPOINT的简明理解

CMD提供容器启动的默认行为,运行不指定运行的命令及参数,会默认执行CMD中的。

例如hello镜像的Dockerfile中有 CMD ["echo","'hello world'"]

  • 执行 docker run hello,输出hello world
  • 执行 docker run hello /bin/sh -c "shit" 则会覆盖CMD中所有的东西,输出shit

ENTRYPOINT让容器可以当成一个普通的可执行命令一样使用。

例如echo镜像的Dockerfile中有ENTRYPOINT ["/bin/echo"]

  • 执行docker run echo "hello world",输出hello world

若同时CMD也存在,比如: CMD ["'hello world'"] ,那么CMD中的值就是ENTRYPOINT的默认参数。

  • 执行 docker run echo, 即不加参数,也会输出hello world
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容