按标签过滤服务
在这一步中,你将学习如何使用带有 --filter
标志的 docker service ls
命令,根据标签来过滤服务列表。标签是可以附加到 Docker 对象(包括服务)上的键值对,用于帮助组织和识别这些对象。
按标签过滤的基本语法是 docker service ls --filter label=<key>=<value>
。你可以根据特定的标签键和值进行过滤,也可以仅根据标签键的存在进行过滤。
首先,让我们更新现有的 my-web-service
以添加一个标签。我们将为该服务添加一个标签 environment=development
。
docker service update --label-add environment=development my-web-service
此命令更新 my-web-service
并添加指定的标签。
现在,让我们过滤服务列表,只显示带有标签 environment=development
的服务。
docker service ls --filter label=environment=development
输出应该会显示 my-web-service
,因为我们刚刚为它添加了这个标签。
你还可以仅根据标签键的存在进行过滤,而不考虑其值。例如,要列出所有带有 environment
标签的服务:
docker service ls --filter label=environment
此命令将列出所有带有 environment
标签的服务,无论其值是什么。在我们的例子中,它仍然会显示 my-web-service
。
按标签过滤是管理和查询服务的强大方法,特别是在较大的 Swarm 集群中,你可能会使用标签按环境、团队或应用程序对服务进行分类。