Dockerfile


DockerFile

关键字

FROM

基础镜像,当前新镜像是基于那个镜像的,指定一个已经存在的镜像作为模板

FROM openjdk:8

MAINTAINER

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



RUN

容器构建时需要运行的命令,在docker build时运行

一共有两种格式

  • shell格式
  • exec格式

EXPOSE

当前容器对外暴露的端口

WORKDIR

指定在创建容器后的工作目录

USER

指定该镜像亿什么样的用户去执行

ENV

环境变量

ADD

将宿主机目录下的文件拷贝进镜像且会自动处理URL和解压tar压缩包

COPY

类似ADD,拷贝文件和目录到镜像中,将从构建上下文目录中<源路径>的文件/目录复制到新的一层镜像的<目标路径>的位置

VOLUME

CMD

指定容器启动后要干的事情

Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD指令会被 docker run 后面的参数覆盖

和RUN的区别

ENTRYPOINT

也是用来指定一个容器启动时要运行的命令

ENTRYPOINT 可以和CMD一起用,一般是变参才会使用CMD,这里的CMD等于是在给ENTRYPOINT传参。当指定了ENTRYPOINT后,CMD的含义就发生了变化,不再是直接运行其名了而是将CMD的内容作为参数传递给ENTRYPOINT指令,他两个组合会变成

案列如下:假设已通过Dockerfile 构建了 nginx:test镜像

FROM nginx
ENTRYPOINT [“nginx”, "-c"] #定参
CMD ["/etc/nginx/nginx.conf"] #变参

文章作者: Tariq
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Tariq !
  目录