在Ubuntu上,可以通過docker run
命令的參數來限制和分配Docker容器的資源,包括CPU、內存和磁盤I/O等。以下是具體的限制與分配方法:
--cpu-shares
或-c
參數設置容器使用CPU資源的相對權重。權重越高,容器獲得的CPU時間越多。例如,設置--cpu-shares 512
表示容器獲得的CPU權重為512。--cpus
參數限制容器可以使用的CPU核數。例如,--cpus "1.5"
表示容器可以使用1.5個CPU核心。--cpuset-cpus
參數指定容器只能使用哪些CPU核心。例如,--cpuset-cpus="0,1"
表示容器只能使用CPU核心0和1。-m
或--memory
參數限制容器可以使用的內存量。例如,-m 512m
表示容器最多可以使用512MB的內存。--memory-swap
參數設置容器可以使用的交換空間大小。交換空間的大小依賴于-m
參數設置的內存大小。--device-write-bps
參數限制容器對指定設備的寫入速度。在使用docker-compose
時,可以在docker-compose.yml
文件中設置資源限制。例如:
version: '3'
services:
web:
image: nginx
deploy:
resources:
limits:
cpus: '0.50'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M
在這個例子中,web
服務的CPU使用量被限制為50%,內存使用量為512MB,并且保留了25%的CPU和內存資源。
通過上述方法,可以有效地限制和分配Ubuntu Docker容器的資源,確保系統的穩定性和性能。