当前位置: 首页 > 知识库问答 >
问题:

准备失败:尝试连接到位于的Docker守护程序套接字时,获取权限被拒绝unix:///var/run/docker.sock

孟安民
2023-03-14

试图将gitlab中的项目转换为docker映像。gitlab是自托管的。这是我得到的错误:

Running with gitlab-runner 13.12.0 (7a6612da)
on test -KnwQXuT
Preparing the "docker" executor
ERROR: Failed to remove network for build
ERROR: Preparation failed: Got permission denied while trying to connect to the Docker daemon 
socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.25/info: dial 
unix /var/run/docker.sock: connect: permission denied (docker.go:858:0s)

我添加了一个runner,注册了它,用docker模板创建了一个gitlab-ci.yml,没有做任何修改。作为解决方案,我在添加转轮之前和之后尝试了< code > chmod 666/var/run/docker . sock ,但它不起作用。我还在运行和注册docker runner之前添加了sudo,但仍然没有成功。我找到了另一个选项,将我的docker用户添加到docker组,但我的所有用户都在docker组中。docker runner作为docker映像运行。我不知道该怎么办...请帮帮忙。我尝试了大约10天没有成功...预先感谢

共有2个答案

裴浩歌
2023-03-14

当您使用gitlab自托管runner时,默认情况下,它会创建一个名为gitlab-runner的用户。您需要为其分配权限。

sudo usermod -aG docker gitlab-runner

这将为gitlab-runner分配正确的权限,并在该虚拟机上提取docker映像。

狄河
2023-03-14
  1. 如果不存在,则创建docker组:sudo groupadd docker
  2. 用户添加到docker组:sudo usermod-aG docker${USER}
  3. 将docker.sock改为新权限:sudo chmod 666 /var/run/docker.sock
  4. 最后重启docker守护进程服务:sudo systemctl重启docker
 类似资料: