Vagrant and Docker with Microservices

I have a set of microservices whose deployment I would like to automate and standardize using Docker. I have been reading about Vagrant and I have a couple of questions on using Vagrant for setting up the environment.

  1. I understand that Vagrant is used for setting up VM’s and Docker for creating containers. What is the benefit of running a Docker container inside a VM? Doesn’t it defeat the purpose of using Docker in the first place?

  2. Ember CLI build killed
  3. docker: data volumes container
  4. Is there a way to setup bluemix as $DOCKER_HOST and use it with the docker binary?
  5. Understanding docker from a layman point of view
  6. Load balance docker swarm
  7. Docker shows no containers or images after system reboot
  8. How is the interaction between Vagrant and Docker happening? Does the VM that I create using Vagrant contain Docker running inside it?

  • docker swarm init on windows container output nothing
  • Docker container access to local DNS
  • How is the rootfs size of docker container is decided?
  • Windows Containers, Console host WCF
  • Recursive while loop in docker cmd
  • Spark SPARK_PUBLIC_DNS and SPARK_LOCAL_IP on stand-alone cluster with docker containers
  • One Solution collect form web for “Vagrant and Docker with Microservices”

    Answer for first question:

    Vagrant is a way to quickly setup docker based container on your local machine. To run docker containers, you need linux kernel which you can provide either by running container on your physical machine. But having vagrant’s provisioned vm and running containers will benefit in following way

    1. You can safely remove containers anytime.
    2. You can automate all docker commands via vagrant script.

    Answer to second question:

    Vagrant directly communicates with docker containers. Each docker container on VM gets their own IP and space. You may modify vagrant file for port forwarding per your machine need.

    Hope it helps.

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