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 | 运行容器 |