千家信息网

docker swarm如何在指定的node上运行指定的容器

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,描述问题比如我们有worker1,worker2,worker3三个docker host另外加一个manager1(它是swarm的master)来管理它们。如果在manager1上直接docker
千家信息网最后更新 2026年11月03日docker swarm如何在指定的node上运行指定的容器

描述问题

比如我们有worker1,worker2,worker3三个docker host另外加一个manager1(它是swarm的master)来管理它们。

如果在manager1上直接docker service create某一个容器的话,比如nginx容器,那么master会来决定挑哪一个node作为nginx容器的运行的host。

如果我要nginx容器只跑在worker1上面的话,应该怎么办呢?

解决方案

简单来说就是给每一个node打标签。

docker node update --label-add func=nginx worker1

上面这句话的意思是master给worker1的docker打上了功能是nginx的标签。func和nginx是你可以自己定的键值对。

然后在运行docker service create 的时候,指定-constraint参数即可

docker service create --name my_nginx --constraint 'node.labels.func == nginx' nginx

这样nginx的容器就会在worker1上启动,而不会在其他node上启动了。

补充

我的好奇心让我使了一个坏。我把worker1打上func=nginx的标签后,在docker service create的constraint参数上故意写成node.labels.func == nginx111。

这个时候用docker service ls和docker service ps nginx都可以看到service已经注册了,但是它的CURRENT STATE显示Pending , 并且也没有任何分配到node。

我不停止这个service,然后直接把worker2的标签写为nginx111,奇迹般地,在worker2上就自己启动了nginx的容器。master还是很智能的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

容器 标签 运行 参数 就是 时候 好奇 三个 内容 功能 奇迹 好奇心 怎么办 意思 我要 方案 智能 解决方案 还是 这句话 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 互联网科技社 科技信息互联网 腾讯阿里互联网科技 互联网科技集团 深圳齐家互联网科技 睿民互联网科技 掌上梦互联网科技 亿人帮互联网科技 互联网科技股午盘股票涨跌 北京三清互联网科技 互联网企业和科技型企业 互联网为啥属于高科技 智腾互联网科技有限公司 青岛科技大学互联网大赛研究生 恒生互联网科技指数跳水 畅思互联网科技 翼展科技 首家互联网医院 保险科技服务互联网营销体系 陕西九四连强互联网科技有限公司 广州万易互联网科技有限公司 青岛互联网科技公司 远拓互联网科技 互联网企业和科技型企业 贵州叶脉互联网科技有限公司所属行业 允成互联网科技有限公司融资 互联网新科技动漫ppt素材 江苏苏星互联网科技有限公司 上海乐五互联网科技有限公司 科技美学互联网 艺术
0