docker服务如何知道同一服务的所有其他容器?
我正在做一个文件同步Docker微服务。基本上,我将有一个docker服务如何知道同一服务的所有其他容器?,docker,docker-swarm,Docker,Docker Swarm,我正在做一个文件同步Docker微服务。基本上,我将有一个文件同步服务,该服务对swarm是全局的(每个节点上一个)。服务中的每个容器都需要与不同节点上的所有其他容器对等。文件将跨节点分发,而不是完整的副本。某些文件将仅驻留在某些节点上。我希望能够有选择地将文件的子集从一个节点复制到另一个节点 我如何获得所有其他容器的端点列表,以便微服务可以和它们进行对等?这需要通过编程实现 另一方面,我想知道文件同步微服务是否是我正在开发的解决方案的最佳途径 基本上我有一些用户上传的视频。我希望能够将它们编码
文件同步
服务,该服务对swarm是全局的(每个节点上一个)。服务中的每个容器都需要与不同节点上的所有其他容器对等。文件将跨节点分发,而不是完整的副本。某些文件将仅驻留在某些节点上。我希望能够有选择地将文件的子集从一个节点复制到另一个节点
我如何获得所有其他容器的端点列表,以便微服务可以和它们进行对等?这需要通过编程实现
另一方面,我想知道文件同步微服务是否是我正在开发的解决方案的最佳途径
基本上我有一些用户上传的视频。我希望能够将它们编码成不同的格式。我计划让视频编码节点让文件同步服务提取文件,对视频进行编码,然后使用文件同步将编码文件推回到同一服务器。我知道我可以使用某种类型的对象存储,但裸机专用服务器无法使用,如果不需要,我宁愿不使用OpenStack。感谢@johnharris85的上述建议。对于其他感兴趣的人,我创建了一个可以在
节点中使用的代码片段
const dns=require('dns')
函数查找(serviceName){
const tasks=`tasks.${serviceName}`
返回新承诺((解决、拒绝)=>{
查找(任务,{all:true},(错误,地址,族)=>{
如果(错误){
退货拒绝(err)
}
const filtered=addresses.filter(地址=>address.family==4)
const ips=filtered.map(x=>x.address)
解析(ips)
})
})
}
异步函数main(){
const result=等待查找('hello')
console.log(结果)
}
main()
如果您使用的是VIP,则可以执行nslookup任务。
它将返回各个容器位置。如果您使用的是DNS,那么只要nslookup
也会这样做。