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?
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
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é.
Cet article fournit plus de détails.
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.
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.