如何分配更多的内存到船坞容器

正如标题所示,我试图为容器分配更多的内存。我使用了一个来自 Docker Hub 的名为“ aallam/tomcat-mysql”的图像,以防相关。

当我正常启动它时,没有任何特殊标志,内存限制为2GB (即使我读到如果没有设置内存是无界的)

这是我的码头统计数据

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
ba57d6c9e9d2        0.22%               145.6 MiB / 1.952 GiB   7.29%               508 B / 508 B       0 B / 6.91 MB       68

我试着像这样明确地设置内存,但结果是一样的

docker run -d --memory=10g --memory-swap=-1 -e MYSQL_PASSWORD=password -p 3307:3306 -p 8081:8080 aallam/tomcat-mysql

我读到过,也许是虚拟机限制了它。但是为什么 docker 的统计数据显示容器大小限制是2GB 呢?

245598 次浏览

您看到的 2GB限制是运行 docker 的 VM (虚拟机)的总内存。

如果你使用的是 Docker 桌面,你可以从任务栏中的 Whale 图标轻松地增加它,然后进入参数设置-> 高级:

Docker Preferences

但是如果你在后面使用 VirtualBox,打开 VirtualBox,选择并配置停靠机分配的内存。

看看这个 Mac:

Https://docs.docker.com/desktop/settings/mac/#advanced

记忆 默认情况下,Docker for Mac 设置为使用2GB 的运行时内存,从 Mac 上的总可用内存中分配。如果你想让 Docker for Mac 使用更少的内存,你可以通过将这个数字设置得更高(例如设置为3)或者更低(设置为1)来增加应用程序的内存以获得更快的性能。

视窗:

Https://docs.docker.com/desktop/settings/windows/#advanced

内存-更改 Docker for Windows 的 Linux VM 使用的内存量

如果您想要更改默认容器并且正在使用 Virtualbox,那么可以通过命令行/CLI:

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start

从(docker 首选项-> Advanced)为您的 docker 机器分配最大内存

高级设置截图: Screenshot of advance settings.

这将设置在运行容器时码头使用的最大限制。现在使用-m = 4g 标志在新容器中运行您的映像,内存为4GB 或更多。例如:。

docker run -m=4g {imageID}

记住应用内存限制增加更改。重新启动码头,再次检查内存限制是否增加。这可能是一个因素,您没有看到在码头容器的内存限制增加。

Docker DesktopV3.3.3(Mac)的屏幕截图

Docker Desktop Menu Dropdown

Docker Desktop Preferences