如何在Windows上运行Docker和Android Studio Emulator?

Lov*_*ice 36 windows hyper-v docker android-studio

Android Emulator与Hyper-V不兼容,但Docker依赖于Hyper-V.有没有可以同时运行它们的解决方案?

小智 36

我处于相同的情况,我想我只是在一分钟前找到了解决方案.诀窍是依靠VirtualBox来托管Docker引擎.好消息是你可以使用docker命令设置它!

创建virtualbox Docker机器

下面的命令将创建一个运行实际Docker环境的虚拟机器.它将下载图像并为您设置一切.

> docker-machine create --driver virtualbox default
Run Code Online (Sandbox Code Playgroud)

完成后,您可以使用该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
Run Code Online (Sandbox Code Playgroud)

安装shell

已创建计算机,但仍需要配置shell以访问此远程Docker实例.可以使用该docker-machine env default命令获取要设置的环境变量.输出将自动适应您正在使用的shell(下例中的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
Run Code Online (Sandbox Code Playgroud)

请注意,此命令返回的最后几行将告诉您如何使用单个命令自动应用环境变量.您仍然可以直接在终端中复制/粘贴命令.

运行码头!

而已 !现在,您可以运行一个简单的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
Run Code Online (Sandbox Code Playgroud)

资料来源:https://docs.docker.com/machine/get-started/

  • 我假设您必须安装VirtualBox.这样做之后你关闭了Hyper V吗?你还能运行Windows容器吗?这适用于Docker for Windows还是仅适用于Docker Toolbox? (3认同)

小智 23

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

  1. 在开始菜单中搜索以下内容 Turn Windows Features on or off
  2. 选中复选框 Windows Hypervisor platform 在此输入图像描述

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

  4. Docker和Android Studio仿真器应该一起工作,没有问题

  • 那么我们就无法运行 docker 老兄 (7认同)
  • 你好,android studio 仍然尝试使用 HAXM。我怎样才能改变这一点? (4认同)

tma*_*tos 9

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

但要注意差距:

同样,对于拥有基于Intel处理器的现有Windows用户,Android Emulator将继续使用更快且推荐的Intel HAXM配置.对于那些使用AMD处理器以及使用Hyper-V虚拟机管理程序的人来说,这应该是开始使用Android Emulator的一个令人兴奋的进步.


Hol*_*osa 8

如果你想继续运行Hyper-V,标准Android模拟器的替代品是微软的Android Visual Studio模拟器,它与Hyper-V兼容.

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

在此输入图像描述

本文提供了更多详细信息.


Pra*_*nav 6

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

不幸的是,HolySamosa 的答案现在不可行,因为 Microsoft 不再像此处解释的那样将新版本的 Android 添加到他们的模拟器中。