Cómo aumentar la memoria de la máquina acoplable Mac

108

Soy nuevo en Docker e intento seguir este tutorial para configurar MemSQL desde una imagen de Docker: http://docs.memsql.com/4.0/setup/docker/ . Estoy en una Mac, y los usos del tutorial boot2dockerparecen haber quedado obsoletos.

La máquina virtual necesita 4 GB de memoria para funcionar. El tutorial especifica cómo hacer esto, boot2dockerpero no puedo encontrar una manera de hacerlo con la caja de herramientas docker-machine / docker.

Aquí está el comando que estoy usando y el error que obtengo al intentar seguir el tutorial sin alterar la configuración de boot2docker.

docker run --rm --net=host memsql/quickstart check-system
Error: MemSQL requires at least 4 GB of memory to run.
DJ Elbow
fuente

Respuestas:

111

cuando crea una máquina acoplable, puede designar el tamaño de la memoria:

docker-machine create -d virtualbox --virtualbox-memory 4096 default

Déjeme saber si esto ayuda.

BMW
fuente
Este definitivamente parece el lugar adecuado para ajustar la asignación de memoria. Sin embargo, sigue recibiendo el mismo error después de reiniciar esta máquina virtual. En el check-systemprograma ( github.com/memsql/memsql-docker-quickstart/blob/master/… ), veo estas líneas que determinarían este error. ONE_MB = 1024 ** 2, virtual_memory = psutil.virtual_memory(), if virtual_memory.total < ONE_MB * 3700: sys.stderr.write("Error: MemSQL requires at least 4 GB of memory to run.\n").
DJElbow
2
No pude hacer que esto funcionara alterando la configuración, pero eliminar y volver a crear la máquina acoplable vm como se muestra arriba resolvió el problema.
DJElbow
Claro, limpio de la segunda forma, parece que ya no funciona.
BMW
178

Puede hacerlo a través de la línea de comandos. Por ejemplo, para cambiar la máquina de la 1cpu / 2048MB RAM predeterminada, ejecute:

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

Luego puede verificar su configuración:

VBoxManage showvminfo default | grep Memory
VBoxManage showvminfo default | grep CPU

Y para docker-machine inspectinformar el estado correcto de las cosas, edite ~/.docker/machine/machines/default/config.jsonpara reflejar sus cambios.

Ran Rubinstein
fuente
1
Esto funcionó incluso cuando la GUI (versión 5.0.16) no lo hizo.
MikeF
6
Esta respuesta debería estar en la parte superior
nakajuice
5
Tenga en cuenta que después de que se ejecute el comando docker-machine inspectno mostrará ningún cambio. Sin embargo, si ejecuta docker stats, verá que se han aplicado los cambios.
slovit
@slovit y otros: luego puede modificar el config.jsonarchivo de la máquina acoplable para reflejar el tamaño real. Ejemplo: para default, como se usa en la solución de ejemplo, modifique el ~/.docker/machine/machines/default/config.jsonarchivo de modo que la subpropiedad Memory(y CPUsi también se modificó) bajo Driverse cambie a 4096. Luego, docker-machine inspectmostrará el valor adecuado.
ScriptAutomate
80

Para la versión 1.12.1 de Docker (compilación: 12133) y superior en macOS, existe una opción para cambiar la CPU y la RAM desde la interfaz de usuario y reiniciar la ventana acoplable. Puede encontrar las preferencias en la barra de herramientas. Adjuntar imágenes para mayor claridad.

Actualización: agosto de 2020: Preferencias -> Recursos (gracias a @ swedge218)

Paso anterior (probablemente desaparecido ahora): Preferencias -> Avanzado -> ajustar recursos -> Aplicar y reiniciar

https://www.dropbox.com/s/znltd1v4r00nfpu/Screenshot%202017-03-24%2012.12.58.png?dl=0

pestaña avanzada de Docker (memoria)

Srikar Appalaraju
fuente
3
Esto se ha movido a la pestaña Avanzado. Gracias por compartir esto.
GabLeRoux
Hombre, eso fue obvio y completamente poco intuitivo, ¡gracias!
AlienWebguy
¿Esos cambios también se aplican si utilizo bote con virtualbox? ¿O solo debería usar VBoxManage para ajustar el tamaño de la memoria?
Artur79
2
¿Existe una línea de comando equivalente a esto? Tengo Docker para mac pero aparentemente docker-machine ls no me da nada, así que no puedo modificar la máquina predeterminada.
Andrea Bergonzo
Son Preferencias -> Recursos a partir de hoy.
swedge218
42

Mantenedor de Docker Machine aquí. No creo que el ajuste config.jsonmanual funcione.

Sus dos opciones son crear la máquina con el --virtualbox-memoryconjunto o ajustar la memoria de la VM en la GUI de VirtualBox ("Configuración> Sistema" para esa VM, creo). Asegúrese de que la máquina esté apagada y debe haber un pequeño control deslizante que funcione.

EDITAR: Otra respuesta muestra que también puede hacer la operación en el lugar desde la línea de comando usando VBoxManage.

nathanleclaire
fuente
3
Esto funciona, pero tenga en cuenta que docker-machine inspectcontinuará informando la cantidad original de memoria incluso después de alterarla en la GUI de VirtualBox.
Tamlyn
2
Eso es cierto, con el fin de tener docker-machine inspectreportar la cantidad exacta, que haga tiene que editar config.json(que es donde inspectobtiene su información).
nathanleclaire
1
Hacerlo en Virtualbox es lo más simple
Niranjan Sonachalam
14

Otras respuestas mostraron cómo cambiar la memoria usando VBoxManage:

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

Para confirmar el cambio desde la línea de comando:

VBoxManage showvminfo default | grep Memory

O

docker-machine ssh default free
cpep
fuente
Hola cpep, ¿puedes editar tu respuesta y formatear los bloques de código correctamente?
TT.
4

fox xhyve (otra virtualización bajo macos) puede modificar la propiedad ~ / .docker / machine / default / config.json Driver / Memory (predeterminado a 1024) y luego reiniciar la máquina docker para aplicar los cambios

dchekmarev
fuente
Lo encontré debajo ~/.docker/machine/machines/default/config.json. Gracias 👍
Tarek N. Elsamni