本示例所使用的Ubuntu版本为22.04 Server版
- 步骤 1: 创建 Linux 根文件系统的 tar 备份
- 步骤 2: 将 rootfs.tar 导入为 Docker 镜像
- 步骤 3: 测试镜像是否可用
- 步骤 4: 导出 Docker 镜像
- 步骤 5: 将 Docker 镜像传输到新系统
- 步骤 6: 在新系统上导入 Docker 镜像
- 总结

在某些情况下, 我们可能希望将一个正在使用的 Linux 系统转换为 Docker 镜像, 并在另一台计算机上使用该镜像运行容器. 本指南将详细介绍如何完成这一过程, 包括如何将 Linux 系统打包为 Docker 镜像, 如何导出该镜像, 以及如何在新系统上导入并运行该镜像.
步骤 1: 创建 Linux 根文件系统的 tar 备份
我们首先需要备份当前 Linux 系统的根文件系统, 但要排除一些不需要的目录, 如 /proc, /sys, /dev, /mnt, /media, /run 和 /tmp, 以避免不必要的数据进入.
在终端执行以下命令:
sudo tar --numeric-owner \
--exclude=/swap.img --exclude=/proc --exclude=/sys --exclude=/dev \
--exclude=/mnt --exclude=/media --exclude=/run --exclude=/tmp \
--exclude=/var/snap/docker/common/var-lib-docker -cvpzf rootfs.tar /
如果你的系统中运行着 Docker, 建议排除 /var/lib/docker 目录, 以避免无用的数据进入.
步骤 2: 将 rootfs.tar 导入为 Docker 镜像
在备份完成后, 我们可以使用 docker import 将其转换为 Docker 镜像:
cat rootfs.tar | docker import - my-linux-image
或者使用:
docker import rootfs.tar my-linux-image
这样, 我们的 Linux 系统就会被导入为 my-linux-image, 可以在 Docker 中运行了.
步骤 3: 测试镜像是否可用
为了确保我们创建的 Docker 镜像可以正常工作, 可以运行以下命令启动一个基于该镜像的容器:
docker run -it my-linux-image /bin/bash
如果容器成功启动并且可以正常使用 bash, 则说明镜像创建成功.
步骤 4: 导出 Docker 镜像
接下来, 我们需要将 my-linux-image 作为 Docker 镜像导出为 .tar 文件, 以便在新系统上导入.
在终端执行以下命令:
docker save -o my-linux-image.tar my-linux-image
这样, 我们的 my-linux-image 就会被保存成 my-linux-image.tar 文件.
可以通过以下命令检查 .tar 文件是否创建成功:
ls -lh my-linux-image.tar
步骤 5: 将 Docker 镜像传输到新系统
方法 1: 使用 scp 远程拷贝
如果新系统可以通过 SSH 访问, 可以使用 scp 命令将 .tar 文件拷贝到目标机器:
scp my-linux-image.tar user@new-system:/path/to/destination/
然后, 在新系统上进入该目录:
cd /path/to/destination/
方法 2: 使用 rsync(更快, 更稳定)
如果你希望传输过程中支持断点续传, 可以使用 rsync:
rsync -avz my-linux-image.tar user@new-system:/path/to/destination/
方法 3: 使用 U 盘或移动硬盘
如果两台计算机没有网络连接, 你可以把 my-linux-image.tar 复制到 U 盘:
cp my-linux-image.tar /mnt/usb-drive/
然后在新系统上拷贝出来.
步骤 6: 在新系统上导入 Docker 镜像
在新系统上, 我们可以使用 docker load 重新导入镜像:
docker load -i my-linux-image.tar
然后, 可以运行以下命令验证镜像是否成功导入:
docker images
应该会看到 my-linux-image 出现在镜像列表中.
源文链接:https://blog.3vyd.com/blog/posts-output/2025-04-01-linux-sys-as-docker/