docker如何分配资源给容器?默认情况下,docker容器的资源分配是没有限制的,宿主机有多少资源,它就可以用多少资源。而docker可以限制内存、CPU、IO的资源使用。
docker可以在docker run或者docker build 的时候,设置这些选项,设置的选线和规则如下:
内存
-m 或 –memory :
–memory-swap * :此命令依赖于-m
CPU
CPU为按比例分配
–cpus=<value> 使用value核cpu,比如cpu为双核,可以设置–cpus=”1.5″,表示有1.5核cpu分配给该容器
–cup-shares:当有多个docker的时候,所有docker按比例分配cpu资源,如果其他docker空闲的话,仅有一个docker繁忙,则他可以用完所有cpu
–cpuset-cpus:指定docker运行在哪个cpu上,比如,4核cpu编号为[0-3]
默认设置下,所有容器可以平等地使用主机 CPU 资源并且没有限制。docker 可以通过-c或–cpu-shares设置容器使用 CPU 的权重。如果不指定,默认值为 1024。
测试内存
docker run --name s1 -it --rm -m 256m /docker-stress-ng stress --vm 2
使用以上命令启动一个最多使用256m内存的容器,虽然进入到容器查看总内存跟物理内存一致,但是使用docker stats s1可以看到最多只能使用256m内存
融亿云的容器云产品是通过docker技术,在集群服务器上部署容器服务实现,功能强大、简单易用,拥有上万linux镜像,秒级开通,轻量级的容器云