docker - 错误 : Job failed (system failure): Cannot connect to the Docker daemon at unix:///var/run/docker. socks 。 docker 守护进程是否正在运行?在 Windows 10 上

标签 docker gitlab gitlab-ci-runner

我正在尝试在 Windows 10 PC 上设置 gitlab CI。

我为 gitlab 创建了一个 docker 容器(卷是 docker 卷)

docker run --detach --name gitlab --hostname gitlab.mod --publish 4443:443 --publish 4480:80 --publish 8222:22 --volume gitlab-conf:/etc/gitlab --volume gitlab-logs:/var/log/gitlab --volume gitlab-data:/var/opt/gitlab gitlab/gitlab-ce

另一个给运行者
docker run -d --name gitlab-runner -v gitlab-runner-conf:/etc/gitlab-runner gitlab/gitlab-runner:latest

挂号的
docker run --rm -t -i -v gitlab-runner-conf:/etc/gitlab-runner gitlab/gitlab-runner register --url "http://11.22.33.44:4480/" --registration-token "sEcrEttOkEnfOrgItlAb" --description "Runner" --executor "docker" --docker-image alpine:latest --docker-services postgres:latest

其中 11.22.33.44 是我电脑的 IP

但是当我推送我的提交时,我有一个错误
Running with gitlab-runner 12.5.0
  on Runner
ERROR: Job failed (system failure): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (executor_docker.go:980:0s)

如果我设置参数以在端口 2375 上公开 docker:
  settings > General > Expose daemon on tcp://localhost:2375

在运行器容器中的/etc/gitlab-runner/config.toml 中:
  [runners.docker]
      host = "tcp://11.22.33.44:2375"

我有几乎相同的错误信息:
Running with gitlab-runner 12.5.0 (577f813d)
  on Runner
ERROR: Job failed (system failure): Cannot connect to the Docker daemon at tcp://11.22.33.44:2375. Is the docker daemon running? (executor_docker.go:980:1s)

我不明白这是从哪里来的。
我尝试了一些在互联网上找到的解决方案,但到目前为止,没有任何效果。

我在哪里可以找到一些日志文件,看看会发生什么?我查看了 gitlab 容器/var/log/gitlab 日志文件,但我找不到任何关于 2 个容器之间的详细信息。

gitlab 主机名、“localhost”名称、计算机 IP 之间是否存在问题?某处的防火墙?这是一个类似于我所见过的所有问题的问题吗?运行者是否得到了他必须执行的工作但 gitlab 没有听到答案?

到目前为止,我尝试的大多数事情都使情况变得更糟,我需要一些提示

我的 .gitlab-ci.yml (非常简单):
variables:
    HELLO: World

test:
    script:
        - echo $HELLO

我的配置
Docker Desktop Community edition 2.0.0.3 (Engine 18.09.2)
GitLab Community Edition 12.5.2
Gitlab Runner 12.5.0
Windows 10.0.17763

谢谢

最佳答案

如果您的目标是注册一个 docker 执行器,一种简单的方法是运行命令 gitlab-runner.exe register并按照交互式说明进行操作,它将填满您的 config.toml

当您尝试使用 时也会出现此错误。 docker 图像中的 docker 当您运行图像以执行 docker 命令时。

在这种情况下,使用的运行器标签必须将特权设置为 true,并且在您的 gitlab-ci 文件中,您可以定义一个变量 DOCKER_DRIVER: overlayDOCKER_DRIVER: overlay2

关于docker - 错误 : Job failed (system failure): Cannot connect to the Docker daemon at unix:///var/run/docker. socks 。 docker 守护进程是否正在运行?在 Windows 10 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422889/

相关文章:

GitLab CI : Two independent scheduled jobs

tags - 如何在 GitLab 中接受合并请求后自动创建标签?

docker - CI脚本作业之前如何在推送时重建Docker镜像

docker - 为Docker父镜像build设置http_proxy

docker-machine - 无法连接到休息网址

amazon-web-services - 多个 ssl 证书可以保护同一个子域吗?

gitlab-ci - 如果没有工件,如何使任务失败

caching - gitlab-ci runners 中具有不同到期时间的多条路径

docker - 在 Alpine 上使用Sanic的Docker镜像:latest(3.9)使用python json而不是ujson

docker - Google Cloud Container:从Dockerfile创建Docker容器