我正在Docker容器中运行rails应用程序,但是尝试从浏览器访问它,浏览器显示ERR_CONNECTION_REFUSED
。在运行时docker ps
我得到了
a086ed5a6c4a rails "bash" 3 days ago Up About an hour 0.0.0.0:3000->3000/tcp rails
然后在运行docker inspect rails
时,我看到网关是"Gateway": "172.17.0.1"
当我尝试ping 172.17.0.1
它有效但如果我ping 172.17.0.1:3000
它不起作用。
当我尝试nmap -p 3000 172.17.0.1
时,我得到了
Starting Nmap 6.40 ( http://nmap.org ) at 2015-12-12 15:27 PST
Nmap scan report for 172.17.0.1
Host is up (0.000047s latency).
PORT STATE SERVICE
3000/tcp closed ppp
正在运行sudo netstat -tulpn
我得到以下内容。
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:5940 0.0.0.0:* LISTEN 1900/teamviewerd
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 5965/dnsmasq
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1195/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2910/cupsd
tcp6 0 0 :::5858 :::* LISTEN 4693/docker-proxy
tcp6 0 0 :::4200 :::* LISTEN 4629/docker-proxy
tcp6 0 0 :::6379 :::* LISTEN 4423/docker-proxy
tcp6 0 0 :::8080 :::* LISTEN 4665/docker-proxy
tcp6 0 0 ::1:53 :::* LISTEN 1195/dnsmasq
tcp6 0 0 ::1:631 :::* LISTEN 2910/cupsd
tcp6 0 0 :::5432 :::* LISTEN 4540/docker-proxy
tcp6 0 0 :::3000 :::* LISTEN 3099/docker-proxy
tcp6 0 0 :::3001 :::* LISTEN 4700/docker-proxy
tcp6 0 0 :::3002 :::* LISTEN 6521/docker-proxy
tcp6 0 0 :::7357 :::* LISTEN 4610/docker-proxy
udp 0 0 0.0.0.0:27824 0.0.0.0:* 6091/dhclient
udp 0 0 0.0.0.0:53717 0.0.0.0:* 569/avahi-daemon: r
udp 0 0 0.0.0.0:5353 0.0.0.0:* 3206/chrome
udp 0 0 0.0.0.0:5353 0.0.0.0:* 569/avahi-daemon: r
udp 0 0 0.0.0.0:5699 0.0.0.0:* 5961/dhclient
udp 0 0 127.0.1.1:53 0.0.0.0:* 5965/dnsmasq
udp 0 0 127.0.0.1:53 0.0.0.0:* 1195/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 6091/dhclient
udp 0 0 0.0.0.0:68 0.0.0.0:* 5961/dhclient
udp 0 0 0.0.0.0:631 0.0.0.0:* 1336/cups-browsed
udp6 0 0 :::53862 :::* 5961/dhclient
udp6 0 0 :::5353 :::* 569/avahi-daemon: r
udp6 0 0 ::1:53 :::* 1195/dnsmasq
udp6 0 0 :::59093 :::* 569/avahi-daemon: r
udp6 0 0 :::26992 :::* 6091/dhclient
答案 0 :(得分:8)
尝试将Rails服务器绑定到0.0.0.0,告诉它绑定到Docker主机上的所有IP地址。它默认只绑定到localhost,最近更改了as explained in this answer。这是通过-b
的{{1}}参数完成的:
rails server