docker储存位置变更
要将Docker的存储位置从/var/lib/docker更改到data数据盘,需要添加data-root配置。以下是完整步骤:
1. 首先检查data数据盘挂载情况
df -h
找到data数据盘挂载点(通常是/data、/mnt/data等)
2. 停止Docker服务
systemctl stop docker
3. 备份当前配置
cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
4. 编辑daemon.json配置文件
nano /etc/docker/daemon.json
5. 添加data-root配置(保留现有镜像加速)
假设你的数据盘挂载在/data,修改后的配置应该是:
{
"registry-mirrors": [
"https://docker.1ms.run/",
"https://docker-0.unsee.tech/",
"https://lispy.org/",
"https://666860.xyz/",
"https://hub.rat.dev/",
"https://proxy.vvvv.ee/",
"https://docker.m.daocloud.io/",
"https://docker.tbedu.top/",
"https://docker.xuanyuan.me/"
],
"data-root": "/data/docker"
}
6. 创建新目录并设置权限
mkdir -p /data/docker
chown -R root:root /data/docker
chmod -R 700 /data/docker
7. 迁移现有Docker数据
rsync -av /var/lib/docker/ /data/docker/
8. 重启Docker服务
systemctl start docker
9. 验证配置是否生效
docker info | grep "Root Dir"
应该显示:Docker Root Dir: /data/docker
重要注意事项
- 备份重要数据:操作前务必备份/var/lib/docker目录
- 磁盘空间:确保/data分区有足够空间(至少比当前/var/lib/docker大2倍)
- 权限问题:新目录必须是root用户和组,权限700
- 1Panel兼容性:1Panel会自动识别新的Docker路径,无需额外配置
- 回滚方案:如果出错,可以恢复备份:mv /etc/docker/daemon.json.bak /etc/docker/daemon.json 然后重启Docker
推荐的data-root路径
根据常见配置,建议选择以下路径之一:
- /data/docker - 如果data盘挂载在/data
- /mnt/data/docker - 如果data盘挂载在/mnt/data
- /home/docker - 如果home分区空间充足
10. 验证迁移是否成功
迁移完成后,检查目标目录是否有数据:
ls -la /data/docker/
你应该能看到类似containers、image、volumes等Docker相关的目录。
11. 验证Docker是否正常工作
docker info | grep "Root Dir"
docker ps
12. 输出验证
从你的输出可以清楚地看到:
✅ Docker Root Dir 已成功更改:
Docker Root Dir: /data/docker
✅ 所有容器正常运行:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48bfb8ecaa7d redis:8.4.0 "docker-entrypoint.s…" 2 hours ago Up 29 seconds 127.0.0.1:6379->6379/tcp 1Panel-redis-Zm4I
9cdcddbb0a3a mysql:8.4.7 "docker-entrypoint.s…" 22 hours ago Up 29 seconds 127.0.0.1:3306->3306/tcp, 33060/tcp 1Panel-mysql-qg34
b1b594e80841 postgres:18.1-alpine "docker-entrypoint.s…" 22 hours ago Up 29 seconds (healthy) 127.0.0.1:5432->5432/tcp 1Panel-postgresql-DLve
7864335d5b11 1panel/openresty:1.27.1.2-2-3-focal "/usr/local/openrest…" 29 hours ago Up 29 seconds 1Panel-openresty-WH2U
4ba8bf4de384 ghcr.io/mhsanaei/3x-ui:latest "/app/DockerEntrypoi…" 29 hours ago Up 29 seconds 3xui_app
✅ 数据迁移完整:
- rsync成功同步了所有Docker数据
- /data/docker/目录包含所有必要的文件和子目录
13. 后续建议步骤(可选但推荐)
1. 备份原目录(安全起见)
mv /var/lib/docker /var/lib/docker.bak
2. 验证1Panel是否正常
- 登录1Panel面板
- 检查所有容器状态是否正常显示
- 尝试创建一个新容器测试
3. 清理备份(确认一切正常后)
rm -rf /var/lib/docker.bak
验证成功的标志
- ✅ docker info | grep "Root Dir" 显示 /data/docker
- ✅ docker ps 显示所有容器正常运行
- ✅ 新创建的容器会自动存储在 /data/docker
- ✅ 系统盘 /var/lib/docker 不再增长,数据盘 /data 开始使用
版权声明:
作者:xiaochen
链接:https://xcioo.com/10.html
文章版权归作者所有,未经允许请勿转载。
THE END