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/