首页 文章

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

提问于
浏览
2

我为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 回答

  • 0

    您的Web应用程序泊坞窗容器无法解析couchbase docker容器的主机名 .

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

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

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

    下面将在您的Web应用程序docker容器中的/ 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容器

    有关"docker link"的更多详细信息,请访问https://docs.docker.com/userguide/dockerlinks/

相关问题