web-dev-qa-db-fra.com

Comment exécuter Docker et Android Studio Emulator sous Windows?)

Android Emulator est incompatible avec Hyper-V, mais Docker repose sur Hyper-V. Existe-t-il une solution pour les exécuter simultanément?

36
LovelyJuice

Les émulateurs Android peuvent désormais s'exécuter sur Hyper-V. De @tmanolatos répondre, voici les étapes:

  1. Dans le menu de démarrage, recherchez les Turn Windows Features on or off
  2. Cochez la case Windows Hypervisor platformenter image description here

  3. Vous devrez peut-être vous déconnecter de votre système et vous reconnecter.

  4. Docker et Android Studio Emulators devraient fonctionner ensemble sans problème
21
usaganbi

J'étais dans la même situation et je pense avoir trouvé une solution il y a une minute à peine. L'astuce consiste à faire appel à VirtualBox pour héberger le moteur Docker. Et la bonne nouvelle est que vous pouvez configurer cela en utilisant uniquement les commandes de docker!

Créer une machine Docker virtualbox

La commande ci-dessous créera une machine virtuelle qui exécutera l'environnement Docker actuel. Il téléchargera une image et configurera tout pour vous.

> docker-machine create --driver virtualbox default

Une fois l’opération terminée, vous pouvez vérifier si la machine a bien été créée à l’aide de la touche docker-machine ls commande.

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

Shell d'installation

La machine a été créée mais le shell doit encore ê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 commande. 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.

Run docker!

C'est ça ! Maintenant, vous pouvez exécuter une simple commande docker pour vous assurer que tout se passe 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/

36
Sylfo

Si vous souhaitez continuer à utiliser Hyper-V, une alternative à l'émulateur standard Android est Microsoft Emulateur Visual Studio pour Android =, compatible avec Hyper-V.

L'émulateur de Microsoft apparaîtra comme un périphérique connecté Android.

enter image description here

Cet article fournit plus de détails.

8
HolySamosa

Il semblerait que Google vienne de proposer une nouvelle version d’Emulator compatible avec Hyper-V. Vérifiez https://Android-developers.googleblog.com/2018/07/Android-emulator-AMD-processor-hyper-v.html - afin que vous puissiez enfin avoir Windows Docker natif (via HyperV ) et Android Emulateur en cours d'exécution ...

Attention à l'écart, cependant:

Encore une fois, pour les utilisateurs Windows existants dotés d’un processeur Intel, l’émulateur Android continuera à utiliser la configuration Intel HAXM plus rapide et recommandée. Pour ceux qui utilisent des processeurs AMD et ceux qui utilisent Hyper Hyperviseurs, cela devrait être un pas en avant passionnant pour commencer à utiliser l’émulateur Android.

8
tmanolatos

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

Ainsi, bien que je souhaite que ce ne soit pas le cas, vous ne pouvez plus utiliser l'émulateur Microsoft si vous souhaitez cibler des périphériques exécutant une version plus récente que Marshmallow.

2
Pranav