软连接迁移 Docker 的默认安装(存储)目录

前言

经常我们会拿到一些别人装好的服务器,需要在这些系统上启动我们的docker服务。

但是这些"专业人员"呢,有时候就会有非常不专业的操作,比如他把根目录/只划分50GB,/home却有51TB。这个时候就会导致我们的服务器还有很多空间的时候,docker却因为磁盘空间满,服务跑不起来了。因为docker一般根目录是在/var/lib/docker这个目录下。遇到这种情况我们就需要做数据迁移了,此外还有改docker的配置文件的方式。本文只介绍最轻装的基于软连接的数据迁移方式。

检查Docker的当前根目录:

bash 复制代码
sudo docker info | grep "Docker Root Dir"

先记下这个目录,后面会用到,因为停止docker服务后,你就查询不到docker的根目录信息了。

停止Docker服务:

bash 复制代码
sudo systemctl stop docker

确认Docker已完全停止

这一步看心情选择执行

检查Docker服务状态:

bash 复制代码
sudo systemctl status docker

检查Docker socket状态:

bash 复制代码
sudo systemctl status docker.socket

查看是否有Docker相关进程仍在运行:

bash 复制代码
ps aux | grep "[d]ocker"

好的,干干净净;

这里给初学者朋友们说一点,如果你使用ps aux | grep dokcer 可能会看到这么一个返回,不要害怕,这个进程就是我们这个指令本身ps aux | grep dokcer。

检查是否有容器仍在运行:

bash 复制代码
sudo docker ps

最后,再使用以下命令确保没有Docker进程在运行:

bash 复制代码
sudo pgrep docker

执行备份

创建备份目录并复制当前Docker根目录内容:

bash 复制代码
sudo mkdir -p /home/bak && sudo cp -a /var/lib/docker /home/bak/docker.bak

这会在 /home/bak 目录下创建一个名为 docker.bak 的完整备份。

在/home目录下创建新的Docker目录:

这里想把数据放在/home/docker/目录下

bash 复制代码
sudo mkdir -p /home/docker/var/lib/docker

复制现有的Docker数据到新目录:

bash 复制代码
sudo rsync -avzh /var/lib/docker/ /home/docker/var/lib/docker/

重命名原来的Docker目录(以备份):

bash 复制代码
sudo mv /var/lib/docker /var/lib/docker.old

创建软链接:

bash 复制代码
sudo ln -s /home/docker/var/lib/docker /var/lib/docker

重启Docker服务:

bash 复制代码
sudo systemctl start docker

验证新的Docker根目录

bash 复制代码
sudo docker info | grep "Docker Root Dir"

可以看到真实的目录已经是新的路径了

确认Docker正常工作,

如果一切正常后,可以删除旧的Docker目录:

bash 复制代码
sudo rm -rf /var/lib/docker.old
相关推荐
leeyi19 分钟前
把软件装进不能上网的机房——一套建好了、还没上过战场的交付工程(第101篇)
docker·aigc·agent
YIAN3 小时前
Docker + Nginx 核心原理扫盲:从环境隔离到反向代理,运维面试必考点
后端·docker·面试
IT大白鼠5 小时前
Docker 实战 ELKF 日志监控:容器日志全栈收集分析方案
运维·docker·容器
小张同学a.17 小时前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
NJCloud18 小时前
Docker 容器技术入门:部署、核心概念与基础命令
运维·docker·容器
2601_9620723318 小时前
docker自建rustdesk-server远程桌面
运维·docker·容器
pnoker19 小时前
从零部署 IoT DC3:四步快速启动实录
物联网·docker·部署
虎王物联19 小时前
RK3568嵌入式Linux跑Docker:内核配置排查到AIoT容器化的完整路径
linux·运维·docker·rk3568·aiot·嵌入式linux
缘友一世1 天前
GLM-5.3-NVFP4 部署实战系列[二]Docker 镜像选择与补丁镜像构建:纯 Python overlay,不重编一行 CUDA
python·docker·容器·vllm
数字化小张1 天前
Docker镜像优化——从1GB到100MB的瘦身实践
docker