繁体   English   中英

如何使用 docker DIND 从 gitlab CI 中的私有注册表中提取

[英]how to pull from a private registry in gitlab CI, with docker DIND

实际上,我正在使用带有 docker executor 的 gitlab 运行器,并且我正在尝试提取一些 docker 图像来进行一些测试,并为了保留我的网络连接,我创建了一个私有 docker 注册表来“缓存”图像。

因此,我的注册表链接到我的 gitlab 运行器(在 config.toml https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runnersdocker-section中配置)。

这项工作,我的形象可以询问注册表:

$ wget http://registry:5000/v2/_catalog

--2019-02-15 10:40:54--  http://registry:5000/v2/_catalog
Resolving registry... 172.17.0.3
Connecting to registry|172.17.0.3|:5000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 20 [application/json]
Saving to: '_catalog'

     0K                                                       100% 1.17M=0s

2019-02-15 10:40:54 (1.17 MB/s) - '_catalog' saved [20/20]

但 DIND 服务不能:

pull registry:5000/arminc/clair-db:latest
Error response from daemon: Get http://registry:5000/v2/: dial tcp: lookup registry on 192.168.9.254:53: no such host

我用于此任务的 gitlab-ci conf

scan:image:
  stage: scans
  image: docker:git
  services:
    - name: docker:dind
      command: ["--insecure-registry=registry:5000"]
  variables:
    DOCKER_DRIVER: overlay2
  allow_failure: true
  script:
    - chmod 777 ./docker/scan.sh
    - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY
    - ./docker/scan.sh
  artifacts:
    paths: [gl-container-scanning-report.json]
  only:
    - master

可能,您可能需要在 DNS 服务器或 dockers 主机文件中添加一个 DNS 条目:

192.168.xx.xxx registry

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM