web-dev-qa-db-ja.com

WindowsでDockerとAndroid Studio Emulatorの両方を実行するにはどうすればよいですか?

AndroidエミュレーターはHyper-Vと互換性がありませんが、DockerはHyper-Vに依存しています。同時に実行できるソリューションはありますか?

36
LovelyJuice

AndroidエミュレーターがHyper-Vで実行できるようになりました。 @tmanolatosの回答から、手順は次のとおりです。

  1. [スタート]メニューで次のTurn Windows Features on or offを検索します
  2. チェックボックスWindows Hypervisor platformenter image description here

  3. システムからサインアウトして再度サインインする必要がある場合があります

  4. DockerとAndroid Studio Emulatorは問題なく連携するはずです
21
usaganbi

私は同じ状況にあり、ほんの数分前に解決策を見つけたと思います。秘Theは、DockerエンジンをホストするためにVirtualBoxに依存することです。良いニュースは、Dockerコマンドのみを使用してこれをセットアップできることです!

Virtualbox Dockerマシンを作成する

以下のコマンドは、実際のDocker環境を実行するvirtualboxマシンを作成します。画像をダウンロードし、すべてをセットアップします。

> docker-machine create --driver virtualbox default

終了したら、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

セットアップシェル

マシンは作成されましたが、このリモートDockerインスタンスにアクセスするようにシェルを構成する必要があります。設定する環境変数は、docker-machine env defaultコマンドを使用して取得できます。出力は、使用しているシェル(以下の例のPowershell)に自動的に適合します。

> 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

このコマンドによって返される最後の数行は、単一のコマンドで環境変数を自動的に適用する方法を示していることに注意してください。ターミナルでコマンドを単純にコピー/貼り付けできます。

Dockerを実行します!

それでおしまい !これで、単純なdockerコマンドを実行して、すべてがスムーズに実行されることを確認できます!

> 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

出典: https://docs.docker.com/machine/get-started/

36
Sylfo

Hyper-Vを実行し続けたい場合は、標準のAndroidエミュレーターの代わりにMicrosoftの Visual Studio Emulator for Android を使用します。これはHyper-Vと互換性があります。

Microsoftのエミュレーターは、接続されたAndroidデバイスとして表示されます。

enter image description here

この記事 に詳細が記載されています。

8
HolySamosa

GoogleはHyper-Vと互換性のある新しいバージョンのエミュレータを提供したばかりのようです。 https://Android-developers.googleblog.com/2018/07/Android-emulator-AMD-processor-hyper-v.html を確認します-最終的に両方のネイティブWindows Dockerを(HyperVを介して) )およびAndroid Emulator running ...

ただし、ギャップに注意してください。

繰り返しますが、Intelベースのプロセッサを搭載した既存のWindowsユーザーの場合、Android Emulatorは、より高速で推奨されるIntel HAXM構成を引き続き使用します。AMDプロセッサを使用するユーザー、およびHyper- Vハイパーバイザー、これはAndroid Emulator。

8
tmanolatos

HolySamosaの答え は、残念ながら、MicrosoftがAndroidの新しいバージョンをエミュレータに説明しなくなったため、 here であるため、現在は実行できません。

そうではないが、マシュマロより新しいものを実行しているデバイスをターゲットにしたい場合は、Microsoftエミュレーターを使用することはできません。

2
Pranav