4

我正在尝试查看是否可以通过某些配置来限制每个 docker 容器的大小。

之后,我可以将正在运行的 容器的大小从 10G 增加。我可以缩小它吗?试图缩小抛出一个错误说online shrinking not supported

理想情况下,我正在寻找配置和设置容器在创建时将继承的默认容器大小的选项。启动 docker daemon 时建议使用devicemapper上的 Docker 文档。--storage-opt但这似乎不起作用。

我还想知道每个容器的大小是否可以限制(比如在docker run命令期间)。

非常感谢任何指向正确方向的指针。提前致谢

4

2 回答 2

3

如果您使用的是 devicemapper 图形引擎,那么 storage-opt dm.basesize 是您尝试做的事情的方法。您需要在更改配置后清除 /var/lib/docker(请注意,这将擦除您当前拥有的所有映像,即使您使用直接块设备来配置数据和元数据池设备)。

以下是我遵循的步骤:

$ docker run -ti base/arch df -h /
Filesysem                                    Size  Used Avail Use% Mounted on
/dev/mapper/docker-254:7-73733-b8dc...6d28a  9.8G  335M  8.9G   4% /

所以我目前有默认的 10G 基本大小。

首先,更改配置添加“--storage-opt dm.basesize=5G”:

# vim /etc/systemd/system/docker.service
...
ExecStart=/usr/bin/docker -d -H fd:// -s devicemapper \
    --storage-opt dm.datadev=/dev/vg01/docker-dm-data \
    --storage-opt dm.metadatadev=/dev/vg01/docker-dm-meta \
    --storage-opt dm.basesize=5G

然后,停止 Docker(确保所有容器预先停止,重新加载配置,清理 /var/lib/docker 并重新启动 Docker:

# systemctl stop docker
# systemctl daemon-reload
# rm -rf /var/lib/docker
# systemctl start docker

“docker images”应该确认没有图像存在。

现在重新运行测试:

$ docker run -ti base/arch df -h /
Unable to find image 'base/arch:latest' locally
Pulling repository base/arch
a64697d71089: Download complete 
511136ea3c5a: Download complete 
4bbfef585917: Download complete 
Status: Downloaded newer image for base/arch:latest
Filesystem                                 Size  Used Avail Use% Mounted on
/dev/mapper/docker-254:7-66094...f635ac65  4.8G  322M  4.3G   7% /

我们有一个 5Gb 的基本大小。

于 2015-01-04T22:45:11.607 回答
1

它适用于 devicemapper 设置。

--storage-driver devicemapper --storage-opt dm.basesize=5G
于 2016-11-24T11:29:22.483 回答