git clone无法访问docker容器中的主机

我很久以前遇到这个问题,根本解决不了。 任何人都可以给我一些帮助吗?

我创build了一个docker容器,然后在docker里面,我想克隆一个内部的git仓库:

git clone git@git.xxx.net:ngcsc/ngcsc.git 

我得到这个错误:

 ssh: connect to host git.xxx.net port 22: No route to host fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

如果我使用curl https://git.xxx.net ,我也遇到错误:

 curl: (7) Failed connect to git.xxx.net:443; No route to host 

我可以curl其他https网站,如curl https://www.google.com

我不知道为什么一些内部网站可以在docker里面find,有些则不是。 任何build议表示赞赏

我认为,因为你使用的是git clone的ssh url,所以你必须生成一个ssh key并在git portal上注册。

GitHub ssh注册

然后,你将不得不包括docker容器内的ssh密钥,并执行ssh-add keyfile

希望这可以解决你的问题

首先,确保在启动容器时映射了相关的端口,通常ssh使用端口22443 ,因此您可以简单地映射它们。

 docker run -it -p 22:22 -p 443:443 IMAGE_ID 

其次,在docker内部,你应该生成一个ssh密钥对并注册你正在使用的git门户。 您只需使用命令ssh-keygen即可生成一个新的密钥对。