AndroidエミュレーターはHyper-Vと互換性がありませんが、DockerはHyper-Vに依存しています。同時に実行できるソリューションはありますか?
私は同じ状況にあり、ほんの数分前に解決策を見つけたと思います。秘Theは、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 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
Hyper-Vを実行し続けたい場合は、標準のAndroidエミュレーターの代わりにMicrosoftの Visual Studio Emulator for Android を使用します。これはHyper-Vと互換性があります。
Microsoftのエミュレーターは、接続されたAndroidデバイスとして表示されます。
この記事 に詳細が記載されています。
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。
HolySamosaの答え は、残念ながら、MicrosoftがAndroidの新しいバージョンをエミュレータに説明しなくなったため、 here であるため、現在は実行できません。
そうではないが、マシュマロより新しいものを実行しているデバイスをターゲットにしたい場合は、Microsoftエミュレーターを使用することはできません。