Docker容器-Couchbase服务器节点内部IP地址

Docker容器-Couchbase服务器节点内部IP地址,docker,couchbase,host,Docker,Couchbase,Host,我已经为Couchbase创建了docker容器。服务已启动并正在运行,但使用以下命令 couchbase-cli cluster-init -c $CB_SERVER_IPADDR:8091 --cluster-init-username=admin --cluster-init-password=couchbase --cluster-init-ramsize=2048 couchbase-cli bucket-create -c $CB_SERVER_IPADDR:8091 -u adm

我已经为Couchbase创建了docker容器。服务已启动并正在运行,但使用以下命令

couchbase-cli cluster-init -c $CB_SERVER_IPADDR:8091 --cluster-init-username=admin --cluster-init-password=couchbase --cluster-init-ramsize=2048
couchbase-cli bucket-create -c $CB_SERVER_IPADDR:8091 -u admin -p couchbase --bucket=heartbeat --bucket-type=couchbase --bucket-ramsize=500 --bucket-replica=0 --wait
我在couchbase中得到一个服务器节点,其名称作为其内部IP地址-172.x.x.x。然后,当我使用以下命令创建bucket时

couchbase-cli cluster-init -c $CB_SERVER_IPADDR:8091 --cluster-init-username=admin --cluster-init-password=couchbase --cluster-init-ramsize=2048
couchbase-cli bucket-create -c $CB_SERVER_IPADDR:8091 -u admin -p couchbase --bucket=heartbeat --bucket-type=couchbase --bucket-ramsize=500 --bucket-replica=0 --wait
创建桶。但是,当我的web应用程序位于另一个容器中,使用couchbase服务器运行的docker主机的IP地址与couchbase通信时,我会收到以下错误消息

2014-08-05 21:49:00.106 INFO com.couchbase.client.CouchbaseConnection:  Reconnecting due to exception on {QA sa=172.x.x.x/172.x.x.x:11210, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}
java.net.NoRouteToHostException: No route to host
        at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
        at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
        at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:485)
        at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:322)
        at com.couchbase.client.CouchbaseConnection.run(CouchbaseConnection.java:288)

我可以看到,我的应用程序正在使用服务器节点名,这是与couchbase通信的内部IP地址,因此出现了错误。您的web应用程序docker容器无法解析couchbase docker容器的主机名

您需要将web应用程序容器和couchbase容器链接在一起

下面将为您的couchbase实例创建一个名称“couchbase”,该名称稍后将由web应用程序docker容器引用

sudo docker run -d --name couchbase <your couchbase image name>
sudo docker run -d -P --link couchbase:couchbase <your web application image name>
sudo docker run-d——名称couchbase
下面将在web应用程序docker容器的/etc/hosts中添加一个条目“$your\u couchbase\u docker\u container\u IP couchbase”

sudo docker run -d --name couchbase <your couchbase image name>
sudo docker run -d -P --link couchbase:couchbase <your web application image name>
sudo docker run-d-P--link couchbase:couchbase 然后在web应用程序中,可以使用couchbase:8091访问couchbase docker容器

sudo docker run -d --name couchbase <your couchbase image name>
sudo docker run -d -P --link couchbase:couchbase <your web application image name>

有关“docker link”的更多详细信息,请访问

查看-解决方案应相同如果couchbase和web应用程序容器在两个不同的虚拟机上运行会怎样?问题在于couchbase服务器节点设置为容器IP地址。有什么建议吗?