我试图查看是否可以通过某种配置限制每个docker容器的大小。
关注this,我可以从10G增加正在运行 容器的大小。我可以缩小它吗?试图收缩时抛出一个错误online shrinking not supported
。
理想情况下,我正在寻找配置和设置容器在创建时将继承的默认容器大小的选项。
devicemapper上的Docker doc在启动docker守护程序时建议--storage-opt
。但它似乎没有用。
我还想知道每个容器是否可以限制大小(例如在docker run
命令期间)。
非常感谢任何指向正确方向的指针。 提前致谢
答案 0 :(得分: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 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的基本尺寸。
答案 1 :(得分:1)
它适用于devicemapper settins。
--storage-driver devicemapper --storage-opt dm.basesize=5G