小编Zia*_*man的帖子

通过主机名将 ssh 连接转发到 docker 容器

我遇到了一个非常具体的情况,虽然还有其他方法可以做到这一点,但我有点着迷于此,并想找到一种完全像这样的方法:

背景

假设我有一台服务器运行多个服务,这些服务隐藏在隔离的 docker 容器中。由于大多数这些服务都是 http,我使用 nginx 代理向每个服务公开特定的子域。例如,节点服务器运行在 docker 容器上,其端口80绑定到127.0.0.1:8000主机上。我将在 nginx 中创建一个虚拟主机,将所有请求代理myapp.mydomain.comhttp://127.0.0.1:8000. 这样,docker 容器不能从外部访问,除了通过myapp.mydomain.com.

现在我想以指向 gogs容器的方式启动一个gogsgogs.mydomain.com docker 容器。所以我启动了这个 gogs 容器,端口8000绑定到127.0.0.1:8001主机上。和一个 nginx 站点代理请求gogs.mydomain.comhttp://127.0.0.1:8001并且它运行良好......

但是,gogs 是一个 git 容器,我也想像通过那样访问存储库,git@gogs.mydomain.com:org/repo但这不适用于当前设置。使这项工作的一种方法22是将容器的端口绑定到0.0.0.0:8022主机上的端口,然后 git ssh url 可以是类似git@gogs.mydomain.com:8022/repo.

(这似乎不工作;当我推到与URI这样的原点,混帐要求密码对gitgogs.mydomain.com-而不是gogs.mydomain.com:8022-但不过这可能是什么我做错了,超出范围的这个问题,我也很感激任何诊断)

问题

我主要担心的是,我希望<gogs container>:22代理ssh 端口,就像我使用 nginx 代理 http 端口一样;即任何gogs.mydomain.com …

ssh reverse-proxy docker

12
推荐指数
1
解决办法
3725
查看次数

标签 统计

docker ×1

reverse-proxy ×1

ssh ×1