首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在相同的数据卷上启动第二个容器不起作用

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

Stack Overflow用户
提问于 2017-07-17 11:31:49
回答 1查看 110关注 0票数 1

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

我使用以下命令创建了容器

代码语言:javascript
复制
docker create -v /opt/couchdb/data --name couchdb-data debian:jessie /bin/true

然后开始用相同体积的容器。

代码语言:javascript
复制
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

我把数据放进一个,然后尝试从另一个访问。

代码语言:javascript
复制
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

第二种是拒绝连接--不确定原因是什么。

更新

看起来我使用了带有错误端口的容器IP来访问数据。但是,它看起来好像没有与已经在运行的容器共享沙发数据库中的数据卷。如果您使用相同的数据卷启动一个新容器,它将得到共享。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-17 12:14:25

-p 5985:5984的意思是: HostPort=>5985,ContainerPort=>5984。

如果直接访问容器IP,则需要使用ContainerPort。否则卷曲到localhost:5985

而且,这个172.17.0.2是一个容器的IP,您将两者都使用它。

这将使您知道每个容器IP:

代码语言:javascript
复制
docker inspect couchdb-1 -f '{{.NetworkSettings.Networks.bridge.IPAddress}}'

docker inspect couchdb-2 -f '{{.NetworkSettings.Networks.bridge.IPAddress}}'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45143167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档