[

Docker Engine的插件系统允许您使用Docker Engine安装,启动,停止和删除插件。

注意 :Windows守护程序当前不支持Docker Engine管理的插件。

安装和使用插件

插件作为Docker映像分发,可以托管在Docker Hub或私有注册表上。

要安装插件,请使用docker plugin install命令,该命令将从Docker Hub或您的私有注册表中提取插件,并在必要时提示您授予权限或功能,并启用该插件。

要检查已安装插件的状态,请使用docker plugin ls命令。成功启动的插件在输出中列出为已启用。

安装插件后,您可以将其用作另一个Docker操作的选项,例如创建卷。

在以下示例中,您将安装sshfs插件,确认已启用它,然后使用它来创建卷。

注意 :此示例仅用于指导目的。一旦创建了卷,在检查该卷时,您到远程主机的SSH密码将以纯文本形式公开。完成示例后,应立即删除该卷。

开发插件

rootfs目录代表插件的根文件系统。在此示例中,它是从Dockerfile创建的:

注意: /run/docker/plugins目录在插件的文件系统内部是必需的,以便docker与插件通信。

考虑以下config.json文件。

这个插件是一个音量驱动器。它需要一个host网络和CAP_SYS_ADMIN功能。它取决于/docker-volume-sshfs /run/docker/plugins/sshfs.sock /docker-volume-sshfs入口点,并使用/run/docker/plugins/sshfs.sock套接字与Docker Engine通信。该插件没有运行时参数。

可以通过运行docker plugin create <plugin-name> ./path/to/plugin/data一个新插件,其中插件数据包含子目录rootfs中的插件配置文件config.json和根文件系统。

之后,插件<plugin-name>将显示在docker plugin ls 。可以使用docker plugin push <plugin-name>推送到远程注册表。

调试插件

插件的标准输出重定向到dockerd日志。这样的条目具有plugin=<ID>后缀。以下是pluginID f52a3df433b9aceee436eaada0752f5797aab1de47e5485f1690a073b860ff62的一些命令示例,以及它们在f52a3df433b9aceee436eaada0752f5797aab1de47e5485f1690a073b860ff62守护程序日志中的相应日志条目。

docker-runc ,默认docker-runc容器运行时可用于调试插件。如果将插件日志重定向到文件,这对于收集插件日志特别有用。

如果插件具有内置外壳,则可以按以下步骤对插件执行:

要验证docker守护程序与之通信的插件API套接字是否响应,请使用curl。在此示例中,我们将使用curl 7.47.0从docker主机对卷和网络插件进行API调用,以确保插件正在侦听所述套接字。对于功能良好的插件,这些基本请求应该有效。请注意,插件套接字在主机上的/var/run/docker/plugins/<pluginID>

当使用curl 7.5及更高版本时,URL的格式应为http://hostname/APICall ,其中hostname是安装插件的有效主机名, APICall是对插件API的调用。

例如, http://localhost/VolumeDriver.List

原文链接:https://docs.docker.com.zh.xy2401.com/engine/extend/

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享