WSL2에서 docker 그룹 권한이 적용되지 않을 때 확인할 6가지

다음 명령으로 사용자를 docker 그룹에 추가했는데도 docker ps에서 계속 권한 오류가 발생할 수 있습니다.

sudo usermod -aG docker "$USER"

WSL2에서는 Windows Terminal 탭만 닫았다가 다시 여는 것으로 기존 Linux 로그인 세션이 완전히 종료되지 않을 수 있습니다.

핵심 요약
id -nG에서 docker 그룹이 실제로 보이는지 먼저 확인합니다. 보이지 않으면 로그아웃하거나 newgrp docker를 사용하고, 그래도 적용되지 않으면 PowerShell에서 wsl --shutdown으로 WSL 전체를 종료한 뒤 다시 시작합니다.

1. 현재 셸의 그룹 확인

id -nG

또는:

groups

출력에 docker가 없으면 현재 셸에는 새 그룹 정보가 아직 적용되지 않은 것입니다.

2. 계정이 docker 그룹에 등록됐는지 확인

getent group docker

예상 형식:

docker:x:999:사용자명

사용자명이 없다면 다시 등록합니다.

sudo usermod -aG docker "$USER"

현재 사용자명을 명확히 확인하려면:

whoami

다른 계정에 그룹을 추가하지 않았는지 함께 확인합니다.

3. 현재 셸에서 새 그룹 적용

빠르게 시험하려면 다음을 실행합니다.

newgrp docker

새 셸에서 확인합니다.

id -nG
docker ps

newgrp는 새 그룹이 적용된 하위 셸을 시작합니다. 원래 셸로 돌아가려면 다음을 입력합니다.

exit

장기적으로는 로그아웃한 뒤 다시 로그인하는 방식이 더 명확합니다.

4. WSL 전체 종료 후 다시 시작

Windows PowerShell에서 실행합니다.

wsl --shutdown

이 명령은 실행 중인 모든 WSL 배포판과 작업을 종료합니다. 저장하지 않은 터미널 작업이 없는지 먼저 확인합니다.

종료 상태를 확인합니다.

wsl -l -v

다시 Ubuntu 등 사용하는 배포판을 실행한 뒤 Linux 셸에서 확인합니다.

id -nG
docker ps

5. Docker 소켓 권한 확인

ls -l /var/run/docker.sock

일반적인 Docker Engine 환경에서는 다음과 비슷합니다.

srw-rw---- 1 root docker ... /var/run/docker.sock

현재 사용자가 docker 그룹에 있는데도 접근이 안 된다면 현재 셸의 실제 그룹과 소켓 그룹이 일치하는지 비교합니다.

id
stat -c '%U %G %a %n' /var/run/docker.sock

임시 해결을 위해 다음처럼 모든 사용자에게 소켓을 개방하지 않습니다.

sudo chmod 666 /var/run/docker.sock

6. Docker 엔진과 context 확인

WSL 안에서 Docker Engine을 직접 실행하는지, Docker Desktop 또는 Rancher Desktop 연동을 사용하는지 구분해야 합니다.

docker context show
docker context ls
echo "$DOCKER_HOST"

Docker Desktop이나 Rancher Desktop이 제공하는 context를 사용한다면 /var/run/docker.sock의 로컬 그룹 권한만 수정해도 해결되지 않을 수 있습니다.

Docker 서비스가 WSL 내부에 존재하는지도 확인합니다.

systemctl status docker

Unit docker.service could not be found라면 WSL 내부 Docker Engine이 아니라 외부 Desktop 제품의 WSL 통합을 사용하는 구성일 수 있습니다.

정상 확인 순서

whoami
id -nG
getent group docker
ls -l /var/run/docker.sock
docker context show
docker version
docker ps

빠른 판단표

확인 결과 의미 다음 조치
getent group docker에 사용자 없음 그룹 등록 실패 또는 다른 사용자 등록 usermod -aG 재실행
그룹에는 등록됐지만 id -nG에 없음 현재 로그인 세션 미갱신 재로그인 또는 newgrp
WSL 재실행 후에도 소켓 없음 daemon 미실행 또는 외부 엔진 사용 서비스와 context 확인
local socket은 정상인데 다른 context 사용 다른 엔진으로 연결 중 사용할 context 선택

검증일: 2026-07-11

공식 참고 자료