Boot2Docker: não é possível obter o encaminhamento de portas para funcionar
Estou brincando com o boot2docker (docker 1.6) no windows 8.1. Eu queria me tornar um contêiner de máquina para brincar com ruby e quero poder me conectar ao servidor rails do meu host do Windows. Para começar com pequenas etapas, primeiro quero conectar-me ao meu contêiner a partir da minha VM boot2docker. Anexo meu arquivo docker abaixo, ele é compilado sem problemas e posso executar um contêiner. Eu faço assim:
docker run -it -p 3000:3000 3564860f7afd /bin/bash
Então neste container eu digo:
cd ~/myapp && bundle exec rails server -d
E para ver se tudo está funcionando, eu faço:
~/myapp$ sudo apt-get install wget && wget localhost:3000
e recebo http 500, o que está ok, eu só queria verificar se o servidor está em execução. Então eu saio usando ctrl + p, ctrl + q. Mas então na máquina boot2docker eu faço novamente
wget localhost:3000
e pegue
Connecting to localhost:3000 (127.0.0.1:3000)
wget: error getting response: Connection reset by peer
Portanto, parece que a porta 3000 não foi encaminhada corretamente para a boot2docker VM. O que eu fiz errado? Do que eu senti falta? Pesquisei bastante no Google e tentei algumas coisas, como expor explicitamente a porta do dockerfile ou adicionar a opção -P para executar, mas sempre acabo da mesma maneira - não está funcionando.
Qualquer ajuda será muito apreciada.
ATUALIZAÇÃO 02.05.2015
Também tentei as coisas descritas nos comentários de Markus W Mahlberg e respondi da VonC. Minha configuração de VM parece estar ok, eu também verifiquei a GUI do VirtualBox e parece bom. Mais algumas informações: Quando eu começo
boot2docker ssh -vnNTL 3000:localhost:3000
e abra o localhost: 3000 no host do Windows que vejo nos logs de rastreamento no console do boot2docker, eles ficam assim:
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
O Chrome me diz que a resposta estava vazia. Ao verificar os logs no contêiner, sei que esse pedido nunca chegou a ele.
Fim da atualização
Atualização 03.05.2015
Acho que meu problema não tem muito a ver com o boot2docker ou o docker, mas com a configuração do meu computador. Estive na minha configuração do docker / boot2docker tantas vezes, que é pouco provável que eu tenha cometido um erro lá.
Desinstalei desesperadamente o boot2docker e o VirtualBox, ainda sem efeitos. Alguma idéia de como depurar o que pode estar errado com minha configuração? Apenas outra idéia que tenho é tentar fazer o mesmo em outra máquina. Mas mesmo que isso funcione, meu problema original não é menos irritante.
Fim da atualização
Aqui está o meu dockerfile:
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