2017-07-17 23 views
1

我试图运行共享同一个数据卷容器的两个couchdb实例。在同一个数据卷上启动第二个容器不起作用

我使用下面的命令

docker create -v /opt/couchdb/data --name couchdb-data debian:jessie /bin/true 

然后开始容器在同一个卷上创建的容器。

docker run -d -p 5984:5984 -v /opt/couchdb/data --name couchdb-1 --volumes-from couchdb-data klaemo/couchdb 
docker run -d -p 5985:5984 -v /opt/couchdb/data --name couchdb-2 --volumes-from couchdb-data klaemo/couchdb 

我把数据放在一个,并尝试从另一个访问。

curl -H "Content-Type: application/json" -d '{"value":"ORielly"}' http://172.17.0.2:5984/db 
{"ok":true,"id":"9071064ff053a75d3c639fbf8d00098c","rev":"1-8b72db504e321c6d49070196dc426a19"} 
curl -H "Content-Type: application/json" -d '{"value2":"ORielly"}' http://172.17.0.2:5985/db 
curl: (7) Failed to connect to 172.17.0.2 port 5985: Connection refused 

第二个给连接拒绝 - 不知道是什么原因。

UPDATE

它看起来像我使用了错误的港口集装箱IP来访问数据。 但是,它看起来像沙发数据库共享数据库似乎并没有与已经运行的容器共享。如果您启动一个具有相同数据量的新容器,它会得到共享。

+0

是什么'泊坞窗ps'说明了什么? – Leon

+0

docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4cfe49a7be57 klaemo/couchdb“tini -/docker -e ...”2小时前Up 2 hours 4369/tcp,9100/tcp,0.0.0.0:5985-> 5984/tcp couchdb-2 f793b380d8dc klaemo/couchdb“tini -/docker -e ...”2小时前Up 2小时4369/tcp,9100/tcp,0.0.0.0:5984->5984/tcp couchdb-1 – jtkSource

回答

1

此:-p 5985:5984表示:HostPort => 5985,ContainerPort => 5984。
如果您直接访问容器IP,那么您需要使用ContainerPort。否则卷曲到localhost:5985

此外,这个172.17.0.2是一个容器的IP,你正在使用它的两个。

这将让你知道每个集装箱IP:

docker inspect couchdb-1 -f '{{.NetworkSettings.Networks.bridge.IPAddress}}' 

docker inspect couchdb-2 -f '{{.NetworkSettings.Networks.bridge.IPAddress}}' 
+0

我检查了两个容器的IP地址分别是172.17.0.2和172.17.0.3。我能够使用02地址打开容器,但03说拒绝连接。 curl -H“Content-Type:application/json”-d'{“value3”:“ORielly”}'http://172.17.0.3:5985/db curl:(7)无法连接到172.17.0.3端口5985:连接被拒绝。 你对使用本地主机的建议似乎正在工作,但我不明白为什么它应该适用于02:5984而不是03:5985。另外,由于它们共享相同的数据量,因此我应该可以通过另一个插入。 – jtkSource

+0

好吧,我想我知道有容器数据可访问的所有端口: “http:// localhost:5985/db/_all_docs” “http:// localhost:5984/db/_all_docs” “ http://172.17.0.3:5984/db/_all_docs“ ”http://172.17.0.2:5984/db/_all_docs“ – jtkSource

+0

虽然我能够正确访问。它看起来像共享数据卷不共享数据... – jtkSource

相关问题