如何在 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
如果您想保留 运行 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 的回答,以下是步骤:
在开始菜单中搜索 Turn Windows Features on or off
勾选方框Windows Hypervisor platform
:
您可能需要退出系统并重新登录
Docker 和 Android Studio 模拟器应该可以正常工作
有关详细信息,请参阅 Configure VM acceleration 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
如果您想保留 运行 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 的回答,以下是步骤:
在开始菜单中搜索
Turn Windows Features on or off
勾选方框
Windows Hypervisor platform
:您可能需要退出系统并重新登录
Docker 和 Android Studio 模拟器应该可以正常工作
有关详细信息,请参阅 Configure VM acceleration on Windows。