我分别用两种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命令】,发现并未限制。
大家手头的主机都是什么系统,有没有这种情况?如何解决?盼回复,谢谢!
コンテナ内の
free
コマンドは、Host
上のメモリを調べます。free
命令,看的是Host
上的内存。要查看
container
的内存限制用这个:/cgroup/
container
のメモリ制限を確認するには、これを使用します: 🎜 リーリー 🎜/cgroup/
で他のリソースの制限を確認することもできます: 🎜 リーリーオーナー、私も ubuntu 仮想マシンで実験をしていたときにこの問題に遭遇しました。解決するにはここを参照してください
http://docs.docker.com/articles/runmetrics/
以下は重要な抜粋です
メモリとスワップ アカウンティングを有効にしたい場合は、次のコマンドライン パラメータをカーネルに追加する必要があります:
リーリーGRUB (Ubuntu のデフォルト) を使用するシステムでは、
/etc/default/grub
を編集し、GRUB_CMDLINE_LINUX
を拡張することで、これらのパラメータを追加できます。 :/etc/default/grub
and extendingGRUB_CMDLINE_LINUX
. Look for the following line:And replace it by the following one:
Then run
それを次のものに置き換えます:sudo update-grub
リーリーリーリー
次に、sudo update-grub
を実行し、再起動します。🎜 🎜これらのパラメータは、次の警告を取り除くのに役立ちます:🎜 リーリーCentos6 でこの問題を解決する方法を知っている人はいますか?
私のDockerは1.6.2、Centosは6.6、カーネルバージョンは3.10.81です
@colin5063
私はCentOS6.7ですが、ほぼ同じはずです
/etc/grub.conf
を変更し、現在使用しているカーネルのカーネル項目の末尾にcgroup_enable=memory swapaccount=1
を追加しました。/etc/grub.conf
在当前使用的内核的kernel项的最后加上cgroup_enable=memory swapaccount=1
reboot
然后
再起動🎜 🎜その後、cat /proc/cmdline
cat /proc/cmdline
は設定が有効になったことを確認します🎜