如何Ssh到在Vagrant中运行的docker容器中?
我在Windows7下运行一个流浪的虚拟机。流浪VM正在运行docker容器。因此,配置为:如何Ssh到在Vagrant中运行的docker容器中?,vagrant,docker,Vagrant,Docker,我在Windows7下运行一个流浪的虚拟机。流浪VM正在运行docker容器。因此,配置为: Windows7[Vagrant[Docker]] 我想从Windows ssh到Docker容器中 sudo docker ps docker容器正在运行sshd,我可以成功地从Vagrant VM用ssh连接到docker容器 sudo docker ps 给出: CONTAINER ID IMAGE COMMAND CREAT
Windows7[Vagrant[Docker]]
我想从Windows ssh到Docker容器中
sudo docker ps
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
来自流浪汉:
ssh root@localhost -p 49153
很好用。所以,流浪者VM的端口49153被转发到Docker集装箱的端口22
我补充说
config.vm.network "forwarded_port", guest:49153, host:49155
转到Vagrant文件,以便将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 VM中,并完成了以下工作:
bindadress bindport connectaddress connectport
0.0.0.0 49153 127.0.0.1 49153
还是不走运。我遗漏了什么?好的,回答我自己的问题。现在可以了。我认为问题最可能的原因是端口49153/55和它的邻居实际上被一些windows服务默认使用。我将Vagrant文件中的端口映射改为在Windows中使用9090,一切正常。也没必要去跳舞。我还做了:
sudo docker run -v /vagrant:/opt/data -p 0.0.0.0:49153:22 -i -t ubuntu:12.04
请注意0.0.0.0:它可能相关,也可能不相关,但此配置对我有效。与问题没有直接关系-但在大多数情况下,您不应该在docker容器中需要ssh(除非您正在创建开发环境或使用需要ssh的软件)。也许docker exec对你来说就足够了?