title: Docker Rails app fails to be served - curl: (56) Recv failure: Connection reset by peer
body: <p>I build a Rails app container with the following Dockerfile:</p>
  
  <pre><code>$ cat Dockerfile
  FROM ruby:2.2
  
  MAINTAINER Luca G. Soave &lt;luca.soave@gmail.com&gt;
  
  RUN apt-get update &amp;&amp; apt-get install -y nodejs --no-install-recommends &amp;&amp; rm -rf /var/lib/apt/lists/*
  RUN apt-get update &amp;&amp; apt-get install -y mysql-client postgresql-client sqlite3 --no-install-recommends &amp;&amp; rm -rf /var/lib/apt/lists/*
  
  RUN mkdir -p /usr/src/app
  WORKDIR /usr/src/app
  
  COPY . /usr/src/app/
  RUN bundle install
  
  EXPOSE 3000
  CMD ["rails", "server"]
  </code></pre>
  
  <p>the build succeed:</p>
  
  <pre><code>$ docker build -t querier .
  Sending build context to Docker daemon 46.75 MB
  Sending build context to Docker daemon 
  ...
  Step 10 : CMD rails server
   ---&gt; Running in 8eb62f8a579a
   ---&gt; 65eee929d518
  Removing intermediate container 8eb62f8a579a
  Successfully built 65eee929d518
  </code></pre>
  
  <p>the container is running:</p>
  
  <pre><code>$ docker logs -f 89ff3bb8c584
  =&gt; Booting WEBrick
  =&gt; Rails 4.2.0 application starting in development on http://localhost:3000
  =&gt; Run `rails server -h` for more startup options
  =&gt; Ctrl-C to shutdown server
  [2015-01-06 19:56:56] INFO  WEBrick 1.3.1
  [2015-01-06 19:56:56] INFO  ruby 2.2.0 (2014-12-25) [x86_64-linux]
  [2015-01-06 19:56:56] INFO  WEBrick::HTTPServer#start: pid=1 port=3000
  </code></pre>
  
  <p>and it's exporting 3000/tcp port:</p>
  
  <pre><code>$ docker ps -al
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
  89ff3bb8c584        querier:latest      "rails server"      16 minutes ago      Up 16 minutes       0.0.0.0:3000-&gt;3000/tcp   gloomy_babbage   
  </code></pre>
  
  <p>but the server is not reachable 'internally' or 'externally' Docker:</p>
  
  <pre><code>$ curl 0.0.0.0:3000
  curl: (56) Recv failure: Connection reset by peer
  $ curl 172.17.0.24:3000
  curl: (7) Failed to connect to 172.17.0.24 port 3000: Connection refused
  </code></pre>
  
  <p>but everything seems ok:</p>
  
  <pre><code>$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' 89ff3bb8c584
  172.17.0.24
  $ netstat -r
  Kernel IP routing table
  Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
  default         10.36.32.1      0.0.0.0         UG        0 0          0 wlan0
  10.0.3.0        *               255.255.255.0   U         0 0          0 lxcbr0
  10.36.32.0      *               255.255.248.0   U         0 0          0 wlan0
  172.17.0.0      *               255.255.0.0     U         0 0          0 docker0
  
  $ ping 0.0.0.0
  PING 0.0.0.0 (127.0.0.1) 56(84) bytes of data.
  64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms
  64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.061 ms
  64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.069 ms
  ^C
  --- 0.0.0.0 ping statistics ---
  3 packets transmitted, 3 received, 0% packet loss, time 1998ms
  rtt min/avg/max/mdev = 0.061/0.066/0.069/0.007 ms
  
  $ ping 172.17.0.24
  PING 172.17.0.24 (172.17.0.24) 56(84) bytes of data.
  64 bytes from 172.17.0.24: icmp_seq=1 ttl=64 time=0.085 ms
  64 bytes from 172.17.0.24: icmp_seq=2 ttl=64 time=0.107 ms
  64 bytes from 172.17.0.24: icmp_seq=3 ttl=64 time=0.076 ms
  ^C
  </code></pre>
  
  <p>I tried also in the browser but nothing. The host sistem is:</p>
  
  <pre><code>$ docker -v
  Docker version 1.4.1, build 5bc2ff8
  $ uname -a 
  Linux basenode 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
  </code></pre>
  
  <p>Any idea?</p>