Docker Compose 可以使用 resources
关键字来限制 CPU、内存、存储空间等资源的使用。
下面是一个示例 docker-compose.yml
文件,其中指定了每个服务的资源限制:
version: "3.9"
services:
web:
image: nginx
ports:
- "80:80"
resources:
limits:
cpus: '0.5'
memory: '512m'
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
resources:
limits:
cpus: '1'
memory: '1g'
storage: '10g'
volumes:
db_data:
在上面的示例中,web
服务被限制为最多可以占用 0.5 个 CPU 和 512 MB 的内存。db
服务被限制为最多可以占用 1 个 CPU、1 GB 的内存和 10 GB 的存储空间。
注意:资源限制的粒度取决于宿主机上的操作系统和 Docker 版本,可能不是精确的。在某些情况下,资源限制也可能会对应用程序的性能产生负面影响。