Как назначить больше памяти контейнеру docker

по мере чтения заголовка я пытаюсь назначить больше памяти моему контейнеру. Я использую изображение из docker hub под названием "aallam / tomcat-mysql" в случае, если это актуально.

когда я запускаю его обычно без каких-либо специальных флагов, есть предел памяти 2 ГБ (хотя я читал, что память неограничена, если не установлена)

вот моя статистика докера

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

Я читал что, возможно, VM-это то, что ограничивает его. Но тогда почему статистика docker показывает, что ограничение размера контейнера составляет 2 ГБ?

2 ответов


что 2GB предел, который вы видите, - это общая память виртуальной машины, в которой работает docker.

Если вы используете docker-для-windows или docker-для-mac, вы можете легко увеличить его с помощью значка кита в панели задач (перейдите в Настройки и т. д.)

Если вы используете VirtualBox позади, откройте VirtualBox, выберите и настройте назначенную память docker-machine.

см. это для Mac:

https://docs.docker.com/docker-for-mac/#memory

память По умолчанию Docker для Mac использует 2 ГБ оперативной памяти, выделенной из общего объема доступной памяти на компьютере Mac. Вы можете увеличить ОЗУ в приложении, чтобы получить более высокую производительность, установив это число выше (например, до 3) или ниже (до 1), Если вы хотите, чтобы Docker для Mac использовал меньше памяти.

Для Windows:

https://docs.docker.com/docker-for-windows/#advanced

память-изменение объема памяти, используемой виртуальной машиной Docker для Windows Linux


Если вы хотите изменить контейнер по умолчанию и используете Virtualbox, вы можете сделать это через командную строку / CLI:

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