github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/cli/docs/extend/plugins_network.md (about)

     1  ---
     2  description: "Network driver plugins."
     3  keywords: "Examples, Usage, plugins, docker, documentation, user guide"
     4  ---
     5  
     6  <!-- This file is maintained within the docker/cli GitHub
     7       repository at https://github.com/docker/cli/. Make all
     8       pull requests against that repo. If you see this file in
     9       another repository, consider it read-only there, as it will
    10       periodically be overwritten by the definitive file. Pull
    11       requests which include edits to this file in other repositories
    12       will be rejected.
    13  -->
    14  
    15  # Docker network driver plugins
    16  
    17  This document describes Docker Engine network driver plugins generally
    18  available in Docker Engine. To view information on plugins
    19  managed by Docker Engine, refer to [Docker Engine plugin system](index.md).
    20  
    21  Docker Engine network plugins enable Engine deployments to be extended to
    22  support a wide range of networking technologies, such as VXLAN, IPVLAN, MACVLAN
    23  or something completely different. Network driver plugins are supported via the
    24  LibNetwork project. Each plugin is implemented as a  "remote driver" for
    25  LibNetwork, which shares plugin infrastructure with Engine. Effectively, network
    26  driver plugins are activated in the same way as other plugins, and use the same
    27  kind of protocol.
    28  
    29  ## Network plugins and swarm mode
    30  
    31  [Legacy plugins](legacy_plugins.md) do not work in swarm mode. However,
    32  plugins written using the [v2 plugin system](index.md) do work in swarm mode, as
    33  long as they are installed on each swarm worker node.
    34  
    35  ## Use network driver plugins
    36  
    37  The means of installing and running a network driver plugin depend on the
    38  particular plugin. So, be sure to install your plugin according to the
    39  instructions obtained from the plugin developer.
    40  
    41  Once running however, network driver plugins are used just like the built-in
    42  network drivers: by being mentioned as a driver in network-oriented Docker
    43  commands. For example,
    44  
    45  ```console
    46  $ docker network create --driver weave mynet
    47  ```
    48  
    49  Some network driver plugins are listed in [plugins](legacy_plugins.md)
    50  
    51  The `mynet` network is now owned by `weave`, so subsequent commands
    52  referring to that network will be sent to the plugin,
    53  
    54  ```console
    55  $ docker run --network=mynet busybox top
    56  ```
    57  
    58  
    59  ## Find network plugins
    60  
    61  Network plugins are written by third parties, and are published by those
    62  third parties, either on
    63  [Docker Store](https://store.docker.com/search?category=network&q=&type=plugin)
    64  or on the third party's site.
    65  
    66  ## Write a network plugin
    67  
    68  Network plugins implement the [Docker plugin API](plugin_api.md) and the network
    69  plugin protocol
    70  
    71  ## Network plugin protocol
    72  
    73  The network driver protocol, in addition to the plugin activation call, is
    74  documented as part of libnetwork:
    75  [https://github.com/docker/libnetwork/blob/master/docs/remote.md](https://github.com/docker/libnetwork/blob/master/docs/remote.md).
    76  
    77  ## Related Information
    78  
    79  To interact with the Docker maintainers and other interested users, see the IRC channel `#docker-network`.
    80  
    81  - [Docker networks feature overview](https://docs.docker.com/engine/userguide/networking/)
    82  - The [LibNetwork](https://github.com/docker/libnetwork) project