我正在我的机器上本地运行一个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的区域内(,并将你的管道配置为使用该地址。