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
Rails server
を実行するときに0.0.0.0にバインドする必要がありました。そこで、ここでの回答で説明したように、Rails server -b 0.0.0.0
を使用しました。 https://stackoverflow.com/questions/34246254/cant-access-docker-container
最も可能性の高い説明は、Railsが実際にコンテナで実行されていないことです。特に、docker ps
の出力は、コンテナで実行されているコマンドがbash
であることを示しています。つまり、コンテナ内で手動で起動しない限り、Railsは実行されません。