可以通过 SSH 连接,但无法进入 docker 容器:网络不可达

可以通过 SSH 连接,但无法进入 docker 容器:网络不可达

这里有真正的 docker 新手,正在尝试获取一个可以通过 SSH 访问的 ubuntu 容器。

我正在使用图像这个dockerfile并使用“docker build -t sshable ~/PATH/”和“docker run --name test -t sshable”构建和运行它。我可以顺利地通过 ssh 连接到主机和主机上的虚拟机,以及运行相同映像的其他容器。但是,当我尝试从主机“ssh IP_ADDR”时,IP_ADDR 是容器在​​ eth0 中作为“inet addr”给出的 IP 地址(使用 ifconfig 时),它无法连接,并显示“ssh:连接到主机 IP_ADDR 端口 22:网络无法访问”。我还可以从容器中 ping 出,但无法进入容器,因为它超时了。主机不在桥接网络上吗?如果是,我该如何打开它?

答案1

您需要从主机向容器公开入站端口(22)以通过 ssh 进行连接:

docker run -it -P 22:22 --name test sshable

但是,还有更简单、更好的方法来访问容器:

docker run -it --name test sshable /bin/bash

如果容器正在运行,您可以通过以下方式连接到它:

docker exec -it test /bin/bash

相关内容