Docker Inc. recently unveiled an exciting new open source project called Libswarm designed to make the using containers in the public cloud a lot easier.
Rackspace has been working closely with both Docker and core Docker contributors to make this project possible and accelerate users’ ability to confidently put their containers in the cloud.
The idea behind Libswarm is simple: it works directly with the existing Docker CLI and offers users an opportunity to route new containers directly to new cloud instances instead of to a users’ local machine. In addition to working on the Libswarm code, Rackspace has created a backend plug-in for Libswarm that will help users launch Rackspace Cloud Servers right from the Docker CLI. The ability to use the Docker CLI to start Rackspace Cloud Servers automatically and then fill those new Cloud Servers with containers makes it easier than ever to incorporate the cloud in application development and deployment.
Scaling your Docker container installation is simple with Libswarm. As you start to fill up your Cloud Servers, more can be automatically created. When you remove your containers to vacate a Cloud Server, it is automatically stopped so you only pay for what you’re using.
We made this contribution to Libswarm, as well as other enhancements, as contributions to the Docker open source project. We chose to be part of this community rather than creating our own proprietary API for the creation and management of Docker containers. Creating yet another proprietary API does not help users achieve the dream of being able to set up containers once and deploy them anywhere. Libswarm makes it possible to launch containers locally, to bare metal servers or to the cloud using a consistent set of tools. You decide the best place to run them.
This is a big step forward. In the past, to run Docker containers on a remote Cloud Server required many steps. You had to log into that cloud server, install Docker, push the image to a Docker Registry that both your machines have access to and then pull the image down to your Cloud Server. Then, once the Cloud Server was ready to go, you could finally launch the container. Phew!
Using Docker with Libswarm, you only configure Libswarm once, and create all of your Docker images locally – Libswarm deals with the creation and orchestration of getting your container started. You can still do the same cool stuff like an attach command to interact with the process running in your container.
What’s even more exciting is that Libswarm will allow you to talk to multiple cloud backends at the same time. So if you want some containers to run on one cloud, and other containers to run on another, you can do that. It’s consistent with Rackspace’s vision of a planet-scale cloud, where users can match their needs to any one of a variety of compute options—a vision that we’ve pursued through our involvement in OpenStack and in supporting other open technologies.
For more information about using Docker and swarmd with the Rackspace Open Cloud, find us on Freenode IRC in #docker-rackspace.