簡體   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