如何从已安装的容器外部连接到Couchdb主机?

时间:2019-12-18 10:43:48

标签: docker dockerfile couchdb docker-network

我使用-p选项在运行容器时公开了端口5984,并根据官方CouchDB安装中的源代码将local.ini文件中的bind-address属性更改为0.0.0.0。我可以通过容器内部的curl连接到DB,但是不能通过系统的浏览器或curl命令连接。基于访问docker外部的容器尝试了所有类型的解决方案。还尝试了docker-hub上所有可用的基于Linux的操作系统。 dockerfile是-

FROM debian

WORKDIR /app

RUN apt-get update && apt-get install apt-utils curl vim bash wget sudo gnupg libnspr4 libnspr4-dev libffi-dev -y

RUN sudo apt-get update
RUN sudo apt-get dist-upgrade -y

RUN wget http://packages.erlang-solutions.com/debian/erlang_solutions.asc
RUN sudo apt-key add erlang_solutions.asc

RUN wget http://launchpadlibrarian.net/309343863/libmozjs185-1.0_1.8.5-1.0.0+dfsg-7_amd64.deb
RUN wget http://launchpadlibrarian.net/309343864/libmozjs185-dev_1.8.5-1.0.0+dfsg-7_amd64.deb
RUN sudo dpkg --force-depends -i libmozjs185-1.0_1.8.5-1.0.0+dfsg-7_amd64.deb
RUN sudo dpkg --force-depends -i libmozjs185-dev_1.8.5-1.0.0+dfsg-7_amd64.deb

RUN sudo apt-get --no-install-recommends -y install build-essential \
    pkg-config erlang libicu-dev \
    libmozjs185-dev libcurl4-openssl-dev

RUN sudo useradd -d /home/couchdb couchdb
RUN sudo mkdir /home/couchdb
RUN sudo chown couchdb:couchdb /home/couchdb

WORKDIR /

RUN wget http://mirrors.estointernet.in/apache/couchdb/source/2.3.1/apache-couchdb-2.3.1.tar.gz

RUN tar zxvf apache-couchdb-2.3.1.tar.gz

WORKDIR apache-couchdb-2.3.1/

RUN ./configure

RUN make release

WORKDIR ./rel/couchdb/
RUN sudo cp -Rp * /home/couchdb
RUN sudo chown -R couchdb:couchdb /home/couchdb

EXPOSE 5984 4369 9100
CMD [ "sudo","-i","-u","couchdb","/home/couchdb/bin/couchdb" ]

重要说明:我系统的cpu架构是armhf,docker-hub上可用的beddb容器不支持基于arm的系统。

1 个答案:

答案 0 :(得分:0)

您可能最好使用https://hub.docker.com/_/couchdb?tab=description上的couchdb Docker映像。

GitHub上维护的这个半官方的CouchDB Docker映像很容易运行。如果要将端口-p暴露给外界,只需使用5984即可暴露。

docker run -p 5984:5984 --name couchdb -v ${HOME}/couchdb/etc/local.d:/opt/couchdb/etc/local.d -d couchdb
相关问题