Docker中的SSH端口转发

时间:2016-09-22 07:39:10

标签: ssh docker portforwarding ssh-tunnel

我有这两个容器,比如backend(CentOs)和mongo。我想要的是,在backend容器中,我可以连接到mongo数据库,就像它在本地运行一样,$> mongo localhost:27017

无论如何,据我所知,你可以将端口localhost:27017映射到mongo:27017这样

$backend> ssh -L 27017:mongo:27017 root@mongo

但是,如果我这样做,我必须提供root密码,之后它会将我登录到mongo容器中,并且没有端口转发

背景:我想这样做,因为我正在运行一个连接到localhost上的Mongo数据库的Java程序,我无法改变它。

1 个答案:

答案 0 :(得分:4)

我找到了正确的SSH端口转发命令

$> ssh root@mongo -L 27017:localhost:27017 -Nf

通常,使用此命令的想法是将非公共端口 - 通过公共服务器映射到您自己的服务器/计算机。

* `root@mongo` - the public server
* -L <port on your server>:<third server address>:<port>
* `-Nf` - Do not login

由于public serverthird server是同一台计算机/容器,您必须使用localhost:)