docker - 如何限制容器内存大小?
怪我咯
怪我咯 2017-04-21 10:56:38
0
4
840

我分别用两种linux系统部署Docker0.8,都没法限制容器的内存大小。具体情况如下:

  1. 用CentOS6.5【内核为3.10.5-3.el6.x86_64】做主机,新建容器,得到结果如下:
# docker run -i -t -d -m 512m centos /bin/bash   
WARNING: WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
9229fe1bac59992337e909cbc5a11f3e0fa81553ad7b136bec95a62181a251fd

该容器新建成功,但不能限制内存大小。

  1. Ubuntu 12.04【内核为3.8.0-38-generic】做主机,并且修正/etc/default/grub,更改$ GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"之后,新建容器,得到结果如下:
# sudo docker run -i -t -m 512m -d ubuntu /bin/bash
89d629ed37d63b67b49ed8c4c11cab653d61d5b85227bdd10c8a9a0a718c686e

看似未报错,登陆该新建的容器里面查看内存【free命令】,发现并未限制。

大家手头的主机都是什么系统,有没有这种情况?如何解决?盼回复,谢谢!

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(4)
刘奇

La commande

dans le conteneur free examine la mémoire sur Host.

Pour afficher la limite de mémoire de container, utilisez ceci :

cat /cgroup/memory/lxc/{full_container_id}/memory.limit_in_bytes

Vous pouvez également vérifier les restrictions d'autres ressources sous

/cgroup/ :

ll /cgroup/
总用量 0
drwxr-xr-x 3 root root 0 3月  17 13:33 blkio
drwxr-xr-x 3 root root 0 3月  17 13:33 cpu
drwxr-xr-x 3 root root 0 3月  17 13:33 cpuacct
drwxr-xr-x 3 root root 0 3月  17 13:33 cpuset
drwxr-xr-x 3 root root 0 3月  17 13:33 devices
drwxr-xr-x 3 root root 0 3月  17 13:33 freezer
drwxr-xr-x 3 root root 0 3月  17 13:33 memory
drwxr-xr-x 3 root root 0 3月  17 13:33 net_cls
洪涛

Propriétaire, j'ai également rencontré ce problème lorsque je faisais des expériences avec une machine virtuelle Ubuntu. Veuillez vous référer à ici pour le résoudre
http://docs.docker.com/articles/runmetrics/
. Voici des extraits clés

Si vous souhaitez activer la comptabilité de la mémoire et du swap, vous devez ajouter les paramètres de ligne de commande suivants à votre noyau :

$ cgroup_enable=memory swapaccount=1

Sur les systèmes utilisant GRUB (qui est la valeur par défaut pour Ubuntu), vous pouvez ajouter ces paramètres en éditant /etc/default/grub et en étendant GRUB_CMDLINE_LINUX Recherchez la ligne suivante :

.
$ GRUB_CMDLINE_LINUX=""

Et remplacez-le par le suivant :

$ GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

Ensuite, exécutez sudo update-grub et redémarrez.

Ces paramètres vous aideront à vous débarrasser des avertissements suivants :

WARNING: Your kernel does not support cgroup swap limit.
WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
大家讲道理

Est-ce que quelqu'un sait comment résoudre ce problème sur Centos6 ?
Mon docker est 1.6.2, Centos est 6.6 et la version du noyau est 3.10.81

黄舟

@colin5063

Je suis CentOS6.7, ça devrait être à peu près pareil

Je l'ai modifié/etc/grub.conf en ajoutant cgroup_enable=memory swapaccount=1

à la fin de l'élément noyau du noyau actuellement utilisé.

redémarrer

Ensuite cat /proc/cmdline vous constaterez que la configuration a pris effet

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!