Docker 컨테이너 환경에서 호스트에 GUI Display 연결 방법

Ubuntu Bash 환경에서 Docker 실행 시 아래와 같은 옵션 추가 필요

# 현재 Display 확인
echo $DISPLAY
:1

# xhost 명령은 X서버에 대한 접근 제어(access control)를 설정하기 위해 사용
# xhost + 는 모든 호스트의 접근을 허용하는 명령이므로 로컬 개발 환경에서만 사용 권장
# 컨테이너에만 접근을 허용하려면 xhost +local:docker 사용을 권장
xhost +local:docker

# Docker 실행 시 Display 연결
docker run -it \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e DISPLAY=unix$DISPLAY \
    --name <your-container-name> \
    <your-docker-image-name>
  • 참고: bash에서 줄 끝 \ 뒤에는 공백이나 다른 문자가 없어야 줄 연속(line continuation)으로 인식됨. 뒤에 공백이 있으면 명령이 그 줄에서 끝난 것으로 처리되어 오류가 발생할 수 있음

Docker 실행 후 GUI 연결 확인

# 테스트를 위한 GUI 앱 실행 (예: xeyes)
xeyes