HoRain云--Docker数据存储位置修改指南

  

🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

🔧 首选方法:修改配置文件

⚠️ 重要提醒与故障排查

💎 如何选择


img

在 Linux 系统上,修改 Docker 的默认数据存储位置(从 /var/lib/docker到新位置)主要有三种主流方法。它们各有特点,你可以根据自身情况选择最合适的一种。

下表快速对比了这三种方法的核心信息,帮助你做出选择。

方法

核心原理

适用场景

优点

方法一:修改配置文件​ (daemon.json)

通过修改 Docker 的核心配置文件,直接指定新的数据根目录。

大多数情况的首选,特别是新安装或希望标准方式管理的场景。

官方推荐,逻辑清晰,与 Docker 生态系统兼容性最好。

方法二:创建软链接

系统层面创建一个“快捷方式”,将旧的目录路径指向新的实际位置。

希望 Docker 和系统“认为”数据仍在原路径,某些脚本或工具依赖原路径时可能有用。

实现简单,对 Docker 本身透明。

方法三:修改系统服务文件​ (不推荐)

通过修改 Docker 服务的 systemd 单元文件,在启动命令中附加参数指定路径。

较旧版本或需要高度自定义服务启动参数的场景。

可更直接地控制服务启动。但非主流做法,易与包管理器更新冲突。

请注意:无论选择哪种方法,在开始操作前,务必备份重要数据,并停止 Docker 服务sudo systemctl stop docker),以避免数据损坏。

🔧 首选方法:修改配置文件

这是目前最标准、最被推荐的方式,通过编辑 /etc/docker/daemon.json文件来实现。

  1. 停止 Docker 服务

    sudo systemctl stop docker
  2. 编辑配置文件:使用 nanovim等编辑器打开配置文件。

    sudo nano /etc/ddocker/daemon.json

    如果文件已存在,请在内容中添加或修改 "data-root"项;如果文件不存在,直接创建一个包含以下内容的新文件:

    {
      "data-root": "/你的/新/路径/docker"
    }

    请将 /你的/新/路径/docker替换为你希望存储 Docker 数据的实际路径,例如 /mnt/data/docker

  3. (可选)迁移现有数据:如果你希望保留之前已下载的镜像和创建的容器,可以使用 rsync命令将旧数据同步到新位置。这是一个更安全、能保留文件属性的方法。

    sudo rsync -aP /var/lib/docker/ /你的/新/路径/docker/

    注意:命令中源路径 (/var/lib/docker/) 末尾的斜杠 /很重要,它确保复制的是目录内的内容,而非目录本身。

  4. 启动 Docker 服务并验证

    sudo systemctl start docker
    docker info | grep "Docker Root Dir"

    如果配置成功,命令行会显示新的存储路径。

⚠️ 重要提醒与故障排查

  • 目录权限:确保新的存储目录存在且 Docker 进程(通常是 root用户)有权限读写。你可以使用以下命令创建并设置权限:

    sudo mkdir -p /你的/新/路径/docker
    sudo chown -R root:root /你的/新/路径/docker  # 根据你的Docker运行用户调整
    sudo chmod -R 755 /你的/新/路径/docker
  • 验证与清理:在确认 Docker 在新位置运行正常(可以拉取镜像、运行容器)后,你可以选择删除旧的 /var/lib/docker目录以释放空间。请务必确认数据已成功迁移后再进行此操作。

    sudo rm -rf /var/lib/docker
  • 如果修改后 Docker 无法启动:首先检查 daemon.json文件的语法是否正确(例如,使用了中文引号或缺少逗号都可能导致解析失败)。可以尝试在线 JSON 格式验证工具进行检查。此外,查看系统日志(如 sudo journalctl -u docker.service)通常能提供具体的错误信息。

💎 如何选择

简单来说,对于绝大多数用户,请直接使用「方法一:修改配置文件」。这是最符合 Docker 官方设计、最不易出错的方案。

希望这份指南能帮助你顺利完成 Docker 数据存储位置的迁移。如果你在操作过程中遇到更具体的问题,比如在特定的 Linux 发行版上遇到权限问题,欢迎随时提出。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值