【docker】docker 关键技术 —— 镜像制作

docker 镜像制作

  • 镜像制作及原因
  • Docker 镜像制作方式
  • 快照方式制作镜像
    • 制作命令
  • Dockerfile 制作镜像
    • Dockerfile 是什么
    • Dockerfile 格式
    • 为什么需要 Dockerfile
    • gitee 详细使用 Dockerfile 教程

镜像制作及原因

镜像制作是因为某种需求,官方的镜像无法满足需求,需要我们通过一定手段来自定义镜像来满足要求。

制作镜像往往因为以下原因

  1. 编写的代码如何打包到镜像中直接跟随镜像发布
  2. 第三方制作的内容安全性未知,如含有安全漏洞
  3. 特定的需求或者功能无法满足,如需要给数据库添加审计功能
  4. 公司内部要求基于公司内部的系统制作镜像,如公司内部要求使用自己的操作系统作为基础镜像

Docker 镜像制作方式

制作容器镜像,主要有两种方法:

  • 制作快照方式获得镜像(偶尔制作的镜像):在基础镜像上(比如 Ubuntu),先登录容器中,然后安装镜像需要的所有软件,最后整体制作快照。
  • Dockerfile 方式构建镜像(经常更新的镜像):将软件安装的流程写成 Dockerfile,使用 docker build 构建成容器镜像。

快照方式制作镜像

制作命令

docker commit

• 功能

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

在这里插入图片描述

Dockerfile 制作镜像

Dockerfile 是什么

镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,这个脚本就是 Dockerfile。

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

Dockerfile 格式

在这里插入图片描述
该指令不区分大小写。然而,约定是它们是大写的,以便更容易地将它们与参数区分开来。

Docker 按顺序运行指令 Dockerfile

Docker 将以开头的行视为#注释,行中其他任何地方的标记#都被视为参数。这允许像这样的语句:

在这里插入图片描述

为什么需要 Dockerfile

  • 可以按照需求自定义镜像
    • 和 docker commit 一样能够自定义镜像,官方的镜像可以说很少能直接满足我们应用的,都需要我们自己打包自己的代码进去然后做成对应的应用镜像对外使用。
  • 很方便的自动化构建,重复执行
    • 通过 dockerfile 可以自动化的完成镜像构建,而不是像 docker commit 一样,手动一个命令一个命令执行,而且可以重复执行,docker commit 的话很容易忘记执行了哪个命令,哪个命令没有执行。
  • 维护修改方便,不再是黑箱操作
    • 使用 docker commit 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为黑箱镜像,dockerfile 很容易二次开发。
  • 更加标准化,体积可以做的更小
    • docker 容器启动后,系统运行会生成很多运行时的文件,如果使用 commit 会导致这些文件也存储到镜像里面,而且 commit 的时候安装了很多的依赖文件,没有有效的清理机制的话会导致镜像非常的臃肿。使用 Dockerfile 则会更加标准化,而且提供多级构建,将编译和构建分开,不会有运行时的多余文件,更加的标准化。

gitee 详细使用 Dockerfile 教程

gitee 详细使用 Dockerfile 教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1535393.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Docker基本使用(持续更新中)

1 常用命令 1.1保存镜像到本地 命令如下: docker save -o nginx.tar nginx:latest 举例 结果:在当前目录下多了一个nginx.tar的包 1.2加载本地镜像 命令如下: docker load -i nginx.tar 举例: 查看当前镜像是没有nginx的 加载本地镜…

C++入门基础知识67(高级)——【关于C++ 文件和流】

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C 文件和流的相关内容! 关于…

数据库索引底层数据结构之B+树MySQL中的页索引分类【纯理论干货,面试必备】

目录 1、索引简介 1.1 什么是索引 1.2 使用索引的原因 2、索引中数据结构的设计 —— B树 2.1 哈希 2.2 二叉搜索树 2.3 B树 2.4 最终选择之——B树 2.4.1 B树与B树的对比(面向索引)【面试题】 3、MySQL中的页 3.1 页的使用原因 3.2 页的结构 3.2.1 页文件头和页文件…

【批量图片发票识别表格】批量识别发票明细导出Excel表格,批量识别扫描发票,批量识别拍照发票,发票识别改名

我们在生活中有很多发票要处理,有的是扫描的图片,有的是拍照的图片,需要将这些发票的信息导出整理成Excel表格,手打一两张还可以,数量大是不太现实的,那么今天教下大家如何快速的将这些发票整理下Excel表格…

基于Java、SpringBoot、Vue的加油站管理系统设计

摘要 本系统是一个基于Java、SpringBoot和Vue的加油站管理系统。它旨在提高加油站的运营效率,优化客户服务体验,并通过数据分析支持更精准的业务决策。该系统包括用户管理、汽油管理、站点管理等功能模块。通过这些功能,管理员可以方便地管理…

Chrome扩展程序上架全流程

1. 开发一个扩展 首先开发好一个扩展, 在构建之后压缩打包为 zip 格式的文件 2. 注册开发者账号 首次需要创建谷歌开发者账号,需要一次性收取5美元的注册费 注册步骤 打开注册链接,如下图所示,同意协议点击支付注册费 需要…

