2016-12-23 41 views
2

這是我的問題爲什麼我的端口沒有暴露? netstat輸出中包含

# docker exec -ti root_web_1 bash 
[[email protected]]# curl couchdb:5984 
curl: (7) Failed to connect to couchdb port 5984: Connection refused 
[[email protected]]# curl redis:6379 
-ERR wrong number of arguments for 'get' command 
-ERR unknown command 'Host:' 
-ERR unknown command 'User-Agent:' 
-ERR unknown command 'Accept:' 
^C 

問題

爲什麼我不能訪問couchdb:5984

背景

當我在我的CouchDB的容器,我可以curl localhost:5984及其響應和netstat -nl給我

Proto Recv-Q Send-Q Local Address   Foreign Address   State 
tcp  0  0 127.0.0.1:5984   0.0.0.0:*    LISTEN 
tcp  0  0 127.0.0.11:35300  0.0.0.0:*    LISTEN 
udp  0  0 127.0.0.11:51267  0.0.0.0:* 

Dockerfile包含EXPOSE 5984,但我得到connection refused從做curl couchdb:5984web集裝箱。

當我做Redis的一樣,curl redis:6379它響應和netstat -nl

Proto Recv-Q Send-Q Local Address   Foreign Address   State  
tcp  0  0 127.0.0.11:46665  0.0.0.0:*    LISTEN 
tcp  0  0 0.0.0.0:6379   0.0.0.0:*    LISTEN 
tcp6  0  0 :::6379     :::*     LISTEN 
udp  0  0 127.0.0.11:49518  0.0.0.0:* 

這是CouchDB的Dockerfile

FROM fedora:25 
RUN dnf -y update 
RUN dnf -y install couchdb 
EXPOSE 5984 
CMD ["/usr/bin/couchdb"] 

這是docker-compose.yml

version: '2' 
networks: 
    revproxynet: 
    external: true 
services: 
    web: 
    images: nginx 
    networks: 
     - revproxynet 
    redis: 
    image: redis 
    networks: 
     - revproxynet 
    couchdb: 
    build: /docker/couchdb/ 
    networks: 
     - revproxynet 

網絡創建與docker network create revproxynet

+0

恕我直言,這是題外話題 – Alnitak

回答

3

/etc/couchdb/local.ini你需要有

[httpd] 
bind_address = 0.0.0.0 

,它會工作。