[상황]
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 |
댓글