修改Docker默认存储路径,解决系统盘占用90%+问题(修改docker root dir)

随着Docker技术的广泛应用,它极大地简化了复杂项目的部署与维护流程,仅凭单一镜像即可轻松运行。然而,随着数据量不断增长,Docker的默认数据存储方式可能逐渐成为挑战,尤其是当默认安装于根目录("/")时,可能迅速消耗宝贵的系统空间。面对根目录空间不足的困境,尤其是在加载大型镜像时,调整Docker的Root Dir至专用的挂载数据目录显得尤为关键

为有效应对此问题,将Docker的数据存储迁移至专门配置的存储位置,不仅可以释放根目录的紧张空间,还能优化数据管理和扩展性。通过灵活配置Docker的存储路径,用户可以确保即使在处理大型镜像或数据集时,系统也能保持高效与稳定。

一、 查看默认目录(查看存储路径是否在系统盘)

bash 复制代码
docker info

一般默认目录都是:

Docker Root Dir: /var/lib/docker

二、 修改默认目录

1. 确保停止 docker 服务

复制代码
systemctl stop docker.service

有的人可能会遇到以下错误:

Warning: Stopping docker.service, but it can still be activated by:

docker.socket

复制代码
那就先执行 
 
systemctl stop docker.socket
 
再执行
 
systemctl stop docker.service

2.创建一个新的目录,用于存储 Docker 数据。

bash 复制代码
例如,将数据存储在 /www/docker/:
mkdir -p /www/docker/

3.复制 Docker 数据目录

将当前 /var/lib/docker 目录下的所有数据复制到新目录,使用 rsync 替代 cp 解决断点续传问题:

bash 复制代码
rsync -avz /var/lib/docker/* /home/docker/

4. 修改 / etc/docker/daemon.json 文件,添加更换目录地址

默认情况下,Docker 使用 /etc/docker/daemon.json 配置文件,如果没有此文件则需要手动创建

复制代码
touch /etc/docker/daemon.json

vim /etc/docker/daemon.json
新增以下信息:
{
"data-root": "/www/docker"
}

"/www/docker" 即为我的目标地址

保存并关闭文件

5. 启动 docker服务

bash 复制代码
systemctl start docker

or

根据刚才的关闭操作,依次启动 socket 和 serice

复制代码
systemctl start docker.socket
systemctl start docker.service

6. 验证

再次查看 Docker Root Dir 的值

复制代码
docker info
df -h
docker ps
//或者直接验证一下服务是否可用

查看 Docker Root Dir 是否修改为指定目录

再删除原目录

bash 复制代码
cd /var/lib
rm -rf docker

注意:

  • 在执行这些步骤之前,请确保你已备份所有重要的 Docker 数据,以防意外丢失。
  • 在移动数据和更改配置后,务必进行测试以确保一切正常运行。
相关推荐
虎头金猫16 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS16 小时前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心18 小时前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing18 小时前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)19 小时前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang19 小时前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特19 小时前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe19 小时前
docker常见命令
docker
正经教主21 小时前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿1 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器