为什么我的端口没有暴露?包括 netstat 输出
Why isn't my port exposed? netstat output included
这是我的问题
# 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:*
并且 Dockerfile
包含 EXPOSE 5984
,但是从 web
容器执行 curl couchdb: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
创建的。
在/etc/couchdb/local.ini
你需要
[httpd]
bind_address = 0.0.0.0
它会起作用。
这是我的问题
# 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:*
并且 Dockerfile
包含 EXPOSE 5984
,但是从 web
容器执行 curl couchdb: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
创建的。
在/etc/couchdb/local.ini
你需要
[httpd]
bind_address = 0.0.0.0
它会起作用。