【发布时间】:2020-02-21 06:02:51
【问题描述】:
我正在开发一个全新的音量插件,我需要通过所有 vol-test 测试。我已经成功通过了所有测试(在安装了插件的环境中),除了第一个测试,即docker plugin install。问题是有three 可能的方式可以安装自定义插件:
.sock 文件是 UNIX 域套接字。
.spec 文件是包含 URL 的文本文件,例如 unix:///other.sock 或 tcp://localhost:8080。
.json 文件是包含完整 json 规范的文本文件 插件。
我们使用 json,它只是一个实现 docker API(用 java,spring 编写)的 REST 服务器。它的安装过程很简单:只需将 json 文件复制到 /etc/docker/plugins 中,dockerd 就会自动发现它。
当我尝试将插件集成到docker plugin install 命令时,问题就来了。正如它所说的here:
Docker 首先在您的 Docker 主机上查找插件。如果该插件在本地不存在,则从注册表中提取该插件。
我们的安装过程不假定连接到私有或公共注册表,因此我们首先需要docker plugin create 命令才能在本地创建插件。这就是我很难弄清楚如何使用基于 json 的插件来做到这一点的地方。根据this doc,我需要指定插件的路径。如果我使用目录名称,它期望config.json 和rootfs 出现在目录中。
但是
1. config.json - 这是一个配置,描述.sock 格式配置,而不是.json 格式(如果我错了请纠正我)
2. 如果我的插件只是一个独立的 REST 服务并且它甚至不在容器中,我该如何创建 rootfs?为什么我需要它?
感谢任何帮助。
【问题讨论】: