我分别用两种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
의 메모리를 살펴봅니다.
으아악container
의 메모리 제한을 보려면 다음을 사용하세요.
으아악/cgroup/
에서 다른 리소스의 제한 사항을 확인할 수도 있습니다.소유자님, 저도 우분투 가상머신으로 실험을 하다가 이런 문제가 발생했습니다. 여기를 참고해서 해결해주세요
http://docs.docker.com/articles/runmetrics/
다음은 주요 발췌 내용입니다
메모리 및 스왑 계정을 활성화하려면 커널에 다음 명령줄 매개변수를 추가해야 합니다.
으아아아GRUB(Ubuntu의 기본값)를 사용하는 시스템에서는
으아아아/etc/default/grub
을 편집하고GRUB_CMDLINE_LINUX
을 확장하여 해당 매개변수를 추가할 수 있습니다.다음 항목으로 교체하세요.
으아아아그런 다음
sudo update-grub
을 실행하고 재부팅하세요.이 매개변수는 다음 경고를 제거하는 데 도움이 됩니다.
으아아아Centos6에서 이 문제를 해결하는 방법을 아는 사람이 있나요?
내 도커는 1.6.2, Centos는 6.6, 커널 버전은 3.10.81
@colin5063
저는 CentOS6.7입니다. 거의 동일할 것입니다
현재 사용하고 있는 커널의 커널 항목 끝에
./etc/grub.conf
을 추가하여cgroup_enable=memory swapaccount=1
수정했습니다재부팅
그러면
cat /proc/cmdline
구성이 적용된 것을 확인할 수 있습니다