在CentOS上為Docker容器分配資源可以通過以下幾種方法實現:
CPU資源分配:
--cpus
參數限制容器可以使用的CPU核心數量。例如,docker run --cpus=1.5 my_container
將限制容器使用1.5個CPU核心。--cpu-shares
參數設置CPU的相對權重,用于在多個容器競爭CPU資源時分配CPU時間。默認情況下,每個容器的權重為1024。例如,docker run --cpu-shares=512 my_container
將使該容器在CPU資源競爭中獲得較少的CPU時間。--cpuset-cpus
參數限制容器運行在指定的CPU核心上。例如,docker run --cpuset-cpus="0,1" ubuntu
將限制容器在CPU 0和1上運行。內存資源分配:
--memory
參數限制容器可以使用的內存大小。例如,docker run -m 512m my_container
將限制容器最大使用512MB內存。--memory-swap
參數設置內存和交換空間的總大小。例如,docker run --memory=1G --memory-swap=2G my_container
將限制容器使用1GB物理內存和1GB交換空間。磁盤IO資源分配:
--device-write-bps
和--device-read-bps
參數限制設備上的讀寫速度。例如,docker run --device-write-bps=/dev/sda:1mb ubuntu
將限制容器對硬盤的最高寫入速度為1MB/s。存儲資源配置:
--storage-opt
選項來限制容器的磁盤空間使用。例如,--storage-opt size=1g
表示限制容器最多使用1GB的磁盤空間。網絡資源配置:
--network
參數設置容器的網絡模式。例如,docker run --network=bridge my_container
將容器連接到默認的bridge網絡。-p
參數將容器的端口映射到主機的端口上,以便外部訪問。例如,docker run -p 8080:80 my_nginx
將容器的80端口映射到主機的8080端口。通過這些參數,可以有效地管理和分配Docker容器的資源,確保它們在同一臺宿主機上高效、穩定地運行。