调整Docker容器的大小

时间:2014-10-24 10:51:10

标签: docker lxc dockerhub

我试图查看是否可以通过某种配置限制每个docker容器的大小。

关注this,我可以从10G增加正在运行 容器的大小。我可以缩小它吗?试图收缩时抛出一个错误online shrinking not supported

理想情况下,我正在寻找配置和设置容器在创建时将继承的默认容器大小的选项。 devicemapper上的Docker doc在启动docker守护程序时建议--storage-opt。但它似乎没有用。

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

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

2 个答案:

答案 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