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 containers shut down after systemd start
  • Running SystemTap inside an unprivileged docker container
  • How to run the latest docker container I created?
  • Can't reach containers with new 1.10 DNS SD
  • Gitlab runner + autoscaling + scaled runner options
  • Winston logger - Is it possible to log the shut down of an application
  • 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.

  • Docker limit the size of a volume
  • Gitlab cross project dependency - python
  • AWS Mesosphere: parameters for docker daemon
  • Hostname resolution fails when running docker build from a docker container
  • How to add a device to all docker containers
  • How to know server's IP address where jenkins deploys and builds code
  • 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.