Dockerfile 是一个文本文件,它包含了一系列的指令,用于构建一个 Docker 镜像。下面是 Dockerfile 中常用命令的详细解释和示例。
1. 获取镜像的三种方式
通过命令拉取镜像
docker pull 镜像名称
从镜像仓库拉取指定的镜像。
通过容器创建镜像
docker commit 容器id 镜像名称
从已存在的容器创建一个新的镜像。
通过Dockerfile构建镜像
 编写 Dockerfile 文件来自定义和构建镜像。
流程图:获取镜像的三种方式
2. Dockerfile基础指令
FROM
 定义基础镜像信息。
FROM nginx
MAINTAINER
 作者维护者信息。
MAINTAINER 作者名 <邮箱>
RUN
 运行Linux命令,制作镜像操作指令。
RUN echo '<meta charset=utf8>佳哥带你用docker运行nginx服务' > /usr/share/nginx/html/index.html
ADD
 添加文件到容器内,支持自动解压和远程文件下载。
ADD 文件路径 /容器内路径
COPY
 复制本地文件到容器内,不自动解压。
COPY 文件路径 /容器内路径
WORKDIR
 设置工作目录。
WORKDIR /etc/mysql
USER
 切换执行用户。
USER root
USER test
VOLUME
 定义挂载卷。
VOLUME /data
EXPOSE
 指定对外的端口。
EXPOSE 80
CMD
 指定容器启动时要执行的命令。
CMD ["nginx", "-g", "daemon off;"]
ENTRYPOINT
 指定容器启动时要执行的程序及参数。
ENTRYPOINT ["nginx", "-g", "daemon off;"]
ENV
 设置环境变量。
ENV NAME value
ARG
 构建时设置变量。
ARG NAME=value
流程图:Dockerfile基础指令
3. Dockerfile构建示例
构建Docker镜像
docker build --no-cache -t 'jiage3122/my_flask_web' .
打标签
docker tag 镜像id 镜像名称
运行容器
docker run -d -p 80:80 my-nginx
流程图:Dockerfile构建示例
内容汇总表格
| 章节 | 命令 | 说明 | 
|---|---|---|
| 获取镜像 | docker pull | 从仓库拉取镜像 | 
| 获取镜像 | docker commit | 从容器创建镜像 | 
| 获取镜像 | 编写Dockerfile | 通过Dockerfile构建镜像 | 
| 基础指令 | FROM | 定义基础镜像 | 
| 基础指令 | MAINTAINER | 定义维护者信息 | 
| 基础指令 | RUN | 执行命令 | 
| 基础指令 | ADD | 添加文件/目录 | 
| 基础指令 | COPY | 复制文件/目录 | 
| 基础指令 | WORKDIR | 设置工作目录 | 
| 基础指令 | USER | 切换用户 | 
| 基础指令 | VOLUME | 定义挂载卷 | 
| 基础指令 | EXPOSE | 暴露端口 | 
| 基础指令 | CMD | 指定启动命令 | 
| 基础指令 | ENTRYPOINT | 指定启动程序 | 
| 基础指令 | ENV | 设置环境变量 | 
| 基础指令 | ARG | 构建时设置变量 | 
| 构建示例 | docker build | 构建Docker镜像 | 
| 构建示例 | docker tag | 打标签 | 
| 构建示例 | docker run | 运行容器 | 
