문제발생
회사 내부 서버에 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