summaryrefslogtreecommitdiff
path: root/devdocs/docker/engine%2Fextend%2Fconfig%2Findex.html
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
committerCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
commit754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch)
treef1190704f78f04a2b0b4c977d20fe96a828377f1 /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.html55
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">
+ &copy; 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>