Docker中的SSH端口转发
我有这两个容器,比如Docker中的SSH端口转发,ssh,docker,portforwarding,ssh-tunnel,Ssh,Docker,Portforwarding,Ssh Tunnel,我有这两个容器,比如后端(CentOs)和mongo。我希望从后端容器中连接到mongo数据库,就像它在本地运行一样,$>mongo localhost:27017 无论如何,据我所知,您可以像这样将端口localhost:27017映射到mongo:27017 $backend> ssh -L 27017:mongo:27017 root@mongo 但是,如果我这样做,我必须提供根密码,然后它将我登录到mongo容器中,并且没有发生端口转发 背景:我想这样做是因为我正在运行一个Jav
后端
(CentOs)和mongo
。我希望从后端
容器中连接到mongo数据库,就像它在本地运行一样,$>mongo localhost:27017
无论如何,据我所知,您可以像这样将端口localhost:27017映射到mongo:27017
$backend> ssh -L 27017:mongo:27017 root@mongo
但是,如果我这样做,我必须提供根密码,然后它将我登录到mongo
容器中,并且没有发生端口转发
背景:我想这样做是因为我正在运行一个Java程序,该程序连接到本地主机上的Mongo数据库,我无法更改它。我找到了正确的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
*`root@mongo`-公共服务器
*L::
*`-Nf`-不登录
因为
公共服务器
和第三服务器
是同一台计算机/容器,您必须使用本地主机
:)我找到了正确的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
*`root@mongo`-公共服务器
*L::
*`-Nf`-不登录
因为
公共服务器
和第三服务器
是同一台计算机/容器,您必须使用本地主机
:)您使用的是本机linux主机还是类似docker机器的东西?运行ssh-L
命令时是否有任何错误消息?我正在使用docker compose
。我可以ssh
从backend
到mongo
。它在Mac电脑上,所以我猜它仍然是docker机器,你在哪里见过这个?我已经添加了一些我尝试过的例子,以及结果是什么。此外,我认为这个问题与docker无关,而与我不了解SSH端口有关forwarding@Jeanluca:我们这里不使用[已解决的]标题破解。请接受下面与您的解决方案(包括您自己的解决方案)最对应的答案。您使用的是本机linux主机还是docker机器?运行ssh-L
命令时是否有任何错误消息?我正在使用docker compose
。我可以ssh
从backend
到mongo
。它在Mac电脑上,所以我猜它仍然是docker机器,你在哪里见过这个?我已经添加了一些我尝试过的例子,以及结果是什么。此外,我认为这个问题与docker无关,而与我不了解SSH端口有关forwarding@Jeanluca:我们这里不使用[已解决的]标题破解。请只接受下面与您的解决方案(包括您自己的解决方案)最对应的答案。