温馨提示×

ubuntu docker如何迁移

小樊
50
2026-08-12 06:37:06
栏目: 智能运维

在 Ubuntu 上迁移 Docker(包括 Docker 数据、镜像、容器、卷等),通常有以下几种常见场景。下面按最常用、最安全的方式给你说明。


一、Docker 默认数据目录迁移(最常见)

Docker 默认数据目录是:

/var/lib/docker

如果你要把 Docker 从 系统盘迁移到大磁盘,推荐做法如下。


1️⃣ 停止 Docker 服务

sudo systemctl stop docker
sudo systemctl stop docker.socket

确认已停止:

sudo systemctl status docker

2️⃣ 创建新的 Docker 数据目录

例如迁移到 /data/docker

sudo mkdir -p /data/docker

3️⃣ 同步原有 Docker 数据(保留权限)

⚠️ 一定要用 rsync,不要直接 cp

sudo rsync -avzP /var/lib/docker/ /data/docker/

参数说明:

  • -a:保留权限、时间、软链接
  • -v:显示过程
  • -P:断点续传

4️⃣ 修改 Docker 配置文件

编辑(不存在就新建):

sudo vim /etc/docker/daemon.json

添加或修改:

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

5️⃣ 重载并启动 Docker

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl start docker

6️⃣ 验证是否迁移成功

docker info | grep "Docker Root Dir"

输出应为:

Docker Root Dir: /data/docker

✅ 成功后可以删除旧目录(确认无误后):

sudo rm -rf /var/lib/docker

二、Docker 整机迁移(服务器更换)

方法 1:镜像 + 导出(推荐)

1️⃣ 导出镜像

docker images
docker save -o myimages.tar image1 image2

2️⃣ 导出容器(可选)

docker export 容器名 > 容器名.tar

3️⃣ 拷贝到新服务器

scp myimages.tar user@new_server:/opt/

4️⃣ 新服务器导入

docker load -i myimages.tar

方法 2:直接拷贝 Docker 数据目录(适合同系统)

rsync -avzP /var/lib/docker/ new_server:/var/lib/docker/

⚠️ 新服务器 Docker 版本要一致,否则可能出问题。


三、只迁移 Docker Compose 项目

如果只是迁移某个项目:

docker compose down

拷贝项目目录:

scp -r /opt/myproject user@new_server:/opt/

新服务器:

cd /opt/myproject
docker compose up -d

四、迁移 Docker 存储卷(Volume)

查看卷

docker volume ls

备份卷

docker run --rm -v 卷名:/data -v $(pwd):/backup busybox \
tar czf /backup/volume.tar.gz -C /data .

恢复卷

docker run --rm -v 卷名:/data -v $(pwd):/backup busybox \
tar xzf /backup/volume.tar.gz -C /data

五、常见问题

❓ 迁移后容器起不来?

  • 检查 daemon.json
  • 检查磁盘权限
  • 查看日志:
journalctl -u docker -f

❓ Docker 占用空间太大?

docker system df
docker system prune -a

六、总结(推荐方案)

场景 推荐方式
Docker 目录迁移 修改 data-root
服务器迁移 镜像导出 / 卷备份
单项目迁移 docker compose
同系统整机迁移 rsync /var/lib/docker

如果你能告诉我:

  • ✅ 是 目录迁移 还是 服务器迁移
  • ✅ Docker 版本
  • ✅ 是否使用 docker-compose

我可以给你 精确到命令级别 的方案。

0