
🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
| 专栏名称 | 专栏介绍 |
| 本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 | |
| 本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! | |
| 全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 | |
| 本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 | |
| 本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 | |
| 本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

在 Linux 系统上,修改 Docker 的默认数据存储位置(从 /var/lib/docker到新位置)主要有三种主流方法。它们各有特点,你可以根据自身情况选择最合适的一种。
下表快速对比了这三种方法的核心信息,帮助你做出选择。
| 方法 | 核心原理 | 适用场景 | 优点 |
|---|---|---|---|
| 方法一:修改配置文件 ( | 通过修改 Docker 的核心配置文件,直接指定新的数据根目录。 | 大多数情况的首选,特别是新安装或希望标准方式管理的场景。 | 官方推荐,逻辑清晰,与 Docker 生态系统兼容性最好。 |
| 方法二:创建软链接 | 系统层面创建一个“快捷方式”,将旧的目录路径指向新的实际位置。 | 希望 Docker 和系统“认为”数据仍在原路径,某些脚本或工具依赖原路径时可能有用。 | 实现简单,对 Docker 本身透明。 |
| 方法三:修改系统服务文件 (不推荐) | 通过修改 Docker 服务的 systemd 单元文件,在启动命令中附加参数指定路径。 | 较旧版本或需要高度自定义服务启动参数的场景。 | 可更直接地控制服务启动。但非主流做法,易与包管理器更新冲突。 |
请注意:无论选择哪种方法,在开始操作前,务必备份重要数据,并停止 Docker 服务(
sudo systemctl stop docker),以避免数据损坏。
🔧 首选方法:修改配置文件
这是目前最标准、最被推荐的方式,通过编辑 /etc/docker/daemon.json文件来实现。
-
停止 Docker 服务:
sudo systemctl stop docker -
编辑配置文件:使用
nano或vim等编辑器打开配置文件。sudo nano /etc/ddocker/daemon.json如果文件已存在,请在内容中添加或修改
"data-root"项;如果文件不存在,直接创建一个包含以下内容的新文件:{ "data-root": "/你的/新/路径/docker" }请将
/你的/新/路径/docker替换为你希望存储 Docker 数据的实际路径,例如/mnt/data/docker。 -
(可选)迁移现有数据:如果你希望保留之前已下载的镜像和创建的容器,可以使用
rsync命令将旧数据同步到新位置。这是一个更安全、能保留文件属性的方法。sudo rsync -aP /var/lib/docker/ /你的/新/路径/docker/注意:命令中源路径 (
/var/lib/docker/) 末尾的斜杠/很重要,它确保复制的是目录内的内容,而非目录本身。 -
启动 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 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

679

被折叠的 条评论
为什么被折叠?



