将Docker容器公开到公有IP

我启动了一个Ubuntu Docker容器,安装了ssh,运行带有端口22的ssh。

$ docker ps CONTAINER ID IMAGE COMMAND PORTS f580e36aa7f0 martin/ssh2 /usr/sbin/sshd -D 0.0.0.0:49154->22/tcp 

从我的服务器,我现在可以ssh我的容器。 它工作正常!

 ssh root@172.17.42.1 -p 49154 

但是我怎样才能从外面的单词ssh我的容器?
(我的服务器正在192.168.1.8/24的本地networking中运行)

  • 我应该安装一个将192.168.1.8:2222redirect到172.17.42.1:49154的负载均衡器吗?
  • 我应该需要pipe道吗? 怎么样?
  • 有人能指出我做出正确的决定吗?

您应该能够连接到192.168.1.8:49154您的容器已经。

你的ssh容器绑定到0.0.0.0(=任何接口)和端口49154,所以这意味着容器端口22可以通过你的主机的任何接口在49154端口访问。