在同一个数据卷上启动第二个容器不起作用

我正在尝试运行共享同一个数据卷容器的两个couchdb实例。

我使用下面的命令创build了容器

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来访问数据。 但是,它看起来像共享数据量沙发数据库似乎并没有与已经运行的容器共享。 如果您启动具有相同数据量的新容器,它会得到共享

这:-p -p 5985:5984意思是:HostPort => 5985,ContainerPort => 5984。
如果直接访问容器IP,则需要使用ContainerPort。 否则curl到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}}'