首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

迁移到引擎1.10 | Migrate to Engine 1.10

从DockerEngine的1.10版本开始,我们完全改变了磁盘上图像数据的寻址方式。以前,每个图像和层都使用一个随机分配的UUID。在1.10中,基于图像和层数据的安全散列,我们使用ID实现了内容可寻址方法。

这种新方法为用户提供了更多的安全性,提供了一种避免ID冲突的内置方式,并保证了在拉动、推送、加载或保存后的数据完整性。它还带来了更好的层共享,允许许多图像自由地共享它们的层,即使它们不是来自同一个构建。

通过其内容对图像进行寻址,还可以让我们更容易地检测是否已经下载了一些内容。因为我们有分开的图像和层,所以您不必为原始构建链中的每一个映像提取配置。我们也不需要为没有修改文件系统的构建指令创建层。

内容可寻址性是新发行特性的基础。图像拉和推代码已经被重新加工,使用下载/上传管理器的概念,这使得推拉图像更加稳定,并减轻了任何并行请求问题。下载管理器还会对失败的下载进行重试,并为并发下载提供更好的优先级。

我们还引入了一种新的清单格式,它构建在内容可寻址基础之上。它直接引用内容可寻址图像配置和层校验和。新的清单格式还使清单列表能够用于针对多个体系结构/平台。移动到新的清单格式将是完全透明的。

准备升级

为了使新模型能够访问当前映像,我们必须将它们迁移到内容可寻址存储。这意味着计算当前数据的安全校验和。

当您第一次启动DockerEngine 1.10时,所有当前的图像、标签和容器都会自动迁移到新的基础上。在加载容器之前,守护进程将计算当前数据所需的所有校验和,完成后,所有图像和标记都将具有全新的安全ID。

虽然这是一个简单的操作,但是如果您有大量的图像数据,计算SHA 256校验和文件可能需要时间。平均而言,您应该假设Migrator可以以100 MB/s的速度处理数据。在此期间,您的Docker守护进程将无法响应请求。

最小化迁移时间

如果您可以接受这一次hit,那么升级Docker引擎并重新启动守护进程将透明地迁移您的映像。但是,如果希望最小化守护进程的停机时间,则可以在旧守护进程仍在运行时运行迁移实用程序。

这个工具将找到所有当前图像并计算它们的校验和。升级并重新启动守护进程之后,迁移图像的校验和数据将已经存在,从而使守护进程从该计算工作中解脱出来。如果在迁移和升级之间出现了新的图像,这些图像将在升级到1.10时处理。

迁移工具也可以作为Docker映像运行。在运行Migrator映像时,需要向容器公开Docker数据目录。如果使用默认路径,则会运行:

代码语言:javascript
复制
$ docker run --rm -v /var/lib/docker:/var/lib/docker docker/v1.10-migrator

如果使用devicemapper存储驱动程序,还需要传递标志。--privileged若要使工具访问存储设备,请执行以下操作。

扫码关注腾讯云开发者

领取腾讯云代金券