Book Image

Extending Docker

By : Russ McKendrick
Book Image

Extending Docker

By: Russ McKendrick

Overview of this book

With Docker, it is possible to get a lot of apps running on the same old servers, making it very easy to package and ship programs. The ability to extend Docker using plugins and load third-party plugins is incredible, and organizations can massively benefit from it. In this book, you will read about what first and third party tools are available to extend the functionality of your existing Docker installation and how to approach your next Docker infrastructure deployment. We will show you how to work with Docker plugins, install it, and cover its lifecycle. We also cover network and volume plugins, and you will find out how to build your own plugin. You’ll discover how to integrate it with Puppet, Ansible, Jenkins, Flocker, Rancher, Packer, and more with third-party plugins. Then, you’ll see how to use Schedulers such as Kubernetes and Amazon ECS. Finally, we’ll delve into security, troubleshooting, and best practices when extending Docker. By the end of this book, you will learn how to extend Docker and customize it based on your business requirements with the help of various tools and plugins.
Table of Contents (15 chapters)


As you can see, we only discussed how Docker will interact with the plugin service that you have written and didn't cover how you can actually write a plugin service.

The reason for this is that due to the plugin service that we would have had to cover, we would also need the following features:

  • To be written in Go

  • To be able run as a daemon

  • To contain an HTTP server bound to a Unix socket or TCP port

  • To be able to accept and answer requests made to it by the Docker daemon

  • To translate the API requests that Docker is making to a filesystem or network service

As you can imagine, this has the potential of being an entire book by itself.

Also, building your own plugin is quite an undertaking as you already have to have the foundations of a service written. While it seems like there are a lot of Docker plugins out there, searching GitHub for Docker plugins only returns a few dozen plugins that have been written to use the Docker plugin API.

The other projects returned are all tools or plugins...