【问题标题】:Docker increase disk spaceDocker增加磁盘空间
【发布时间】:2025-12-19 02:05:06
【问题描述】:

我有一个 docker 正在运行,它给了我磁盘空间警告。如何增加 docker 空间并重新开始? (同一个容器)

假设我想提供 15gb。

【问题讨论】:

  • 您遇到的磁盘空间错误是什么?更有可能是您的 docker 主机空间不足。

标签: docker kubernetes


【解决方案1】:

我假设您正在谈论运行容器的磁盘空间。

确保您使用的任何磁盘驱动器上都有足够的空间用于/var/lib/docker,这是 Docker 使用的默认值。您可以使用 -g 守护程序选项更改它。

如果您没有足够的空间,您可能需要重新分区您的操作系统驱动器,以便您有超过 15GB 的空间。如果您使用boot2dockerdocker-machine,则必须增加虚拟机上的卷。这将取决于您用于虚拟化的内容(即 VirtualBox、VMware 等)

例如,如果您使用 VirtualBox 和 docker-machine,您可以从 40GB 虚拟机的类似内容开始。

docker-machine create --driver virtualbox --virtualbox-disk-size "40000" default

【讨论】:

  • 更正:docker-machine create --driver virtualbox --virtualbox-disk-size "100000" default
【解决方案2】:

要增加 Docker 的可用空间,您必须增加 docker-pool 的大小。如果你做一个

lvs

您将看到 docker-pool 逻辑卷及其大小。如果您的 docker 池位于具有可用空间的卷组上,您只需将 docker-pool LV 增加

lvextend -l 100%FREE <path_to_lv>
# An example using this may looks like this:
# lvextend -l 100%FREE /dev/VolGroup00/docker-pool

您可以查看更多 docker diskspace 技巧here

谢谢

【讨论】:

    【解决方案3】:

    Docker 将所有层/图像以其文件格式(即 aufs)存储在默认的 /var/lib/docker 目录中。

    如果你因为 docker 而收到磁盘空间警告,那么肯定有很多 docker 镜像,你需要清理它。

    如果您可以选择添加磁盘空间,那么您可以创建更大尺寸的单独分区并将 /var/lib/docker 挂载到那里,这将帮助您摆脱填充根分区。

    可以在此处找到有关管理 docker 磁盘空间的一些额外信息。 http://www.scmtechblog.net/2016/06/clean-up-docker-images-from-local-to.html

    【讨论】:

      【解决方案4】:

      我的 docker-vm(在 OS X 中的 VMware Fusion 上是“alpine-linux”)遇到了类似的问题:

       write error: no space left on device alpinevm:/mnt/hgfs
       failed to build: .. no space left on device
      

      .. 最终this guide helped我来调整/扩展我的 docker 卷。

      TL;DR:

      1 - 检查包含 /var/lib/docker

      的分区的大小
      > df -h
      /dev/sda3                17.6G      4.1G     12.6G  25% /var/lib/docker
      

      查找“/dev/sdaN”,其中 N 是“/var/lib/docker”的分区,在我的例子中是 /dev/sda3

      2 - 关闭您的虚拟机,打开虚拟机设置 > 硬盘 > 更改“virtual_disk.vmdk”(或您机器的虚拟磁盘)的大小,然后点击应用 (see this guide)。

      3 - 安装 cfdiske2fsprogs-extra,其中包含 resize2fs

      > apk add cfdisk
      > apk add e2fsprogs-extra
      

      4 - 运行 cfdisk 并调整/扩展 /dev/sda3

      > cfdisk
      Device     Boot    Start       End   Sectors   Size  Id Type
      
      /dev/sda1  *        2048    206847    204800   100M  83 Linux
      /dev/sda2         206848   4241407   4034560   1.9G  82 Linux swap / Solaris
      /dev/sda3        4241408  83886079  79644672  12.6G  83 Linux
      
      [Bootable]  [ Delete ]  [ Resize ]  [  Quit  ]  [  Type  ]  [  Help  ]  [  Write ]  [  Dump  ]
      

      .. 按下/向上选择'/dev/sda3'

      .. 按左/右/回车键选择“调整大小”->“写入”->“退出”

      5 - 运行resize2fs来扩展/dev/sda3

      的文件系统
      > resize2fs /dev/sda3
      

      6 - 验证调整大小的卷

      > df -h
      /dev/sda3                37.3G      4.1G     31.4G  12% /var/lib/docker
      

      【讨论】:

      • 所有这些命令是否都在主机系统中运行(那是什么操作系统),它将如何转换为 Windows 主机?
      【解决方案5】:

      你也可以通过docker GUI增加磁盘空间

      【讨论】: