簡體   English   中英

准備失敗:無法連接到 unix:///var/run/docker.sock 上的 Docker 守護進程

[英]Preparation failed: Cannot connect to the Docker daemon at unix:///var/run/docker.sock

我啟動了一個docker容器gitlab-ci-runner,然后使用docker作為執行器注冊了一個runner,使用node:latest作為docker鏡像。 但是當我推送提交到 gitlab 時,我收到了這個錯誤:

Running with gitlab-runner 11.3.1 (0aa5179e)
  on docker-ci 0f9fe2c4
Using Docker executor with image node:latest ...
ERROR: Preparation failed: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (executor_docker.go:1150:0s)

這是我的 gitlab config.toml:

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "docker-ci"
  url = "http://gitlab.xxxxxx.com/"
  token = "0......fc5"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "node:latest"
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

我使用以下方法啟動容器:

sudo docker run -d --name gitlab-runner --restart always \
 -v ~/srv/gitlab-runner/config:/etc/gitlab-runner \
 -v ~/var/run/docker.sock:/var/run/docker.sock \
 gitlab/gitlab-runner:latest

並注冊使用:

sudo docker run --rm -t -i -v ~/srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register

我是 docker 新手,找不到錯誤原因。有人可以幫助我嗎?

由於您的CLI容器或gitlab-ci-runner container需要在gitlab-ci-runner container中掛載主機的Docker套接字。 這將允許您的容器使用主機的Docker守護程序來運行容器並構建映像。

您只需要修改gitlab-ci-runner的運行命令。

docker run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest

我的情況下,我的機器上沒有docker。 這是安裝文檔https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce

sudo apt-get install docker-ce docker-ce-cli containerd.io

正如@Adiii 所提到的。 不同之處在於:

  1. docker-container 的啟動方式需要從~/var/run/docker.sock:/var/run/docker.sock/srv/run/docker.sock:/var/run/docker.sock/var/run/docker.sock:/var/run/docker.sock
  2. config.toml
[[runners]]
  [runners.docker]
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]

其中“/var/run/docker.sock:/var/run/docker.sock”是重要的變化。

最好在此處的問題討論中進行描述: https : //gitlab.com/gitlab-org/gitlab-runner/-/issues/1986

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM