Boot2Docker: Portweiterleitung funktioniert nicht

Ich spiele mit boot2docker (Docker 1.6) unter Windows 8.1. Ich wollte mich selbst zum Maschinencontainer machen, um mit Ruby zu spielen, und ich wollte in der Lage sein, von meinem Windows-Host eine Verbindung zum Rails-Server herzustellen. Zunächst möchte ich von meiner boot2docker-VM aus eine Verbindung zu meinem Container herstellen. Ich hänge meine Docker-Datei unten an, sie wird problemlos erstellt und ich kann einen Container daraus ausführen. Ich mache es so:

docker run -it -p 3000:3000 3564860f7afd /bin/bash

Dann sage ich in diesem Container:

cd ~/myapp && bundle exec rails server -d

Und um zu sehen, ob alles funktioniert, mache ich:

~/myapp$ sudo apt-get install wget && wget localhost:3000

und ich bekomme http 500, was in Ordnung ist, ich wollte nur prüfen, ob der Server läuft. Dann beende ich mit Strg + P, Strg + Q. Aber dann auf boot2docker Maschine mache ich agin

wget localhost:3000

und bekomm

Connecting to localhost:3000 (127.0.0.1:3000)
wget: error getting response: Connection reset by peer

So scheint es, dass Port 3000 nicht korrekt an boot2docker VM weitergeleitet wird. Was habe ich falsch gemacht? Was habe ich verpasst? Ich habe ausgiebig gegoogelt und ein paar Dinge ausprobiert, wie das explizite Offenlegen des Ports aus der Docker-Datei oder das Hinzufügen des -P-Schalters, um ausgeführt zu werde

Jede Hilfe wird sehr geschätzt.

UPDATE 02.05.2015

Ich habe auch Dinge ausprobiert, die im Kommentar von Markus W Mahlberg und in der Antwort von VonC beschrieben wurden. Meine VM-Konfiguration scheint in Ordnung zu sein, ich habe auch die GUI von VirtualBox eingecheckt und es scheint in Ordnung zu sein. Noch ein paar Infos: Wenn ich @ star

boot2docker ssh -vnNTL 3000:localhost:3000

und öffne dann localhost: 3000 auf meinem Windows-Host. In den Ablaufverfolgungsprotokollen in der boot2docker-Konsole wird Folgendes angezeigt:

debug1: channel 1: free: direct-tcpip: listening port 3000 for localhost port 3000, connect from 127.0.0.1 port 50512 to 127.0.0.1 port 3000, nchannels 3

Chrome sagt mir, dass die Antwort leer war. Aus der Überprüfung der Protokolle auf dem Container weiß ich, dass die Anfrage nie eingegangen ist.

Ende des Updates

Update 03.05.2015

Ich denke, dass mein Problem nicht so sehr mit boot2docker oder docker zu tun hat, als mit meiner Computerkonfiguration. Ich habe meine docker / boot2docker-Konfiguration so oft durchlaufen, dass es eher unwahrscheinlich ist, dass ich dort einen Fehler gemacht habe.

Verzweifelt habe ich boot2docker und VirtualBox neu installiert, immer noch keine Effekte. Irgendwelche Ideen zum Debuggen, was an meiner Konfiguration falsch sein kann? Die einzige andere Idee, die ich habe, ist, dasselbe auf einer anderen Maschine zu versuchen. Aber auch wenn das funktioniert, ist mein ursprüngliches Problem nicht weniger ärgerlich.

Ende des Updates

Hier ist meine Docker-Datei:

FROM ubuntu
MAINTAINER anonymous <[email protected]>
LABEL Description="Ruby container"
# based on https://gorails.com/setup/ubuntu/14.10
RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get -y install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \
    && groupadd anonymous \
    && useradd anonymous -m -g anonymous -g sudo
ENV HOME /home/anonymous
USER anonymous

RUN git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
RUN echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
RUN echo 'eval "$(rbenv init -)"' >> ~/.bashrc
RUN exec $SHELL

RUN git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
RUN echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
RUN exec $SHELL
RUN git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

ENV PATH "$HOME/.rbenv/bin:$HOME/.rbenv/plugins/ruby-build/bin:$PATH"

RUN rbenv install 2.2.1
RUN rbenv global 2.2.1

ENV PATH "$HOME/.rbenv/shims:$PATH"

RUN echo 'gem: --no-ri --no-rdoc' > ~/.gemrc
RUN gem install bundler

RUN git config --global color.ui true
RUN git config --global user.name "mindriven"
RUN git config --global user.email "[email protected]"
RUN ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa -C "[email protected]"

RUN sudo apt-get -qy install software-properties-common python-software-properties
RUN sudo add-apt-repository ppa:chris-lea/node.js
RUN sudo apt-get -y install nodejs

RUN gem install rails -v 4.2.0
RUN ~/.rbenv/bin/rbenv rehash
RUN rails -v

RUN sudo apt-get -qy install mysql-server mysql-client
RUN sudo apt-get install libmysqlclient-dev
RUN rails new ~/myapp -d mysql
RUN sudo /etc/init.d/mysql start && cd ~/myapp && rake db:create

Antworten auf die Frage(6)

Ihre Antwort auf die Frage