Docker #12. Got permission denied while trying to connect to the Docker daemon socket 해결방법 #Jenkins
개요
Docker socket에대한 permission 권한부여
Docker Socket Permission
오늘포스팅은 아주 짧지만 해당 방법을 얻고자 필자가 들인시간은 꽤 길다. 기존 CI/CD 파이프라인을 구축하던 중 docker를 통한 k8s 환경에 어플리케이션을 배포할 일이 있었는데, 이때 젠킨스내의 빌드 시 docker가 정상적으로 빌드 되지 않으며 "Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock" 라는 에러를 검출했다. 이에 대한 해결방법을 기술한다.
1. 에러내용
먼저 출력된 에러는 서두에 언급한 것과 같이 "Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock"이다. 즉, docker 데몬 소켓에 연결하는데 권한이 없다는 뜻이다. 실제로 젠킨스 빌드과정에서 아래와 같이 표시되었다.
2. 원인 및 해결방법
원인은 간단하다. docker 소켓에 접근하려는데 권한이 없다. 해당 파일 위치를 찾아가보면 root:root 권한이기 때문에 docker user가 접근 시 사용이 제한되는 경우이다.
해결방법 역시 간단하다. 모든 그룹 접근가능과 docker계정에 권한부여를 해주면 된다. 이때 현재 터미널에 접속되어있는 계정을 docker 그룹에 포함시켜 주면 되며 아래와 같이 진행하면된다.
sudo usermod -a -G docker $USER #경우에 따라 dockerroot로 설정
sudo chmod 777 /var/run/docker.sock
sudo chown root:docker /var/run/docker.sock
이후 접속해있는 터미널을 로그아웃 후 재접속하거나 재부팅을 통해 정상적으로 docker socket에 접속이 되는지 확인해본다. 필자같은 경우도 젠킨스에서 정상적으로 빌드 및 푸시가 완료되었다 :)
'System Engineering > Docker' 카테고리의 다른 글
Docker #13. Docker iptable failed 에러조치 (docker0: iptables: No chain/target/match by that name) (0) | 2021.09.02 |
---|---|
Docker #11. Docker Window 설치 오류(error during connect...) (0) | 2021.05.30 |
Docker #10. 스프링부트(spring-boot) Docker로 구동하기 (1) | 2020.08.11 |
Docker #9. 알아두면 편리한 docker command (0) | 2020.07.10 |
Docker #8. Docker Commit 활용 컨테이너를 이미지화 시키기 (0) | 2020.05.30 |
댓글