github.com/hustcat/docker@v1.3.3-0.20160314103604-901c67a8eeab/docs/extend/plugins.md (about) 1 <!--[metadata]> 2 +++ 3 title = "Extending Engine with plugins" 4 description = "How to add additional functionality to Docker with plugins extensions" 5 keywords = ["Examples, Usage, plugins, docker, documentation, user guide"] 6 [menu.main] 7 parent = "engine_extend" 8 weight=-1 9 +++ 10 <![end-metadata]--> 11 12 # Understand Engine plugins 13 14 You can extend the capabilities of the Docker Engine by loading third-party 15 plugins. This page explains the types of plugins and provides links to several 16 volume and network plugins for Docker. 17 18 ## Types of plugins 19 20 Plugins extend Docker's functionality. They come in specific types. For 21 example, a [volume plugin](plugins_volume.md) might enable Docker 22 volumes to persist across multiple Docker hosts and a 23 [network plugin](plugins_network.md) might provide network plumbing. 24 25 Currently Docker supports volume and network driver plugins. In the future it 26 will support additional plugin types. 27 28 ## Installing a plugin 29 30 Follow the instructions in the plugin's documentation. 31 32 ## Finding a plugin 33 34 The following plugins exist: 35 36 * The [Blockbridge plugin](https://github.com/blockbridge/blockbridge-docker-volume) 37 is a volume plugin that provides access to an extensible set of 38 container-based persistent storage options. It supports single and multi-host Docker 39 environments with features that include tenant isolation, automated 40 provisioning, encryption, secure deletion, snapshots and QoS. 41 42 * The [Convoy plugin](https://github.com/rancher/convoy) is a volume plugin for a 43 variety of storage back-ends including device mapper and NFS. It's a simple standalone 44 executable written in Go and provides the framework to support vendor-specific extensions 45 such as snapshots, backups and restore. 46 47 * The [Flocker plugin](https://clusterhq.com/docker-plugin/) is a volume plugin 48 which provides multi-host portable volumes for Docker, enabling you to run 49 databases and other stateful containers and move them around across a cluster 50 of machines. 51 52 * The [GlusterFS plugin](https://github.com/calavera/docker-volume-glusterfs) is 53 another volume plugin that provides multi-host volumes management for Docker 54 using GlusterFS. 55 56 * The [Horcrux Volume Plugin](https://github.com/muthu-r/horcrux) allows on-demand, 57 version controlled access to your data. Horcrux is an open-source plugin, 58 written in Go, and supports SCP, [Minio](https://www.minio.io) and Amazon S3. 59 60 * The [IPFS Volume Plugin](http://github.com/vdemeester/docker-volume-ipfs) 61 is an open source volume plugin that allows using an 62 [ipfs](https://ipfs.io/) filesystem as a volume. 63 64 * The [Keywhiz plugin](https://github.com/calavera/docker-volume-keywhiz) is 65 a plugin that provides credentials and secret management using Keywhiz as 66 a central repository. 67 68 * The [Netshare plugin](https://github.com/gondor/docker-volume-netshare) is a volume plugin 69 that provides volume management for NFS 3/4, AWS EFS and CIFS file systems. 70 71 * The [OpenStorage Plugin](https://github.com/libopenstorage/openstorage) is a cluster aware volume plugin that provides volume management for file and block storage solutions. It implements a vendor neutral specification for implementing extensions such as CoS, encryption, and snapshots. It has example drivers based on FUSE, NFS, NBD and EBS to name a few. 72 73 * The [Quobyte Volume Plugin](https://github.com/quobyte/docker-volume) connects Docker to [Quobyte](http://www.quobyte.com/containers)'s data center file system, a general-purpose scalable and fault-tolerant storage platform. 74 75 * The [REX-Ray plugin](https://github.com/emccode/rexray) is a volume plugin 76 which is written in Go and provides advanced storage functionality for many 77 platforms including VirtualBox, EC2, Google Compute Engine, OpenStack, and EMC. 78 79 * The [Contiv Volume Plugin](https://github.com/contiv/volplugin) is an open 80 source volume plugin that provides multi-tenant, persistent, distributed storage 81 with intent based consumption using ceph underneath. 82 83 * The [Contiv Networking](https://github.com/contiv/netplugin) is an open source 84 libnetwork plugin to provide infrastructure and security policies for a 85 multi-tenant micro services deployment, while providing an integration to 86 physical network for non-container workload. Contiv Networking implements the 87 remote driver and IPAM APIs available in Docker 1.9 onwards. 88 89 * The [Weave Network Plugin](http://docs.weave.works/weave/latest_release/plugin.html) 90 creates a virtual network that connects your Docker containers - 91 across multiple hosts or clouds and enables automatic discovery of 92 applications. Weave networks are resilient, partition tolerant, 93 secure and work in partially connected networks, and other adverse 94 environments - all configured with delightful simplicity. 95 96 * The [Kuryr Network Plugin](https://github.com/openstack/kuryr) is 97 developed as part of the OpenStack Kuryr project and implements the 98 Docker networking (libnetwork) remote driver API by utilizing 99 Neutron, the OpenStack networking service. It includes an IPAM 100 driver as well. 101 102 * The [Local Persist Plugin](https://github.com/CWSpear/local-persist) 103 extends the default `local` driver's functionality by allowing you specify 104 a mountpoint anywhere on the host, which enables the files to *always persist*, 105 even if the volume is removed via `docker volume rm`. 106 107 ## Troubleshooting a plugin 108 109 If you are having problems with Docker after loading a plugin, ask the authors 110 of the plugin for help. The Docker team may not be able to assist you. 111 112 ## Writing a plugin 113 114 If you are interested in writing a plugin for Docker, or seeing how they work 115 under the hood, see the [docker plugins reference](plugin_api.md).