-
Why not just install the web apps straight on the OS, and use NGINX config to direct traffic appropriately, based on the host name?
Because then you have your temporary piece of work leaving permanent files on your OS.
Over time this cruft is messy, and when you're working with multiple web apps it's hard to divine which left what where.
Docker is fantastic for local development in the same way virtualenv is. It can namespace and contain all of the files, processes and configuration for an app.
When you're done with it... just blow it away.
Then if you're deploying it can be a dream there too. Maintain your own company image repo and have your CI push docker images into it. Later... just deploy a pushed image to whatever container cluster you happen to run in prod, be it Kubernetes, Mesos, etc.
The experience remains consistent from dev through to prod, and the only thing we really gained is better management.
But that's ace, better management is what was missing.
-
I've always just fired up a VM if I've wanted isolation.
I used docker once, to run a few lines of python that someone had packaged as a docker container, and it ended up eating all 5GB of spare space on my AWS instance and I never bothered to figure out why.
Anyway, what you describe sounds good. Especially for CI and deployment.
Not sure how well it would work for local development. Would you include the container config in your repo, and rebuild the container every time you pull from master?
I didn't like docker.
Why not just install the web apps straight on the OS, and use NGINX config to direct traffic appropriately, based on the host name?