如何在不使用docker命令的情况下,将使用device mapper的docker容器移动到另一台机器上。

6

以下是情况说明

重新启动后,由于磁盘空间不足,docker无法重新启动。由于许多错误的决定,我们现在只剩下一个 /var/lib/docker 的副本(因此我们无法运行希望移动到另一台运行相同操作系统/ docker版本(1.8.3)的机器上的docker

当我们试图天真地用旧的替换/var/lib/docker时,我们得到了

Feb 20 08:06:33 example.com systemd[1]: Starting Docker Application Container Engine...
Feb 20 08:06:33 example.com docker[2164]: time="2016-02-20T08:06:33.111285635+01:00" level=error msg="[graphdriver] prior storage driver \"devicemapper\" failed: Base Device UUID verification failed. Possibly using a different thin pool then last invocation:exit status 2"
Feb 20 08:06:33 example.com docker[2164]: time="2016-02-20T08:06:33.111382676+01:00" level=fatal msg="Error starting daemon: error initializing graphdriver: Base Device UUID verification failed. Possibly using a different thin pool then last invocation:exit status 2"
Feb 20 08:06:33 example.com systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE

我一直在阅读有关Docker的这个问题:https://github.com/docker/docker/issues/15721,但它似乎并没有什么帮助。

是否有已知的程序可以将东西转移出来?或者至少可以挂载磁盘映像以获取数据吗?

2个回答

1

点赞建议在移除docker文件夹后重新启动计算机。 - Jeff Piersol

1
你可以更改docker在/var/lib/docker/devicemapper/metadata/deviceset-metadata中查找的UUID。
我的系统上,此文件包含以下内容:
{
    "BaseDeviceFilesystem": "xfs",
    "BaseDeviceUUID": "4c799443-bf3d-4b95-a9df-dd86de235057",
    "next_device_id": 1
}

你应该尝试用Docker正在寻找的UUID替换4c799443-bf3d-4b95-a9df-dd86de235057。


在 Docker 1.12.6 上对我有效。 - cursed_axes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接