我试图了解 Docker Swarm 资源预留与资源限制相比的作用。具体来说,我想知道是否可以使用资源预留来保证长时间运行的服务始终能够访问指定数量的 CPU 和内存(例如 x CPU 和 y 内存),而不会被竞争服务阻塞。
有关 Docker 资源限制的文档表明,内存预留更多地充当软限制而不是硬保证。 Docker Swarm 中的资源预留究竟是如何工作的?它是否可以用于以这种方式确保服务的专用资源?
在 Swarm 中,您可以在
--reserve-memory
命令上使用
docker service create
标志。这将确保有足够的内存来启动服务:
docker service create \
--reserve-memory 250MB \
--name my-nginx \
--replicas 5 \
nginx
来源:https://docs.docker.com/engine/swarm/services/#reserve-memory-or-cpus-for-a-service