外掛 V2 的外掛組態版本 1

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

插件配置描述了 Docker 引擎插件的各個組成部分。插件配置可以序列化為 JSON 格式,並使用以下媒體類型:

配置類型媒體類型
configapplication/vnd.docker.plugin.v1+json

配置欄位說明

Config 提供了在 Registry 中使用 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 是引擎用來與插件通訊的 socket 名稱。該 socket 將建立在 /run/docker/plugins 目錄下。

  • entrypoint 字串陣列

    插件的進入點,請參閱 ENTRYPOINT

  • workdir 字串

    插件的工作目錄,請參閱 WORKDIR

  • network PluginNetwork

    插件的網路,結構包含以下欄位:

    • type 字串

      網路類型。

      支援的類型

      • bridge
      • host
  • mounts PluginMount 陣列

    插件的掛載點,結構包含以下欄位。請參閱 MOUNTS

    • name 字串

      掛載點名稱。

    • description 字串

      掛載點說明。

    • source 字串

      掛載來源。

    • destination 字串

      掛載目標。

    • type 字串

      掛載類型。

    • options 字串陣列

      掛載選項。

  • ipchost 布林值

    是否存取主機 IPC 名稱空間。

  • pidhost 布林值

    是否存取主機 PID 名稱空間。

  • propagatedMount 字串

    要掛載為 rshared 的路徑,以便該路徑下的掛載對 Docker 可見。這對磁碟區插件很有用。此路徑將綁定掛載 (bind-mounted) 在插件 rootfs 之外,因此其內容在升級時會被保留。

  • 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.com.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": ""
}
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.