我計劃將 Docker 資料(映像和容器)移動到單獨的驅動器,因為它們需要很多空間。
據我所知,我可以移動/var/lib/docker
到單獨的驅動器並創建到它的軟連結。但我讀到 BTRFS 是 docker 的最佳檔案系統選項。
但我懷疑將外部磁碟機格式化為 BTRFS 並將現有資料夾移至其中還不夠。據我所知,該資料夾的內容取決於使用的檔案系統。
如何正確移動(重新建立)具有不同檔案系統的外部磁碟機上的 docker 資料夾(映像和容器)?
答案1
正如您所說,簡單地將 docker 映像/容器從預設 AUFS 移動或複製到 BTRFS 格式的磁碟機是行不通的。因此,第一步,您可以將所有容器提交為映像,並使用docker save
命令將映像儲存為 .tar 文件,然後一旦您準備好 docker 使用 btrfs,就可以運行docker load
將映像載入到新的儲存驅動程式中。
步驟大致如下 - 這是我在 Ubuntu 14.10 盒子中所做的 -
- 儲存您的影像
docker save IMAGEID > /tmp/redis.tar
- 準備btrfs
mkfs.btrfs /dev/sdb mkdir /var/lib/docker-btrfs 掛載 /dev/sdb /var/lib/docker-btrfs/
- 停止 docker 並設定 docker 使用 btrfs 並運行它。
服務泊塢窗戶停止 docker -d -s btrfs --graph="/var/lib/docker-btrfs" -H unix:///var/run/docker.sock
上述步驟也可以透過修改/etc/default/docker.conf來完成。
- 載入圖像。
docker load --input /tmp/redis.tar
您應該能夠從這裡查看圖像並運行容器。對於容器,你也可以嘗試export
一些import
方法,不過我從來沒有嘗試過。