¿Cómo puedo ejecutar Docker y Android Studio Emulator en Windows?


El emulador de Android es incompatible con Hyper-V, pero Docker se basa en Hyper-V. ¿Hay alguna solución que pueda ejecutarlos simultáneamente?

Author: LovelyJuice, 2017-03-31

4 answers

Yo estaba en la misma situación y creo que llegué a una solución hace un minuto. El truco es confiar en VirtualBox para alojar el motor Docker. Y la buena noticia es que puede configurar esto utilizando solo comandos docker !

Crear virtualbox Docker machine

El siguiente comando creará una máquina virtualbox que ejecutará el entorno Docker real. Descargará una imagen y configurará todo por ti.

> docker-machine create --driver virtualbox default

Una vez que haya terminado, puede comprobar si la máquina se ha creado correctamente usando el comando docker-machine ls.

> docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
default   -        virtualbox   Running   tcp://192.168.99.100:2376           v17.04.0-ce

Setup shell

La máquina ha sido creada pero el shell todavía necesita ser configurado para acceder a esta instancia de Docker remoto. Las variables de entorno a establecer se pueden obtener usando el comando docker-machine env default. La salida se adaptará automáticamente al shell que esté utilizando (Powershell en el ejemplo siguiente).

> docker-machine env
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.99.100:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\DummyUser\.docker\machine\machines\default"
$Env:DOCKER_MACHINE_NAME = "default"
$Env:COMPOSE_CONVERT_WINDOWS_PATHS = "true"
# Run this command to configure your shell:
# & "C:\Program Files\Docker\Docker\Resources\bin\docker-machine.exe" env | Invoke-Expression

Tenga en cuenta que las últimas líneas devueltas por este comando le indicarán cómo aplicar automáticamente las variables de entorno con un solo comando. Todavía puede simplemente copiar / pegar los comandos en su terminal.

Ejecutar docker !

¡Eso es todo ! Ahora, puede ejecutar un simple comando docker para asegurarse de que todo funciona sin problemas !

> docker run busybox echo hello world
 Unable to find image 'busybox' locally
 Pulling repository busybox
 e72ac664f4f0: Download complete
 511136ea3c5a: Download complete
 df7546f9f060: Download complete
 e433a6c5b276: Download complete
 hello world

Fuente: https://docs.docker.com/machine/get-started/

 30
Author: Sylfo,
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-05-10 12:25:46

Si quieres seguir ejecutando Hyper-V, una alternativa al emulador estándar de Android es el emulador de Microsoft Visual Studio para Android , que es compatible con Hyper-V.

El emulador de Microsoft aparecerá como un dispositivo Android conectado.

introduzca la descripción de la imagen aquí

Este artículo proporciona más detalles.

 6
Author: HolySamosa,
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-19 18:19:27

Parece que Google acaba de ofrecer una nueva versión del Emulador que es compatible con Hyper-V. Check https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html- por lo que finalmente puede tener tanto nativo de Windows Docker (a través de HyperV) y Android Emulador de ejecución...

Cuidado con la brecha, sin embargo:

De nuevo, para los usuarios de Windows existentes que tienen un procesador basado en Intel, el Emulador de Android continuará utilizando el más rápido y configuración recomendada de Intel HAXM. Para aquellos que usan procesadores AMD y aquellos que usan hipervisores Hyper-V, este debería ser un emocionante paso adelante para comenzar a usar el emulador de Android.

 4
Author: tmanolatos,
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-09-25 07:27:54

La respuesta de HolySamosa desafortunadamente no es factible ahora porque Microsoft ya no está agregando nuevas versiones de Android a su emulador como se explica aquí.

Así que aunque desearía que no fuera el caso, ya no puedes usar el emulador de Microsoft si quieres apuntar a dispositivos que ejecutan algo más nuevo que Marshmallow.

 2
Author: Pranav,
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-03-22 15:16:32