如何将aufs目录中docker的图像移动到overlay2?

Swo*_*ord 6 linux docker

我将我的 Debian 内核从 3.x 更新到 4.x。
Docker 存储变成了overlay2。

ls /var/lib/docker/ 
containers  image  network  overlay2  plugins  swarm  tmp  trust  volumes
Run Code Online (Sandbox Code Playgroud)

旧的目录结构是

aufs  containers  graph  image  init  linkgraph.db  network  plugins  repositories-aufs  swarm  tmp  tmp-old  trust  volumes
Run Code Online (Sandbox Code Playgroud)

我的图像在 aufs 目录中,我无法使用旧目录启动 docker 服务。如何将我的图像移动到overlay2?

pr-*_*pal 5

  1. 确定从 aufs 迁移到 overlayfs2 后要保存和恢复的图像。

  2. 将所有要迁移到 overlayfs 的图像导出到一个存档中 - 这更快更高效

    sudo docker save $IMAGES -o /data/save.tar

    IMAGES是一个包含图像名称的变量

  3. 使用以下内容创建 /etc/docker/daemon.json:

    {
      "storage-driver": "overlay2"
    }
    
    Run Code Online (Sandbox Code Playgroud)

    [参考 /sf/ask/2957170191/#57537190 使用 jq 更新它]

  4. 将存放docker镜像的目录备份并删除该目录

    mv /var/lib/docker/images /var/lib/docker.aufs.images

  5. systemctl daemon-reload

  6. systemctl restart docker

  7. docker load < save.tar

  • 我的所有容器现在都丢失了,我需要移动的不仅仅是图像! (2认同)

And*_*inn -1

您实际上可以设置要使用的存储驱动程序。升级可能已将默认文件或配置更改为overlay2. 您也许可以将其改回aufs. 有关此内容的文档位于https://docs.docker.com/engine/userguide/storagedriver/selectadriver/#check-and-set-your-current-storage-driver

此外,根据您运行的 Docker 版本,该设置可能位于/etc/default/docker而不是/etc/docker/daemon.json.