重现的步骤:
主机: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(已启用转发),结果相同。
答案 0 :(得分:0)
正如我的评论中所提到的,-p
上的docker run
开关只会将端口路由到Docker接口。例如,您将有两个接口docker0
和eth0
,您可以将端口1200从eth0
路由到docker0
上的端口22。
如果您在私有接口docker0
上进行连接,则无需路由外部端口,您只需连接端口22(连接到docker inspect
提供的IP)。< / p>
最后,您的端口顺序错误(假设SSH位于容器中的端口22上)。您应该使用-p external:internal
,其中external
是要向世界公开的端口,internal
是容器内的相关端口。