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.

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.


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.


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)


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.


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

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


Lo encontré debajo ~/.docker/machine/machines/default/config.json. Gracias 👍
Tarek N. Elsamni
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.