diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
| commit | 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch) | |
| tree | f1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/docker/engine%2Fextend%2Fconfig%2Findex.html | |
new repository
Diffstat (limited to 'devdocs/docker/engine%2Fextend%2Fconfig%2Findex.html')
| -rw-r--r-- | devdocs/docker/engine%2Fextend%2Fconfig%2Findex.html | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/devdocs/docker/engine%2Fextend%2Fconfig%2Findex.html b/devdocs/docker/engine%2Fextend%2Fconfig%2Findex.html new file mode 100644 index 00000000..a154b487 --- /dev/null +++ b/devdocs/docker/engine%2Fextend%2Fconfig%2Findex.html @@ -0,0 +1,55 @@ + <h1 id="plugin-config-version-1-of-plugin-v2">Plugin Config Version 1 of Plugin V2</h1> <p>This document outlines the format of the V0 plugin configuration. The plugin config described herein was introduced in the Docker daemon in the <a href="https://github.com/docker/docker/commit/f37117045c5398fd3dca8016ea8ca0cb47e7312b">v1.12.0 release</a>.</p> <p>Plugin configs describe the various constituents of a docker plugin. Plugin configs can be serialized to JSON format with the following media types:</p> <table> <thead> <tr> <th>Config Type</th> <th>Media Type</th> </tr> </thead> <tbody> <tr> <td>config</td> <td>“application/vnd.docker.plugin.v1+json”</td> </tr> </tbody> </table> <h2 id="config-field-descriptions"> +<em>Config</em> Field Descriptions</h2> <p>Config provides the base accessible fields for working with V0 plugin format in the registry.</p> <ul> <li> <p><strong><code class="language-plaintext highlighter-rouge">description</code></strong> <em>string</em></p> <p>description of the plugin</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">documentation</code></strong> <em>string</em></p> <p>link to the documentation about the plugin</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">interface</code></strong> <em>PluginInterface</em></p> <p>interface implemented by the plugins, struct consisting of the following fields</p> <ul> <li> <p><strong><code class="language-plaintext highlighter-rouge">types</code></strong> <em>string array</em></p> <p>types indicate what interface(s) the plugin currently implements.</p> <p>currently supported:</p> <ul> <li> <p><strong>docker.volumedriver/1.0</strong></p> </li> <li> <p><strong>docker.networkdriver/1.0</strong></p> </li> <li> <p><strong>docker.ipamdriver/1.0</strong></p> </li> <li> <p><strong>docker.authz/1.0</strong></p> </li> <li> <p><strong>docker.logdriver/1.0</strong></p> </li> <li> <p><strong>docker.metricscollector/1.0</strong></p> </li> </ul> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">socket</code></strong> <em>string</em></p> <p>socket is the name of the socket the engine should use to communicate with the plugins. the socket will be created in <code class="language-plaintext highlighter-rouge">/run/docker/plugins</code>.</p> </li> </ul> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">entrypoint</code></strong> <em>string array</em></p> <p>entrypoint of the plugin, see <a href="../../reference/builder/index#entrypoint"><code class="language-plaintext highlighter-rouge">ENTRYPOINT</code></a></p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">workdir</code></strong> <em>string</em></p> <p>workdir of the plugin, see <a href="../../reference/builder/index#workdir"><code class="language-plaintext highlighter-rouge">WORKDIR</code></a></p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">network</code></strong> <em>PluginNetwork</em></p> <p>network of the plugin, struct consisting of the following fields</p> <ul> <li> <p><strong><code class="language-plaintext highlighter-rouge">type</code></strong> <em>string</em></p> <p>network type.</p> <p>currently supported:</p> <div class="highlight"><pre class="highlight" data-language="">- **bridge** +- **host** +- **none** +</pre></div> </li> </ul> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">mounts</code></strong> <em>PluginMount array</em></p> <p>mount of the plugin, struct consisting of the following fields, see <a href="https://github.com/opencontainers/runtime-spec/blob/master/config/#mounts"><code class="language-plaintext highlighter-rouge">MOUNTS</code></a></p> <ul> <li> <p><strong><code class="language-plaintext highlighter-rouge">name</code></strong> <em>string</em></p> <p>name of the mount.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">description</code></strong> <em>string</em></p> <p>description of the mount.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">source</code></strong> <em>string</em></p> <p>source of the mount.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">destination</code></strong> <em>string</em></p> <p>destination of the mount.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">type</code></strong> <em>string</em></p> <p>mount type.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">options</code></strong> <em>string array</em></p> <p>options of the mount.</p> </li> </ul> </li> <li> +<strong><code class="language-plaintext highlighter-rouge">ipchost</code></strong> <em>boolean</em> Access to host ipc namespace.</li> <li> <p><strong><code class="language-plaintext highlighter-rouge">pidhost</code></strong> <em>boolean</em> Access to host pid namespace.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">propagatedMount</code></strong> <em>string</em></p> <p>path to be mounted as rshared, so that mounts under that path are visible to docker. This is useful for volume plugins. This path will be bind-mounted outside of the plugin rootfs so it’s contents are preserved on upgrade.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">env</code></strong> <em>PluginEnv array</em></p> <p>env of the plugin, struct consisting of the following fields</p> <ul> <li> <p><strong><code class="language-plaintext highlighter-rouge">name</code></strong> <em>string</em></p> <p>name of the env.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">description</code></strong> <em>string</em></p> <p>description of the env.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">value</code></strong> <em>string</em></p> <p>value of the env.</p> </li> </ul> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">args</code></strong> <em>PluginArgs</em></p> <p>args of the plugin, struct consisting of the following fields</p> <ul> <li> <p><strong><code class="language-plaintext highlighter-rouge">name</code></strong> <em>string</em></p> <p>name of the args.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">description</code></strong> <em>string</em></p> <p>description of the args.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">value</code></strong> <em>string array</em></p> <p>values of the args.</p> </li> </ul> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">linux</code></strong> <em>PluginLinux</em></p> <ul> <li> <p><strong><code class="language-plaintext highlighter-rouge">capabilities</code></strong> <em>string array</em></p> <p>capabilities of the plugin (<em>Linux only</em>), see list <a href="https://github.com/opencontainers/runc/blob/master/libcontainer/SPEC/#security"><code class="language-plaintext highlighter-rouge">here</code></a></p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">allowAllDevices</code></strong> <em>boolean</em></p> <p>If <code class="language-plaintext highlighter-rouge">/dev</code> is bind mounted from the host, and allowAllDevices is set to true, the plugin will have <code class="language-plaintext highlighter-rouge">rwm</code> access to all devices on the host.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">devices</code></strong> <em>PluginDevice array</em></p> <p>device of the plugin, (<em>Linux only</em>), struct consisting of the following fields, see <a href="https://github.com/opencontainers/runtime-spec/blob/master/config-linux/#devices"><code class="language-plaintext highlighter-rouge">DEVICES</code></a></p> <ul> <li> <p><strong><code class="language-plaintext highlighter-rouge">name</code></strong> <em>string</em></p> <p>name of the device.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">description</code></strong> <em>string</em></p> <p>description of the device.</p> </li> <li> <p><strong><code class="language-plaintext highlighter-rouge">path</code></strong> <em>string</em></p> <p>path of the device.</p> </li> </ul> </li> </ul> </li> </ul> <h2 id="example-config">Example Config</h2> <p><em>Example showing the ‘tiborvass/sample-volume-plugin’ plugin config.</em></p> <div class="highlight"><pre class="highlight" data-language="">{ + "Args": { + "Description": "", + "Name": "", + "Settable": null, + "Value": null + }, + "Description": "A sample volume plugin for Docker", + "Documentation": "https://docs.docker.com/engine/extend/plugins/", + "Entrypoint": [ + "/usr/bin/sample-volume-plugin", + "/data" + ], + "Env": [ + { + "Description": "", + "Name": "DEBUG", + "Settable": [ + "value" + ], + "Value": "0" + } + ], + "Interface": { + "Socket": "plugin.sock", + "Types": [ + "docker.volumedriver/1.0" + ] + }, + "Linux": { + "Capabilities": null, + "AllowAllDevices": false, + "Devices": null + }, + "Mounts": null, + "Network": { + "Type": "" + }, + "PropagatedMount": "/data", + "User": {}, + "Workdir": "" +} +</pre></div> +<p><a href="https://docs.docker.com/search/?q=API">API</a>, <a href="https://docs.docker.com/search/?q=Usage">Usage</a>, <a href="https://docs.docker.com/search/?q=plugins">plugins</a>, <a href="https://docs.docker.com/search/?q=documentation">documentation</a>, <a href="https://docs.docker.com/search/?q=developer">developer</a></p> +<div class="_attribution"> + <p class="_attribution-p"> + © 2019 Docker, Inc.<br>Licensed under the Apache License, Version 2.0.<br>Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.<br>Docker, Inc. and other parties may also have trademark rights in other terms used herein.<br> + <a href="https://docs.docker.com/engine/extend/config/" class="_attribution-link">https://docs.docker.com/engine/extend/config/</a> + </p> +</div> |
