Docker容器迁移
推荐方法一、
docker镜像, 容器等信息通常是默认存储在/var/lib/docker目录下的,而/var对应的磁盘空间一般都不是很大,需要我们将/var/lib/docker迁移到空间足够的挂载盘中去。
- 停掉正在运行的docker服务:
systemctl stop docker
- 将docker存储目录拷贝到要迁移的最够大目录中去,eg:/home/docker/lib/
rsync -r -avz /var/lib/docker /home/docker/lib/
- 修改以前的docker目录为docker-old
mv /var/lib/docker /var/lib/docker-old
- 软链接迁移目录到原目录
ln -s /home/docker/lib/docker /var/lib/
- 重启docker
systemctl start docker 或 systemctl restart docker
- 验证镜像和容器可以正常运行,则删除。在未确定镜像和容器正常运行前勿删。
rm -rf /var/lib/docker-old
方法二、
docker镜像, 容器等信息通常是默认存储在/var/lib/docker目录下的,而/var对应的磁盘空间一般都不是很大,需要我们将/var/lib/docker迁移到空间足够的挂载盘中去。
- 停掉正在运行的docker服务:
systemctl stop docker
- 将docker存储目录拷贝到要迁移的最够大目录中去,eg:/home/docker/lib/
rsync -r -avz /var/lib/docker /home/docker/lib/
- 修改配置(如果不存在配置目录则创建,存在则忽略)
mkdir -p /etc/systemd/system/docker.service.d/
- 编辑devicemapper.conf
vi /etc/systemd/system/docker.service.d/devicemapper.conf
[Service] ExecStart= ExecStart=/usr/bin/dockerd--graph=/home/docker/lib/docker
- 修改daemon.json
vi /etc/docker/daemon.json
#添加 {"storage-driver": "devicemapper" }
此处不修改可能会出现Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
- 重新加载systemd管理器配置
systemctl daemon-reload
- 重启docker服务
systemctl start docker 或 systemctl restart docker
- 看目录是否已被更改
docker info 显示 Docker Root Dir: /home/docker/lib/docker 则表明修改成功
- 验证镜像和容器可以正常运行,则删除。在未确定镜像和容器正常运行前勿删。
rm -rf /var/lib/docker
本文来自博客园,作者:曾经已是追忆,转载请注明原文链接:https://www.cnblogs.com/hehanhan/p/18371308
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· DeepSeek本地性能调优
· 一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略