Docker資源限制

2021-09-24 09:35:35 字數 2068 閱讀 2727

1.linux cgroups 的全稱是 linux control group,是限制乙個程序組能夠使用的資源上限,包括 cpu、記憶體、磁碟、網路頻寬等。

2.對程序進行優先順序設定、審計,以及將程序掛起和恢復等操作。

3.linux cgroups 給使用者暴露出來的操作介面是檔案系統,它以檔案和目錄的方式組織在作業系統的 /sys/fs/cgroup 路徑下。

4.子系統:在 /sys/fs/cgroup 下面有很多諸如 cpuset、cpu、 memory 這樣的子目錄,也叫子系統。

5.在每個子系統下面,為每個容器建立乙個控制組(建立乙個新目錄),控制組下面的資源檔案裡填上什麼值,就靠使用者執行 docker run 時的引數指定。

docker run -it --cpu-period=100000 --cpu-quota=20000 ubuntu /bin/bash
cpu_period 和 cpu_quota 這兩個引數需要組合使用,用來限制程序在

長度為 cpu_period 的一段時間內,只能被分配到總量為 cpu_quota 的

cpu 時間,以上設定表示20%的cpu時間

容器可用記憶體包括物理記憶體和swap交換分割槽兩個部分

–memory設定記憶體使用限額

–memory-swap設定swap交換分割槽限額

1.利用lxcfs增強docker容器隔離性和資源可見性

2.設定特權級執行的容器 --privileged=true

docker run -it --name vm1 ubuntu bash
許可權不夠,無法對網絡卡進行設定

3.設定白名單

–privileged=true 的許可權非常大,接近於宿主機的許可權,為了防止

使用者的濫用,需要增加限制,只提供給容器必須的許可權。此時

docker 提供了許可權白名單的機制,使用–cap-add新增必要的許可權

docker run -it --cap-add=net_admin --name vm1 ubuntu bash

比如這裡可以設定新增設定網絡卡的許可權。

保證容器的安全

docker安全遺留問題

1.主要的核心子系統都沒有命名空間,如:

2裝置沒有命名空間

Docker資源限制

m or memory 限制記憶體大小 例 memory 4m memory swap 限制交換分割槽,必須先設定記憶體大小,可設定的值 正數,0,1 正數 swap為swap memory 0 swap為物理機mem 2 1 不限制 注意 在容器內free看到的swap不具有展現出空間指示的意義 ...

docker資源限制

安裝docker後,可以在 sys fs cgroup docker 目錄下看到對docker組應用的各種限制項,包括全域性限制和位於子目錄中對於某個容器的單獨限制。使用者可以通過修改這些檔案值來控制組,從而限制docker應用資源。同時,也可以在建立或啟動容器時為每個容器指定資源的限制 c,cpu...

docker資源限制

docker run m 200m memory swap 300m progrium stress vm 1 vm bytes 290m vm 1 啟動乙個記憶體工作執行緒 vm bytes 280m 每個執行緒分配280記憶體 因為280m在可分配的範圍 300m 內,所以可以正常工作 一直迴圈...