Как назначить больше памяти контейнеру докеров
По мере чтения заголовка я пытаюсь назначить больше памяти для своего контейнера. Я использую изображение из концентратора докеров, называемого "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 - это то, что ограничивает его. Но тогда почему статистика докеров показывает, что ограничение размера контейнера составляет 2 ГБ?
Ответы
Ответ 1
То ограничение в 2GB
вы видите, является общей памятью виртуальной машины, в которой работает докер.
Если вы используете docker-for-windows или docker-for-mac, вы можете легко увеличить его с помощью значка "Кит" на панели задач, а затем перейти в "Настройки" → "Дополнительно":
![Docker Preferences]()
Но если вы используете VirtualBox, откройте VirtualBox, выберите и настройте память, назначенную докеру.
Смотрите это для 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 VM
Ответ 2
Если вы хотите изменить контейнер по умолчанию, и вы используете Virtualbox, вы можете сделать это через командную строку /CLI:
docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start
Ответ 3
Выделите максимальное количество памяти для вашей док-машины из (предпочтения докера → продвижение). Скриншот предварительных настроек. , Это установит максимальный предел потребления докером во время работы контейнеров. Теперь запустите ваше изображение в новом контейнере с флагом -m = 4g для 4 ГБ оперативной памяти или больше. например
docker run -m=4g {imageID}
Не забудьте применить изменения увеличения лимита поршня. Перезапустите докер и проверьте, увеличился ли предел памяти. Это может быть одним из факторов, по которым вы не видите увеличения лимита оперативной памяти в док-контейнерах.
Ответ 4
Как увеличить память, выделенную для Docker в Ubuntu??