我为Couchbase创建了docker容器 . 该服务已启动并正在运行,但使用以下命令,
couchbase-cli cluster-init -c $CB_SERVER_IPADDR:8091 --cluster-init-username=admin --cluster-init-password=couchbase --cluster-init-ramsize=2048
我在couchbase中获得了一个服务器节点,其名称为其内部IP地址 - 172.x.x.x.然后,当我使用以下命令创建存储桶时,
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)
我可以看到我的应用程序正在使用服务器节点名称,这是内部IP地址与couchbase通信,从而导致错误 . 任何帮助赞赏
1 回答
您的Web应用程序泊坞窗容器无法解析couchbase docker容器的主机名 .
您需要将Web应用程序容器和couchbase容器链接在一起 .
下面将为您的couchbase实例创建一个名称“couchbase”,此名称稍后将由Web应用程序docker容器引用
下面将在您的Web应用程序docker容器中的/ etc / hosts中添加一个条目“$ your_couchbase_docker_container_IP couchbase”
然后在您的Web应用程序中,您可以使用couchbase:8091来访问couchbase docker容器
有关"docker link"的更多详细信息,请访问https://docs.docker.com/userguide/dockerlinks/