我在笔记本电脑上的Fedora和Ubuntu下使用多重启动设置使用Docker。我需要这个来排除selinux和/或apparmor的问题所以我的构建将适用于红帽(和朋友)和debian(和朋友)。
我在瘦池lvm配置中使用devicemapper作为存储后端。这是使用Fedora下的docker-storage-setup工具配置的。
我想将我的docker图像和容器共享到Fedora(/在lvm上格式化为ext4fs)和Ubuntu环境(/也在lvm上格式化为btrfs)以节省空间。
然而,在一个Docker系统启动并接管了docker thinpool后,另一个Docker系统无法使用相同的docker thinpool。
这是错误:
Error starting daemon: error initializing graphdriver: devmapper: Unable to take ownership of thin-pool ("my docker thin pool") that already has used data blocks
基于此,它似乎有这种设计限制。在这种情况下,任何人都会详细说明我的特定用例,是否有另一种方式与几个Linux系统共享我的docker devicemapper瘦池,这样我可以节省空间,没有重复的图像/容器?
答案 0 :(得分:0)
在bug report埃里克巴黎说:
如果您正在使用设备映射器(而不是环回)/ var / lib / docker包含元数据,通知docker有关设备映射器存储区域的内容。如果删除/ var / lib / docker,则元数据将丢失。然后Docker能够检测到精简池有数据,但是docker无法使用该信息。唯一的解决方案是删除精简池并重新创建它,以便精简池和/ var / lib / docker中的元数据都为空。
因此/var/lib/docker
的同步部分可能是一种解决方案。