Using Docker for local development replacing Vagrant

I know there are a ton of hits on this topic, and I have spend some time looking at them, but just can not make a good decision.

I work on a Windows machine, and use Vagrant for development. I start my server, edit my files in the mounted /vagrant directory, hit F5 and see my changes. When I am done developing I upload the code to my server.

  • Docker : How to access the Dockerfile of an image?
  • Rename file in docker container
  • How to mimic --device option in docker run in kubernetes
  • Pass container IP across containers for config file
  • Possible to use Docker machine with continuous integration tools?
  • Docker compose error with docker-engine version
  • Problem is, I want to have the infrastructure of my server in “code” so a solution is docker with docker-compose. Now I do not know if there is a way to work with this like I work with Vagrant. It seems that I have to keep rebuilding my containers for for the changes to apply.

    I don’t know if I am doing something wrong, or is Docker really a product to use with ready to go code.

  • What are the possibilities to debug a docker swarm?
  • how many docker containers should a java web app w/ database have?
  • Install docker 1.2 on Amazon Linux AMI release 2014.03
  • Docker custom dns resolve among containers
  • Can't call btrfs send from another program
  • Run sonarqube scanner with gitlab ci
  • One Solution collect form web for “Using Docker for local development replacing Vagrant”

    I want to have the infrastructure of my server in “code” so a solution is docker with docker-compose.
    It seems that I have to keep rebuilding my containers for for the changes to apply.

    As long as your docker-compose is mounting the host folder where your code is, you wouldn’t need to rebuild your container “for the changes to apply”: that container would see any code changes immediately, without having to restart it.

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