外掛 V2 的外掛配置版本 1

本文件概述了 V0 外掛配置的格式。

外掛配置描述了 Docker 引擎外掛的各種組成部分。外掛配置可以使用以下媒體型別序列化為 JSON 格式

配置型別媒體型別
配置application/vnd.docker.plugin.v1+json

配置欄位描述

配置提供了在登錄檔中處理 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 PluginNetwork

    外掛的網路,由以下欄位組成的結構體

    • type 字串

      網路型別。

      支援的型別

      • bridge
      • host
      • none
  • mounts PluginMount 陣列

    外掛的掛載,由以下欄位組成的結構體。請參閱 MOUNTS

    • name 字串

      掛載的名稱。

    • description 字串

      掛載的描述。

    • source 字串

      掛載的源。

    • destination 字串

      掛載的目標。

    • type 字串

      掛載型別。

    • options 字串陣列

      掛載的選項。

  • ipchost 布林值

    訪問主機 IPC 名稱空間。

  • pidhost 布林值

    訪問主機 PID 名稱空間。

  • propagatedMount 字串

    要作為 rshared 掛載的路徑,以便該路徑下的掛載對 Docker 可見。這對於卷外掛很有用。此路徑將繫結掛載到外掛根檔案系統之外,因此其內容在升級時將保留。

  • env PluginEnv 陣列

    外掛的環境變數,由以下欄位組成的結構體

    • name 字串

      環境變數的名稱。

    • description 字串

      環境變數的描述。

    • value 字串

      環境變數的值。

  • args PluginArgs

    外掛的引數,由以下欄位組成的結構體

    • name 字串

      引數的名稱。

    • description 字串

      引數的描述。

    • value 字串陣列

      引數的值。

  • linux PluginLinux

    • capabilities 字串陣列

      外掛的功能(僅限 Linux),請參閱 此處的列表

    • allowAllDevices 布林值

      如果 /dev 從主機繫結掛載,並且 allowAllDevices 設定為 true,則外掛將擁有對主機上所有裝置的 rwm 訪問許可權。

    • devices PluginDevice 陣列

      外掛的裝置(僅限 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.net.tw/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": ""
}