用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
上一节我们讨论了 Service 部署的两种模式:global mode 和 replicated mode。无论采用 global mode 还是 replicated mode,副本运行在哪些节点都是由 Swarm 决定的,作为用户我们有没有可能精细控制 Service 的运行位置呢? 答案是:能,使用 label。 逻辑分两步: 为每个 node 定义 label。 设置 service 运行在指定 label 的 node 上。 label 可以灵活描述 node 的属性,其形式是 key=value,用户可以任意指定,例如将swarm-worker1作为测试环境,为其添加 labelenv=test: dockernodeupdate--label-addenv=testswarm-worker1 对应的,将swarm-worker2作为生产环境,添加 labelenv=prod: dockernodeupdate--label-addenv=prodswarm-worker2 现在部署 service 到测试环境: dockerservicecreate\ --constr...


书籍: