千家信息网

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

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,描述问题比如我们有worker1,worker2,worker3三个docker host另外加一个manager1(它是swarm的master)来管理它们。如果在manager1上直接docker
千家信息网最后更新 2025年12月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安全错误 数据库的锁怎样保障安全 航天软件开发口号 段子 网络安全教育的班会成效 八公山区国家网络安全宣传周活动 做软件开发如何成为业务专家 丢失 dnf 恢复数据库 高性能游戏服务器 供应链管理系统软件开发价格 学生党支部网络安全宣传周 公司增加服务器安全吗 服务器放在台湾安全吗 哪个不是数据库的相关术语 linux服务器镜像文件 数据库添加一列有下划线 离石区乡村振兴数据库 网络安全是什么在组成部分 郑州天健湖网络安全中心位置 网络技术相关教程 mysql指定数据库语句 海口电商系统软件开发 日本的网络安全现状英语作文 开软件开发公司能赚多少 边缘侧环境服务器 数据库外建的作用以及怎么实现的 软件开发每天的报价是多少 云服务器挖monero 网络安全是九月第几周 局域网邮件服务器 邮件转发 桦甸市天气预报软件开发 如何建立专利数据库 宁夏自然资源厅网络安全培训
0