Docker如何增加磁盘空间

33

我正在运行一个Docker容器,它给出了磁盘空间警告。如何增加Docker的空间并重新启动(同一容器)?

假设我想增加15GB。


你遇到了什么磁盘空间错误?很有可能是在 Docker 宿主机上的空间已经用完了。 - Mark O'Connor
5个回答

33

您还可以通过Docker的GUI界面Docker GUI (Mac)来增加磁盘空间。


如果您正在使用Windows子系统用于Linux,则需要使用.wslconfig文件。https://learn.microsoft.com/en-us/windows/wsl/wsl-config#configure-global-options-with-wslconfig - tim

18

我假设你是在讨论运行容器所需的磁盘空间。

请确保您使用的任何磁盘驱动器上有足够的空间来存储/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 - Tony Baguette

5

我在使用docker-vm时遇到了类似的问题(我的VMware Fusion中运行的是'alpine-linux'):

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

最终,这个指南 帮助我调整/扩展了我的Docker卷。
简短概述: 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 - 关闭您的虚拟机,在"VM设置"中,选择硬盘(s)并更改"virtual_disk.vmdk"(或任何其他虚拟磁盘), 然后单击应用(参见此指南)。

3 - 安装cfdisk和包含resize2fse2fsprogs-extra

> 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主机,该怎么做? - coler-j

0
要增加 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磁盘空间的提示。

谢谢。


-1
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接