首页 > 解决方案 > 连接到 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

有什么想法吗?

在此先感谢,

标签: dockercouchdb

解决方案


  • 默认情况下,CouchDB 可以在 localhost 上访问,因为您使用的是 docker,所以它将是容器内的 localhost。

  • 您可以在 CouchDB 容器中尝试exec并运行curl localhost:5984,它应该可以工作。

  • 如果您想允许某些 IP 连接到您的 CouchDB 服务器,那么您应该使用 bind_address config_docs
  • 要允许所有 IP ,请在local.ini中使用bind_address = 0.0.0.0

推荐阅读