我发现在Windows和Mac上很容易改变RAM容器的分配,只需进入GUI界面即可。但是在Linux上,由于它使用CLI而不是GUI,该怎么做呢?
Docker文档中提到了一个-m
标志,但此标志没有任何响应(只会重新打印帮助输出的全部内容),因此我不知道是否有效。它似乎也只适用于容器,而我想改变全局默认设置。
最后,有没有一种方法可以检查当前默认的RAM,以便我可以确保最终所做的任何更改都生效了?
我发现在Windows和Mac上很容易改变RAM容器的分配,只需进入GUI界面即可。但是在Linux上,由于它使用CLI而不是GUI,该怎么做呢?
Docker文档中提到了一个-m
标志,但此标志没有任何响应(只会重新打印帮助输出的全部内容),因此我不知道是否有效。它似乎也只适用于容器,而我想改变全局默认设置。
最后,有没有一种方法可以检查当前默认的RAM,以便我可以确保最终所做的任何更改都生效了?
在本机Linux上,Docker可以使用所有可用的主机内存。它使用一种轻量级的基于内核的隔离机制,通常使用标准内核机制共享CPU核心和内存资源(在现代安装中,还包括磁盘空间)。没有控件或设置来限制或增加这个。
在其他平台上,Docker运行一个隐藏的Linux虚拟机以便运行Linux内核来使用这些隔离机制,而Docker Desktop内存控制影响该虚拟机的内存分配。
ulimit
命令并没有太大的区别,因为它设置了由内核强制执行的限制,但它并没有特定地分配资源。 - David Maze这是我如何“检查”Docker容器的内存:
打开Linux命令行并执行以下步骤 -
第1步:检查正在运行的容器。
docker ps
第2步:记下要检查的容器的“CONTAINER ID”,并发出以下命令:
docker container stats <containerID>
例如:
docker container stats 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
配置来限制资源的消耗。 - frozenOne