github.com/walkingsparrow/docker@v1.4.2-0.20151218153551-b708a2249bfa/docs/extend/plugins.md (about)

     1  <!--[metadata]>
     2  +++
     3  title = "Extending Docker 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 = "mn_extend"
     8  weight=-1
     9  +++
    10  <![end-metadata]-->
    11  
    12  # Understand Docker 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 [Keywhiz plugin](https://github.com/calavera/docker-volume-keywhiz) is
    57    a plugin that provides credentials and secret management using Keywhiz as
    58    a central repository.
    59  
    60  * The [Netshare plugin](https://github.com/gondor/docker-volume-netshare) is a volume plugin
    61    that provides volume management for NFS 3/4, AWS EFS and CIFS file systems.
    62  
    63  * 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.
    64  
    65  * The [Pachyderm PFS plugin](https://github.com/pachyderm/pachyderm/tree/master/src/cmd/pfs-volume-driver)
    66    is a volume plugin written in Go that provides functionality to mount Pachyderm File System (PFS)
    67    repositories at specific commits as volumes within Docker containers.
    68  
    69  * The [REX-Ray plugin](https://github.com/emccode/rexraycli) is a volume plugin
    70    which is written in Go and provides advanced storage functionality for many
    71    platforms including EC2, Google Compute Engine, OpenStack, XtremIO, and ScaleIO.
    72  
    73  * The [Contiv Volume Plugin](https://github.com/contiv/volplugin) is an open
    74  source volume plugin that provides multi-tenant, persistent, distributed storage
    75  with intent based consumption using ceph underneath.
    76  
    77  * The [Contiv Networking](https://github.com/contiv/netplugin) is an open source
    78  libnetwork plugin to provide infrastructure and security policies for a
    79  multi-tenant micro services deployment, while providing an integration to
    80  physical network for non-container workload. Contiv Networking implements the
    81  remote driver and IPAM APIs available in Docker 1.9 onwards.
    82  
    83  * The [Weave Network Plugin](https://github.com/weaveworks/docker-plugin) creates a virtual network that connects your Docker containers - across multiple hosts or clouds and enables automatic discovery of applications. Weave networks are resilient, partition tolerant, secure and work in partially connected networks, and other adverse environments - all configured with delightful simplicity.
    84  
    85  ## Troubleshooting a plugin
    86  
    87  If you are having problems with Docker after loading a plugin, ask the authors
    88  of the plugin for help. The Docker team may not be able to assist you.
    89  
    90  ## Writing a plugin
    91  
    92  If you are interested in writing a plugin for Docker, or seeing how they work
    93  under the hood, see the [docker plugins reference](plugin_api.md).