默認狀況下,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]docker
測試內存,
docker run --name s1 -it --rm -m 256m lorel/docker-stress-ng stress --vm 2
使用以上命令啓動一個最多使用256m內存的容器,雖然進入到容器查看總內存跟物理內存一致,可是使用docker stats s1能夠看到最多隻能使用256m內存
ide
測試CPU
測試
設置的CPU爲1,因此最多隻能使用100%的cpu,每一個核心使用約50%
或者指定只使用某個CPU
ui