Android-эмулятор несовместим с Hyper-V, но Docker полагается на Hyper-V. Есть ли какое-нибудь решение, которое я могу запустить одновременно?
Как я могу запустить Docker и Android Studio Emulator в Windows?
Ответ 1
Я был в той же ситуации, и я думаю, что пришел к решению всего минуту назад. Хитрость заключается в том, чтобы полагаться на VirtualBox для размещения механизма Docker. И хорошей новостью является то, что вы можете настроить это, используя только команды докеров!
Создать виртуальную машину Docker
В приведенной ниже команде будет создана виртуальная машина, которая будет запускать реальную среду 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
Настройка оболочки
Машина была создана, но оболочка все еще должна быть настроена для доступа к этому удаленному экземпляру 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
Ответ 2
Если вы хотите продолжить работу с Hyper-V, альтернативой стандартному эмулятору Android является Microsoft Visual Studio Emulator для Android, совместимый с Hyper-V.
Эмулятор Microsoft появится как подключенное устройство Android.
В этой статье приводится более подробная информация.
Ответ 3
Похоже, что Google только что предложила новую версию эмулятора, совместимую с Hyper-V. Проверьте https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html - чтобы вы могли, наконец, запустить как встроенный Windows Docker (через HyperV), так и Android-эмулятор.,
Разумеется, разрыв:
Опять же, для существующих пользователей Windows, у которых есть процессор на базе Intel, эмулятор Android продолжит использовать более быструю и рекомендуемую конфигурацию Intel HAXM. Для тех, кто использует процессоры AMD, и тех, кто использует гипервизоры Hyper-V, это должно стать захватывающим шагом вперед, чтобы начать использовать Android-эмулятор.
Ответ 4
Ответ HolySamosa, к сожалению, сейчас невозможен, поскольку Microsoft больше не добавляет новые эмуляторы Android в свой эмулятор, как объясняется здесь.
Поэтому, хотя мне жаль, что это не так, вы больше не сможете использовать эмулятор Microsoft, если хотите настроить таргетинг на устройства, работающие с чем-то новым, чем Marshmallow.
Ответ 5
Теперь эмуляторы Android могут работать на Hyper-V. Из ответа @tmanolatos, вот шаги: