遇到坑

使用 docker 一段时间后,发现相关的服务无法进行数据保存,查找原因后发现,原来是安装 docker 时默认分配的磁盘空间是 15G ,当所有 docker 镜像、容器的使用到达上限时,就无法正常工作了。

1.恢复服务。

清理部分日志、截图等文件后,重启服务,功能恢复正常。

2.磁盘迁移

-- 找一个空间比较大的磁盘目录,作为迁移的目标。  例如我找到  /data  

df -h        

-- 在目标磁盘创建新的目录用以存放:   
cd /data   
mkdir docker-lib

-- 开始迁移:
-- 停止docker 服务:
systemctl stop docker

-- docker 文件迁移:    这里由于涉及到十几G 的文件迁移,所以需要一段较长的时间。  可以时不时执行  df -h  看下新磁盘的大小变化,估算一下已迁移了多少
mv /var/lib/docker /data/docker-lib

-- 对原docker 目录与新目录建立软连接   (注意路径是否完整)
ln -snf  /data/docker-lib/docker /var/lib/docker

-- 检查软连接是否成功:
ll /var/lib/docker

-- 重新启动docker:
systemctl start docker

-- 检查镜像是否已迁移成功:
docker images

-- 检查容器是否迁移成功:
docker ps -a

3. 软连接创建错误问题

在第一次迁移后,启动 docker 发现镜像和容器列表都是空的!! (差点吓尿,要是都丢了是一个大麻烦)
赶紧查看/data/docker-lib 目录,发现下面还有一个 docker 目录,里面保存的是具体的镜像、容器的文件(说明没丢)。仔细检查后发现是创建软连接是少了一层:

-- 第一次执行的命令
ln -s  /data/docker-lib /var/lib/docker

找到原因后,重新停服务、创建软连接:

systemctl stop docker
ln -snf  /data/docker-lib/docker /var/lib/docker      --  因为原来已经建立了软连接,所以需要加上 f 的参数进行强制替换
systemctl start docker

重新检查,镜像和容器都显示出来了。 启动容器后检查各项服务,功能正常。 迁移完成!

总结


↙↙↙阅读原文可查看相关链接,并与作者交流