如何在 Windows 上 运行 Docker 和 Android Studio 模拟器?

How can I run both Docker and Android Studio Emulator on Windows?

Android 仿真器与 Hyper-V 不兼容,但 Docker 依赖于 Hyper-V。 有什么办法可以同时运行他们吗?

我遇到了同样的情况,我想我一分钟前就找到了解决方案。诀窍是依靠 VirtualBox 来托管 Docker 引擎。好消息是您可以仅使用 docker 命令来设置它!

创建 virtualbox Docker 机器

下面的命令将创建一个 virtualbox 机器,它将 运行 实际的 Docker 环境。它将下载图像并为您设置所有内容。

> 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

设置shell

机器已创建,但 shell 仍需要配置才能访问此远程 Docker 实例。可以使用docker-machine env default 命令获取要设置的环境变量。输出将自动适应您正在使用的shell(下例中的电源shell)。

> 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

请注意,此命令返回的最后几行将告诉您如何使用单个命令自动应用环境变量。您仍然可以简单地 copy/paste 终端中的命令。

运行 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/

如果您想保留 运行 Hyper-V,标准 Android 模拟器的替代方案是 Microsoft 的 Visual Studio Emulator for Android,它与 Hyper-V 兼容。

Microsoft 的模拟器将显示为已连接的 Android 设备。

This article 提供了更多详细信息。

虽然我希望情况并非如此,但如果您想定位设备 运行 任何比 Marshmallow 更新的设备,您就不能再使用 Microsoft 模拟器了。

HolySamosa's answer is unfortunately not feasible now because Microsoft is no longer adding new versions of Android to their emulator as explained here.

Google 似乎刚刚提供了与 Hyper-V 兼容的新版模拟器。检查 https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html - 所以你最终可以同时拥有本机 Windows Docker(通过 HyperV)和 Android 模拟器 运行...

不过请注意差距:

Again, for existing Windows users who have an Intel-based processor, the Android Emulator will continue to use the faster and recommended Intel HAXM configuration. For those using AMD processors, and those who use Hyper-V hypervisors, this should be an exciting step forward to start using the Android Emulator.

Android 模拟器现在可以在 Hyper-V 上 运行。来自@tmanolatos 的回答,以下是步骤:

  1. 在开始菜单中搜索 Turn Windows Features on or off

  2. 勾选方框Windows Hypervisor platform:

  3. 您可能需要退出系统并重新登录

  4. Docker 和 Android Studio 模拟器应该可以正常工作

有关详细信息,请参阅 Configure VM acceleration on Windows