Post

WSL의 Docker Container에서 GUI 사용하기

WSL의 Docker Container에서 GUI를 사용하기 위해 설정하는 방법을 정리한 글입니다.

WSL의 Docker Container에서 GUI 사용하기


GUI용 Docker Container 실행하고 X11 접근 권한 추가


WSL의 Docker Container 실행 시 옵션을 추가하면 GUI를 사용할 수 있다.
다음과 같이 Docker Container를 실행하면 된다.

1
docker run --name gui_study -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -i -t -v ~/gui_study_data:/root ubuntu
  • -e DISPLAY : DISPLAY 환경변수 설정
  • -v /tmp/.X11-unix:/tmp/.X11-unix : 호스트의 X11 사용을 위해 Docker Container의 /tmp/.X11-unix 폴더를 호스트의 /tmp/.X11-unix 폴더로 연결


그리고 xhost 명령어를 사용하기 위해 다음 Package를 설치해 준다.

1
sudo apt install x11-xserver-utils

설치가 완료되면 xhost 명령어를 사용하여 호스트의 X11에 Docker Container가 접근할 수 있도록 권한을 추가해 준다. 참고로 호스트의 X11 접근 권한은 부팅 시마다 매번 다시 추가해 주어야 한다.

1
xhost +local:docker


GUI 확인


GUI를 확인하기 위해 Docker Container에 아래의 Package들을 설치해 준다.

1
2
apt update
apt install python3 python3-pip python3-opencv x11-apps


이제 Docker Container에서 Python으로 이미지를 확인하면 GUI를 확인할 수 있다.

1
2
3
4
5
import cv2

img = cv2.imread('lena.jpg', cv2.IMREAD_COLOR)
cv2.imshow('image', img)
cv2.waitKey(0)

Image


또한 Docker Container에서 xclock 명령어를 사용하여 GUI 시계도 확인할 수 있다.

1
xclock

Image

This post is licensed under CC BY 4.0 by the author.