Six Free Tools to Make Your Container Deployments Easier
Like many of you working in Docker-space, over time I’ve come across a ton of third-party tools that improve management, cleanup, orchestration, development and other container processes.
I’ve compiled a list of (I think) some of the lesser-known tools that I have found to be particularly useful and easy to use, and sometimes better than equivalent, more well-known tools.
You’ve probably heard of Docker Compose, but I personally prefer to use Azk for dev environment orchestration. It has its own manifest file format (Azkfile.js), which makes it very easy to spin up containers for web application development and get to work. Compared with Docker Compose, it also has several cool features like an integrated HTTP load balancer and a nice “provisioning” feature with which you can manipulate images without rebuilding them.
Development and Deployment
Nowadays many people are using HashiCorp's Vagrant with Docker to set up development environments. Even more are still using Vagrant with virtual machines. But have you heard of Otto, Vagrant’s successor?
HashiCorp is really trying to up its game with Otto, by adding deployment automation to the mix. This means you can use Otto to develop, deploy and manage your Docker-based applications and services.
Otto also has a different approach to creating development environments by dropping the old Vagrantfile that prescribed what an application required instead of simply detecting what your application is (for example, what programming language it is written in). It automatically detects your application's dependencies and builds a suitable environment. So you don't need to configure anything… unless you really want to.
If you’ve been concerned about diminishing disk space when working on container images on Docker, Spotify has the solution: the docker-gc project on GitHub. This tool contains a script that removes all containers (and their images) that have been exited after an hour’s time. docker-gc is a simple shell script, so you can just download and run it. The executable file can be found here.
Dry is a cool CLI for managing containers and images. The terminal application is a good alternative to Docker-cli, especially when you are repeatedly executing commands on existing containers and images. It’s also a worthy tool to monitor Docker containers from a terminal.
Cloud Foundry, Openshift and other open-source initiatives have been popular tools for those who want to run their PaaS. But now you can build your own PaaS around Docker. Tools such as Deis, Flynn, Tsuru, Dawn are pushing this trend.
I prefer Dokku, which is labeled as the smallest PaaS implementation you’ve ever seen. Dokku installs on any hardware, and you can push Heroku-compatible applications to it via Git, which will build using Heroku buildpacks and then run in isolated containers.
Hopefully you find my recommendations helpful. If you think I overlooked other cool tools that you use, feel free to share your list of favorites by commenting below...