在linux中迁移Docker默认镜像存储路径解决磁盘空间满的问题

通过yum或者apt安装的docker通常数据存储在 /var/lib/docker/ ,包括镜像、运行数据等。然而这个目录是在根目录下面,容易导致系统盘满了。如果出现这种情况就需要迁移docker的默认目录。

以下基于此说明。

本文使用到的docker版本为 Docker Version: 24.0.5,宿主机为 CentOS 7

不同版本的docker可能操作不一样,请根据实际情况操作。

核实docker版本方法:

# 1.查看 Docker 的系统信息: sudo docker info
 
  • 1
  • 2

迁移docker默认路径

执行脚本

# 1. 停止 Docker 服务: sudo systemctl stop docker # 2.创建一个新的目录,用于存储 Docker 数据。例如,将数据存储在 /data/docker/data/: sudo mkdir -p /data/docker/data/ # 3.将当前 /var/lib/docker 目录下的所有数据移动到新目录,修改权限是必须的。 sudo chmod -R 777 /data/docker/data/ # cp -a 可以复制文件的权限等相关属性,否则很容易因为权限无法启动 sudo cp -a /var/lib/docker/* /data/docker/data/ # 4.备份并修改 Docker 配置文件。默认情况下,Docker 使用 /etc/docker/daemon.json 配置文件。如果该文件不存在,请创建它。 sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.backup sudo vi /etc/docker/daemon.json # 5.在 daemon.json 文件中,添加或修改 "data-root" 选项,以指向新的存储路径。例如: { "data-root": "/data/docker/data/" } # 保存并关闭文件。 # 6.重新启动 Docker 服务: sudo systemctl start docker # 现在,Docker 应使用新的存储路径 /data/docker。请确保在启动容器和执行其他 Docker 操作时验证此更改。
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

如何验证是否迁移成功

要验证 Docker 是否使用了新的存储路径,您可以执行以下命令:

# 1.查看 Docker 的系统信息: # 在输出的信息中,找到“Docker Root Dir”一项。它应该显示新的存储路径,例如 /data/docker/data/。 sudo docker info # 2.运行一个简单的测试容器: # 这将运行一个名为 hello-world 的简单 Docker 容器,然后将其删除。运行此命令的目的是确保 Docker 服务正常工作,以及新的存储路径可以用于创建和删除容器。 sudo docker run --rm hello-world # 3.在新的存储路径中检查文件和文件夹: # 此命令会列出/data/docker/data/ 目录中的所有文件和文件夹。如果一切正常,您应该看到 Docker 创建的各种文件夹,例如 overlay2、containers、volumes 等。 sudo ls -la /data/docker/data/
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

关于作者

来自一线全栈程序员nine的探索与实践,持续迭代中。

欢迎关注“雨林寻北”或添加个人卫星codetrend(备注技术)。

 

__EOF__

本文作者fanfan
本文链接https://www.cnblogs.com/fanwenyan/p/18184793.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   MaskerFan  阅读(495)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
历史上的今天:
2022-05-10 构建基于centOS7的java镜像
点击右上角即可分享
微信分享提示