Dockerfile指令指南
FROM
:指定基础镜像,例如 FROM Ubuntu:18.04
RUN
:执行命令,在dockerfile中,他每次执行RUN命令都会分层。镜像会分层。这会造成镜像臃肿,因此常用&&来一次执行多次命令。COPY
:他会从宿主机复制文件到镜像中。例如COPY app.py /app/
这个命令就会将app.py复制到镜像的app目录下,当然,这个目录你可以自己指定ADD
:类似于COPY,但是他支持URL(包括其他位置和网络部分)和自动解压WORKDIR
:指定工作目录,如:workdir:/app,如果没有指定的话,他就会默认在这个目录下执行。EXPOSE
:暴露端口,比如EXPOSE 80
他会映射端口到宿主机的某个端口CMD
:设置默认命令,他启动时会启动的命令。注意:(如果写了多个CMD他也只会执行最后一条CMD命令)如[“python”,”app.py”]ENTERPOINT
:容器启动时执行的命令,如[“python”,”app.py”].
而且如果在容器中,同时又ENTERPOINT和CMD,那么他将会执行ENTERPOINT,CMD将会作为参数传给ENTERPOINT。比如他会拿到ENTERPOINT的python命令,和CMD的app.py参数ENV
:设置环境变量,如ENV MYSQL_ROOT_PASSWORD=your_password
ARG
:添加一个环境变量,如 ARG VERSION=latest
VOLUME
:声明数据卷,如:VOLUME /var/lib/mysql
他会映射到容器外的某个目录。如果没声明他会默认挂载到一个默认目录。USER
:指定运行用户
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小贺同学的blog!
评论