Docker安全管理 Cgroup資源配置方法

2021-10-01 23:58:09 字數 2694 閱讀 5193

cgroup是linux核心提供的一種可以限制、記錄、隔離程序組所使用的物理資源的機制

docker通過cgroup來控制容器使用的資源配額,包括 cpu、記憶體、磁碟三大方面,基本覆蓋了常見的資源配額和使用量控制

cgroup子系統使用dockerfile建立乙個stress工具映象

[root@localhost~]

# mkdir /opt/stress

[root@localhost~]

# cd /opt/stress/

[root@localhost stress]

# vim dockerfile

from centos:7

maintainer lzp "lzp@kgc"

run yum install -y wget

run wget -o /etc/yum.repos.d/epel.repo

run yum install -y stress

[root@localhost stress]

# docker build -t centos:stress .

建立容器
[root@localhost stress]

# docker run -itd --name cpu512 --cpu-shares 512 centos:stress stress -c 10

[root@localhost stress]

# docker exec -it b6f7b6a43716 bash

[root@b6f7b6a43716/]

# top

[root@localhost stress]

# docker run -itd --name cpu1024 --cpu-shares 1024 centos:stress stress -c 10

[root@localhost stress]

# docker exec -it d5aabd524580 bash

[root@d5aabd524580/]

# top

啟動兩個容器及執行檢視cpu使用百分比

使用top命令檢視比例,對兩個容器進行比較

在預設情況下,每個docker容器的cpu份額都是1024,單獨乙個容器的份額是沒有意義的。只有在同時執行多個容器時,容器的cpu加權的效果才能體現出來。

兩個引數控制容器cpu時鐘週期

cpu-period和cpu-quota的單位為微秒(us),cpu-period的最小值為1000微秒,最大值為1秒,預設值為0.1秒。cpu-quota的預設值為-1 ,表示不做控制。cpu-period和cpu-quota 引數一般聯合使用

在多核情況下,允許容器程序需要完全占用兩個cpu,則可以將cpu-period設定為100000(即0.1秒),cpu-quota設定為200000(0.2秒)

對多核cpu的伺服器,docker還可以控制容器執行使用那些cpu核心,即使用–cpuset-cpus引數

這對具有多cpu的伺服器尤其有用,可以對需要高效能計算的容器進行效能最優的配置

[root@localhost stress]

# docker run -itd --name cpu02 --cpuset-cpus=0-2 centos:stress

//以上命令需要宿主機為雙核,表示建立的容器只能使用0、1、2三個核心,最終生成的cgroup的cpu核心配置如下

Docker 容器安全

由下圖可見,虛擬機器是通過管理系統 hypervisor 模擬出 cpu 記憶體 網路等硬體,然後在這些模擬的硬體上建立客戶核心和作業系統。這樣做的好處就是虛擬機器有自己的核心和作業系統,並且硬體都是通過虛擬機器管理系統模擬出來的,使用者程式無法直接使用到主機的作業系統和硬體資源,因此虛擬機器也對隔...

mysql安全管理 MySQL安全管理

資料庫伺服器通常包含關鍵的資料,確保這些資料的安全和完整需要利用訪問控制。一 訪問控制 mysql伺服器的安全基礎 使用者應該對他們需要的資料具有適當的訪問權,既不能多也不能少。訪問控制 你需要給使用者提供他們所需的訪問權,且僅提供他們所需的訪問權。在日常工作中,絕不能使用root,應該建立一系列的...

mysql安全管理 MySQL 安全管理

1.使用者管理 mysql將帳戶儲存在系統資料庫mysql的user表,mysql使用者名稱最長可達32個字元 檢視所有使用者 select user,host,authentication string from user 檢視當前使用者的許可權 show grants 檢視gg使用者許可權 sh...