无法访问映射端口(无法从主机连接到在docker容器内运行的sshd)

时间:2014-08-09 20:06:34

标签: docker

重现的步骤:

  • HOST:docker run -t -i -p 22:1200 myimage / bin / bash
  • GUEST:bash #service sshd start
  • 主持人:docker ps -l <​​/ li>
  • 主持人:docker inspect -f&#39; {{.NetworkSettings.IPAddress}}&#39; CONTAINER_ID
  • 主机:ssh -p 1200 root @ container_ip_from_previous_command

  • 结果:无法访问映射端口(无法连接到在docker容器内运行的sshd)

我的主机运行的是Ubuntu 14.04 64bit。 Docker 1.1.2版,构建d84a070 我可以从docker容器内部连接到在localhost端口22上运行的sshd。我已经尝试禁用ufw(已启用转发),结果相同。

1 个答案:

答案 0 :(得分:0)

正如我的评论中所提到的,-p上的docker run开关只会将端口路由到Docker接口。例如,您将有两个接口docker0eth0,您可以将端口1200从eth0路由到docker0上的端口22。

如果您在私有接口docker0上进行连接,则无需路由外部端口,您只需连接端口22(连接到docker inspect提供的IP)。< / p>

最后,您的端口顺序错误(假设SSH位于容器中的端口22上)。您应该使用-p external:internal,其中external是要向世界公开的端口,internal是容器内的相关端口。