Cómo asignar más memoria al contenedor docker


Como dice el título, estoy tratando de asignar más memoria a mi contenedor. Estoy usando una imagen de docker hub llamada "aallam / tomcat-mysql" en caso de que sea relevante.

Cuando lo inicio normalmente sin ningún indicador especial, hay un límite de memoria de 2 GB (a pesar de que leí que la memoria es ilimitada si no se establece)

Aquí están mis estadísticas docker

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

Intenté configurar la memoria explícitamente de esta manera, pero con los mismos resultados

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

He leído que tal vez la VM es lo que es restringiéndolo. Pero entonces, ¿por qué las estadísticas de docker muestran que el límite de tamaño del contenedor es de 2 GB?

Author: mohan08p, 2017-06-14

2 answers

Ese límite 2GB que ve es la memoria total de la máquina virtual en la que se ejecuta docker.

Si está utilizando docker-for-windows o docker-for-mac, puede aumentarlo fácilmente desde el icono de Ballena en la barra de tareas (vaya a Configuración, etc.)

Si está usando VirtualBox detrás, abra VirtualBox, Seleccione y configure la memoria asignada de docker-machine.

Vea esto para Mac:

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

MEMORIA Predeterminada, Docker para Mac está configurado para usar 2 GB de memoria de tiempo de ejecución, asignada de la memoria total disponible en su Mac. Puede aumentar la RAM en la aplicación para obtener un rendimiento más rápido configurando este número más alto (por ejemplo, a 3) o más bajo (a 1) si desea que Docker para Mac use menos memoria.

Para Windows:

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

Memoria: Cambie la cantidad de memoria que usa la máquina virtual Docker para Windows Linux

 58
Author: Robert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-14 00:20:35

Si desea cambiar el contenedor predeterminado y está utilizando Virtualbox, puede hacerlo a través de la línea de comandos / CLI:

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start
 7
Author: destroy-everything,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-28 02:05:26