GDPU Vue前端框架开发 计数器

计数器算不到你双向绑定的进度。 重要的更新公告 !!!GDPU的小伙伴,感谢大家的支持,希望到此一游的帅哥美女能有所帮助。本学期的前端框架及移动应用,采用专栏订阅量达到50才开始周更了哦( •̀ .̫ •́ )✧…

一步到位:通过 Docker Compose 部署 EFK 进行 Docker 日志采集

一、EFK简介 Elasticsearch:一个开源的分布式搜索和分析引擎,用于存储和查询日志数据。它是 EFK 的核心组件,负责高效地存储和检索日志信息。 Filebeat:一个轻量级的日志采集器,主要用于将日志文件数据发送到 Logsta…

Python之NumPy超详细学习指南:从入门到精通(上篇)

文章目录 Python NumPy学习指南:从入门到精通第一部分:NumPy简介与安装1. 什么是NumPy?2. 安装NumPy使用pip安装:使用Anaconda安装: 第二部分:NumPy数组基础1. NumPy数组的创建从列表创建一维数组&#xff…

第四天旅游线路预览——从贾登峪到喀纳斯景区入口(贾登峪游客服务中心)

第四天:从贾登峪到喀纳斯风景区入口,晚上住宿贾登峪; 从贾登峪到喀纳斯景区入口(贾登峪游客服务中心): 搭乘贾登峪①路车,路过三湾到达景区换乘中心,路程时长约40分钟; …

在服务器上开Juypter Lab教程(远程访问)

在服务器上开Juypter Lab教程(远程访问) 文章目录 在服务器上开Juypter Lab教程(远程访问)一、安装anaconda1、安装anaconda2、提权限3、运行4、同意协议5、安装6、是否要自动初始化 conda7、结束8、检查 二、Anaconda安装Pytorch…

jsp+sevlet+mysql图书管理系统

jspsevletmysql图书管理系统 一、系统介绍二、功能展示1.图书查询(学生)2.借阅信息(学生)3.借阅历史(学生)4.借阅历史(管理员)5.读者管理(管理员)6.图书分类(管理员)7.图书借阅信息(管理员)8.图书归还信息(管理员) 四、其它1.其他系统实现 一、系统介绍 系统主要功能&#xff…

iOS_模拟系统音量/亮度视图

自己实现音量和亮度视图,然后显示在所需区域。 当需要展示自己实现的音量视图时,需要屏蔽掉系统的音量视图: // 显示持有系统的音量视图 self.sysVolumView [[MPVolumeView alloc] init];// 当需要屏蔽时 if (self.sysVolumView.superview…

【Java面试】第八天

🌟个人主页:时间会证明一切. 目录 BeanFactory和FactroyBean的关系?BeanFactoryFactoryBean Spring 中的 Bean 是线程安全的吗?有状态的Bean如何解决线程安全问题 Spring 中的 Bean 作用域有哪些?作用域与循环依赖自定…

6.6高斯噪声

在OpenCV联合C中给一张图片添加高斯噪声(Gaussian Noise),可以通过生成随机数并在图像的每个像素上加上这些随机数来实现。高斯噪声是一种统计分布服从正态分布的噪声,通常用于模拟自然界的许多物理现象。 示例代码 以下是一个使…

衡石分析平台使用手册-通用配置文档

配置文件​ 配置文件中存放 HENGSHI SENSE 的配置参数,可以通过修改配置文件来改变 HENGSHI SENSE 的服务方式。 配置文件说明​ 配置文件存放在 conf 路径下,包含 hengshi-sense-env.sh 和 engine-segment-hosts 两个文件。其中 engine-segment-host…

R18 Enhancements on CHO procedure for NES cell(s)(NES event)

在 R18 Network energy savings(NES) 之cell DTX/DRX https://t.zsxq.com/o1jnp 中有提到DCI format 2_9中的field NES-mode indication,这个field就与另一个NES feature相关,下面就简单看下。 在TR 38.864中有提到Connected mode mobility的内容:在 NES mode switching期间…

标准库、HAL库、LL库

目录 举例理解 概念理解 标准库(Standard Peripheral Library,SPL) 2. HAL库(Hardware Abstraction Layer) 3. LL库(Low-Layer Library) 总结区别 如何选择 实际应用中的结合使用 代码…

根据第七次人口普查数据探索中国平均预期寿命

一:数据介绍 数据来源:预期寿命数据集 - Heywhale.com 该数据提供了中国各地区在第七次人口普查(2020年)中的平均预期寿命,包括男性和女性的预期寿命。该表具有93行和3列。以下是关于这个数据表的具体信息&#xff1…

设计师私藏的 PDF 转 JPG 利器

你平常会通过扫描来发送文件吗?为了保证图片的清晰度一般都会采用PDF格式来转发,但是要插入到一些文件里的时候PDF格式不是那么好用。这时候就很需要PDF转jpg工具了。今天我就分享几款我用过的PDF转jpg的工具,有兴趣就接着往下看吧。 1.福昕…