【分布式微服务云原生】Dockerfile命令详解

时间:2024-09-29 13:00:20

Dockerfile 是一个文本文件,它包含了一系列的指令,用于构建一个 Docker 镜像。下面是 Dockerfile 中常用命令的详细解释和示例。

1. 获取镜像的三种方式

通过命令拉取镜像

docker pull 镜像名称

从镜像仓库拉取指定的镜像。

通过容器创建镜像

docker commit 容器id 镜像名称

从已存在的容器创建一个新的镜像。

通过Dockerfile构建镜像
编写 Dockerfile 文件来自定义和构建镜像。

流程图:获取镜像的三种方式

开始
docker pull 镜像名称
从仓库拉取镜像
开始
docker commit 容器id 镜像名称
从容器创建镜像
开始
编写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基础指令

FROM
定义基础镜像
MAINTAINER
定义维护者信息
RUN
执行命令
ADD
添加文件/目录
COPY
复制文件/目录
WORKDIR
设置工作目录
USER
切换用户
VOLUME
定义挂载卷
EXPOSE
暴露端口
CMD
指定启动命令
ENTRYPOINT
指定启动程序
ENV
设置环境变量
ARG
构建时设置变量
3. Dockerfile构建示例

构建Docker镜像

docker build --no-cache -t 'jiage3122/my_flask_web' .

打标签

docker tag 镜像id 镜像名称

运行容器

docker run -d -p 80:80 my-nginx

流程图:Dockerfile构建示例

编写Dockerfile
docker build
构建镜像
docker tag
打标签
docker run
运行容器
内容汇总表格
章节 命令 说明
获取镜像 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 运行容器