如何查看 Docker Engine 的内存分配?

How to see memory allotment for Docker Engine?

提问人:RayJ_inSJ 提问时间:6/18/2020 更新时间:3/7/2021 访问量:2237

问:

设置 Elasticsearch Cluster 的 docker 实例。 在说明中它说
Make sure Docker Engine is allotted at least 4GiB of memory

我正在向主机发送 ssh'ing,而不是使用 docker desktop。 如何从命令行查看资源分配?

引用 URL https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-docker.html

docker elasticsearch

评论

0赞 Connor Verlekar 6/18/2020
我需要更多细节来更好地回答这个问题,但假设它是一个通用的非桌面 Linux,我仍然会尝试回答
1赞 Saurabh 6/18/2020
您可以使用或查看 CPU、内存等的资源分配。docker system infodocker info
0赞 RayJ_inSJ 6/18/2020
docker system info给出了我正在寻找的“信息”Operating System: Oracle Linux Server 7.7 OSType: linux Architecture: x86_64 CPUs: 8 Total Memory: 15.49GiB

答:

-2赞 Connor Verlekar 6/18/2020 #1

我想只使用一个命令来解决这个问题。

 docker stats -all

这将给出如下输出

$ docker stats -all

CONTAINER ID        NAME           CPU%  MEM USAGE/LIMIT   MEM%   NET I/O BLOCK I/O PIDS
5f8a1e2c08ac my-compose_my-nginx_1 0.00% 2.25MiB/1.934GiB 0.11% 1.65kB/0B 7.35MB/0B  2

要修改限制: 制作docker-compose.yml时,请在文件末尾包含以下内容。(如果要设置 4 GiB 限制)

resources:
limits:
memory: 4048m
reservations:
memory: 4048m

评论

0赞 RayJ_inSJ 6/18/2020
这提供了当前正在运行的容器的资源,这与本文所指的不同
3赞 Agit Kaplan 3/7/2021 #2

我在 Windows 10 上运行 Docker Desktop 时遇到了同样的问题,同时在 WSL2 上运行 Linux 容器。

我发现了这个问题:https://github.com/elastic/elasticsearch-docker/issues/92 并尝试将类似的逻辑应用于那里的解决方案。

我通过命令进入了 WSL 实例的终端。 稍后我运行命令来设置“分配的内存”。wsl -d docker-desktopsysctl -w vm.max_map_count=262144

完成这些步骤后,我可以运行 elasticsearch 的 docker compose 示例。