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 lorel/docker-stress-ng stress --vm 2
使用以上命令啟動一個最多使用256m內存的容器,雖然進入到容器查看總內存跟物理內存一致,但是使用docker stats s1可以看到最多只能使用256m內存
轉https://www.cnblogs.com/zhangzhiping35/p/14713453.html