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

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

1. 获取镜像的三种方式

通过命令拉取镜像

bash 复制代码
docker pull 镜像名称

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

通过容器创建镜像

bash 复制代码
docker commit 容器id 镜像名称

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

通过Dockerfile构建镜像

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

流程图:获取镜像的三种方式
开始 docker pull 镜像名称 从仓库拉取镜像 开始 docker commit 容器id 镜像名称 从容器创建镜像 开始 编写Dockerfile 构建自定义镜像

2. Dockerfile基础指令

FROM

定义基础镜像信息。

dockerfile 复制代码
FROM nginx

MAINTAINER

作者维护者信息。

dockerfile 复制代码
MAINTAINER 作者名 <邮箱>

RUN

运行Linux命令,制作镜像操作指令。

dockerfile 复制代码
RUN echo '<meta charset=utf8>佳哥带你用docker运行nginx服务' > /usr/share/nginx/html/index.html

ADD

添加文件到容器内,支持自动解压和远程文件下载。

dockerfile 复制代码
ADD 文件路径 /容器内路径

COPY

复制本地文件到容器内,不自动解压。

dockerfile 复制代码
COPY 文件路径 /容器内路径

WORKDIR

设置工作目录。

dockerfile 复制代码
WORKDIR /etc/mysql

USER

切换执行用户。

dockerfile 复制代码
USER root
USER test

VOLUME

定义挂载卷。

dockerfile 复制代码
VOLUME /data

EXPOSE

指定对外的端口。

dockerfile 复制代码
EXPOSE 80

CMD

指定容器启动时要执行的命令。

dockerfile 复制代码
CMD ["nginx", "-g", "daemon off;"]

ENTRYPOINT

指定容器启动时要执行的程序及参数。

dockerfile 复制代码
ENTRYPOINT ["nginx", "-g", "daemon off;"]

ENV

设置环境变量。

dockerfile 复制代码
ENV NAME value

ARG

构建时设置变量。

dockerfile 复制代码
ARG NAME=value

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

3. Dockerfile构建示例

构建Docker镜像

bash 复制代码
docker build --no-cache -t 'jiage3122/my_flask_web' .

打标签

bash 复制代码
docker tag 镜像id 镜像名称

运行容器

bash 复制代码
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 运行容器
相关推荐
张某布响丸辣19 分钟前
Kafka与RabbitMQ:深入理解两者之间的区别
分布式·kafka·rabbitmq
花千树-0103 小时前
深度对比:etcd、Consul、Zookeeper 和 Nacos 作为注册中心和配置中心的优势与劣势
微服务·zookeeper·服务发现·etcd·consul
高高要努力3 小时前
SpringCloud-Netflix第一代微服务快速入门
spring·spring cloud·微服务
神一样的老师3 小时前
睡眠监测系统基于边缘计算和微服务缓存
缓存·微服务·边缘计算
蒲公英的孩子3 小时前
并行程序设计基础——MPI接口一览
linux·c语言·分布式·负载均衡
安科瑞 华楠5 小时前
安科瑞Acrel-1000DP分布式光伏监控系统在鄂尔多斯市鄂托克旗巴音乌苏六保煤矿5MW分布式光伏项目中的应用
分布式
明达技术5 小时前
探索分布式IO模块的介质冗余:赋能工业自动化的稳健之心
运维·分布式·自动化
it技术分享just_free5 小时前
kubernetes K8S 挂载分布式存储 ceph
运维·分布式·ceph·云原生·容器·kubernetes·k8s
编程卡拉米5 小时前
RabbitMQ——消息的可靠性处理
分布式·rabbitmq
Dylanioucn5 小时前
【分布式微服务云原生】使用Docker体验不同Linux发行版
分布式·docker·微服务