可以SSH但不能停靠在docker容器中:网络无法访问

时间:2016-07-20 22:10:16

标签: ubuntu networking ssh docker containers

真正的docker noob,试图获得一个可以通过SSH访问的ubuntu容器。

我使用this dockerfile和建筑物&用

运行它
ssh IP_ADDR

我可以直接向主机和其上的虚拟机发送,以及运行相同映像的其他容器。但是,当我尝试{@ 1}}来自主机,其中IP_ADDR是给定的IP地址" inet addr"在容器的eth0中(当使用ifconfig时)它不能说ssh: connect to host IP_ADDR port 22: Network is unreachable。我也可以从容器中ping出来,但是当它超时时不能进入它们。主机是否不在桥接网络上,如果是,我该如何使用?

2 个答案:

答案 0 :(得分:0)

试试这个

$ docker run --name test -p 22:22 sshable 

或者您也可以检查映射的docker端口

$ docker run --name test sshable
$ docker port sshable 22
0.0.0.0:49154

然后你可以在端口49154(在这种情况下)的容器的IP地址上以root身份ssh

$ ssh root@192.168.1.2 -p 49154

答案 1 :(得分:0)

当您使用

运行容器时
docker run --name test -t sshable

此容器公开端口22,但不会连接到主机上的任何端口。这意味着如果您启动另一个容器,如

docker run -it ubuntu:14.04

你能够从这个ubuntu容器ssh到你的容器。但是如果您从VM内部运行Docker,您将无法从VM外部进入容器。为此,您需要将ssh容器连接到该VM上的某个端口

docker run --name test -p 22:22 sshable

现在,您可以使用ssh <vm-ip> ssh到此容器中。