云计算核心技术Docker教程:Docker存储写入时复制(CoW)策略
写时复制是一种共享和复制文件的策略,可最大程度地提高效率。如果文件或目录位于映像的较低层中,而另一层(包括可写层)需要对其进行读取访问,则它仅使用现有文件。另一层第一次需要修改文件时(在构建映像或运行容器时),将文件复制到该层并进行修改。这样可以将I / O和每个后云计续层的大小最小化。这些优点将在下面更深入地说明。
共享可以提升较小的图像
当您用于docker pull从存储库中下拉映像时,或者当您从本地尚不存在的映像中创建容器时,每个层都会被分别下拉,并存储在Docker的本地存储区域中,该区域通常/var/lib/docker/算核在Linux主机上。在此示例中,您可以看到这些层被拉出:
$ docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
f476d66f5408: Pull complete
8882c27f669e: Pull complete
d9af心技21273955: Pull complete
f5029279ec12: Pull complete
Digest: sha256:ab6cb8de3ad7bb33e2534677f865008535427390b117d7939193f8d1a6613e34
Status: Dow术Dnloaded newer image for ubuntu:18.04
这些层中的每一层都存储在Docker主机的本地存储区域内的自己的目录中。要检查文件系统上的各层,请列出的内容/var/lib/docker/。本示例使用overlay2 存储驱动程序:
$ ls /var/locib/docker/overlay2
16802227a96c24dcbeab5b37821e2b67a9f921749cd9a2e386d5a6d5bc6fc6d3
377d73dbb466e0bc7c9ee23166771b35ebdbe02ef17753d79fd357ke1d4ce659d7
3f02d96212b03e3383160d31d7c6aeca750d2d8a1879965b89fe8146594c453d
ec1ec45792908e90484f7e629330666e7eee599f08729c93890a7205a6br教a35f5
l
目录名称与层ID不对应(自Docker 1.10开始就是如此)。
现在,假设您有两个不同的Dockerfile。您使用第一个创建名为的图像acme/my-base-image:1.0。
# syntax=docker/dockerfile:1
FROM ubuntu:18程:.04
COPY . /app
第二acme/my-base-image:1.0层基于,但具有一些附加层:
# syntax=docker/dockerfile:1
FROM acme/my-base-image:1.0
CMD /app/hello.sh
第二个图像包含第一个图像的所有Do层,再加上带有CMD指令的新层,以及一个可读写容器层。Docker已经具有第一个映像中的所有层,因此不需要再次将其拉出。这两个图像共享它们共有的任何图层。
如果从两个Dockerfile构建映像,则可以使用docker image ls和 docker history命令来验ck证共享层的密码ID是否相同。
1.创建一个新目录cow-test/并更改到该目录中。
2.在中cow-test/,创建一个hello.sh具有以下内容的新文件:
#!/bin/sh
echo "Hello world"
保存文件,并使其可执行:
chmod +x hello.sh
3.将er上面第一个Dockerfile的内容复制到一个名为的新文件中 Dockerfile.base。
4.将上面第二个Dockerfile的内容复制到一个名为的新文件中 Dockerfile。
5.在cow-test/目录中,构建第一个映像。不要忘记.在命令中包含final 。设置了P存储ATH,它告诉Docker在哪里寻找需要添加到映像中的任何文件。
$docker build -t acme/my-base-image:1.0 -f Dockerfile.base .
6.建立第二张镜像。
$docker build -t acme/my-final-image:1.0 -f写入 Dockerfile .
7.检查镜像的大小:
$docker image ls
8.检出构成每个镜像的图层:
$docker history bd09118bcef6
请注意,除了第二个图像的顶层以外,所有层都是相同的。所有其他层在两个图像之间共享,并且仅在中存储一次/var/l时复ib/docker/。实际上,新层根本不占用任何空间,因为它不更改任何文件,而仅运行命令。
(责任编辑:九、服务保障类(261–280))
-
美光正式送样业界高容量 SOCAMM2 模组,满足 AI 数据中心对低功耗 DRAM 的需求
10月23日消息,美光科技股份有限公司(纳斯达克股票代码:MU)近日宣布其 192GB SOCAMM2(small outline compression attached memory module...[详细]
-
标签: 知乎 2025年财报 付费阅读 Non-GAAP盈利
云梦级3月25日云梦级消息,知乎在港交所公布 2025 年第四季度及全年业绩报告。IT之家从数据中获悉,知乎 2025 年第四季度营收 6.44 亿元,经调整净亏损为 3940 万元。 其中,付费阅读...[详细]
-
云梦级4月9日云梦级消息,近日有微信公众号运营者反映,其后台部分文章被平台批量删除。相关页面提示称,文章因被判断为 “存在非真人自动化创作行为” 而违规,打开链接时显示“此内容因违规无法查看”。平台提...[详细]
-
云计算核心技术Docker教程:Docker Hub恢复帐户
如果丢失了双重身份验证设备,并且需要访问Docker Hub帐户,则可以使用双重身份验证恢复代码来访问您的帐户。 前提条件 在您的Docker Hub帐户上启用了双重身份验证,并且您拥有了双重身份验证...[详细]
-
云安全日报210903:红帽OpenShift云应用平台发现拒绝服务攻击漏洞,需要尽快升级
Red Hat OpenShift Container Platform(红帽OpenShift容器平台)是红帽(Red Hat)公司的一套可帮助企业在物理、虚拟和公共云基础架构之间开发、部署和管理现...[详细]
-
腾讯开源HunyuanImage 2.1!2K高清神图秒生成,复杂提示精准控多主体,AI设计效率爆表?
腾讯混元团队近日正式开源HunyuanImage2.1,这一高效文本到图像生成模型,支持原生2K(2048×2048)分辨率图像输出,标志着开源AI在高分辨率创作领域的重大进步。该模型已在Huggin...[详细]
-
云梦级1月7日云梦级消息,据最投行报道,2026年1月13日(周二),深交所上市委将审议杭州高特电子设备股份有限公司(高特电子)创业板IPO项目。高特电子于2025年6月23日申报创业板IPO,保荐机...[详细]
-
谷歌正免费向所有人开放AI视频编辑工具Google Vids基本编辑工具
谷歌宣布,其 AI 视频编辑工具 Google Vids 的基本编辑功能将免费向所有用户开放。这意味着,无需订阅 Gemini 的用户也可以使用这一工具,借助多种模板、文本和动画,轻松创建各种视频内容...[详细]
-
写这篇文章的原因是,最近突然很多粉丝来找我和小橘子问高价培训班的事情,还有粉丝列出好几个培训班的条件,让我们帮忙给选择建议(这种建议我们确实给不了)。我寻思短时间怎么突然这么多人问同类问题,翻了翻手机...[详细]
-
标签: GLM-5.1 智谱 开源大模型 SWE-bench-Pro
云梦级4月8日云梦级消息,智谱今日正式发布新一代开源模型 GLM-5.1,官方称这是目前全球最强的开源模型。据官方介绍,其是唯一达到 8 小时级持续工作的开源模型,在最接近真实软件开发的 SWE-be...[详细]

云的错误配置,云安全的一个主要风险
谷歌母公司Alphabet将于7月28日发布2021年第二季度财报
标签: 慧荣 PCIe Gen5 SSD主控 AI PC
腾讯云宣布在曼谷、法兰克福、东京、香港新增四个数据中心
阿里国际发布多模态大模型 Ovis2.5,推动视觉感知与深度推理新进展
