본문 바로가기
IT Knowledge/Docker

Docker.sock 일반 계정 사용 권한 이슈(permission denied)

by Seok. 2022. 1. 5.
반응형

[상황]

Jenkins Script 통해 docker image 만들고 배포하려고 ,

Jenkins Agent 구동하는 계정이 root 아닌 일반 사용자계정이면 아래의 오류가 발생한다.

 

[오류]

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=klv1s7gcvua6o8j7srtt572zk&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied

 

 

 

[조치방안]

2가지 해결방법이 있다.

 

방법1. Docker.sock 권한 변경

Chmod 666 /var/run/docker.sock

 

특이사항 : 권한을 변경한 경우, 일시적인 조치 입니다.

docker 서비스를 재시작하면 권한이 660으로 돌아옵니다.

해당 방법은 권장하지 않습니다.

 

방법2. Docker 그룹을 만들어서. 사용자 추가하기

$ Sudo groupadd docker

$ sudo usermod -aG docker $USER

$ newgrp

 

해당 사용자 계정이 docker group 권한이 부여되었음을 확인하는 방법

$ id
[testhost@testhost ~]$ id
uid=1001(testhost) gid=1002(testhost) groups=1002(testhost),1003(docker)

 

$sudo chown root:docker /var/run/docker.sock

 

$ systemctl restart docker

 

만약 docker 재시작 이후에 권한설정이 돌아온다면?

파일생성 : /etc/docker/daemon.json

내용 작성 :

{

"group" : "docker"

}

 

작업이 완료된 이후에 systemctl reboot 실행

 

본인은 그룹할당 작업 완료후에 시스템 재부팅을 하지 않아서 계속 문제가 해결되지 않아 고생한적이 있다.

반응형

'IT Knowledge > Docker' 카테고리의 다른 글

Docker Proxy Setting  (1) 2023.09.03
Docker 용량 확인 및 관리(df, prune)  (4) 2021.09.26
Docker 간단한 Node.js 앱 만들기  (0) 2021.09.08
[Docker] Install Docker Engine on CentOS  (0) 2021.06.10

댓글