如何使用 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:
- add Port
2222
in ~/.ssh/config
- 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
(所以使用“/
”而不是“:
”)
我 运行 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:
- add Port
2222
in~/.ssh/config
- 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
(所以使用“/
”而不是“:
”)