0

今天我在一个 debian 伸展主机中将 docker 从 18.06 升级到 18.09。升级后,我们所有的图像和容器都“消失”了,即docker <command>不再显示它们,但其中的数据/var/lib/docker并没有消失。dockerd -D揭晓:

Cannot load container XXX because it was created with another graph driver

所以我做的第一件事就是将 docker 降级到最后一个版本,以检查是否可以修复它。它有点工作。之前工作的 systemd 单元文件无法启动 docker 服务。结果我必须明确地传递-s devicemapperdockerd现在,我不知道为什么,因为显然升级到 18.09 确实放了/var/lib/docker/overlay2它,我只需要删除它就可以像以前一样启动 18.06。

因此,在我确认上一个 docker 版本已解决此问题后,我再次升级到 18.09 并尝试是否-s devicemapper显式传递此处的技巧。但是在 18.09 中,守护进程甚至根本不会启动并抱怨:

Failed to GetDriver graph                     driver=devicemapper error="graphdriver plugins are only supported with experimental mode" home-dir=/var/lib/docker

我找不到任何关于devicemapper被弃用或类似的东西,那么在升级之前我应该​​做什么?是否有任何一般性建议/最佳实践来避免此类问题?

4

1 回答 1

1

以防对任何人有帮助。我不得不对通过更新通道拉入的 18.09 版本进行核对,以进行我的 mint 安装:

sudo apt-get autoremove docker-ce 
sudo rm -rf /etc/docker 
sudo rm -rf /var/lib/docker
sudo apt-get autoremove --purge docker-ce

然后在重新安装 18.09 docker install 之前重新安装:

sudo apt-get install docker-ce

这将我的存储驱动程序移到了Storage Driver: overlay2以前的位置devicemapper,这似乎是问题的根源。

毫无疑问,通过/etc/docker/daemon.json设置可以解决这个问题,但不幸的是我没有时间弄清楚这是什么。

显然,如果您使用 nuke /var/lib/docker,您将丢失所有本地 Docker 映像,因此请确保在剪切粘贴之前执行此操作。

是的,最初的问题可能应该已经发布到 SU 而不是 SO ......

于 2018-11-19T16:07:45.053 回答