我分别用两种linux系统部署Docker0.8,都没法限制容器的内存大小。具体情况如下:
# docker run -i -t -d -m 512m centos /bin/bash
WARNING: WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
9229fe1bac59992337e909cbc5a11f3e0fa81553ad7b136bec95a62181a251fd
该容器新建成功,但不能限制内存大小。
# sudo docker run -i -t -m 512m -d ubuntu /bin/bash
89d629ed37d63b67b49ed8c4c11cab653d61d5b85227bdd10c8a9a0a718c686e
看似未报错,登陆该新建的容器里面查看内存【free命令】,发现并未限制。
大家手头的主机都是什么系统,有没有这种情况?如何解决?盼回复,谢谢!
怪我咯2017-04-21 10:58:38
The memory on
in the free
命令,看的是Host
container.
To check the memory limit of container
use this:
cat /cgroup/memory/lxc/{full_container_id}/memory.limit_in_bytes
You can also check the restrictions of other resources under /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
PHP中文网2017-04-21 10:58:38
Owner, I also encountered this problem when I was doing experiments with Ubuntu virtual machine. Please refer to here to solve it
http://docs.docker.com/articles/runmetrics/
The following are key excerpts
If you want to enable memory and swap accounting, you must add the following command-line parameters to your kernel:
$ cgroup_enable=memory swapaccount=1
On systems using GRUB (which is the default for Ubuntu), you can add those parameters by editing /etc/default/grub
and extending GRUB_CMDLINE_LINUX
. Look for the following line:
$ GRUB_CMDLINE_LINUX=""
And replace it by the following one:
$ GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
Then run sudo update-grub
, and reboot.
These parameters will help you get rid of the following warnings:
WARNING: Your kernel does not support cgroup swap limit.
WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
大家讲道理2017-04-21 10:58:38
Does anyone know how to solve this problem on Centos6?
My docker is 1.6.2, Centos is 6.6, and the kernel version is 3.10.81
黄舟2017-04-21 10:58:38
@colin5063
I am CentOS6.7, it should be almost the same
I modified it/etc/grub.conf
在当前使用的内核的kernel项的最后加上cgroup_enable=memory swapaccount=1
reboot
Then cat /proc/cmdline
you will find that the configuration has taken effect