如何Ssh进入在stream浪者运行的docker集装箱?

我正在Windows 7下运行一个Vagrant虚拟机。 Vagrant虚拟机正在运行docker容器。 所以configuration是:

Windows7[Vagrant[Docker]] 

我想从Windows ssh到Docker容器。

docker容器正在运行sshd,我可以成功地从Vagrant VM ssh到Docker容器。

 sudo docker ps 

得到:

 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 64b13daab5f2 ubuntu:12.04 "/bin/bash" 14 minutes ago Up 14 minutes 0.0.0.0:49153->22/tcp thirsty_morse 

从Vagrant VM:

 ssh root@localhost -p 49153 

工作得很好。 所以Vagrant虚拟机的端口49153被转发到Docker容器的端口22。

我已经添加

 config.vm.network "forwarded_port", guest:49153, host:49155 

到Vagrantfile,以便Windows上的localhost:49155被转发到Vagrant VM:49153

这是事情发生的地方。 当我尝试从Windows ssh到本地主机:49155,我得到:

 ssh: connect to host localhost port 49155: Connection refused 

所以Windows:49155 – > Vagrant:49153不能正常工作。 我认为这可能是一个有关在Vagrant虚拟机的外部IP监听端口的问题,所以我已经安装了Rinetd到Vagrant虚拟机,我已经做了:

 bindadress bindport connectaddress connectport 0.0.0.0 49153 127.0.0.1 49153 

仍然没有运气。 我在这里错过了什么?

好的,回答我自己的问题。 它现在有效。 我认为这个问题最可能的原因是端口49153/55及其邻居实际上是由一些Windows服务默认使用的。 我更改为在Vagrant文​​件中的端口映射使用9090的Windows和一切工作。 不需要重复。 我也做了:

 sudo docker run -v /vagrant:/opt/data -p 0.0.0.0:49153:22 -i -t ubuntu:12.04 

注意0.0.0.0:它可能也可能不相关,但是这个configuration对我来说是工作的。