我们使用docker时,经常会遇到docker容器使用内存大于docker宿主机内存,导致宿主机奔溃,从而影响其他宿主机上容器的运行。 因此我们在使用docker容器的时候需要限制内存。
1. 启动容器时限制容器内存
docker run -m 4g --memory-swap -1
2. 限制已启动容器的内存
docker stop containerId docker update containerId -m 4g --memory-swap -1 docker start containerId
命令详解
--memory 或 -m 限制容器的内存使用量(如10m,200m等)
--memory-swap # 限制内存和 Swap 的总和,不设置的话默认为--memory的两倍
如果只指定了 --memory 则 --memory-swap 默认为 --memory 的两倍
如果 --memory-swap 和 --memory 设置了相同值,则表示不使用 Swap
如果 --memory-swap 设置为 -1 则表示不对容器使用的 Swap 进行限制
如果设置了 --memory-swap 参数,则必须设置 --memory 参数
后期 update --memory 时数值不能超过 --memory-swap 的值,否则会报错 Memory limit should be smaller than already set memoryswap limit
3. 查询是否配置成功
docker inspect containerId