docker:gitlab + traefik& 22号港口

时间:2017-07-08 23:11:56

标签: docker gitlab traefik

我需要在Traefik后面设置Gitlb。

除了通过命令行对应用程序进行身份验证外,一切正常 - 我不知道如何通过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-proxy。

当我尝试:

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

非常感谢

2 个答案:

答案 0 :(得分:2)

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

请参阅此讨论:https://github.com/containous/traefik/issues/10

我建议您配置网络资源,以便将:22的流量直接路由到容器。

答案 1 :(得分:1)

Traefik是HTTP反向代理,ssh不是HTTP协议。因此,您只需要在主机上未使用的端口上发布容器的ssh端口。