Docker增加磁盘空间

Posted

技术标签:

【中文标题】Docker增加磁盘空间【英文标题】:Docker increase disk space 【发布时间】:2015-12-05 18:53:15 【问题描述】:

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

假设我想提供 15gb。

【问题讨论】:

您遇到的磁盘空间错误是什么?更有可能是您的 docker 主机空间不足。 【参考方案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增加磁盘空间

【讨论】:

如果您使用的是适用于 Linux 的 Windows 子系统,则需要使用 .wslconfig 文件docs.microsoft.com/en-us/windows/wsl/…

以上是关于Docker增加磁盘空间的主要内容,如果未能解决你的问题,请参考以下文章

如何使用控制台增加docker的磁盘空间和内存限制?

centos磁盘扩容-新空间增加到已有分区空间中

虚拟机增加磁盘空间并达到低磁盘空间问题

docker磁盘空间不足之数据迁移解决方案

VMware vSphere Client下增加虚拟机磁盘空间的方法

VMware vSphere Client下增加虚拟机磁盘空间的方法