简介
在本次实验中,你将学习如何管理 Docker 插件,特别关注升级过程。你将从安装和使用 Docker 插件开始,以了解其基本功能以及它如何与 Docker 集成。
完成初始设置后,你将学习为插件升级做准备所需的步骤,这包括禁用插件。最后,你将使用 docker plugin upgrade
命令执行升级,然后重新启用并验证升级后的插件,以确保其正常运行。本次实验提供了 Docker 插件生命周期管理的实践经验。
在本次实验中,你将学习如何管理 Docker 插件,特别关注升级过程。你将从安装和使用 Docker 插件开始,以了解其基本功能以及它如何与 Docker 集成。
完成初始设置后,你将学习为插件升级做准备所需的步骤,这包括禁用插件。最后,你将使用 docker plugin upgrade
命令执行升级,然后重新启用并验证升级后的插件,以确保其正常运行。本次实验提供了 Docker 插件生命周期管理的实践经验。
在这一步中,你将学习如何安装和使用 Docker 插件。Docker 插件可以扩展 Docker 的功能,它们能提供诸如卷管理、网络驱动程序等功能。我们将安装一个名为 rexray/s3fs
的简单卷插件,该插件允许将 Docker 卷存储在 Amazon S3 上。尽管我们不会设置完整的 S3 后端,但安装该插件可以演示整个过程。
首先,让我们来安装这个插件。你可以使用 docker plugin install
命令来安装 Docker 插件。
sudo docker plugin install rexray/s3fs --grant-all-permissions
此命令会安装 rexray/s3fs
插件并授予其所有必要的权限。在本次实验环境中,为了简便起见使用了 --grant-all-permissions
标志。在生产环境中,你应该仔细审查并仅授予必要的权限。
你会被提示确认安装和权限。输入 y
并按回车键。
Plugin "rexray/s3fs" is requesting the following permissions:
- network: host
- mount: /dev/fuse
- allow-sys-admin
- allow-cap-sys-admin
- allow-device /dev/fuse
- allow-cfg-unix-groups
- allow-runtime-privilege
- allow-force-remove
Do you grant the plugin these permissions? [y/N] y
确认后,Docker 会下载并安装该插件。根据你的网络连接情况,这可能需要一些时间。
安装完成后,你可以使用 docker plugin ls
命令来验证插件是否已安装并启用。
sudo docker plugin ls
你应该会看到 rexray/s3fs
被列出,且 ENABLED
状态为 true
。
ID NAME DESCRIPTION ENABLED
xxxxxxxxxxxx rexray/s3fs REX-Ray S3FS Docker Volume Plugin true
现在插件已安装并启用,你可以使用它来创建一个卷。尽管在未配置 S3 凭证的情况下我们无法充分利用 S3 的功能,但仍可以使用该插件驱动程序创建一个卷。
sudo docker volume create --driver rexray/s3fs my-s3-volume
此命令尝试使用 rexray/s3fs
驱动程序创建一个名为 my-s3-volume
的卷。由于我们尚未配置 S3,此命令可能会显示与 S3 连接相关的警告或错误,但 Docker 会创建卷对象本身。
你可以列出卷以查看新创建的卷。
sudo docker volume ls
你应该会看到 my-s3-volume
被列出,其 DRIVER
为 rexray/s3fs
。
DRIVER VOLUME NAME
rexray/s3fs my-s3-volume
最后,你可以检查该卷以查看其更多详细信息。
sudo docker volume inspect my-s3-volume
此命令将输出一个包含 my-s3-volume
信息的 JSON 对象,包括其驱动程序。
在这一步中,你将学习如何禁用 Docker 插件。在升级 Docker 插件之前,先将其禁用是一个很好的做法。这可以确保在升级过程中没有任何容器或服务正在使用该插件,从而避免潜在的问题。
你可以使用 docker plugin disable
命令来禁用 Docker 插件。
sudo docker plugin disable rexray/s3fs
此命令会禁用 rexray/s3fs
插件。如果该插件当前正被任何运行中的容器使用,Docker 将阻止你禁用它并提供一条错误消息。在我们的示例中,该插件没有被运行中的容器使用,因此应该可以成功禁用。
禁用插件后,你可以使用 docker plugin ls
命令来验证其状态。
sudo docker plugin ls
现在你应该会看到 rexray/s3fs
被列出,且 ENABLED
状态为 false
。
ID NAME DESCRIPTION ENABLED
xxxxxxxxxxxx rexray/s3fs REX-Ray S3FS Docker Volume Plugin false
禁用插件会使其处于非活动状态,但它仍然安装在你的系统上。在继续进行插件升级或移除操作之前,这种状态是必要的。
在这一步中,你将学习如何升级 Docker 插件。升级插件意味着安装该插件的新版本。由于我们在上一步中已经禁用了插件,现在可以继续进行升级操作。
要升级 Docker 插件,你可以再次使用 docker plugin install
命令,指定插件名称,如果需要特定版本,还可以指定新的标签。如果你不指定标签,Docker 将拉取最新版本。我们将使用相同的插件名称,Docker 会处理升级过程。
sudo docker plugin install rexray/s3fs --grant-all-permissions
此命令将尝试再次安装 rexray/s3fs
插件。由于已经安装了一个版本,Docker 会将此操作识别为升级尝试。与初始安装类似,你会被提示确认升级和权限。
Plugin "rexray/s3fs" is requesting the following permissions:
- network: host
- mount: /dev/fuse
- allow-sys-admin
- allow-cap-sys-admin
- allow-device /dev/fuse
- allow-cfg-unix-groups
- allow-runtime-privilege
- allow-force-remove
Do you grant the plugin these permissions? [y/N] y
输入 y
并按回车键以继续升级。Docker 将下载插件的新版本并替换现有的版本。
升级完成后,插件仍将处于禁用状态。你可以使用 docker plugin ls
命令来验证这一点。
sudo docker plugin ls
你应该仍然会看到 rexray/s3fs
被列出,且 ENABLED
状态为 false
。ID
可能已经改变,这表明已经安装了新版本。
ID NAME DESCRIPTION ENABLED
yyyyyyyyyyyy rexray/s3fs REX-Ray S3FS Docker Volume Plugin false
升级插件会用新版本替换插件的可执行文件和配置文件。升级完成后,重新启用插件以使其可供使用是很重要的。
在这一步中,你将重新启用升级后的 Docker 插件,并验证其是否正常工作。升级插件后,它仍处于禁用状态。你需要显式地启用它,以便 Docker 可以使用它。
你可以使用 docker plugin enable
命令来启用 Docker 插件。
sudo docker plugin enable rexray/s3fs
此命令将启用 rexray/s3fs
插件。如果插件成功启动,该命令将在无输出的情况下完成。如果启动插件时出现问题,你可能会看到一条错误消息。
启用插件后,你可以使用 docker plugin ls
命令来验证其状态。
sudo docker plugin ls
现在你应该会看到 rexray/s3fs
被列出,且 ENABLED
状态恢复为 true
。
ID NAME DESCRIPTION ENABLED
yyyyyyyyyyyy rexray/s3fs REX-Ray S3FS Docker Volume Plugin true
为了进一步验证升级后的插件是否正常工作,你可以尝试使用该插件驱动创建另一个卷。
sudo docker volume create --driver rexray/s3fs my-s3-volume-2
此命令使用 rexray/s3fs
驱动创建一个名为 my-s3-volume-2
的新卷。如果插件功能正常,该命令应该会成功执行(不过,和之前一样,如果未进行配置,可能会显示与 S3 连接相关的警告)。
你可以再次列出卷,以查看新创建的卷。
sudo docker volume ls
现在你应该会看到 my-s3-volume
和 my-s3-volume-2
都被列出,且 DRIVER
为 rexray/s3fs
。
DRIVER VOLUME NAME
rexray/s3fs my-s3-volume
rexray/s3fs my-s3-volume-2
这证实了升级后的插件已启用,并且可以用于创建卷。
在这个实验中,你学习了如何安装和使用 Docker 插件。具体来说,你使用 docker plugin install
命令安装了 rexray/s3fs
卷插件,并授予了必要的权限。然后,你使用 docker plugin ls
命令验证了插件的成功安装和启用状态。
安装完成后,你了解到在进行升级之前,使用 docker plugin disable
命令禁用插件这一关键步骤。接着,你使用 docker plugin upgrade
命令执行了插件升级,并指定了新版本。最后,你使用 docker plugin enable
命令重新启用了升级后的插件,并验证了其状态和功能,确认升级过程成功完成。