我想将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
吗?
答案 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
PS :您也可以尝试将运行时间添加到Docker daemon
:
docker daemon --add-runtime "oci=/usr/local/sbin/runc"