一、Dockerfile介绍
Dockerfile是一个包含创建镜像所有命令的文本文件,通过docker build命令可以根据Dockerfile的内容构建镜像。
一般的,Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,其中,‘#’为Dockerfile中的注释。
二、常用指令
- FROM
所有Dockerfile都必须以FROM命令开始。FROM命令会指定镜像基于哪个基础镜像创建,接下来的命令也会基于这个基础镜像。FROM命令可以多次使用,表示创建多个镜像。
FROM <image>:<tag>
如果本地没有指定的镜像,则会从对应的镜像仓库pull镜像下来,不指定具体镜像仓库,则会从docker hub公共仓库拉取。
如果没有指定标签tag,则默认使用latest标签。
- MAINTAINER
设置该镜像的作者。
MAINTAINER <author name>
- ENV
设置环境变量,使用键值对,并且该环境变量可以被后续的Dockerfile命令使用
ENV <key>:<value> #设置一个变量
ENV <key1>:<value1> \ #设置多个变量,可以通过"\"换行
<key2>:<value2>
- ARG
设置构建环境的环境变量,只在构建容器时生效,在将来容器运行时是不会存在这些环境变量的且在构建时可以使用--build-arg=
来指定参数。具体用法如下:
ARG <key>=<value>
不要因此就是用ARG保存密码之类的信息,因为docker history可以看到所有的值。
- WORKDIR
设置后续Dockerfile命令,像RUN、CMD、ENTRYPOINT、COPY、ADD的工作目录,如果WORKDIR不存在,会自动创建。
WORKDIR /path/workdir