简介
在这个实验中,你将学习如何使用 docker plugin rm
命令移除 Docker 插件。你将先安装一个示例插件来进行操作。然后,你会尝试在插件仍处于启用状态时将其移除,以了解默认行为和会遇到的错误。
在移除失败后,你将学习如何禁用插件,这是移除插件的必要前提。最后,你将成功移除已禁用的插件,并探索使用强制标志进行移除的选项。
在这个实验中,你将学习如何使用 docker plugin rm
命令移除 Docker 插件。你将先安装一个示例插件来进行操作。然后,你会尝试在插件仍处于启用状态时将其移除,以了解默认行为和会遇到的错误。
在移除失败后,你将学习如何禁用插件,这是移除插件的必要前提。最后,你将成功移除已禁用的插件,并探索使用强制标志进行移除的选项。
在这一步中,你将学习如何安装 Docker 插件。Docker 插件可以扩展 Docker 的功能,使你能够与外部系统集成,用于存储、网络和日志记录等方面。
我们将安装一个简单的示例插件来演示这个过程。安装插件的命令是 docker plugin install
。在安装过程中,你需要接受插件的功能和权限。
首先,让我们安装 vieux/sshfs
插件。这个插件允许你使用 SSHFS 挂载卷。
docker plugin install vieux/sshfs
系统会提示你接受插件的功能。输入 y
并按回车键继续。
Plugin "vieux/sshfs" is requesting the following capabilities:
- Network: host
- Mounts: [/dev/fuse]
- Args: [--sshkey-path]
Do you grant the plugin these permissions? [y/N] y
接受后,插件将被安装并启用。你可以通过列出已安装的插件来验证安装情况。
docker plugin ls
你应该会看到 vieux/sshfs
被列出,并且 ENABLED
状态设置为 true
。
在上一步中,你安装并启用了 vieux/sshfs
插件。在这一步,你将尝试在插件仍处于启用状态时将其移除。这将表明你不能直接移除已启用的插件。
移除 Docker 插件的命令是 docker plugin rm
。我们将尝试移除 vieux/sshfs
插件。
docker plugin rm vieux/sshfs
你会看到一条错误消息,提示该插件已启用,无法移除。这是预期的行为,因为 Docker 会阻止你移除当前正在使用或处于活动状态的插件。
输出将类似于以下内容:
Error response from daemon: plugin vieux/sshfs is enabled. Disable it before removing
这证实了你必须先禁用插件,才能将其移除。在下一步中,你将学习如何禁用插件。
在上一步中,你了解到不能移除已启用的 Docker 插件。若要移除插件,必须先将其禁用。
禁用 Docker 插件的命令是 docker plugin disable
。现在,我们将禁用你在第一步中安装的 vieux/sshfs
插件。
docker plugin disable vieux/sshfs
此命令将停止插件并使其处于非活动状态。如果命令执行成功,你不会看到太多输出。
要确认插件已被禁用,你可以再次列出已安装的插件。
docker plugin ls
现在,vieux/sshfs
的输出应显示 ENABLED
为 false
。
ID NAME DESCRIPTION ENABLED
f51132325c3b vieux/sshfs Create SSHFS mounts true
等等,输出仍然显示 true
?这是因为 docker plugin ls
命令可能显示的是缓存信息。让我们再次尝试列出插件,以查看更新后的状态。
docker plugin ls
现在,你应该会看到 vieux/sshfs
的 ENABLED
状态为 false
。
ID NAME DESCRIPTION ENABLED
f51132325c3b vieux/sshfs Create SSHFS mounts false
该插件现已被禁用,可以进行移除操作了。
在上一步中,你成功禁用了 vieux/sshfs
插件。既然插件已被禁用,你可以使用 docker plugin rm
命令将其移除。
docker plugin rm vieux/sshfs
如果插件被成功移除,你会在输出中看到插件名称。
vieux/sshfs
要确认插件已被移除,请再次列出已安装的插件。
docker plugin ls
这次,vieux/sshfs
插件应该不会再出现在列表中。
这展示了移除 Docker 插件的标准流程:先禁用,再移除。在下一步中,你将探究尝试强制移除插件会发生什么。
在前面的步骤中,你了解到在移除插件之前必须先将其禁用。如果你尝试强制移除一个已启用的插件,会发生什么呢?
docker plugin rm
命令有一个 --force
或 -f
标志,可用于尝试强制移除插件。然而,即使使用了强制标志,Docker 也不会移除已启用的插件。
首先,让我们重新安装 vieux/sshfs
插件,这样我们就有一个已启用的插件来进行测试。
docker plugin install vieux/sshfs
当提示你接受权限时,请记得输入 y
并按回车键。
现在插件已重新安装并启用,让我们尝试使用强制标志来移除它。
docker plugin rm --force vieux/sshfs
你会看到一条与不使用强制标志尝试移除时类似的错误消息,表明该插件已启用,无法移除。
Error response from daemon: plugin vieux/sshfs is enabled. Disable it before removing
这证实了强制标志并不能绕过在移除插件之前必须先禁用它的要求。强制标志通常在其他 Docker 场景中使用,例如移除容器、镜像或卷,以绕过某些检查,但它不适用于移除已启用的插件。
如果你愿意,可以按照之前学到的步骤再次禁用并移除该插件,以清理环境。
在本次实验中,你学习了如何使用 docker plugin install
命令安装 Docker 插件,并使用 docker plugin ls
命令验证其安装情况。随后,你尝试使用 docker plugin rm
命令移除一个已启用的插件,发现 Docker 会阻止移除处于活动状态的插件,需要先将其禁用。