Docker之CPU和記憶體磁碟設定(八)

Auler發表於2024-03-07

前言

  Docker基本掌握使用方式,但是在限制其資源方面還沒有接觸。本篇就簡單介紹一下有關CPU、記憶體等配置。讓每個容器的資源分配更加合理,也能夠避免一些容器遇到記憶體洩漏,CPU過載等問題影響其他容器的正常執行。

一、配置檔案

  Docker中,配置檔案可以用來調整守護程序的行為,包括磁碟、記憶體和CPU等方面的設定。這些設定通常在Docker守護程序的配置檔案中進行,該檔案通常位於/etc/docker/daemon.json。如果該檔案不存在,你可以手動建立它。

    

{  
  "default-runtime": "runc",  #預設執行runc,也可以使用其他kata-containers或crun
  "exec-opts": [  
    "native.cgroupdriver=systemd"  # systemd服務選項
  ],  
  "live-restore": true,  # 保護守護程序重啟時,避免中斷執行的容器(但並不是全部功能都有效)
  "runtimes": {  # 執行時名稱
    "runc": {  # docker預設執行
      "path": "/usr/local/bin/runc"
    },
  "kata":{ #kata-container執行
    "path": "/usr/bin/kata-runtime"
  } },
"default-ulimits": [ # 預設Docker容器的預設資源限制 { "name": "nofile", "soft": 1024, # 軟限制,超過則警告 "hard": 2048 # 硬限制,直接報錯中斷 } ], "log-driver": "json-file", # 日誌 "log-opts": { "max-size": "10m", "max-file": "3" }, "storage-driver": "overlay2", # docker推薦驅動 "storage-opts": [ "overlay2.override_kernel_check=true" ], "resource-limits": { # 關於資源限制 "memory": { #記憶體1G "limit": "1g" }, "cpu": { #CPU "shares": 512, #CPU權重(shares)為512 "quota": 100000, #CPU配額(quota)為100,000微秒 "period": 100000 #週期(period)為100,000微秒 }, "disk": { "quota": "10g" # 磁碟10G } } }

  配置好之後,需要透過重啟docker服務生效。

~]# sudo systemctl restart docker #重啟
~]# sudo systemctl status docker #檢視資訊

二、配置引數

  一些常用的引數。以下是你可以在Docker配置檔案中設定的一些與磁碟、記憶體和CPU相關的選項:

磁碟
storage-driver:指定Docker使用的儲存驅動。例如,overlay2是一個常用的選擇。
data-root:設定Docker守護程序使用的根目錄,用於儲存映象、容器和其他資料。
bip:指定Docker守護程序使用的橋接IP地址。這有助於控制Docker網路的IP範圍。
記憶體
default-memory:設定容器的預設記憶體限制。
default-memory-swap:設定容器的預設記憶體加Swap的限制。
memory-swappiness:控制容器使用Swap空間的傾向性。
exec-memory-limit:設定容器執行記憶體限制的標誌。
CPU
cpu-rt-runtime:設定容器實時排程的執行時間。
cpu-rt-period:設定容器實時排程的排程週期。
cpus:設定容器可以使用的CPU核心數。
cpuset-cpus:指定容器可以使用的CPU核心。
cpuset-mems:指定容器可以使用的記憶體節點。

   想了解具體配置,可去官網檢視最新的配置。地址:https://docs.docker.com/config/containers/resource_constraints/

  

相關文章