如何使用git客户端访问gitlab docker?

时间:2015-04-21 06:19:33

标签: git ssh docker gitlab

我已成功运行gitlab docker image,但无法使用git客户端访问它。

(1)我发现有3个IP地址:
a)主持人IP:10.137.20.113;
b)连接gitlab运行容器,显示其IP:172.17.0.13;
c)登录网页,显示项目地址:ssh: git@192.168.59.103:root/test.git

为什么有IP地址(192.168.59.103)?

(2)我在root中添加了SSH用户gitlab密钥,但无法使用ssh -p 2222 10.137.20.113命令访问服务器。

如何使用git客户端访问gitlab

1 个答案:

答案 0 :(得分:1)

192.168.59.103是boot2docker ip的典型代表,它是VirtualBox机器的IP,它承载运行容器的Tiny核心Linux(带有172.17.0.13的那些)

如果要从客户端访问任何端口,您需要确保:

  • GitLab容器运行时,公开的端口映射到Linux主机中的端口:docker run -p 2222:22 -p 80:80 -p 443:443 ...
  • 这些端口在其中定义的VirtualBox网络定义“boot2docker-vm”中重定向:

那将是例如:

boot2docker stop
VBoxManage.exe controlvm "boot2docker-vm" natpf1 "udp-port80,udp,,80,,80";
VBoxManage.exe controlvm "boot2docker-vm" natpf1 "udp-port80,udp,,443,,443";

(同样适用于443,2222应该已经导出)

否则,访问192.168.59.103时,客户端(VirtualBox外部)将无法看到这些端口。

在OP情况下,不需要192.168.59.103。 RedHat服务器的IP就足够了(因为它直接托管了docker服务)。

ssh -p 2222 10.137.20.113只适用于合适的用户(git)

 ssh -p 2222 git@10.137.20.113

仅限于public ssh key has been registered on the server

OP报告in the comments有错误:

git-upload-pack '2222:root/test.git'
  

我通过两个步骤解决问题:

     
      
  1. 2222
  2. 中添加端口~/.ssh/config   
  3. 使用git clone git@10.137.20.113:root/test.git
  4.   

您可以在“git clone using ssh failed in Windows due to permission issue”中看到更完整的~/.ssh/config示例。

  

经过测试,这也有效:

git clone ssh://git@10.137.20.113:2222/root/test.git

(所以使用'/'代替':')