为什么我的端口没有暴露?netstat输出已包含。

3

这是我的问题

# docker exec -ti root_web_1 bash
[root@ca32f79bdc14]# curl couchdb:5984
curl: (7) Failed to connect to couchdb port 5984: Connection refused
[root@ca32f79bdc14]# 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:*

当我在web容器中执行curl couchdb:5984时,虽然Dockerfile包含EXPOSE 5984,但我得到了connection refused的错误提示。

当我使用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创建网络。


在我看来,这个话题与此处的主题无关。 - Alnitak
1个回答

4
/etc/couchdb/local.ini文件中,您需要拥有这个。
[httpd]
bind_address = 0.0.0.0

并且它将会运行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接