Как я могу запустить Docker и Android Studio Emulator в Windows?

Android-эмулятор несовместим с Hyper-V, но Docker полагается на Hyper-V. Есть ли какое-нибудь решение, которое я могу запустить одновременно?

Ответ 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

Источник: https://docs.docker.com/machine/get-started/

Ответ 2

Если вы хотите продолжить работу с Hyper-V, альтернативой стандартному эмулятору Android является Microsoft Visual Studio Emulator для Android, совместимый с Hyper-V.

Эмулятор Microsoft появится как подключенное устройство Android.

enter image description here

В этой статье приводится более подробная информация.

Ответ 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, вот шаги:

  1. В меню "Пуск" вы можете Turn Windows Features on or off следующие функции " Turn Windows Features on or off
  2. Установите флажок Windows Hypervisor platform enter image description here

  3. Вам может потребоваться выйти из системы и вернуться в

  4. Docker и Android Studio Emulators должны работать вместе без проблем