了解下Dockerfile保留字指令

  • FROM
    基础镜像,有点java里的继承,表示当前的新镜像是基于哪个镜像的

  • MAINTAINER
    镜像维护者的姓名和邮箱地址

  • RUN
    容器构建时需要额外执行的命令,比如用命令安装yum

  • EXPOSE
    指定当前容器对外暴露的端口

  • WORKDIR
    指定工作目录,可以理解成容器生成后默认会在哪个文件路径下做操作

  • ENV
    设置环境变量,定义了环境变量,在后续的指令中,就可以使用这个环境变量,如果有好多指令都要用到一样的参数,那么用这个就比较好维护了

  • ARG
    构建参数,与 ENV作用一样。不过在构建好的镜像内是不会存在定义的环境变量的,这点和ENV不同。

  • COPY
    复制指令,从上下文目录中复制文件或者目录到容器里指定路径

  • ADD
    在COPY基础上,还能做到自动处理URL和解压tar压缩包,根据是否要自动解压来选择使用COPY和ADD两种命令

  • CMD
    指定一个容器启动时要运行的命令,不过如果Dockerfile中如果存在多个 CMD 指令,仅最后一个生效,同时CMD会被docker run之后的参数替换

  • ENTRYPOINT
    指定一个容器启动时要运行的命令,ENTRYPOINT不会被docker run之后的参数替换,而是会做命令的追加

    扫描二维码关注公众号,回复: 10214899 查看本文章
  • VOLUME
    定义容器数据卷,用来做数据保存和持久化工作

  • ONBUILD
    子镜像构建时,会触发父镜像的ONBUILD指令执行

  • USER
    用于指定执行后续命令的用户和用户组

  • HEALTHCHECK
    用于指定某个程序或者指令来监控docker容器服务的运行状态

总结

可以把Dockerfile想象成docker镜像的描述文件,docker镜像就是根据这个描述文件创建出来的,可以类比成java的class文件,对照着指令说明文档,阅读的障碍会小很多,虽然可能还是不懂,但至少不会怕。

发布了289 篇原创文章 · 获赞 302 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/105065454
今日推荐