【发布时间】:2017-03-18 10:46:08
【问题描述】:
我的服务器运行 Ubuntu 16.04 并安装了 Docker 引擎。
在一个容器中,我正在运行GitLab 服务(当然还有许多其他包含其他东西的容器)。我们称它为 Docker 网络地址GITLAB_IP。
我正在使用nginx-proxy 基于VIRTUAL_HOST 环境变量代理来自外部的HTTP 请求。
DNS 已设置好,所有以*.mydomain.com 为目标的内容都会转到mydomain.com 并在同一主机上解析。
发往 mydomain.com 的请求由我的主 nginx 容器提供服务,而发往 gitlab.mydomain.com 的请求由我的 GitLab 容器提供服务。
在端口 80(和 443)上一切正常。
现在我希望能够通过 ssh 使用 git。我想要实现的是,如果我这样做了
> ssh mydomain.com
我将在我的主机服务器的终端结束。如果我这样做了
> ssh gitlab.mydomain.com
然后我想进入 GitLab 容器的终端。
我知道我可以将容器的端口 22 映射到主机上某个未使用的端口上,因此我可以通过 ssh 访问容器,例如。端口 10022,但我更喜欢它干净利落。
当检测到特定域时,有什么方法可以让主机上的 ssh 服务器充当代理?
【问题讨论】:
标签: ubuntu docker ssh proxy portforwarding