话说我今天正在快乐的敲代码,突然看到IDE报警磁盘空间不足了,du -h 查看了一下磁盘占用情况,发现是自己的docker镜像全部放/var/lib/docker目录下 这个系统磁盘给根目录只分配了50G的空间 docker的这些镜像已经用掉了48G! 而系统空间更多的/home目录完全没有用到,于是我就打算把docker镜像以及数据文件全部迁移到/home目录下。
以下是主要步骤:
注意:在执行这些操作之前,请确保备份了 Docker 中的重要数据。
- 停止 Docker 服务
sudo systemctl stop docker
- 备份 Docker 数据
你可以使用 tar
命令将 Docker 数据目录打包备份到 /home
目录或其他地方:
sudo tar czvf /home/docker_backup.tar.gz -C /var/lib/docker .
- 迁移 Docker 数据
创建 /home/docker
目录,并将备份文件解压到该目录:
sudo tar xzvf /home/docker_backup.tar.gz -C /home/docker
- 更新 Docker 配置
修改 Docker 配置文件,将 Docker 数据目录指向新的位置。
4.1 编辑 Docker 配置文件:
sudo vim /etc/docker/daemon.json
如果文件不存在,可以创建它。
4.2 在配置文件中添加以下内容:
{
"data-root": "/home/docker"
}
这将告诉 Docker 使用 /home/docker
作为数据目录。
4.3 保存并关闭文件。
4.4 重新启动 Docker 服务
sudo systemctl start docker
4.5 验证迁移
运行一些 Docker 命令来验证 Docker 是否正常工作,并且数据是否在新的目录中。
docker ps -a
注意事项:
-
迁移 Docker 数据涉及到系统配置变更,请在执行之前备份重要数据,以防发生意外情况。
-
确保 Docker 服务已经停止,以防止数据不一致。
-
如果你使用的是其他存储驱动(例如 overlay2),可能还需要考虑其他配置。
请根据具体情况谨慎操作,并在迁移前确保你了解 Docker 数据的组织结构和重要性。
迁移后执行一下 du -h 发现空间腾出来了 大功告成!