Docker 占用了 /var 空间,我怎样才能节省一些?

Docker 占用了 /var 空间,我怎样才能节省一些?

因为有一些对此的评论很好问题我认为对于这个特定的问题,它们可能是很好的答案并且有益。

因此,为了能够为社区带来更多的利益,我想能够在这里得到答案。

在我的 gnu/linux 系统中,我有/var20G 大的空间,但是由于与 docker 一起使用以及自定义 docker 镜像的开发,它/var占用了 90% 的空间,那么我如何才能在其中保留一些空间/var呢?

我原本想做一些备份,因为这样问题说,然后重新分区/var.但对我来说似乎太费力了。有没有更安全、更省时的替代方案?

答案1

如果您有一段时间没有这样做,请运行docker system prune。它将运行垃圾收集器,并释放大量磁盘空间。

请注意,这可能会导致您下次执行某些操作(例如构建、拉取等)时需要完成更多工作,但不应删除任何无法恢复的内容。

答案2

另一种方法是将文件夹同步/var/lib/docker到更大的磁盘/分区。就我而言,包含的分区/home/有一些可用空间;因此我按照以下步骤操作:

  1. /home/我在命名中创建了一个专用文件夹docker

    mkdir /home/docker
    
  2. 使用rsync,我将数据复制到/home/docker

    rsync -av /var/lib/docker/ /home/docker
    

    这会/home/docker生成/var/lib/docker.请注意,源目录上的尾部斜杠是故意的。没有它,您将docker/home/docker.

  3. 我检查了 rsync 过程是如何进行的:

    ls -l /home/docker
    
  4. 我终止了 docker 守护进程:(我使用的是 Ubuntu;因此,使用service工作正常,systemctl在大多数发行版中使用也可以完成这项工作)

    sudo service docker stop
    
  5. 去除/var/lib/docker

    rm -rf /var/lib/docker
    
  6. 符号链接到/home/docker

    sudo ln -s /home/docker /var/lib/docker
    
  7. 再次启动docker:

    sudo service docker start
    

相关内容