Docker Engine 支持一个插件系统,可让您向容器运行时添加额外的功能。新的存储驱动程序、网络堆栈和日志系统的插件都是免费提供的。
现代版本的 Docker 引擎包括您在 CLI 中管理插件所需的一切。我们在本指南中专注于这个“托管”插件系统。您必须手动安装和维护使用旧插件系统的插件。
关于插件
插件使用新功能扩展了 Docker 引擎,这些功能过于具体,无法随一般安装一起提供。您通常不会直接与插件交互。安装插件后,您可以在运行现有 Docker 命令时引用它提供的资源。
插件主要有以下三种类型:
- 日志记录——这些插件添加了新的日志记录驱动程序,让您可以将日志存储在 Docker 引擎和主机之外的位置。
- 网络- 网络插件可以添加对新网络类型和相关功能的支持。
- 卷– 存储插件为 Docker 带来了额外的文件系统和卷驱动程序,为您提供了更多持久数据的选择。
还可以使用具有这些核心领域之外的功能的插件。插件由社区供应商编写;您可以使用公共插件 API和Go SDK编写自己的插件。
插件通过 Docker Hub分发。您可以通过前往“探索”页面并选择顶部的“插件”选项卡来找到可用的插件。目前有超过 600 个插件可用。
如果你自己写插件,可以用命令提交到Docker Hub 。这类似于将图像推送到公共注册表。您需要先运行以将插件的清单和文件系统转换为准备提交的包。您可以在Docker 文档 中获取有关创作插件的更多信息。
docker plugin push
docker plugin create
安装插件
插件是用命令安装的。这接受 Docker Hub 插件的名称作为其参数:
docker plugin install
docker plugin install store/example/example-plugin:version
插件引用看起来像以 开头的图像引用。指定要安装的插件版本时适用相同的标记原则。与图像不同,您不能省略版本以自动拉取标签。
store/
latest
您可以通过单击其 Docker Hub 页面上的“设置说明”按钮来查找插件的版本号并复制准备运行的安装命令。免费插件将允许您使用右上角的常规复制和粘贴框进入新屏幕。在终端中运行命令以开始安装插件。
插件通常请求访问主机权限,以便它们可以提供其功能。例如,网络插件需要访问 Docker 的网络才能连接新资源。通过键入并按回车键来确认权限提示以完成安装。您可以通过在命令中添加标志来跳过提示;这是非交互式安装的理想选择,但如果插件更新了新功能,则可能会出现意外授予权限的风险。
host
y
--grant-all-permissions
install
插件安装后自动启用。启用插件允许执行预安装脚本。使用该标志将插件默认为禁用状态,使其处于惰性状态,直到稍后手动激活。
--disable
查看插件详细信息
安装后,您的插件将在运行时显示:
docker plugin ls
泊坞窗插件ls
可以从命令中获取有关单个插件的更多详细信息。这接受插件 ID 或标签并显示描述插件清单的详细 JSON:
docker inspect
码头工人检查 eccffc
离线安装
Docker CLI 没有内置的离线安装插件的方法。尽管如此,您可以先将插件安装在联网客户端上,然后将插件文件复制到离线系统,从而将插件添加到气隙式 Docker 安装中。
您将在主机上的目录中找到已安装的插件。每个插件都有自己的子目录,以它的 ID 命名。这些 ID 在命令的输出中可见。
/var/lib/docker/plugins
docker plugin ls
启用和禁用插件
可以启用或禁用插件。您将在输出的最后一列中看到当前状态。一个被禁用的插件不会被加载,所以它会表现得好像它没有安装一样。
ls
使用和命令更改插件的状态。提供您安装的插件之一的 ID 作为命令的唯一参数:
docker plugin enable
docker plugin disable
docker 插件启用 eccffc
如果您的 Docker 引擎配置或容器之一正在积极使用插件,您可能无法禁用它。添加该标志将强制禁用插件,但应谨慎使用,因为您可能会冒容器意外退出的风险。
-f
使用该命令卸载插件。提供插件的 ID 或名称以将其从 Docker 中完全删除。具有与处理主动使用的插件并强制删除时相同的行为。
docker plugin rm
rm
disable
更改插件设置
Docker 的插件系统包括一个集成机制,供插件作者公开可定制的设置。作为用户,您可以通过以下命令更改这些设置:
docker plugin set
docker 插件集示例插件设置键=新值
替换为您定位的插件的 ID 或名称。插件设置的值将更新为.
example-plugin
setting-key
new-value
可用设置自然因插件而异。它们应该记录在 Docker Hub 上的插件描述中。Docker CLI 没有内置命令来查看插件的所有可用设置,但它们确实显示在输出中。在插件的 JSON 表示中查找该字段;它将包含您可以通过 CLI 更改的选项的对象和字段。
docker plugin inspect
Settings
Name
Settable
更新你的插件
插件随命令更新。像其他命令一样,它需要一个插件 ID 或标签作为参数。
docker plugin update
升级插件将下载并安装 Docker Hub 上可用的最新版本。如果您已经在最新版本上,该命令将重新安装当前版本。系统会提示您授予插件所需的任何新权限。在交互式输入不可行的环境中,接受该标志以跳过提示。
--grant-all-permissions
没有办法用一个命令更新系统上的所有插件。您最好订阅插件供应商的发布公告,然后在更新可用时将更新应用到您的安装中。这将确保您的插件保持安全和受支持。
概括
Docker 的插件生态系统允许您向 Docker 引擎添加附加功能。插件驻留在 Docker Hub 上,可以从您的终端安装。CLI 包含一个插件更新程序,但它一次只能处理一个插件,而不是整个目录。
现在您知道如何使用和管理插件,您可以开始浏览 Docker Hub 以查找选项来增强您的工作流程。Elastic Logging Plugin将 Docker 容器日志流式传输到 Elastic Stack 集群,vSphere for Docker允许您将 VMWare vSphere 存储用于持久卷,而Weave Net为 Docker 带来多播加密网络。如果您没有看到您需要的内容,请使用插件 API尝试编写您自己的解决方案,您可以通过 Hub 将其发布到更广泛的社区。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.