it-swarm.com.de

Wie kann ich Docker und Android Studio Emulator unter Windows ausführen?

Android Emulator ist mit Hyper-V nicht kompatibel, Docker setzt jedoch auf Hyper-V. Gibt es eine Lösung, mit der ich sie gleichzeitig ausführen kann?

36
LovelyJuice

Android-Emulatoren können jetzt auf Hyper-V ausgeführt werden. Von @tmanolatos Antwort sind hier die Schritte:

  1. Suchen Sie im Startmenü nach dem folgenden Turn Windows Features on or off
  2. Aktivieren Sie das Kontrollkästchen Windows Hypervisor platformenter image description here

  3. Möglicherweise müssen Sie sich von Ihrem System abmelden und erneut anmelden

  4. Docker und Android Studio Emulators sollten problemlos zusammenarbeiten
21
usaganbi

Ich war in der gleichen Situation und ich glaube, ich bin erst vor einer Minute zu einer Lösung gekommen. Der Trick besteht darin, sich auf VirtualBox zu verlassen, um die Docker-Engine zu hosten. Und die gute Nachricht ist, dass Sie dies nur mit Docker-Befehlen einrichten können!

Erstellen Sie eine Virtualbox Docker-Maschine

Mit dem folgenden Befehl wird eine Virtualbox-Maschine erstellt, auf der die eigentliche Docker-Umgebung ausgeführt wird. Es wird ein Bild heruntergeladen und alles für Sie eingerichtet.

> docker-machine create --driver virtualbox default

Nach Abschluss können Sie überprüfen, ob das Gerät erfolgreich erstellt wurde, indem Sie docker-machine ls Befehl.

> 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 einrichten

Der Computer wurde erstellt, aber die Shell muss noch konfiguriert werden, um auf diese Remote-Docker-Instanz zuzugreifen. Die einzustellenden Umgebungsvariablen erhalten Sie mit dem docker-machine env default Befehl. Die Ausgabe wird automatisch an die von Ihnen verwendete Shell angepasst (PowerShell im folgenden Beispiel).

> 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

Beachten Sie, dass Sie in den letzten Zeilen, die von diesem Befehl zurückgegeben werden, erfahren, wie Sie die Umgebungsvariablen mit einem einzigen Befehl automatisch anwenden. Sie können die Befehle weiterhin einfach in Ihr Terminal kopieren/einfügen.

Führen Sie Docker aus!

Das ist es ! Jetzt können Sie einen einfachen Docker-Befehl ausführen, um sicherzustellen, dass alles reibungslos funktioniert!

> 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

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

36
Sylfo

Wenn Sie weiterhin Hyper-V ausführen möchten, ist eine Alternative zum standardmäßigen Android-Emulator Microsoft Visual Studio Emulator für Android , das mit Hyper-V kompatibel ist.

Der Microsoft-Emulator wird als verbundenes Android Gerät angezeigt.

enter image description here

Dieser Artikel bietet weitere Details.

8
HolySamosa

Offenbar hat Google gerade eine neue Version von Emulator angeboten, die mit Hyper-V kompatibel ist. Aktivieren Sie https://Android-developers.googleblog.com/2018/07/Android-emulator-AMD-processor-hyper-v.html - damit Sie endlich beide nativen Windows Docker (über HyperV) verwenden können ) und Android Emulator läuft ...

Beachten Sie jedoch die Lücke:

Für bestehende Windows-Benutzer mit einem Intel-basierten Prozessor verwendet der Android Emulator weiterhin die schnellere und empfohlene Intel HAXM-Konfiguration. Für diejenigen, die AMD-Prozessoren verwenden, und für diejenigen, die Hyper-basierte Prozessoren verwenden. V Hypervisoren, dies sollte ein aufregender Schritt nach vorne sein, um den Android Emulator zu verwenden.

8
tmanolatos

HolySamosas Antwort ist derzeit leider nicht realisierbar, da Microsoft keine neuen Versionen von Android zu seinem Emulator hinzufügt, wie erläutert hier .

Ich wünschte, dies wäre nicht der Fall, aber Sie können den Microsoft-Emulator nicht mehr verwenden, wenn Sie Geräte als Ziel verwenden möchten, auf denen etwas Neues als Marshmallow ausgeführt wird.

2
Pranav