我把我的Debian内核从3.x升级到4.x。
Docker存储变为覆盖2。
ls /var/lib/docker/
containers image network overlay2 plugins swarm tmp trust volumes
旧目录结构为
aufs containers graph image init linkgraph.db network plugins repositories-aufs swarm tmp tmp-old trust volumes
我的图像是在aufs目录,我不能启动docker服务与旧目录。我怎样才能移动我的图像覆盖2?
3条答案
按热度按时间tyg4sfes1#
1.确定从aufs迁移到overlayfs 2后要保存和恢复的映像。
1.将所有要迁移到overlayfs的映像导出到一个归档文件中-这样更快、更高效
sudo docker save $IMAGES -o /data/save.tar
其中,
IMAGES
是包含图像名称的变量1.使用以下内容创建/etc/docker/daemon. json:
[请参阅https://stackoverflow.com/questions/42245288/add-new-element-to-existing-json-array-with-jq/57537190#57537190以使用jq进行更新]
1.备份存储Docker图像的目录并删除该目录
mv /var/lib/docker/images /var/lib/docker.aufs.images
systemctl daemon-reload
systemctl restart docker
docker load < save.tar
bis0qfac2#
实际上,您可以设置要使用的存储驱动程序。升级可能已将默认文件或配置更改为
overlay2
。您可以将其更改回aufs
。有关此操作的文档位于https://docs.docker.com/engine/userguide/storagedriver/selectadriver/#check-and-set-your-current-storage-driver。此外,根据您正在运行的Docker版本,设置可以是
/etc/default/docker
而不是/etc/docker/daemon.json
。ego6inou3#
根据丰丰达奇和巴勒斯坦人民解放组织邮报
1.检查当前的存储驱动程序
sudo docker info | grep -i storage
return存储驱动程序:奥夫
1.备份所有Docker资料
sudo systemctl stop docker
sudo cp -au /var/lib/docker /var/lib/docker.bk
sudo systemctl start docker
1.确定从aufs迁移到overlayfs2后要保存和恢复的映像
mkdir -p /data
sudo sh -c 'docker images > /data/list_images.txt'
1.将所有要迁移到overlayfs的映像导出到一个归档文件中-这样更快、更高效
其中,
IMAGES
是包含(uniq)映像名称的变量IMAGES=$(sudo docker images | sed '1d' | awk '{print $3}' | uniq)
for c in $IMAGES; do echo $c; sudo docker save -o /data/$c.tar $c ; done
sudo systemctl stop docker
1.将存储驱动器从aufs更改为overlayfs2
使用以下内容创建或修改/etc/docker/daemon.json:
如果该文件已经存在,请添加如下行
如果文件为空,则可以使用
systemctl daemon-reload
1.还原Docker图像
1.检查新的存储驱动程序
sudo docker info | grep -i storage
return存储驱动程序:覆盖层2
1.删除Docker目录的备份
sudo rm -rf /var/lib/docker.bk