我使用docker-API模块来访问服务列表和副本信息。它在群组模式和管理器节点上工作得更好。但如果应用程序在工作节点上运行,它会给出以下错误:“意外-此节点不是群管理器。使用"docker swarm init”或"docker swarm join“将此节点连接到群并重试”。以下是我的代码:
const Docker = require('node-docker-api').Docker
const docker = new Docker({ socketPath: '/var/run/docker.sock' })
const services = await docker.service.list()
是否可以通过向worker节点提供任何选项或权限来获取两个节点上的服务列表?另外,是否可以使用docker-compose或kubernetes运行app来获取?
发布于 2019-10-06 05:56:35
As docker docs状态:
工作节点不会参与Raft分布式状态,也不会做出调度决策,也不会服务于群模式HTTP API。
可能的解决方案:
对于topology.
--constraint node.role==manager
基于node.js的停靠服务这样,您的服务容器将仅在提供群组模式HTTP API的管理器节点上运行。
https://stackoverflow.com/questions/57833846
复制相似问题