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

How can I use git client to access gitlab docker?

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

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

为什么会有IP地址(192.168.59.103)?

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

如何使用 git 客户端访问 gitlab

192.168.59.103 是典型的 boot2docker ip,即托管 Tiny 核心的 VirtualBox 机器的 IP Linux 运行 容器(带有172.17.0.13)

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

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

例如:

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应该已经导出)

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

在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 报告 有错误:

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

I fix the problem in 2 steps:

  1. add Port 2222 in ~/.ssh/config
  2. Use git clone git@10.137.20.113:root/test.git

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

After testing, this also work:

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

(所以使用“/”而不是“:”)