Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何增加/检查Docker在linux上的默认内存?_Docker - Fatal编程技术网

如何增加/检查Docker在linux上的默认内存?

如何增加/检查Docker在linux上的默认内存?,docker,Docker,我已经看到,在Windows和Mac上,更改给定的RAM容器非常容易——只需进入GUI即可。但是如何在Linux上做到这一点,因为Linux是CLI而不是GUI Docker文档中提到了一个-m标志,但是这个标志没有给出任何响应(只是再次打印整个帮助输出),所以我不知道它是否有效。它似乎也特定于容器,而我想更改全局默认值 最后,有没有办法检查当前的默认RAM,这样我就可以确保最后所做的一切都能正常工作?在本机Linux上,Docker可以使用所有可用的主机内存。它使用一种轻量级的基于内核的隔离机

我已经看到,在Windows和Mac上,更改给定的RAM容器非常容易——只需进入GUI即可。但是如何在Linux上做到这一点,因为Linux是CLI而不是GUI

Docker文档中提到了一个-m标志,但是这个标志没有给出任何响应(只是再次打印整个帮助输出),所以我不知道它是否有效。它似乎也特定于容器,而我想更改全局默认值


最后,有没有办法检查当前的默认RAM,这样我就可以确保最后所做的一切都能正常工作?

在本机Linux上,Docker可以使用所有可用的主机内存。它使用一种轻量级的基于内核的隔离机制,该机制通常使用标准内核机制共享CPU内核和内存(以及在现代安装中的磁盘空间)等资源。没有控件或设置来限制或增加此值


在其他平台上,Docker运行一个隐藏的Linux虚拟机,以便能够运行Linux内核来使用这些隔离机制,Docker桌面内存控制会影响该虚拟机的内存分配。

有几种方法可以做到这一点。我会列出一个我用得最多的。打开linux命令shell并-

步骤1:检查正在运行的容器

docker ps

步骤2:记下要检查的容器的“容器ID”,并发出以下命令:

docker容器统计数据

例如:

docker容器统计数据c981

这将产生如下输出:

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
c981c9482284        registry            0.00%               4.219MiB / 1.944GiB   0.21%               9.66kB / 0B         0B / 0B             14

“MEM USAGE/LIMIT”列将提供实际内存使用情况和默认分配的内存


注意:按ctrl+c退出视图并返回命令提示符。

如果您使用的是
docker compose
您可以使用
ymal
配置来限制消耗的资源。我明白了!那么,在Linux上使用
-m
标志传递参数时会发生什么呢?它在管理容器的cgroup上设置了内存限制。它与
ulimit
命令没有太大区别,因为它设置了内核强制执行的限制,但没有专门划分资源。如果使用WSL2,配置最大资源的GUI选项现在也从Windows中消失了。但它可以通过其他方式进行配置-希望这对您有效并回答了您的问题。:)不,问题是如何改变记忆,而不是如何查看它。