Introduction
In previous chapters, you ran multiple Docker containers with Docker Compose and Docker Swarm. In addition, you monitored the metrics from containers and collected the logs. Docker allows you to manage the complete life cycle of containers, including networking, volumes, and process isolations. If you want to customize the operations of Docker to work with your custom storage, network provider, or authentication server, you need to extend the capabilities of Docker.
For instance, if you have a custom cloud-based storage system and you want to mount it to your Docker containers, you can implement a storage plugin. Similarly, you can authenticate your users from your enterprise user management system using authorization plugins and allow them to work with Docker containers.
In this chapter, you will learn how to extend Docker with its plugins. You will start with plugin management and APIs, followed by the most advanced and requested plugin types: authorization,...