更新:
在*上发现了很多关于这个主题的问题和讨论.虽然它们被标记为接受并由数千名用户启动,但它们似乎不是正确的答案.
我运行了一个具有资源限制的docker(版本1.13.1,build 092cba3)容器,如下所示:
docker run --privileged -v /sys/fs/cgroup:/sys/fs/cgroup -m 4096M --cpuset-cpus='0' --cpus=1 --cpu-shares=256 -p $IMAGE_NAME
主机系统(RHEL 7)有4个内核和8G内存.基本上我想限制容器的可用内存和CPU.在成功启动容器后,我打开了bash并试图从容器中找到限制信息.但我无法获得正确的信息.
我试过这个:
sudo cat /proc/meminfo
结果是:
主机系统
MemTotal:8008812 kB
MemFree:7416404 kB
MemAvailable:7537332 kB
Docker容器
MemTotal:8008812 kB
MemFree:7318052 kB
MemAvailable:7498764 kB
同样,我想获得CPU限制:
grep -c ^processor /proc/cpuinfo
结果是:
主机系统4
Docker Image 4
似乎容器不能看到容器强制执行的CPU和内存限制.我还试图查询cgroup信息.
mkdir -p /tmp/memory
mount -n -t cgroup -o memory cgroup /tmp/memory
然后我查看cgroup文件:
[root@engrlab memory]# cat /tmp/memory/memory.limit_in_bytes
9223372036854771712
此数字大于主机系统的实际内存.
有没有办法验证资源约束是否已在容器中正确设置?如何从容器中找到资源约束信息?感谢任何建议.
解决方法:
我尝试这个命令这个我的docker托管它工作
docker run -it -d -m 100M –cpuset-cpus =’0′–cpus = 1 –cpu-shares = 256 –name testing ubuntu / bin / bash