Docker Jenkins正在从本地注册表中提取映像:客户端。等待标头时超时

Docker Jenkins正在从本地注册表中提取映像:客户端。等待标头时超时,docker,jenkins,docker-registry,Docker,Jenkins,Docker Registry,我正在我的计算机上本地运行docker注册表,我可以成功地从中提取图像: docker pull 192.168.174.205:5001/myimg:latest 我还在我的机器上运行jenkins容器,但jenkins无法从本地注册表中提取任何图像。我使用蓝色海洋容器(在同一台机器上)启动管道,它输出: + docker pull 192.168.174.205:5001/insureio:latest Error response from daemon: Get https://192

我正在我的计算机上本地运行docker注册表,我可以成功地从中提取图像:

docker pull 192.168.174.205:5001/myimg:latest
我还在我的机器上运行jenkins容器,但jenkins无法从本地注册表中提取任何图像。我使用蓝色海洋容器(在同一台机器上)启动管道,它输出:

+ docker pull 192.168.174.205:5001/insureio:latest
Error response from daemon: Get https://192.168.174.205:5001/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
script returned exit code 1

TMI 规格

  • Docker版本1.13.1,构建4ef4b30/1.13.1
  • 詹金斯。2.204.2
  • 主机CentOS Linux 7(核心)
参考

我一直在按照指示工作

设置

我的
/etc/docker/daemon.json
文件读取
{“不安全的注册表”:[“192.168.174.205:5001”]}

本地注册表给出200响应:

curl http://192.168.174.205:5001/v2/_catalog
{"repositories":["mying"]}
我的管道脚本是:

node {
  stage('Build') {
    docker.withRegistry('http://192.168.174.205:5001') {
      docker.image('insureio:latest').inside('') {
        sh 'make test'
      }
    }
  }
}

由于Jenkins和您的注册表都是容器,Jenkins将在其自己的网络空间中查看192.168.174.205 IP地址


如果您只是想尝试一下,我建议您使用
docker inspect | grep-I ipaddress
查找其IP地址(默认情况下,它应该位于172.17.XXX.XXX区域),并配置您的管道以使用该地址。

非常感谢,但是有了这个更改,我从守护进程获得
错误响应:gethttps://172.17.0.2:5001/v2/: 拨打tcp 172.17.0.2:5001:连接:没有到主机的路由
。你知道可能是什么问题吗?我看到它试图进行
https
连接?一种更快的调试方法是在jenkins容器上获得一个shell,类似于
docker exec-it sh
并从容器中运行各种
curl
命令。