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)

Multi-host networking with overlays


Docker released its production-ready multi-host overlay networking functionality in Docker 1.9. Before this release, the functionality was classed as experimental.

Note

An overlay network is a computer network that is built on top of another network. Nodes in the overlay network can be thought of as being connected by virtual or logical links, each of which corresponds to a path, perhaps through many physical links, in the underlying network:

https://en.wikipedia.org/wiki/Overlay_network

In Docker terms, it allows containers on one Docker host to talk directly to containers on another Docker host as if they were on the same host, as shown in the following screenshot:

As you can see from the preceding diagram, there are some prerequisites. Firstly, you must be running a Docker Swarm cluster. Here we have a Docker Swarm cluster made up of two nodes and a master, all of which have the overlay network configured. You will also need a Service Discovery service...