`; return; } const search = await pagefind.debouncedSearch(query); if (search === null) { return; } else { const resultsLength = search.results.length const resultsData = await Promise.all(search.results.slice(0, 5).map(r => r.data())); const results = resultsData.map((item, index) => ({...item, index: index + 1})); if (query) { searchBarResults.classList.remove("hidden"); } else { searchBarResults.classList.add("hidden"); } let resultsHTML = `
${resultsLength} results
`; resultsHTML += results .map((item) => { return `
${item.meta.title}

…${item.excerpt}…

`; }) .join(""); if (resultsLength > 5) { resultsHTML += ``; } searchBarResults.innerHTML = resultsHTML; } } searchBarInput.addEventListener("input", search); if (window.heap !== undefined) { searchBarResults.addEventListener('click', function (event) { if (event.target.tagName === 'A' && event.target.closest('.link')) { const searchQuery = event.target.getAttribute('data-query'); const resultIndex = event.target.getAttribute('data-index'); const url = new URL(event.target.href); const properties = { docs_search_target_path: url.pathname, docs_search_target_title: event.target.textContent, docs_search_query_text: searchQuery, docs_search_target_index: resultIndex, docs_search_source_path: window.location.pathname, docs_search_source_title: document.title, }; heap.track("Docs - Search - Click - Result Link", properties); } }); } });

Plugin Config Version 1 of Plugin V2

This document outlines the format of the V0 plugin configuration.

Plugin configs describe the various constituents of a Docker engine plugin. Plugin configs can be serialized to JSON format with the following media types:

Config TypeMedia Type
configapplication/vnd.docker.plugin.v1+json

Config Field Descriptions

Config provides the base accessible fields for working with V0 plugin format in the registry.

  • description string

    Description of the plugin

  • documentation string

    Link to the documentation about the plugin

  • interface PluginInterface

    Interface implemented by the plugins, struct consisting of the following fields:

    • types string array

      Types indicate what interface(s) the plugin currently implements.

      Supported types:

      • docker.volumedriver/1.0

      • docker.networkdriver/1.0

      • docker.ipamdriver/1.0

      • docker.authz/1.0

      • docker.logdriver/1.0

      • docker.metricscollector/1.0

    • socket string

      Socket is the name of the socket the engine should use to communicate with the plugins. the socket will be created in /run/docker/plugins.

  • entrypoint string array

    Entrypoint of the plugin, see ENTRYPOINT

  • workdir string

    Working directory of the plugin, see WORKDIR

  • network PluginNetwork

    Network of the plugin, struct consisting of the following fields:

    • type string

      Network type.

      Supported types:

      • bridge
      • host
      • none
  • mounts PluginMount array

    Mount of the plugin, struct consisting of the following fields. See MOUNTS.

    • name string

      Name of the mount.

    • description string

      Description of the mount.

    • source string

      Source of the mount.

    • destination string

      Destination of the mount.

    • type string

      Mount type.

    • options string array

      Options of the mount.

  • ipchost Boolean

    Access to host ipc namespace.

  • pidhost Boolean

    Access to host PID namespace.

  • propagatedMount string

    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.

  • env PluginEnv array

    Environment variables of the plugin, struct consisting of the following fields:

    • name string

      Name of the environment variable.

    • description string

      Description of the environment variable.

    • value string

      Value of the environment variable.

  • args PluginArgs

    Arguments of the plugin, struct consisting of the following fields:

    • name string

      Name of the arguments.

    • description string

      Description of the arguments.

    • value string array

      Values of the arguments.

  • linux PluginLinux

    • capabilities string array

      Capabilities of the plugin (Linux only), see list here

    • allowAllDevices Boolean

      If /dev is bind mounted from the host, and allowAllDevices is set to true, the plugin will have rwm access to all devices on the host.

    • devices PluginDevice array

      Device of the plugin, (Linux only), struct consisting of the following fields. See DEVICES.

      • name string

        Name of the device.

      • description string

        Description of the device.

      • path string

        Path of the device.

Example Config

The following example shows the 'tiborvass/sample-volume-plugin' plugin config.

{
  "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": ""
}