docker和docker-compose限制容器使用量
docker-compose
配置资源限制.
在这个示例中,redis服务被限制为使用不超过50M的内存和0.50(单核的50%)的可用处理时间(CPU),并且具有20M的内存和0.25个CPU时间保留(始终可用).
version: "3.7"
services:
redis:
image: redis:alpine
deploy:
resources:
limits:
cpus: '0.50'
memory: 50M
reservations:
cpus: '0.25'
memory: 20M
启动docker-compose
docker-compose --compatibility -p website -f /home/docker/compose/docker-compose.yml up -d
由于做了资源限制, 并且没有使用swarm, 所以要加上--compatibility参数, 不然会报错
WARNING: Some services (web) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use docker stack deploy to deploy to a swarm.
docker
限制内存使用上限
在进入繁琐的设置细节之前我们先完成一个简单的用例:限制容器可以使用的最大内存为 300M。
-m(--memory=) 选项可以完成这样的配置:
$ docker run -it -m 300M --memory-swap -1 --name con1 u-stress /bin/bash
下面的 stress 命令会创建一个进程并通过 malloc 函数分配内存:
# stress --vm 1 --vm-bytes 500M
通过 docker stats 命令查看实际情况:
上面的 docker run 命令中通过 -m 选项限制容器使用的内存上限为 300M。同时设置 memory-swap 值为 -1,它表示容器程序使用内存的受限,而可以使用的 swap 空间使用不受限制(宿主机有多少 swap 容器就可以使用多少)。
Tags : 本文未设置标签
所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!