栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker

cmd给出的是一个容器的默认的可执行体。也就是容器启动以后,默认的执行的命令。重点就是这个“默认”。意味着,如果不指定启动容器后要执行的命令,那么,就会使用cmd指定的默认的执行命令执行。如果指定了启动容器后要执行的命令,那么就不会再执行cmd中的命令。
    1.docker run可以指定执行命令;
    2.dockerfile用entrypoint指定要执行的命令;
    3.docker-compose.yml中的command命令;
这也是为什么大多数网上博客论坛说的“cmd会被覆盖”,其实为什么会覆盖?因为cmd的角色定位就是默认,如果你不额外指定,那么就执行cmd的命令,否则呢?只要你指定了,那么就不会执行cmd,也就是cmd会被覆盖。

entrypoint才是正统地用于定义容器启动以后的执行体的,其实我们从名字也可以理解,这个是容器的“入口”。
任何使用docker run 命令传入的参数都会附加在entrypoint指令之后,并且用此命令传入的参数会覆盖在Dockerfile中使用CMD指令设定的值。比如docker run  bash命令会将bash命令附加在entrypoint指令设定的值的后面。

参考:【翻】Dockerfile中ENTRYPOINT和CMD的区别和最佳实践 - 简书

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604247.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号