Got permission denied while trying to connect to the Docker daemon socket at unix 问题解决方案

问题描述

gitlab 使用 shell 脚本自动推送镜像,脚本如下:

#!/usr/bin/env bash
SHA=$1
SHASHORT=${SHA:0:8}
data=`sudo docker images | grep $SHASHORT | awk '{print $1":"$2}'`
arr=(${data//\\n/ })
for i in ${arr[@]}
do
    echo "推送镜像 starting $i"
    sudo docker push $i
    echo "推送镜像成功 $i"
done

报错信息

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.32/images/json: dial unix /var/run/docker.sock: connect: permission denied

解决方案

将用户添加到Docker组
执行 sudo usermod -aG docker <username>,其中 <username> 是你的用户名。
退出并重新登录以使组更改生效。

修改脚本,增加当前用户打印信息

#!/usr/bin/env bash
echo "当前用户是: $(whoami)"
SHA=$1
SHASHORT=${SHA:0:8}
data=`sudo docker images | grep $SHASHORT | awk '{print $1":"$2}'`
arr=(${data//\\n/ })
for i in ${arr[@]}
do
    echo "推送镜像 starting $i"
    sudo docker push $i
    echo "推送镜像成功 $i"
done

gitlab 后台打印用户为 gitlab-runner

设置用户权限即可

sudo usermod -aG docker gitlab-runner

gitlab 再次执行 shell 脚本,推送成功

请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值