Comment puis-je exécuter à la fois Docker et Android Studio Emulator sur Windows?

L'émulateur Android est incompatible avec Hyper-V, mais Docker repose sur Hyper-V. Y at-il une solution que je peux les exécuter simultanément?

24
demandé sur LovelyJuice 2017-03-31 09:36:48

4 réponses

J'étais dans la même situation et je pense que j'ai trouvé une solution il y a une minute. L'astuce consiste à compter sur VirtualBox pour héberger le moteur Docker. Et les bonnes nouvelles sont que vous pouvez configurer cela en utilisant uniquement les commandes docker !

Créer une machine Docker virtualbox

La commande ci-dessous va créer une machine virtualbox qui exécutera l'environnement Docker réel. Il va télécharger une image et tout configurer pour vous.

> docker-machine create --driver virtualbox default

Une fois terminé, vous pouvez vérifier si la machine a été créé avec succès à l'aide de la commande 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

Configuration shell

La machine a été créée mais le shell doit toujours être configuré pour accéder à cette instance Docker distante. Les variables d'environnement à définir peuvent être obtenues à l'aide de la commande docker-machine env default. La sortie sera automatiquement adaptée au shell que vous utilisez (Powershell dans L'exemple ci-dessous).

> 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

Notez que les dernières lignes renvoyées par cette commande vous indiqueront comment appliquer automatiquement les variables d'environnement avec une seule commande. Vous pouvez toujours simplement copier / coller les commandes dans votre terminal.

Exécutez le panneau !

C'est ça ! Maintenant, vous pouvez exécuter une simple commande docker pour vous assurer que tout fonctionne bien !

> 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

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

30
répondu Sylfo 2017-05-10 12:25:46

Si vous voulez continuer à exécuter Hyper-V, une alternative à L'émulateur Android standard est L'émulateur Visual Studio de Microsoft pour Android, qui est compatible avec Hyper-V.

L'émulateur de Microsoft apparaîtra comme un appareil Android connecté.

entrez la description de l'image ici

Cet article fournit plus de détails.

6
répondu HolySamosa 2017-06-19 18:19:27

Il semble que Google vient d'offrir une nouvelle version de L'émulateur qui est compatible avec Hyper - V. Vérifier https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html- ainsi, vous pouvez enfin avoir à la fois Docker Windows natif (via HyperV) et émulateur Android en cours d'exécution...

Attention à l'écart, cependant:

Encore une fois, pour les utilisateurs Windows existants qui ont un processeur Intel, L'émulateur Android continuera à utiliser le plus rapide et configuration Intel HAXM recommandée. Pour ceux qui utilisent des processeurs AMD, et ceux qui utilisent Hyper - V hyperviseurs, cela devrait être un pas en avant passionnant pour commencer à utiliser L'émulateur Android.

4
répondu tmanolatos 2018-09-25 07:27:54

La réponse de HolySamosa n'est malheureusement pas réalisable maintenant car Microsoft n'ajoute plus de nouvelles versions D'Android à leur émulateur comme expliqué ici.

Donc, même si je souhaite que ce ne soit pas le cas, vous ne pouvez plus utiliser L'émulateur Microsoft si vous voulez cibler les périphériques exécutant quelque chose de plus récent que Marshmallow.

2
répondu Pranav 2018-03-22 15:16:32