插件配置 版本1 的插件 V2

本文档概述了V0插件配置的格式。

插件配置描述了Docker引擎插件的各种组成部分。 插件配置可以序列化为以下媒体类型的JSON格式:

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

配置字段描述

Config 提供了用于在注册表中处理 V0 插件格式的基本可访问字段。

  • description 字符串

    插件的描述

  • documentation 字符串

    链接到插件的文档

  • interface PluginInterface

    由插件实现的接口,结构包含以下字段:

    • 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 字符串

      Socket 是引擎用于与插件通信的套接字名称。 套接字将在 /run/docker/plugins 中创建。

  • entrypoint 字符串数组

    插件的入口点,请参阅 ENTRYPOINT

  • workdir 字符串

    插件的工作目录,请参阅 WORKDIR

  • network 插件网络

    插件的网络,由以下字段组成的结构:

    • type 字符串

      网络类型。

      支持的类型:

      • bridge
      • host
      • none
  • mounts 插件挂载数组

    插件的挂载,结构由以下字段组成。 参见 MOUNTS.

    • name 字符串

      挂载点的名称。

    • description 字符串

      挂载的描述。

    • source 字符串

      挂载的源。

    • destination 字符串

      挂载的目标。

    • type 字符串

      挂载类型。

    • options 字符串数组

      挂载的选项。

  • ipchost 布尔值

    访问主机IPC命名空间。

  • pidhost 布尔值

    访问主机PID命名空间。

  • propagatedMount 字符串

    要作为rshared挂载的路径,以便Docker可以看到该路径下的挂载。这对于卷插件非常有用。此路径将在插件rootfs之外进行绑定挂载,因此在升级时其内容得以保留。

  • env 插件环境数组

    插件的环境变量,由以下字段组成的结构体:

    • name 字符串

      环境变量的名称。

    • description 字符串

      环境变量的描述。

    • value 字符串

      环境变量的值。

  • args 插件参数

    插件的参数,由以下字段组成的结构体:

    • name 字符串

      参数的名称。

    • description 字符串

      参数的描述。

    • value 字符串数组

      参数的值。

  • linux 插件Linux

    • capabilities 字符串数组

      插件的功能(仅限Linux),请参阅列表 here

    • allowAllDevices 布尔值

      如果 /dev 是从主机绑定挂载的,并且 allowAllDevices 设置为 true,插件将具有对主机上所有设备的 rwm 访问权限。

    • devices 插件设备数组

      插件的设备,(仅限Linux),由以下字段组成的结构体。参见 DEVICES

      • name 字符串

        设备的名称。

      • description 字符串

        设备的描述。

      • path 字符串

        设备的路径。

示例配置

以下示例展示了 'tiborvass/sample-volume-plugin' 插件的配置。

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