docker - 准备失败:尝试在 unix:///var/run/docker.sock 连接到 Docker 守护程序套接字时获得权限被拒绝
问题描述
试图将 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)
我添加了一个跑步者,注册了它,用我没有修改的 docker 模板创建了一个 gitlab-ci.yml。作为我在添加跑步者之前和之后尝试过的解决方案chmod 666 /var/run/docker.sock
,但它不起作用。我还在运行和注册 docker runner 之前添加了 sudo ,但仍然没有成功。我找到了将我的 docker 用户添加到 docker 组的另一个选项,但我的所有用户都在 docker 组中。docker runner 作为 docker 镜像运行。我不知道该怎么办......请帮忙。我正在尝试大约 10 天但没有成功...提前谢谢
解决方案
- 如果不存在,则创建 docker 组:
sudo groupadd docker
- 将用户添加到 docker 组:
sudo usermod -aG docker ${USER}
- 将 docker.sock 更改为新权限:
sudo chmod 666 /var/run/docker.sock
- 最后重启 docker daemon 服务:
sudo systemctl restart docker
推荐阅读
- wordpress - 单击自定义结帐按钮后在结帐页面上显示“请选择产品选项...”
- javascript - 如何仅导入或使用子组件?
- c++ - 使用基于数组和范围的 For 循环来替换一些基本的代码行
- java - Java对anyMatch使用多个谓词
- python - 获取python groupby中字符串的第一次和最后一次出现
- angular - 角度 2 FlashMessages cssClass 不起作用
- xsd - XSD 多条件
- gzip - 如何为特定 URL 启用 gzip 压缩
- mysql - ORDER BY 最后一条消息进入第一条消息
- python - 如何使用 json.dumps 将包含内存模型实例的字典转换为字符串