在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。
因此,本文将介绍使用 docker 进行容器内存限制的方法。
容器内存限制
使用 docker 进行容器内存限制有两种方法,一种是在启动时对容器内存进行限制;另一种是容器启动后对容器内存进行限制。
(1)启动时进行限制
在启动时,通过命令
bash
docker run ... -m 40G ...
中的 -m 40G
部分限制开启容器的可调用内存。此处限制容器可调用内存上限为 40 G。
(2)启动后进行限制
已经启动一个容器后,可以使用
bash
docker update -m 40G {container_id/container_name}
开启容器的内存限制。其中,-m 40G
部分限制了可调用内存上限为 40 G,后面 {container_id/container_name}
表示容器 ID 或者容器名。
限制情况查看
完成限制后,可以在容器内或主机内查看限制情况。
(1)在主机内查看
在主机内,只需要通过命令
bash
docker stats {container_id/container_name}
即可查看对容器的限制情况,如下图所示。
(2) 在容器内查看
在容器内,通过命令
bash
cat /sys/fs/cgroup/memory/memory.limit_in_bytes
即可查看容器的内存限制,如下图所示。单位为 Byte。