After spending a lot of money running our dev environment on AWS, we bought a single server for us to play with our application as well as other applications we wanted to test. With three developers and a user guy unleashed on a single machine, the saying too many cooks (no offence to the Chef guys) spoil the kitchen cannot be more true!
We wanted to install multiple applications along with their set of dependencies. Doing so has many a times left me with one messy dev box due to conflicting dependencies etc. Docker’s natural use case is to segregate apps into their respective containers.
Setting up a fresh environment is a breeze now. No more continuos toggling between a installation tutorial and terminal to do the set up. Just run docker build, have a coffee break and when you get back your environment is ready.
Ease of un-installing apps
Instead of undoing installation steps, just removing the docker image cleanly removes the app along with it’s dependencies without impacting other apps.
DRY principle here!
- Building docker images and pushing to repository takes considerable time.
- The build or repository push breaks down at times due to connectivity issues. Thankfully re-running doesn’t start from inception. I later found that the push was quite slow from India, it was all good when I tried push from our dev server in US.
- Significant disk space usage if you don’t cleanup old images.
Want to check out a tutorial?
I published a Docker tutorial here.