GitLab Runner使用Docker DinD构建镜像时无法连接Docker守护进程
解决GitLab Runner Docker-in-Docker构建镜像的连接问题
一、修正.gitlab-ci.yml配置,正确连接dind服务
使用docker:20.10.23镜像和docker:20.10.23-dind服务时,无需依赖宿主机Docker daemon,应让任务中的Docker客户端连接dind服务容器内的daemon,而非宿主机端口。
正确的.gitlab-ci.yml示例:
stages: - build build-image: stage: build image: docker:20.10.23 services: - name: docker:20.10.23-dind alias: docker # 给dind服务设置别名,简化客户端连接路径 variables: DOCKER_HOST: tcp://docker:2376 # dind默认启用TLS,监听2376端口 DOCKER_TLS_CERTDIR: "/certs" # 指定dind自动生成TLS证书的目录,必填项 DOCKER_DRIVER: overlay2 before_script: - docker info # 验证Docker客户端与dind服务的连接状态 script: - docker build -t your-image:latest . - docker push your-image:latest
关键说明:
- 任务容器内的
localhost指向自身,而非dind服务或宿主机,因此不能用tcp://localhost:2375作为连接地址 - dind默认禁用非TLS的2375端口,必须通过2376端口配合TLS证书连接
二、修复宿主机Docker daemon的错误配置
你修改daemon.json后出现的两类错误,按以下步骤修复:
1. 解决“can't create unix socket /var/run/docker.sock: is a directory”
- 先检查
/var/run/docker.sock的类型:ls -ld /var/run/docker.sock - 如果是目录,直接删除:
sudo rm -rf /var/run/docker.sock - 重启Docker服务生效:
sudo systemctl restart docker
2. 解决“Invalid bind address format: http://localhost:2375/”
daemon.json的hosts配置无需添加http://前缀,正确格式如下:
{ "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] }
注意:如果仅使用dind完成镜像构建,无需暴露2375端口(存在安全风险),可只保留unix:///var/run/docker.sock。修改后重启Docker服务:
sudo systemctl restart docker
三、确认GitLab Runner的config.toml配置正确
确保Runner使用Docker executor并开启特权模式(dind必须依赖特权模式):
[[runners]] name = "Docker Runner" url = "https://your-gitlab-instance.com/" token = "your-runner-token" executor = "docker" [runners.docker] tls_verify = false image = "docker:20.10.23" privileged = true # 开启特权模式,dind服务需要此权限 disable_entrypoint_overwrite = false oom_kill_disable = false disable_cache = false volumes = ["/cache"] # 用dind时无需挂载宿主机的docker.sock shm_size = 0 [runners.cache] [runners.cache.s3] [runners.cache.gcs]
四、验证流程
- 将修改后的
.gitlab-ci.yml提交至仓库 - 触发CI/CD流水线,查看
before_script阶段的docker info输出是否正常 - 若
docker info能返回daemon信息,说明连接正常,后续的docker build、docker push即可顺利执行
内容的提问来源于stack exchange,提问作者rbaleksandar
相关产品推荐
相关产品推荐

