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