도커 socket permisson Error 해결

개인 계정에서 도커를 실행하면

권한 때문에 자꾸 아래와 같이 오류 발생해서 계속 sudo docker ps 이런식으로 sudo 쓰는게 번거로워서
어떻게 하나 보던 중 방법을 발견해 공유합니다.

 

오류 내용 

$ docker ps

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

오류내용
오류내용

 

오류 원인

 

  • Docker CLI(docker ps)는 Unix 소켓 파일(/var/run/docker.sock)을 통해 Docker Daemon과 통신함
  • 이 소켓 파일에 대한 읽기/쓰기 권한이 없는 사용자가 접근하면 바로 permission denied 발생

해결 방법

1. docker 그룹을 만들고, 그룹에 인원 매핑

그룹생성 : sudo groupadd docker

그룹인원매핑
 방법 1 : sudo usermod -aG docker (이름)

 방법 2 /etc/group에 직접 매핑 (생성과 인원매핑 같이 됨)
               docker:x:300000:이름


2. Unix 소켓 파일(/var/run/docker.sock) 권한을 root:root 에서 root:docker 로 변경

소유자를 root 로 하고 그룹을 docker 로 매핑해준다

그래야 docker 그룹인 사람들이 docker 권한을 사용 가능함.

변경전

 

3. 쉘 로그아웃 후 재로그인 

docker 결과
docker ps 한 결과

 

이렇게 작업하면 이제 sudo  없이도 사용 가능합니다. 

 

감사합니다