Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker服务如何知道同一服务的所有其他容器?_Docker_Docker Swarm - Fatal编程技术网

docker服务如何知道同一服务的所有其他容器?

docker服务如何知道同一服务的所有其他容器?,docker,docker-swarm,Docker,Docker Swarm,我正在做一个文件同步Docker微服务。基本上,我将有一个文件同步服务,该服务对swarm是全局的(每个节点上一个)。服务中的每个容器都需要与不同节点上的所有其他容器对等。文件将跨节点分发,而不是完整的副本。某些文件将仅驻留在某些节点上。我希望能够有选择地将文件的子集从一个节点复制到另一个节点 我如何获得所有其他容器的端点列表,以便微服务可以和它们进行对等?这需要通过编程实现 另一方面,我想知道文件同步微服务是否是我正在开发的解决方案的最佳途径 基本上我有一些用户上传的视频。我希望能够将它们编码

我正在做一个文件同步Docker微服务。基本上,我将有一个
文件同步
服务,该服务对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
也会这样做。