¿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?
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
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.
Este artículo proporciona más detalles.
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.
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.
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