简介
在本次实验中,你将学习如何使用 docker plugin install
命令来安装和管理 Docker 插件。你将探索不同的安装场景,包括使用默认设置安装插件、安装插件并使用特定参数进行配置,以及安装插件但不立即启用它。
通过实际操作示例,你将获得通过集成外部存储服务和其他功能来扩展 Docker 能力的实践经验。最后,你将学习如何验证插件是否成功安装。
在本次实验中,你将学习如何使用 docker plugin install
命令来安装和管理 Docker 插件。你将探索不同的安装场景,包括使用默认设置安装插件、安装插件并使用特定参数进行配置,以及安装插件但不立即启用它。
通过实际操作示例,你将获得通过集成外部存储服务和其他功能来扩展 Docker 能力的实践经验。最后,你将学习如何验证插件是否成功安装。
在这一步中,你将学习如何使用默认设置安装 Docker 插件。Docker 插件可以扩展 Docker 的功能,使你能够与外部系统集成,以实现存储、网络等功能。
要安装插件,你可以使用 docker plugin install
命令,后跟插件名称。默认情况下,Docker 会从 Docker Hub 拉取插件。
让我们来安装 rexray/s3fs
插件,它为 Docker 卷提供基于 S3 的存储。
docker plugin install rexray/s3fs
当你运行此命令时,Docker 会下载插件,并要求你确认授予其必要的权限。输入 y
并按回车键继续。
Plugin "rexray/s3fs" is requesting the following permissions:
- network: [host]
- mount: [/dev/fuse]
- allow-vulnerable-api: true
- allow-host-access: true
- allow-device: [/dev/fuse]
- allow-cap: [sys_admin]
Do you grant the plugin "rexray/s3fs" these permissions? [y/N] y
确认后,Docker 将安装并启用该插件。你应该会看到表明插件已安装并启用的输出。
rexray/s3fs:latest
此输出确认 rexray/s3fs
插件已成功安装,并且现在已启用,可以用于创建基于 S3 的卷。
在这一步中,你将学习如何安装 Docker 插件,并在安装过程中使用特定参数对其进行配置。一些插件需要配置设置,如 API 密钥、端点或其他特定于服务的详细信息,才能正常工作。
你可以使用 plugin_name parameter_name=parameter_value
的格式将配置参数传递给 docker plugin install
命令。
让我们来安装 vieux/sshfs
插件,它允许你将 SSHFS 用于 Docker 卷。此插件需要指定 SSH 用户和主机。
docker plugin install vieux/sshfs SSH_USER=labex SSH_HOST=localhost
与上一步类似,Docker 会下载插件并要求你授予权限。输入 y
并按回车键授予权限。
Plugin "vieux/sshfs" is requesting the following permissions:
- network: [host]
- mount: [/dev/fuse]
- allow-vulnerable-api: true
- allow-host-access: true
- allow-device: [/dev/fuse]
- allow-cap: [sys_admin]
Do you grant the plugin "vieux/sshfs" these permissions? [y/N] y
确认后,插件将使用指定的配置参数进行安装并启用。
vieux/sshfs:latest
此输出确认 vieux/sshfs
插件已安装并启用,其中 SSH_USER
设置为 labex
,SSH_HOST
设置为 localhost
。插件在创建卷时将使用这些参数。
在这一步中,你将学习如何安装 Docker 插件而不立即启用它。如果你想安装一个插件,但在准备好使用它之前不想让它处于活动状态,或者在启用之前需要执行额外的配置步骤,这种方法会很有用。
要安装插件但不启用它,你可以在 docker plugin install
命令中使用 --disable
标志。
让我们来安装 containernetworking/cni
插件,它提供 CNI 网络功能,但目前先将其禁用。
docker plugin install --disable containernetworking/cni
Docker 会下载插件并要求你授予权限。输入 y
并按回车键授予权限。
Plugin "containernetworking/cni" is requesting the following permissions:
- network: [host]
- mount: [/dev/fuse]
- allow-vulnerable-api: true
- allow-host-access: true
- allow-device: [/dev/fuse]
- allow-cap: [sys_admin]
Do you grant the plugin "containernetworking/cni" these permissions? [y/N] y
确认后,插件将被安装,但仍处于禁用状态。
containernetworking/cni:latest
此输出确认 containernetworking/cni
插件已成功安装。在下一步中,我们将验证其状态。
在这一步中,你将学习如何验证已安装的 Docker 插件的状态。你可以查看哪些插件已安装、它们的版本,以及它们是启用还是禁用状态。
要列出所有已安装的插件,你可以使用 docker plugin ls
命令。
docker plugin ls
此命令将显示一个表格,其中包含每个已安装插件的信息,包括其 ID、名称、描述、启用状态和版本。
你应该能看到我们在前面步骤中安装的三个插件:rexray/s3fs
、vieux/sshfs
和 containernetworking/cni
。
ID NAME DESCRIPTION ENABLED VERSION
a1b2c3d4e5f6 rexray/s3fs:latest REX-Ray S3FS Plugin true latest
g7h8i9j0k1l2 vieux/sshfs:latest The `sshfs` plugin for Docker. true latest
m3n4o5p6q7r8 containernetworking/cni:latest CNI network plugin for Docker false latest
注意,rexray/s3fs
和 vieux/sshfs
显示为 ENABLED
(已启用,值为 true),而 containernetworking/cni
显示为 ENABLED
(未启用,值为 false),因为我们在安装它时使用了 --disable
标志。
你还可以使用 docker plugin inspect
命令,后跟插件名称或 ID,来检查特定插件的更详细信息。
让我们来检查 containernetworking/cni
插件:
docker plugin inspect containernetworking/cni
此命令将输出一个详细的 JSON 对象,其中包含该插件的所有配置和状态信息。你可以检查此输出以确认插件的设置和状态。在输出中查找 "Enabled": false
这一行,以确认它处于禁用状态。
[
{
"Id": "m3n4o5p6q7r8",
"Name": "containernetworking/cni:latest",
"Enabled": false,
"Settings": {
"Args": [],
"Env": [],
"Devices": [],
"Mounts": []
},
"PluginReference": "docker.io/containernetworking/cni:latest",
"Config": {
"DockerVersion": "20.10.21",
"Description": "CNI network plugin for Docker",
"Documentation": "https://github.com/containernetworking/cni",
"Interface": {
"Types": ["docker.networkdriver/1.0"],
"Socket": "cni.sock"
},
"Entrypoint": ["/docker-cni-plugin"],
"PropagatedMount": "/opt/cni",
"WorkDir": "",
"User": {},
"Args": {
"Name": "",
"Description": ""
},
"Linux": {
"Capabilities": ["CAP_SYS_ADMIN"],
"AllowAllDevices": false,
"Devices": [
{
"Name": "fuse",
"Path": "/dev/fuse"
}
]
},
"Rootfs": {
"Type": "tar",
"DiffIds": ["sha256:..."]
}
}
}
]
这一步结束了 Docker 插件的安装和验证过程。你已经学习了如何使用默认设置安装插件、使用特定配置参数安装插件,以及如何安装插件而不立即启用它们。你还了解了如何列出和检查已安装的插件以验证它们的状态。
在这个实验中,你学习了如何使用 docker plugin install
命令来安装和管理 Docker 插件。你练习了使用默认设置安装插件,这只需指定插件名称并确认所请求的权限即可。
此外,你还探索了如何在安装过程中设置特定的配置参数来安装插件,展示了如何从一开始就自定义插件的行为。最后,你学习了如何验证插件是否成功安装。