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

news/2024/9/28 10:12:30/

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

http://www.ppmy.cn/news/1531492.html

相关文章

Mybatis(进阶部分)

四 Mybatis完成CURD&#xff08;二&#xff09; 4.5 多条件CRUD 之前的案例中&#xff0c;接口里方法的形参个数都是1个&#xff1b;如果方法形参是两个或者两个以上时&#xff0c;MyBatis又该如何获取获取参数呢&#xff1f; Mybatis提供了好几种方式&#xff0c;可以获取多…

Lenovo SR850服务器亮黄灯维修和升级CPU扩展模块

佛山市三水区某高校1台Lenovo Thinksystem SR850服务器黄灯故障到现场检修 和 升级3号和4号CPU。加强服务器的计算性能&#xff1b; 故障情况是该学校it管理员这一天看到这台SR850服务器前面板亮了一个黄灯&#xff0c;但是目前系统运行正常&#xff0c;出于安全考虑&#xff0…

Redis 五大基本数据类型及其应用场景进阶(缓存预热、雪崩 、穿透 、击穿)

Redis 数据类型及其应用场景 Redis 是什么? Redis是一个使用C语言编写的高性能的基于内存的非关系型数据库&#xff0c;基于Key/Value结构存储数据&#xff0c;通常用来 缓解高并发场景下对某一资源的频繁请求 &#xff0c;减轻数据库的压力。它支持多种数据类型,如字符串、…

T8:猫狗识别

T8周&#xff1a;猫狗识别 **一、前期工作**1.设置GPU,导入库2.导入数据3.查看数据 **二、数据预处理**1.加载数据2.可视化数据3.配置数据集 **三、构建CNN网络模型****四、编译模型****五、训练模型****六、模型评估****七、预测**八、总结1、[train_on_batch 和 test_on_batc…

QCommandLineParser简介

QCommandLineParser QCommandLineParser 是 Qt 提供的一个类&#xff0c;用于解析命令行参数。它使得处理命令行参数变得简单和高效&#xff0c;适用于需要从命令行获取输入的控制台应用程序或需要支持命令行选项的 GUI 应用程序。 主要功能和用途 定义命令行选项&#xff1…

docker进入容器命令

文章目录 什么是 Docker 容器&#xff1f;为什么要进入 Docker 容器&#xff1f;如何进入 Docker 容器&#xff1f;步骤 1&#xff1a;查看正在运行的容器步骤 2&#xff1a;进入容器步骤 3&#xff1a;在容器内工作 小贴士 什么是 Docker 容器&#xff1f; 首先&#xff0c;让…

深入理解网络通信: 长连接、短连接与WebSocket

在现代网络应用开发中,选择合适的通信方式对于应用的性能、效率和用户体验至关重要。本文将深入探讨三种常见的网络通信方式:长连接、短连接和WebSocket,分析它们的特点、区别以及适用场景。 1. 短连接 © ivwdcwso (ID: u012172506) 1.1 定义 短连接是指客户端和服务器…

【顺序表使用练习】发牌游戏

【顺序表使用练习】发牌游戏 1. 介绍游戏2. 实现52张牌3. 实现洗牌4. 实现发牌5. 效果展示 1. 介绍游戏 首先先为大家介绍一下设计要求 实现52张牌&#xff08;这里排除大小王&#xff09;洗牌——打乱牌的顺序发牌——3个人&#xff0c;1人5张牌 2. 实现52张牌 创建Code对象创…