Dockerfile中容易混淆的命令详解

栏目: 服务器 · 发布时间: 6年前

RUNCMDENTRYPOINT

命令解释

RUN
CMD
ENTRYPOINT

执行方式

  • EXEC

    FROM debian
    RUN ['apt-get','install','-y','vim']
    CMD ['/bin/echo','hello world!!']
    ENTRYPOINT ['/bin/echo','hello world!!']
  • SHELL

    FROM debian
     RUN apt-get install -y vim
     CMD echo 'hello world!!'
     ENTRYPOINT echo 'hello world!!'

注意事项

  • 使用run命令构建镜像时 apt-get update && apt-get install -y 需要放在同一个 RUN 命令中,否则 apt-get install 会从缓存中安装软件,导致 apt-get update 执行毫无意义
  • apt-get install 的软件尽量一个一行并且按照字母顺序排列,这样可以避免安装重复的命令
  • apt-get install 安装软件时可以为软件指定特定的版本 apt-get install -y aufs-tools s3cmd=1.1.*

命令差异

  • CMD

    • 容器启动时默认执行的命令
    • docker run 指定了其他命令,CMD会被忽略
    • 如果定义了多个CMD,只有最后一个会执行
  • ENTRYPOINT

    • 让容器以运用程序或者服务的形式运行
    • 不会被忽略,一定会执行
    • 最佳实践,写一个 shell 脚本作为entrypoint
    COPY ./script/test.sh /usr/local/bin
    ENTRYPOINT ['test.sh']

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

智能时代

智能时代

吴军 / 中信出版集团 / 2016-8 / 68.00

大数据和机器智能的出现,对我们的技术发展、商业和社会都会产生重大的影响。作者吴军在《智能时代:大数据与智能革命重新定义未来》中指出,首先,我们在过去认为非常难以解决的问题,会因为大数据和机器智能的使用而迎刃而解,比如解决癌症个性化治疗的难题。同时,大数据和机器智能还会彻底改变未来的商业模式,很多传统的行业都将采用智能技术实现升级换代,同时改变原有的商业模式。大数据和机器智能对于未来社会的影响是全方......一起来看看 《智能时代》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具