我们正在使用自托管的 Gitlab 和 Runner,并尝试使用 dind 来运行 CI/CD 构建,但我的所有工作都失败并出现以下错误 -
Cannot connect to the Docker daemon at tcp://docker:2375/. Is the docker daemon running?
我的 ci 文件 -
build:
image: docker:18.09
stage: build
services:
- docker:18.09-dind
variables:
# Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
script:
- echo $CI_REGISTRY
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker info
跑步者配置 -
[[runners]]
name = "Docker Runner"
url = "https://gitlab.systems.co.uk/"
token = "fgtgervsdasdsdds"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "docker:19.03-dind-rootless"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache", "/app/log/docker-rootless/docker.sock:/var/run/docker.sock", "/srv/gitlab-runner/config/certs:/etc/gitlab-runner/certs"]
shm_size = 0
错误输出 -
$ echo $CI_REGISTRY
registry.gitlab.systems.co.uk
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
**Login Succeeded**
$ docker info
Cannot connect to the Docker daemon at tcp://docker:2375/. Is the docker daemon running?
Cleaning up file based variables
00:01
ERROR: Job failed: exit code 1
如果您在上面看到我的登录成功到注册表,但是当我登录docker info
失败时。
任何想法和线索这里有什么问题?
注意 - 由于安全问题,我正在使用无根 docker