본문 바로가기

개발 이야기/리눅스 개발

docker에서 컨테이너 gui 실행하기

728x90

우분투의 그래픽은 시스템이 아니다. 프로그램이다.

그래서 리눅스 서버버전을 실행하면 gui가 없었던 것입니다.

 

-출처: https://medium.com/@SaravSun/running-gui-applications-inside-docker-containers-83d65c0db110

 

우분투는 `Xorg`라는 그래픽 프로그램을 이용한다. 즉, 얘가 있어야 그래픽을 띄워줄 수 있습니다.

그럼 도커에서 그래픽을 띄워주려면? 호스트의 자원을 공유하면 된다.

호스트의 Xorg를 컨테이너가 이용하면 된다는 말~

실행옵션을 추가해주면 컨테이너에서도 그래픽을 볼 수 있다.

 

도커를 gui로 실행하는 방법은 두 가지가 있다. 

1. VNC를 이용하거나

2. 단순히 XServer를 공유

 

여기서 Xserver를 공유하는 방법은 아래와 같습니다.

XServer 공유하기

host의 XServer를 볼륨형태로 컨테이너와 공유하자. DISPLAY 환경 변수도 전달해줘야 한다.

유닉스 도메인 소켓을 이용하여 host의 XServer와 도커 컨테이너를 연결한다.  readonly옵션을 준다.

XServer소켓은 `/tmp/.X11-unix`에 존재한다.

 

1
2
--volume /tmp/.X11-unix:/tmp/.X11-unix:ro
-e DISPLAY=unix$DISPLAY

 

 

호스트에서 도커가 xserver와 통신할 수 있도록 설정한다. 다른 터미널을 열고 작업한다.

1 $ xhost +local:docker

 

 

이제 GUI로 도커 이미지를 실행할 수 있다.

 

(출처: https://medium.com/@SaravSun/running-gui-applications-inside-docker-containers-83d65c0db110 )

 

그럼,

   공유합니다.