Docker Compose 提供了一些配置项可以用来限制容器的 CPU 和内存使用:
-
cpus
配置项:用来限制容器可以使用的 CPU 核心数量。可以是一个小数,表示在多个 CPU 上分配,也可以是整数,表示直接分配给某个 CPU 核心。例如:services: myservice: image: myimage cpus: 0.5
这个配置会将
myservice
容器的 CPU 使用限制在 50%。 -
cpu_shares
配置项:用来设置容器 CPU 使用的相对权重,分配越高,占用的 CPU 资源就越高。默认值是 1024,可以设置为其他整数值。例如:services: myservice: image: myimage cpu_shares: 512
这个配置会将
myservice
容器的 CPU 使用权重降低一半。 -
mem_limit
配置项:用来限制容器可以使用的内存大小。可以使用字节数或者人类可读的单位(例如1G
或512M
)。例如:services: myservice: image: myimage mem_limit: 2G
这个配置会将
myservice
容器的内存上限设置为 2GB。 -
memswap_limit
配置项:用来设置容器可以使用的交换分区大小,一般建议设置为与mem_limit
相同或或0
。例如:services: myservice: image: myimage mem_limit: 2G memswap_limit: 2G
这个配置会将
myservice
容器的交换分区上限设置为 2GB。
这些配置项可以在 docker-compose.yml
文件的 services
部分使用。注意,虽然这些配置项可以限制容器使用资源的上限,但并没有限制容器使用资源的下限。如果容器可以使用更少的资源,那么它就可以使用更少的资源。