一、问题原因

因为 fnos 的 docker 存储位置在 /vol1/docker,而 docker 升级或者重新安装后默认目录指向了 /var/lib/docker 目录,所以需要更改 docker 的存储位置。

二、解决

首先说一下小坑,如果升级 docker 后,并且在 /var/lib/docker下安装使用了镜像,该目录下的镜像和容器似乎无法迁移,迁移到 /vol1/docker后,更换存储路径会无法启动 dokcer 服务。

建议在更换存储路径前,备份好数据目录的数据和 docker-compose 文件,便于快速恢复容器。

(一) 查看默认存储路径

sudo docker info | grep Root\ Dir

输出

Docker Root Dir: /var/lib/docker

(二) 停止 docker 服务

sudo service docker stop

(三) 备份默认存储目录(便于后期更换回默认路径)

sudo mv /var/lib/docker /var/lib/docker.bak

(四) 更改存储路径

vim /etc/docker/daemon.json

增加 data-root/graph字段

{
  "data-root/graph": "/vol1/docker"
}

(五) 启动 docker 服务

sudo service docker start

如果无法启动,需要删除 or 迁移原有的 /vol1/docker目录下的内容,然后重新启动

(六) 验证docker 服务目录已更改

sudo docker info | grep Root\ Dir

输出

Docker Root Dir: /vol1/docker

三、1panel 已安装应用重启

docker 存储路径更换后,可能会导致 1panel docker 网络的 1panel-network丢失,需要手动重新创建改网路名称

(一) 恢复1panel-network

在 1panel 运维面板中 容器-网络-创建网络

网络名-1panel-network

模式-bridge

子网-172.x.0.0/16 (不要和其他网络的子网重复即可)

网关-172.x.0.1 (x与子网x 取同值)
eg.

子网-172.20.0.0/16

网关-172.20.0.1

(二) 重新构建应用

1panel 运维面板-应用商店-已安装应用,对启动失败的应用点击 重建 按钮即可