2016-12-03 48 views
0

我正在使用我的筆記本電腦上的Fedora和Ubuntu下的多重引導設置上開發Docker。我需要這個來排除selinux和/或apparmor的問題,所以我的版本可以用於紅帽(和朋友)和debian(和朋友)。共享泊塢窗devicemapper lvm thinpool在多重引導設置

我在精簡池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

bug report埃裏克巴黎說:

IF you are using device mapper (instead of loopback) /var/lib/docker contains metadata informing docker about the contents of the device mapper storage area. If you delete /var/lib/docker that metadata is lost. Docker is then able to detect that the thin pool has data but docker is unable to make use of that information. The only solution is to delete the thin pool and recreate it so that both the thin pool and the metadata in /var/lib/docker will be empty.

/var/lib/docker所以同步部件可能是一個解決辦法。

+0

我正在使用devicemapper,我的精簡池有數據和元數據。問題是隻有一個操作系統可以使用和接管音量,但我最終的情況是我希望在多引導操作系統設置中共享數據和元數據。 – mjmg

+0

按照[docker.com]的說明(https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#configure-direct-lvm-mode-for-production)我用' lvconvert -y --zero n -c 512K --thinpool docker/thinpool --poolmetadata docker/thinpoolmeta'。使用它工作得很好。然後我刪除了'/ var/lib/docker',因爲我認爲它不是必需的。然後在問題中提到的同樣的錯誤發生。 – adabru