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.

Orchestration

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.

Garbage Collection

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.

Managing Containers

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.

Build-your-own PaaS

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.

Securing Containers

I’d be remiss to not recommend Peekr, Scalock’s image security scanner. Peekr examines each container image against a database of 5 million vulnerability signatures – supporting key programming languages like Python, Java, Javascript, PHP, Ruby and C++, in addition to Linux distribution packages (RPM and DEB). It also performs active inspection by running the image in a sandbox and looking for suspicious activity patterns. Peekr supports Docker Hub, CoreOS Quay, and Amazon ECR, and you can also scan images from V1 and V2 private registries.

====

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...