Docker容器填充垫片占用太多内存

时间:2019-10-09 05:28:27

标签: docker

我想将100个容器部署到我的一台linux pc中。

如果不使用docker,那100个服务的内存就可以了。

但是如果使用docker,我会看到下一个:

 25504  0.0  0.0  10796  5060 ?        Sl   12:41   0:00 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/779ab7bff4bed93d2912437e58e9b830c2f72ef2d8f3b4a5ba31e6d0db8e72b2 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc

这意味着对于一个容器,containerd-shim将花费5M的内存,更糟糕的是:对于每个新容器,将有一个containerd-shim进程。这意味着对于100个容器,将有额外的5M * 100 = 500M内存消耗。

高于预期吗?我有机会尝试减少500M吗?

1 个答案:

答案 0 :(得分:1)

使用runc

的步骤

json中提取Docker image

mkdir my_container
cd my_container
mkdir rootfs
docker export $(docker create busybox) | tar -C rootfs -xvf -
docker-runc spec

-启动容器

runc run container-name

Source

PS :您也可以尝试将运行时间添加到Docker daemon

docker daemon --add-runtime "oci=/usr/local/sbin/runc"