github.com/uppal0016/docker_new@v0.0.0-20240123060250-1c98be13ac2c/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 [gce-docker plugin](https://github.com/mcuadros/gce-docker) is a volume plugin able to attach, format and mount Google Compute [persistent-disks](https://cloud.google.com/compute/docs/disks/persistent-disks).
    72  
    73  * 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.
    74  
    75  * 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.
    76  
    77  * The [REX-Ray plugin](https://github.com/emccode/rexray) is a volume plugin
    78    which is written in Go and provides advanced storage functionality for many
    79    platforms including VirtualBox, EC2, Google Compute Engine, OpenStack, and EMC.
    80  
    81  * The [Contiv Volume Plugin](https://github.com/contiv/volplugin) is an open
    82    source volume plugin that provides multi-tenant, persistent, distributed storage
    83    with intent based consumption using ceph underneath.
    84  
    85  * The [Contiv Networking](https://github.com/contiv/netplugin) is an open source
    86    libnetwork plugin to provide infrastructure and security policies for a
    87    multi-tenant micro services deployment, while providing an integration to
    88    physical network for non-container workload. Contiv Networking implements the
    89    remote driver and IPAM APIs available in Docker 1.9 onwards.
    90  
    91  * The [Weave Network Plugin](http://docs.weave.works/weave/latest_release/plugin.html)
    92    creates a virtual network that connects your Docker containers -
    93    across multiple hosts or clouds and enables automatic discovery of
    94    applications. Weave networks are resilient, partition tolerant,
    95    secure and work in partially connected networks, and other adverse
    96    environments - all configured with delightful simplicity.
    97  
    98  * The [Kuryr Network Plugin](https://github.com/openstack/kuryr) is
    99    developed as part of the OpenStack Kuryr project and implements the
   100    Docker networking (libnetwork) remote driver API by utilizing
   101    Neutron, the OpenStack networking service. It includes an IPAM
   102    driver as well.
   103  
   104  * The [Local Persist Plugin](https://github.com/CWSpear/local-persist) 
   105    extends the default `local` driver's functionality by allowing you specify 
   106    a mountpoint anywhere on the host, which enables the files to *always persist*, 
   107    even if the volume is removed via `docker volume rm`.
   108  
   109  ## Troubleshooting a plugin
   110  
   111  If you are having problems with Docker after loading a plugin, ask the authors
   112  of the plugin for help. The Docker team may not be able to assist you.
   113  
   114  ## Writing a plugin
   115  
   116  If you are interested in writing a plugin for Docker, or seeing how they work
   117  under the hood, see the [docker plugins reference](plugin_api.md).