我在Windows 7下运行Vagrant VM。 Vagrant VM正在运行一个docker容器。所以配置是:
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 VM的端口49153被转发到Docker容器的端口22。
我已添加
config.vm.network "forwarded_port", guest:49153, host:49155
到Vagrantfile,以便Windows上的localhost:49155转发到Vagrant VM:49153
这是事情发生的地方。当我尝试从Windows ssh到localhost:49155时,我得到:
ssh: connect to host localhost port 49155: Connection refused
所以Windows:49155 - >流浪汉:49153无法正常工作。我认为这可能是与在Vagrant VM的外部IP上侦听端口有关的问题所以我已经将rinetd安装到Vagrant虚拟机中并且我已经完成了:
bindadress bindport connectaddress connectport
0.0.0.0 49153 127.0.0.1 49153
仍然没有运气。我在这里缺少什么?
答案 0 :(得分:1)
好的,回答我自己的问题。它现在有效。我认为问题最可能的原因是端口49153/55及其邻居默认情况下实际上被某些Windows服务使用。我改为映射Vagrant文件中的端口以使用9090 for Windows,一切正常。也不需要rinetd。我也做过:
sudo docker run -v /vagrant:/opt/data -p 0.0.0.0:49153:22 -i -t ubuntu:12.04
请注意0.0.0.0:它可能相关也可能不相关,但此配置对我有效。