- FROM 镜像名
定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像,后续的操作都是基于 nginx
FROM nginx
- RUN:在
docker build
时,执行命令行命令
- shell 格式:
RUN <命令行命令>
<命令行命令> 等同于,在终端操作的 shell 命令。- exec 格式:
RUN ["可执行文件", "参数1", "参数2"]
RUN ["./test.php", "dev", "offline"] 等价于RUN ./test.php dev offline
- COPY 复制指令,从上下文目录中复制文件或者目录到容器里指定路径
COPY [--chown=<user>:<group>] <源路径1>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
COPY hom* /mydir/
COPY hom?.txt /mydir/
-
CMD 用于
docker run
时运行程序 -
ENTRYPOINT 搭配 CMD 命令使用:一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 传参
ENTRYPOINT ["nginx", "-c"] # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参
1、不传参运行
$ docker run nginx:test
容器内会默认运行以下命令,启动主进程。
nginx -c /etc/nginx/nginx.conf
2、传参运行
$ docker run nginx:test -c /etc/nginx/new.conf
容器内会默认运行以下命令,启动主进程(/etc/nginx/new.conf:假设容器内已有此文件)
nginx -c /etc/nginx/new.conf
- ENV 设置变量
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...
ENV NODE_VERSION 7.2.0
使用 $ NODE_VERSION 获取变量
-
ARG 设置变量,只作用于
build
阶段 -
VOLUME 定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷
VOLUME ["<路径1>", "<路径2>"...]
VOLUME <路径>
在启动容器docker run
的时候,我们可以通过-v
参数修改挂载点
- WORKDIR 指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。
WORKDIR <工作目录路径>
- USER 用于指定执行后续命令的用户和用户组,这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在)
USER <用户名>[:<用户组>]
网友评论