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

Jam*_*ald 4 docker

我已经看到,在 Windows 和 Mac 上,更改 RAM 容器非常容易——您只需进入 GUI。但是你如何在 Linux 上做到这一点,它是一个 CLI 而不是 GUI?

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

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

Pra*_*aym 14

这就是我“检查”Docker 容器内存的方式:

打开 linux 命令 shell 并 -

步骤 1:检查哪些容器正在运行。

docker ps

步骤 2:记下要检查的容器的“容器 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

Run Code Online (Sandbox Code Playgroud)

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

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

  • 不,问题是如何更改内存,而不是如何查看它。 (17认同)
  • @juergi 帖子中还有第二个问题,这意味着它可能应该因“需要关注”而关闭。 (2认同)

Dav*_*aze 8

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

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

  • 我懂了!那么,当我在 Linux 上使用“-m”标志传递参数时会发生什么? (2认同)
  • 它对管理容器的 cgroup 设置内存限制。它与“ulimit”命令并没有太大的不同,因为它设置了内核强制执行的限制,但它并不专门对资源进行分区。 (2认同)