首页 > 解决方案 > 如何修复因一般错误而失败的 docker 服务?

问题描述

我有一个问题,Gitlab CI 作业失败并出现如下错误:docker:无法在 tcp://docker:2375 连接到 Docker 守护进程。docker 守护进程是否正在运行?

这并没有说太多,也没有任何意义,因为可以在本地建立连接并且命令按预期工作。

命令:build / login / push(在 gitlab-ci.yml 中设置),但在使用我们服务器上配置的自定义 gitlab-runners 时它们不起作用。

你对此有什么建议吗?

谢谢!

标签: dockergitlab-ci-runner

解决方案


你好

几天前我遇到了同样的问题,找到解决方案的机会很小/有限。

这实际上是一个已知问题,您可以在此处找到所有详细信息:https ://gitlab.com/gitlab-org/gitlab-runner/issues/4501

在你的容器中使用docker:latest肯定会在某些时候导致你遇到这个问题。


简短的回答(如果这是你的情况):

Docker 19.03默认启用 TLS,因此需要配置证书:

  1. 添加你的config.toml (/etc/gitlab-runner/)

[[runners]] environment = ["DOCKER_TLS_CERTDIR="]

  1. 添加你的gitlab-ci.yml(来自项目)

variables: DOCKER_TLS_CERTDIR: ""


这将提供用于查找证书并正常运行的强制性配置,即使它们尚未设置(现在或曾经)。

它将暂时解决您的问题希望在未来的 docker 镜像中得到修复。

希望这可以帮助 :)


推荐阅读