본문 바로가기
Docker

[Docker] root가 아닌 사용자에게 Docker 권한 부여하기

by 서어켜엉 2024. 8. 21.

 

문제발생

회사 내부 서버에 docker 가 설치된 VM 을 생성하고 사용자를 생성 후 ssh 접속을 통해 개발환경을 제공한다.

분명 docker 가 설치되어 있음에도 불구하고 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

 

이런 에러가 발생한다.

 

 

해결방법

1. docker group의 멤버를 확인한 후 사용자를 추가한다.

기본적으로 Docker 소켓("/var/run/docker.sock")은 root 사용자와 docker 그룹에 의해 소유된다.

따라서 사용자가 docker 그룹에 속하지 않으면 접근 권한이 부족해질 수 있다.

docker 그룹은 Docker 설치 시 기본적으로 생성되지만, 경우에 따라 생성이 안될 경우가 있다.

groups

# docker 라는 그룹이 없다면
sudo groupadd docker
sudo chown root:docker /var/run/docker.sock

# docker 라는 그룹이 존재한다면
sudo usermod -aG docker $USER

 

2. 세션 재시작

sudo systemctl status docker

# 실행되어 있지 않다면
sudo systemctl start docker

 

3. Docker 소켓 권한 확인

ls -l /var/run/docker.sock

# 올바른 권한
srw-rw---- 1 root docker 0 Aug 21 12:34 /var/run/docker.sock

 

4. 사용자 권한으로 실행 확인

docker ps