docker - 连接到 docker 内的 couchdb
问题描述
我正在尝试设置一个运行 couchDB 的 Docker 映像,该映像在构建阶段加载一些数据。所有这些似乎都有效,但是一旦它运行我就无法连接它......
curl localhost:5984
curl: (52) Empty reply from server
我的 Dockerfile 看起来像:
FROM ubuntu:16.04
COPY . .
# Load deps
RUN apt-get update && apt-get install -y apt-utils apt-transport-https curl
# Install couchDB
RUN echo "deb https://apache.bintray.com/couchdb-deb xenial main" \
| tee -a /etc/apt/sources.list
RUN curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc \
| apt-key add -
RUN apt-get update && apt-get install -y couchdb
# Load data
RUN ./myLoadScript.sh
# Expose couchDB port
EXPOSE 5984
# Start couchDB
CMD ["/opt/couchdb/bin/couchdb"]
我构建并运行它:
docker build --tag=database .
docker run -p 5984:5984 database
有什么想法吗?
在此先感谢,
丹
解决方案
默认情况下,CouchDB 可以在 localhost 上访问,因为您使用的是 docker,所以它将是容器内的 localhost。
您可以在 CouchDB 容器中尝试exec并运行curl localhost:5984,它应该可以工作。
- 如果您想允许某些 IP 连接到您的 CouchDB 服务器,那么您应该使用 bind_address config_docs。
- 要允许所有 IP ,请在local.ini中使用bind_address = 0.0.0.0。
推荐阅读
- vue.js - 如何使用 Nuxt.js 保持活动道具从缓存中排除特定组件?
- javascript - 这是 JavaScript 中的会议启动脚本。如何使用此脚本下载会议?
- android - Android Studio 迁移到 GitHub 后没有用颜色标记变量和注解
- angular - Angular - 如何以反应形式提交附加图像文件
- node.js - 我在服务器端收到 400 错误状态,但在客户端收到 200 状态
- node.js - 获取在 sequelize 当前请求中执行的所有查询并设置为 req.queries
- sql - Row_Number 按 id 分区按时间戳排序,但按连续行分组
- python - 如何让 Buildozer 通过 pip 成功将套接字安装到移动应用程序中
- angular - 加载图像继续旋转时,Angular Navigation Start 无法正常工作
- c++ - 用g++编译cpp文件