부제: permission denied while trying to connect to the Docker daemon socket at unix 해결
안녕하세요, 아과입니다.
오늘은 docker version 명령어를 입력했을 때 나타나는 에러에 대해 알아보겠습니다.
(permission denied while trying to connect to the Docker daemon socket)
먼저 도커 버전을 확인해보겠습니다.
아래와 같이 입력해 주세요
docker version
docker version
그러면 아래와 같은 메시지를 볼 수 있습니다.
여기서 한 가지 거슬리는 부분이 나타나는데요...
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/version": dial unix /var/run/docker.sock: connect: permission denied
이라는 메시지가 뜹니다.
오늘은 이 부분을 해결해 보겠습니다.
일단 오류메시지를 확인해 보면
도커 데몬의 소켓이 unix:///var/run/docker.sock에 접속을 시도하는데 권한이 없어 거부되었다고 합니다.
그럼 /var/run/docker.sock에 권한을 주면 될 것 같습니다.
일단 그러면 지금 /var/run/docker.sock의 권한이 어떤 상태인지 보도록 하겠습니다.
/var/run/docker.sock 권한 확인
ls -lart /var/run/docker.sock
ls -lart /var/run/docker.sock
그러면 다음과 같이 나옵니다.
srw-rw---- 1 root docker 의미를 해석해 보면 다음과 같습니다.
s/rw-/rw-/---
s:타입(socket)
rw-: 소유자
rw-: 그룹
---: 일반사용자
root: 소유자
docker: 그룹
그럼 정보를 확인했으니 해결을 해보도록 하겠습니다.
docker.sock의 권한 문제를 해결하기 위해서는 3가지 방법이 있습니다.
- /var/run/docker.sock 파일의 권한을 변경
- /var/run/docker.sock 파일의 소유자나 그룹을 변경
- 현재 접속한 사용자의 그룹 추가 : 추천하는 방법
각 방법을 간략하게 설명하면 다음과 같습니다.
1. /var/run/docker.sock 파일의 권한을 변경
파일의 권한 변경은 chmod를 사용합니다.
일반 사용자에게도 rw의 권한을 부여합니다.
sudo chmod 666 /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock
2. /var/run/docker.sock 파일의 소유자나 그룹을 변경
소유자나 그룹을 변경하기 위해서는 chown 명령어를 사용합니다.
여기서는 소유자를 agwanote로 변경합니다.
sudo chown agwanote:docker /var/run/docker.sock
sudo chown agwanote:docker /var/run/docker.sock
3. 현재 접속한 사용자의 그룹 추가
가장 추천하는 방법입니다.
1, 2번은 파일의 권한을 수정하는 너무 과격한 방법입니다.
usermod를 이용해서 사용자에 docker 그룹을 추가합니다.
sudo usermod -a -G docker $USER
sudo usermod -a -G docker $USER
사용자관리에 대한 자세한 설명은 다음글을 참고해 주세요.
2023.03.03 - [서버(리눅스)] - 우분투(Ubuntu) 22.04 사용자 관리 마스터하기(추가, 수정, 삭제) / 아과노트
그리고 exit로 나간 후 다시 putty에 접속합니다.
*재접속하지 않으면 그룹이 반영되지 않습니다.
* 그룹권한 확인
그리고 groups로 그룹 권한이 잘 들어갔는지 확인합니다.
마지막으로 이제 다시 docker version으로 확인합니다.
그러면 아까 보였던 permission denied while trying to connect to the Docker daemon socket 메시지가 사라진 것을 볼 수 있습니다.
오늘은 여기까지입니다.
고생하셨습니다.