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

我分别用两种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命令】,发现并未限制。

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

怪我咯
怪我咯

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

membalas semua(4)
刘奇

Perintah

dalam freebekas melihat memori pada Host.

Untuk melihat had ingatan container gunakan ini:

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

Anda juga boleh menyemak sekatan sumber lain di bawah

/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
洪涛

Pemilik, saya juga menghadapi masalah ini semasa saya melakukan eksperimen dengan mesin maya Ubuntu Sila rujuk di sini untuk menyelesaikannya
http://docs.docker.com/articles/runmetrics/
. Berikut adalah petikan utama

Jika anda ingin mendayakan perakaunan memori dan swap, anda mesti menambah parameter baris arahan berikut pada kernel anda:

$ cgroup_enable=memory swapaccount=1

Pada sistem yang menggunakan GRUB (yang merupakan lalai untuk Ubuntu), anda boleh menambah parameter tersebut dengan mengedit /etc/default/grub dan melanjutkan GRUB_CMDLINE_LINUX Cari baris berikut:

$ GRUB_CMDLINE_LINUX=""

Dan gantikannya dengan yang berikut:

$ GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

Kemudian jalankan sudo update-grub, dan but semula.

Parameter ini akan membantu anda menyingkirkan amaran berikut:

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

Adakah sesiapa tahu bagaimana untuk menyelesaikan masalah ini pada Centos6?
Docker saya ialah 1.6.2, Centos ialah 6.6, dan versi kernel ialah 3.10.81

黄舟

@colin5063

Saya CentOS6.7, ia sepatutnya lebih kurang sama

Saya mengubah suainya/etc/grub.conf dengan menambahkan cgroup_enable=memory swapaccount=1

pada penghujung item kernel kernel yang sedang digunakan.

but semula

Kemudian cat /proc/cmdline anda akan mendapati bahawa konfigurasi telah berkuat kuasa

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan