Docker (7) 限制資源

1. 管理容器的資源:

我們可以在 docker run 的時候限制其可用的資源,可以設定的資源包括:

  1. Memory
  2. CPU
  3. Devices

2. Memory:

限制容器的記憶體不超過 256M。

$ sudo docker run \
 -it --rm \
 --memory 256m \
 --name ubuntu1 \
 --hostname ubuntu1 \
 ubuntu

如果出現下面的訊息,就要修改 /etc/default/grub。

your kernel does not support swap limit capabilities or the cgroup is not mounted

找出 GRUB_CMDLINE_LINUX 改為 "cgroup_enable=memory swapaccount=1"。

$ sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
$ sudo update-grub
$ sudo init 6

3. CPU:

$ sudo docker run \
 -it --rm \
 --cpu-shares 512 \
 --name ubuntu1 \
 --hostname ubuntu1 \
 ubuntu
$ sudo docker run \
 -it --rm \
 --cpu-shares 1024 \
 --name ubuntu2 \
 --hostname ubuntu2 \
 ubuntu

--cpu-shares 的值是一個相對數字,ubnutu2 會比 ubuntu1 多一倍的運算時間。

指定容器使用 cpu0。

$ sudo docker run \
 -it --rm \
 --cpuset-cpus 0 \
 ubuntu

--cpuset-cpus 還可以寫成 0,1,2 或是 0-2 來使用多個 CPUs。


4. Devices:

掛載 host 的裝置。

$ sudo docker run \
 -it --rm \
 --device /dev/video0:/dev/video0 \
 ubuntu:latest ls -al /dev

留言

熱門文章