gitlab-ruuner Shell executor解决permission denied while trying to connect to the Docker daemon socket

在执行docker命令时,碰到以下错误

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.26/images/json: dial unix /var/run/docker.sock: connect: permission denied
"docker rmi" requires at least 1 argument(s).
See 'docker rmi --help'.

原因就是没有执行的权限,注意到/var/run/docker.sock,这个路径下的文件docker.sock干什么用的?请看这里Daemon socket option。

  • Docker指令由Docker daemon监听执行。
  • Docker daemon 通过三种socket类型(unix, tcp, fd),监听Docker引擎api请求。
  • unix domain socket(IPC) 默认在/var/run/docker.sock文件下创建。
  • 该文件创建需要root权限或docker组权限

由此可以知道,因为/var/run/docker.sock没有写入权限,导致 docker请求管道无法连接,那么授予docker.sock读写权限即可,执行以下命令:

sudo chmod 777  /var/run/docker.sock

再次执行docker 命令即可成功!

你可能感兴趣的:(gitlab-ruuner Shell executor解决permission denied while trying to connect to the Docker daemon socket)