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

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

couchbase-cli cluster-init -c $CB_SERVER_IPADDR:8091 --cluster-init-username=admin --cluster-init-password=couchbase --cluster-init-ramsize=2048 

我得到一个名为内部IP地址的couchbase服务器节点 – 172.xxx然后,当我使用以下命令创build桶时,

 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 

桶被创build。 但是,当我的Web应用程序位于不同的容器,与couchbase与Couchbase服务器正在运行的docker主机的IP地址进行通信时,我得到以下错误消息

 2014-08-05 21:49:00.106 INFO com.couchbase.client.CouchbaseConnection: Reconnecting due to exception on {QA sa=172.xxx/172.xxx: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) 

我可以看到,我的应用程序正在使用服务器节点名称,这是内部IP地址与couchbase进行通信,从而出现错误。 任何帮助赞赏

您的Web应用程序泊坞窗容器无法parsing沙发基础泊坞窗容器的主机名。

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

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

 sudo docker run -d --name couchbase <your couchbase image name> 

以下将在您的Web应用程序泊坞窗容器的/ etc / hosts中添加一个条目“$ your_couchbase_docker_container_IP couchbase”

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

然后在您的Web应用程序中,您可以使用couchbase:8091访问couchbase泊坞窗容器

有关“docker链接”的更多详细信息, 请访问https://docs.docker.com/userguide/dockerlinks/