繁体   English   中英

使用Java连接到Docker上的多节点Couchbase集群

[英]Connect to a multi node Couchbase cluster on Docker in Java

我使用以下命令创建了第一个Sofabase服务器:

docker run -d --name db1 -p 8091-8094:8091-8094 -p 11210:11210 couchbase

我创建的第二个服务器没有端口参数,因为否则docker无法部署容器:

docker run -d --name db2 couchbase

现在,我可以访问第一个容器的Web控制台,并使用第二个容器创建集群。

问题是我无法连接到Java中创建的群集,因为没有为第二个容器发布端口11210。 我总是得到一个TimeoutException 我该如何解决?

您也必须expose第二个容器的端口,就像在第一个容器中一样(这些“参数”是端口映射)。

最有可能的是,您无法使用参数运行第二个容器,因为您尝试映射的端口与第一个容器中的端口相同。 aka,您尝试了以下命令:

docker run -d --name db2 -p 8091-8094:8091-8094 -p 11210:11210 couchbase

这将不起作用,因为您不能使用已经使用的端口。 因此,尝试映射到不同的端口集。 例如:

docker run -d --name db2 -p 9091-9094:8091-8094 -p 11210:11210 couchbase

注意我现在如何使用9091-9094而不是8091-8094 上面的命令意味着: map ports 8091-8094 from the container to ports 9091-9094 in the host 发送到主机上的9091-9094任何请求都将自动转发到8091-8094内的8091-8094

然后,您可以通过指定新端口( 9091-9094 )连接到第二个容器。

我建议您检查Docker基础知识,尤其是port mapping的文档。

最后,我可以解决通过与服务器建立虚拟机的问题流浪 这样,拥有多个具有相同端口的Couchbase实例是没有问题的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM