如何使用 docker plugin create 命令构建插件

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何使用 docker plugin create 命令创建一个 Docker 插件。这个过程包括为你的插件准备必要的目录结构和配置文件,然后使用该命令从这些组件构建插件。

本实验将指导你准备插件数据目录,其中包括创建一个 config.json 文件来定义插件的属性和接口。接下来,你将执行 docker plugin create 命令,根据准备好的数据构建插件。最后,你将验证插件是否已成功创建,并在你的 Docker 环境中可用。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/ls -.-> lab-555187{{"如何使用 docker plugin create 命令构建插件"}} docker/create -.-> lab-555187{{"如何使用 docker plugin create 命令构建插件"}} docker/volume -.-> lab-555187{{"如何使用 docker plugin create 命令构建插件"}} end

准备插件数据目录

在这一步中,我们将为 Docker 插件准备所需的目录结构。Docker 插件需要特定的目录布局才能正常工作。这个目录将包含插件的配置以及可能的其他必要文件。

首先,导航到你的项目目录。

cd ~/project

现在,为插件数据创建一个目录。我们将其命名为 my-plugin-data

mkdir my-plugin-data

my-plugin-data 目录内,我们需要创建一个名为 config.json 的配置文件。这个文件将包含插件的配置细节。

cd my-plugin-data
nano config.json

将以下内容添加到 config.json 文件中。这是一个基本配置,用于指定插件的类型和描述。

{
  "Description": "My first Docker plugin",
  "Types": [
    {
      "Name": "volume",
      "Description": "A simple volume plugin"
    }
  ],
  "Interface": {
    "Types": ["docker.volumedriver/1.0"],
    "Socket": "my-plugin.sock"
  },
  "Entrypoint": ["/usr/local/bin/my-plugin"]
}

让我们来详细分析一下 config.json 文件:

  • Description:插件的可读描述。
  • Types:指定所提供的插件类型。在这种情况下,它是一个 volume 插件。
  • Interface:定义插件的接口。
    • Types:指定接口类型,对于卷驱动程序为 docker.volumedriver/1.0
    • Socket:插件将监听的 Unix 域套接字的名称。Docker 将通过此套接字与插件进行通信。
  • Entrypoint:当插件启用时,Docker 将执行的命令。这应该是插件根文件系统内插件可执行文件的路径。

Ctrl + X,然后按 Y,再按 Enter 保存文件并退出 nano 编辑器。

最后,导航回项目根目录。

cd ~/project

你现在已经成功为 Docker 插件创建了基本的目录结构和配置文件。

使用 docker plugin create 创建插件

在这一步中,我们将使用 docker plugin create 命令,基于上一步准备好的目录来创建插件。docker plugin create 命令接受插件名称和插件数据目录的路径作为参数。

命令语法为 docker plugin create <plugin-name> <plugin-data-directory>

我们将插件命名为 my-plugin,并使用之前创建的 my-plugin-data 目录。确保你位于 ~/project 目录中。

cd ~/project
sudo docker plugin create my-plugin ./my-plugin-data

你应该会看到表明插件正在创建的输出信息。如果操作成功,命令将无错误地完成。

docker plugin create 命令会从指定目录读取 config.json 文件,并将插件注册到 Docker 守护进程中。此时,插件已创建但尚未启用。

验证已创建的插件

在这一步中,我们将验证插件是否已成功创建,并已被 Docker 列出。你可以使用 docker plugin ls 命令来列出所有可用的插件。

确保你位于 ~/project 目录中。

cd ~/project
sudo docker plugin ls

该命令的输出应显示一个插件列表。你应该会看到 my-plugin 的条目,其状态为 disabled。这证实了该插件已在 Docker 中注册,但尚未激活。

输出将类似于以下内容(ID 会有所不同):

ID             NAME        TAG       DESCRIPTION             ENABLED
a1b2c3d4e5f6   my-plugin             My first Docker plugin   false

ENABLED 列显示 false,表明该插件当前处于禁用状态。要使用该插件,你需要使用 docker plugin enable 命令来启用它。不过,由于这只是一个创建插件结构的演示,在本次实验中我们不会启用它。

你现在已经成功创建并验证了 Docker 插件的存在。

总结

在本次实验中,我们学习了如何为 Docker 插件准备必要的目录结构和配置文件。这包括为插件数据创建一个专用目录,并在 config.json 文件中定义插件的特性,如描述、类型、接口和入口点。这一基础步骤对于定义 Docker 如何与插件交互和管理插件至关重要。