gitlab kubernetes运行程序无法连接到docker守护程序 [英] gitlab kubernetes runner cannot connect to the docker daemon

查看:298
本文介绍了gitlab kubernetes运行程序无法连接到docker守护程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在kubernetes中配置了gitlabRunner,它无法连接到docker daemon。显示以下错误。

I have configured gitlab runner within kubernetes , which is not able to connect to docker daemon . Showing below error .


$ docker build --cache-from $ {DOCKER_IMAGE_TAG} -t
$ {DOCKER_IMAGE_TAG }。

$ docker build --cache-from "${DOCKER_IMAGE_TAG}" -t "${DOCKER_IMAGE_TAG}" .

无法通过unix:///var/run/docker.sock连接到Docker守护程序。
docker守护进程是否正在运行?错误:作业失败:命令以
退出代码1终止

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? ERROR: Job failed: command terminated with exit code 1



stages:
  - push_to_docker

docker_image:
 image: 'docker:latest'
 services:
  - docker:dind
 stage: push_to_docker
 variables:
    DOCKER_IMAGE_TAG: 'gcr.io/abcd-project/test'
 script:
   - docker build --cache-from "${DOCKER_IMAGE_TAG}" -t "${DOCKER_IMAGE_TAG}" .
   - echo "$SERVICE_ACCOUNT_KEY" > key.json
   - docker login -u _json_key --password-stdin https://gcr.io < key.json
   - docker push ${DOCKER_IMAGE_TAG}
 only:
   - master
 tags:
   - abcd

我的 config.toml 文件如下

listen_address = "[::]:9252"
concurrent = 4
check_interval = 3
log_level = "info"

[session_server]
  session_timeout = 1800

[[runners]]
  name = "runner-gitlab-runner-78c7db94bc-lzv76"
  request_concurrency = 1
  url = "https://gitlab.com/"
  token = "*********"
  executor = "kubernetes"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
  [runners.kubernetes]
    host = ""
    bearer_token_overwrite_allowed = false
    image = "ubuntu:16.04"
    namespace = "gitlab-managed-apps"
    namespace_overwrite_allowed = ""
    privileged = true
    service_account_overwrite_allowed = ""
    pod_annotations_overwrite_allowed = ""
    [runners.kubernetes.pod_security_context]
    [runners.kubernetes.volumes]

经过以下配置检查

    image: docker:19.03.1
    services:
    - docker:19.03.1-dind
    variables:
      DOCKER_HOST: tcp://docker:2375

更改配置后的.gitlab-ci.yml文件如下:

And my .gitlab-ci.yml file after changing the configuration is as below:

stages:
  - push_to_docker
  - deploy_into_kubernetes
variables:
  DOCKER_IMAGE_TAG: 'gcr.io/abcd-project/test:$CI_COMMIT_SHORT_SHA'
  DOCKER_HOST: tcp://docker:2375

docker_image_creation:
 image: docker:19.03.1
 services:
  - docker:19.03.1-dind

 stage: push_to_docker

 script:
   - docker build -t "${DOCKER_IMAGE_TAG}" .
   - echo "$SERVICE_ACCOUNT_KEY" > key.json
   - docker login -u _json_key --password-stdin https://gcr.io < key.json
   - docker push ${DOCKER_IMAGE_TAG}
 tags:
   - cluster
   - kubernetes

但出现以下错误:


跳过Git子模块设置$ docker build -t $ { DOCKER_IMAGE_TAG}
。 time = 2019-11-04T08:07:37Z level = error msg =无法拨打gRPC:
无法连接到Docker守护程序。'docker daemon'在
上运行吗?拨打tcp:在10.0.0.10:53上查找docker:在连接期间没有这样的主机
错误:发表
http:// docker:2375 / v1.40 / build?buildargs =%7B%7D& from =%5B%5D& cgroupparent =& cpuperiod = 0& cpuquota = 0& cpusetcpus =& cpusetmems =& cpushares = 0& dockerfile = Dockerfile& labels =%7B%7D& memory = 0& memswap = 0& networkmode = default& rm = 1& ses ion = l1ce41pzm1p9a4jdhs31z9p64& shmsize = 0& t = gcr.io%2Fupbeat-flame-247110%2Fgitlab-runner-poc%3A25b1faa0& target =& ulimits = null& version = 1 :上下文已取消


推荐答案

使用docker19,它会自动为您配置其主机:

use docker19, which automatically configures its host for you:

image: docker:19.03.1
services:
- docker:19.03.1-dind
variables:
  DOCKER_HOST: tcp://docker:2375

https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

这篇关于gitlab kubernetes运行程序无法连接到docker守护程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