Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker中的SSH端口转发_Ssh_Docker_Portforwarding_Ssh Tunnel - Fatal编程技术网

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:我们这里不使用[已解决的]标题破解。请只接受下面与您的解决方案(包括您自己的解决方案)最对应的答案。