如何将 Docker 镜像从内存盘迁移到硬盘
AI-摘要
切换
KunKunYu GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
前言
要将 Docker 镜像从内存盘(如 /dev/shm
或 tmpfs
)迁移到硬盘,需更改 Docker 的数据存储目录(data-root
),以此来解决内存盘空间大小不足问题。
详细步骤:
1. 停止 Docker 服务并定位 Docker 数据目录
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo docker info | grep "Docker Root Dir"
2. 备份现有数据(可选但推荐)
如果内存盘中有重要镜像或容器,先备份到硬盘:
sudo cp -r /var/lib/docker /path/to/backup/docker_backup
3. 创建新的硬盘存储目录
选择硬盘上的目标目录(如 /home/docker
):
sudo mkdir -p /home/docker
4. 迁移 Docker 数据到新位置
使用 rsync
复制数据(保留权限):
sudo rsync -av /var/lib/docker/ /home/docker/
注意:如果
/var/lib/docker
是内存盘,重启后数据会丢失,但迁移时需确保服务已停止。
5. 修改 Docker 配置文件
编辑配置文件 /etc/docker/daemon.json
:
sudo nano /etc/docker/daemon.json
添加以下内容(如文件已存在,仅添加 data-root
项):
{ "data-root": "/home/docker" }
6. 重启 Docker 服务
sudo systemctl start docker
sudo systemctl start docker.socket
7. 验证新存储位置
docker info | grep "Docker Root Dir"
输出应显示:Docker Root Dir: /home/docker
8. 清理旧数据(谨慎操作)
确认迁移成功后,删除旧内存盘数据:
sudo rm -rf /var/lib/docker/*
警告:确保新位置数据完整后再执行此步骤!
常见问题解决:
权限错误:
确保新目录权限正确:
sudo chown -R root:root /home/docker
配置文件冲突:
检查是否存在冲突配置(如
dockerd
启动参数),确保/etc/docker/daemon.json
是唯一指定data-root
的地方。
磁盘空间不足:
迁移前用
df -h
确认目标硬盘有足够空间。
附加说明:
内存盘特性:内存盘(
tmpfs
)数据在重启后会丢失,迁移到硬盘可持久化存储。性能影响:硬盘访问速度可能低于内存盘,但对大部分场景影响不大。
Docker 重启后:系统重启时 Docker 会自动使用新位置,无需额外操作。
通过以上步骤,Docker 将永久使用硬盘存储镜像和容器数据。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果