docker overlay 占用空间太大,迁移到 /data/

将 Docker 的 overlay 存储驱动迁移到 /data/ 目录下,可以通过以下步骤完成:

1. 停止 Docker 服务

首先,停止 Docker 服务以确保没有容器在运行,并且数据不会被写入到当前的存储位置。

sudo systemctl stop docker

2. 备份现有数据

在进行任何迁移操作之前,建议备份现有的 Docker 数据,以防止数据丢失。

sudo tar -czvf docker_backup.tar.gz /var/lib/docker

3. 创建新的存储目录

/data/ 目录下创建一个新的目录来存放 Docker 数据。

sudo mkdir -p /data/docker

4. 移动现有数据到新目录

/var/lib/docker 目录下的所有内容移动到 /data/docker

sudo mv /var/lib/docker/* /data/docker/

5. 更新 Docker 配置

编辑 Docker 的配置文件 /etc/docker/daemon.json,添加或修改 data-root 配置项,指向新的存储目录。

{
  "data-root": "/data/docker"
}

如果没有 /etc/docker/daemon.json 文件,可以创建一个新的。

6. 启动 Docker 服务

重新启动 Docker 服务,使其加载新的配置。

sudo systemctl start docker

7. 验证迁移

检查 Docker 服务是否正常运行,并且容器和镜像是否正常加载。

sudo docker info

在输出中,确认 Docker Root Dir 是否已经更改为 /data/docker

8. 清理旧数据(可选)

如果确认迁移成功,并且所有数据都已正确加载,可以删除旧的 /var/lib/docker 目录。

sudo rm -rf /var/lib/docker

9. 监控磁盘空间

迁移完成后,监控 /data/ 目录的磁盘空间使用情况,确保没有异常增长。

df -h /data/

通过以上步骤,你应该能够成功将 Docker 的 overlay 存储驱动迁移到 /data/ 目录下。

Docker 挂载目录 `docker/overlay2` 已满时,可以尝试以下几种解决方案: ### 清理无用的 Docker 资源 - **删除停止的容器**:停止的容器会占用 `overlay2` 中的空间,可以使用以下命令删除所有停止的容器: ```bash docker container prune ``` - **删除未使用的镜像**:未使用的镜像也会占用大量空间,使用以下命令删除所有未使用的镜像: ```bash docker image prune -a ``` - **删除无用的网络**:无用的网络同样会占用一定的空间,使用以下命令删除未使用的网络: ```bash docker network prune ``` - **删除悬空的卷**:悬空的卷是指没有被任何容器使用的卷,使用以下命令删除悬空的卷: ```bash docker volume prune ``` ### 调整 Docker 存储驱动 可以考虑更改 Docker 的存储驱动,不同的存储驱动在空间使用和性能上有所不同。例如,将存储驱动从 `overlay2` 更改为 `btrfs` 或 `zfs`。 修改 `/etc/docker/daemon.json` 文件,添加或修改以下内容: ```json { "storage-driver": "btrfs" } ``` 修改完成后,重启 Docker 服务: ```bash systemctl restart docker ``` ### 迁移 `overlay2` 目录 可以将 `overlay2` 目录迁移到空间更大的磁盘分区。 - 停止 Docker 服务: ```bash systemctl stop docker ``` - 复制 `overlay2` 目录到新的磁盘分区: ```bash cp -rp /var/lib/docker/overlay2 /new/path/ ``` - 修改 `/etc/docker/daemon.json` 文件,指定新的存储路径: ```json { "data-root": "/new/path" } ``` - 启动 Docker 服务: ```bash systemctl start docker ``` ### 定期清理日志 容器日志也会占用大量空间,可以定期清理容器日志。可以通过修改 Docker 服务配置文件 `/etc/docker/daemon.json` 来限制日志文件的大小和数量: ```json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } ``` 修改完成后,重启 Docker 服务: ```bash systemctl restart docker ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颹蕭蕭

白嫖?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值