Jenkins正在从本地注册表中提取映像:Client.等待标头时超时



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

docker pull 192.168.174.205:5001/myimg:latest

我还在我的机器上运行一个jenkins容器,但jenkins无法从本地注册表中提取任何图像。我使用Blue Ocean容器(在同一台机器上(启动一个管道,它输出:

+ 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
  • Jenkins版本2.204.2
  • 主机CentOS Linux 7(核心(

参考

我一直在按照的指示工作

  • https://docs.docker.com/registry/deploying/
  • https://jenkins.io/doc/book/pipeline/docker/#custom-注册表

设置

我的/etc/docker/daemon.json文件读取{"insecure-registries" : ["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 <your registry container> | grep -i ipaddress来找到它的IP地址(默认情况下,它应该在172.17.XXX.XXX的区域内(,并将你的管道配置为使用该地址。

最新更新