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

Android Emulator is incompatible with Hyper-V, but Docker relies on Hyper-V.
Is there any solution that I can run them simultaneously´╝č

  • Best way to stop Docker container in Jenkins
  • Minor change in ansible playbook does not get updated in target host
  • Cannot install mysql-server in docker
  • Docker cross compile for ARM without hard-float
  • docker runs image on wrong port
  • Docker Automated build downloading private jars from a Maven Sonatype Nexus repository
  • npm install fails in Jenkins pipeline
  • node-serialport failing on alpine linux
  • PDOException SQLSTATE[HY000] [2002] No such file or directory. Whilst running laravel via isolated docker containers
  • Monit not clearing the pid file and restarting a process when the process becomes a zombie
  • Import a heroku postgres database dump into a docker database container with boot2docker
  • Swarm: Get Node Ip and Container IP from service
  • 2 Solutions collect form web for “How can I run both Docker and Android Studio Emulator on Windows?”

    I was in the same situation and I think I came to a solution just a minute ago. The trick is to rely on VirtualBox to host the Docker engine. And the good news is that you can setup this using only docker commands !

    Create virtualbox Docker machine

    The command below will create a virtualbox machine that will run the actual Docker environment. It will download an image and setup everything for you.

    > docker-machine create --driver virtualbox default
    

    Once it has finished, you can check if the machine has been successfully created using the docker-machine ls command.

    > docker-machine ls
    NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
    default   -        virtualbox   Running   tcp://192.168.99.100:2376           v17.04.0-ce
    

    Setup shell

    The machine has been created but the shell still need to be configured to access this remote Docker instance. The environment variables to set can be obtained using the docker-machine env default command. The output will be automatically adapted to the shell you are using (Powershell in the example below).

    > 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
    

    Note that the last few lines returned by this command will tell you how to automatically apply the environment variables with a single command. You still can simply copy/paste the commands in your terminal.

    Run docker !

    That’s it ! Now, you can run a simple docker command to make sure everything runs smoothly !

    > 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
    

    Source: https://docs.docker.com/machine/get-started/

    If you want to keep running Hyper-V, an alternative to the standard Android emulator is Microsoft’s Visual Studio Emulator for Android, which is compatible with Hyper-V.

    The Microsoft’s emulator will appear as a connected Android device.

    enter image description here

    This article provides more details.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.