如何 SSH 进入 Vagrant 内 运行 的 docker 容器?
How to Ssh into docker container that is running inside Vagrant?
我是 运行 Windows 7 下的 Vagrant 虚拟机。 Vagrant 虚拟机是 运行 一个 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 虚拟机:
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 -> Vagrant: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 文件中的端口映射更改为将 9090 用于 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:它可能相关也可能不相关,但此配置对我有用。
我是 运行 Windows 7 下的 Vagrant 虚拟机。 Vagrant 虚拟机是 运行 一个 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 虚拟机:
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 -> Vagrant: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 文件中的端口映射更改为将 9090 用于 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:它可能相关也可能不相关,但此配置对我有用。