The state of the Docker ecosystem, as with any new and popular project, is frequently in flux, with new tools and software rising and falling in popularity. If you’re a developer who regularly works with Docker, you continually need to keep up to speed on the most effective tools available to you. Whether you’re just getting started or you’ve been involved in the community for years, keep reading to find a few useful tools for Docker developers that can help you get the most out of the platform.
Another tool that can help remove the “black box” feeling of Docker is Prometheus, an open-source framework originally built by Soundcloud that provides monitoring and analytics for Docker containers. Using the Prometheus query language, you can interrogate the multidimensional data that Prometheus collects and use it to create graphs or send alerts when certain conditions are met.
2. Docker Compose
Docker Compose is Docker’s deployment tool, and is great for developing, testing, and staging multi-container applications within Docker. It can manage the entire lifecycle of your application. To set up Docker Compose, all you need is a simple configuration file. You’re then able to run your application with a single command. However, Docker Compose is not an ideal tool for scaling an app to multiple servers. When it comes to production, you’ll want to find another tool for your CI environments.
Many Docker tools make use ofCoreOS, an open-source minimal operating system based on the Linux kernel that is intended for running container solutions like Docker. Applications run inside Docker containers, allowing them to be easily moved within a cluster. CoreOS also assembles a collection of other open-source tools that can be used in concert with Docker and can also serve as the foundation for the deployment of Kubernetes clusters.
4. Mesosphere DC/OS
Mesosphere DC/OS is an open-source project built on Apache Mesos. With Mesosphere DC/OS, you’ll have container orchestration capabilities such as automatic workload recovery, security, networking, service discovery, and storage. You can build, deploy, and run Docker containers and data services (like Spark or Kafka) in the cloud or on-premise without any scale or performance issues. Users can also integrate with CI/CD tools to accelerate the software release cycle from dev to production.
Created by ClusterHQ, Flocker is an open-source container data volume orchestrator. Flocker is portable, meaning it’s not tied to a particular server but can instead be used in any container in your cluster. You can run your entire database inside Docker containers and leverage persistent storage using Flocker. This tool allows you to migrate your data (and your containers) as hosts change. It integrates not only with Docker, but with Kubernetes and Mesos as well.
6. Cloud 66
A London-based company that specializes in “DevOps as a Service” for Docker, Cloud 66 enables you to build, deploy, and manage any application, on any server, via the cloud or on a server of your choosing. Cloud 66 attempts to simplify the complicated configuration management that goes on with deployment, letting you concentrate on development instead of deployment.
Kubernetes is an open-source container cluster orchestration system originally developed by Google. The project lets you schedule and run application containers on multiple clusters and defines pods that let you establish how your applications are deployed and managed. Some of Kubernetes’s popular features include automatic container sorting, self-healing after failures, and easier scaling and load balancing.
Developed internally at Spotify and used in production there since 2015, Helios is an open-source orchestration platform. Using Helios allows you to remove a single-point of failure since multiple Helios-master services can respond to HTTP requests simultaneously. One of the things that makes Helios unique is that it doesn’t have a lot of dependencies, meaning you can run on whatever network topology or operating system you prefer. It also scales well, running hundreds of machines or a single machine instance locally with the same efficiency.
Drone is a platform for continuous integration testing that integrates with other platforms like Github, Amazon, Heroku and Google AppEngine. The software lets you create custom containers, run tests while using your own computer and network, and set up workflows that automatically build and deploy your containers while you code. All Drone users have unlimited access to builds and public projects but need a monthly subscription in order to make their projects private.
Twistlock, an Israeli startup who offers a product with the same name, aims to improve on Docker’s own container security, which critics have described as “opaque,” by providing users tools for monitoring and inspecting containers during the entire container lifecycle. The two-pronged software offers the ability to both scan for code vulnerabilities and errors as well as threat detection and protection at runtime.
11. Weave Cloud
If you’re looking for a way to deploy, troubleshoot, monitor, and secure your Docker containers across hosts, Weave Cloud has you covered. Weave Cloud combines all of the Open Source Projects from Weaveworks into a flexible cloud native app service. With Weave Flux, deploy apps to the cloud continuously by integrating with your CI system, Docker registry and container orchestrator. Troubleshoot and explore your app topology in real-time using Weave Scope. Setup security policy and firewalls with Weave Net . And finally, monitor your app and infrastructure with Prometheus monitoring and Weave Cortex.