Docker 离线安装与根目录迁移引发的思考
在一些 内网或隔离环境(如政企服务器、科研内网)中,无法直接联网执行 apt install docker 或 yum install docker。
这时就需要通过 离线安装 Docker 的方式来部署容器环境。
本文记录了我在离线安装 Docker 并迁移根目录(/var/lib/docker)后的经验与踩坑总结 🧠
🧩 一、查看系统环境
首先确定系统架构和版本,避免下载错误的二进制包。
1 | |
📦 二、下载 Docker 离线包
在可联网的机器上访问官方下载页:
👉 https://download.docker.com/linux/static/stable/
根据系统架构选择合适的 tar 包(例如 docker-18.06.3-ce.tgz)
然后将其拷贝到目标服务器上(使用 scp、U 盘等方式)。
🔧 三、离线安装步骤
1 | |
接着创建并编辑 Docker 的 systemd 启动文件:
1 | |
⚙️ 四、编辑 docker.service
1 | |
保存退出后:
1 | |
✅ 如果能正常显示版本号,说明安装成功。
📂 五、Docker 根目录迁移(/var/lib/docker)
默认情况下,Docker 的数据根目录为:
1 | |
当系统盘空间较小或需要挂载独立磁盘时,可以将其迁移到其他目录。
1 | |
添加以下配置:
1 | |
重新加载:
1 | |
🧠 六、关于根目录迁移的性能思考
在 Linux 系统中,Docker 默认使用 overlay2 联合文件系统 来管理镜像与容器层。
overlay2 的优势在于:
- 文件共享高效
- 读写速度快
- 支持写时复制(Copy-on-Write)
但当你将根目录迁移到 NFS 或网络存储挂载目录 时,Docker 自动降级为 vfs 模式。
⚠️ 问题来了:
vfs 不再具备写时复制、层合并等优化机制,镜像导入与容器启动会显著变慢(可能慢数十倍)。
💬 七、总结与建议
| 操作 | 建议 | 说明 |
|---|---|---|
| 离线安装 | ✅ 官方静态二进制包 | 轻量稳定,避免依赖冲突 |
| 根目录迁移 | ✅ 可行,但需使用本地磁盘 | 避免 NFS / vfs 降级 |
| overlay2 | 🚀 性能优选 | 本地 ext4/xfs 文件系统下效果最佳 |
| vfs | ⚠️ 仅在必要时使用 | 会极大降低性能 |
🧭 八、参考资料
💡 思考一句话总结:
离线环境不是障碍,真正的挑战是理解 Docker 背后的存储与性能机制。
Docker 离线安装与根目录迁移引发的思考
http://example.com/2025/10/12/Docker-离线安装与根目录迁移引发的思考/