docker工人:gitlab + traefik&port 22

我需要在Traefik后面build立Gitlb。

一切工作,除了通过命令行的应用程序的身份validation – 我不知道如何通过traefik暴露端口22。

任何想法如何设置? 如何显示docker容器的端口22(通过traefik)?

我将默认端口从22改为10022。

我正在通过netstat -tulpn

 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1132/sshd tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 1126/systemd-resolv tcp6 0 0 :::22 :::* LISTEN 1132/sshd tcp6 0 0 :::443 :::* LISTEN 1590/docker-proxy tcp6 0 0 :::10022 :::* LISTEN 1440/docker-proxy tcp6 0 0 :::5355 :::* LISTEN 1126/systemd-resolv tcp6 0 0 :::80 :::* LISTEN 1602/docker-proxy tcp6 0 0 :::8080 :::* LISTEN 1578/docker-proxy udp 0 0 127.0.0.53:53 0.0.0.0:* 1126/systemd-resolv udp 0 0 0.0.0.0:68 0.0.0.0:* 864/dhclient udp 0 0 0.0.0.0:5355 0.0.0.0:* 1126/systemd-resolv udp6 0 0 :::5355 :::* 1126/systemd-resolv 

我不明白为什么10022连接到docker代理。

当我尝试:

 git push --set-upstream origin master ssh: connect to host git.myserver.com port 10022: Connection refused fatal: Could not read from remote repository. 

非常感谢你

Traefik是一个HTTP反向代理,而ssh不是一个HTTP协议。 所以你只需要简单地将容器的ssh端口发布到主机上一个未使用的端口上。

正如BMitch所说,如果不是HTTP,traefik将不会处理TCPstream量。 (SSH不是HTTP)。

看到这个讨论: https : //github.com/containous/traefik/issues/10

我build议你configuration你的networking资料,以便将:22的stream量直接路由到容器。