Rumah  >  Soal Jawab  >  teks badan

docker - 如何限制容器内存大小?

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

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

怪我咯怪我咯2761 hari yang lalu841

membalas semua(4)saya akan balas

  • 怪我咯

    怪我咯2017-04-21 10:58:38

    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
    

    balas
    0
  • PHP中文网

    PHP中文网2017-04-21 10:58:38

    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.
    

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-21 10:58:38

    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

    balas
    0
  • 黄舟

    黄舟2017-04-21 10:58:38

    @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

    balas
    0
  • Batalbalas