본문 바로가기

Docker

[docker] 컨테이너에 X윈도우 연결하여 GUI 띄우기

 

1. 배경

Docker를 이용해 환경을 구성하고, bash를 통해 명령을 실행시키는 것에 익숙해질 때 쯤,

docker container에서 openCV 이미지를 imshow 해야하는 일이 발생 

 

2. 환경

호스트 : Ubuntu 20.04, RTX3090

컨테이너

  - Ubuntu 18.04

  - cuda 11.1

  - cudnn 8

  - miniconda 4.11

  - python 3.8

  - torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 

  - opencv-python==4.1.2.30

 

3. 기본 원리

카메라 입력이나 GUI 윈도우 창을 띄우는 것 모두,

도커 컨테이너에 해당 하드웨어(호스트)를 연결시켜 주어야 한다. 

 

4. Docker run 

docker run -it --gpus all --shm-size=16G \
--env DISPLAY=$DISPLAY --env="QT_X11_NO_MITSHM=1" \
-v /tmp/.X11-unix:/tmp/.X11-unix:ro \
-v 프로젝트폴더:/workspace -v 이미지폴더:/workspace/dataset 도커이미지명
  • --env DISPLAY=$DISPLAY  : 호스트의 디스플레이 ID를 컨테이너에 전달
  • --env "QT_X11_NO_MITSHM=1"  : in your docker run parameters to set the environmental flag to force Qt to show properly.
  • -v /tmp/.X11-unix:/tmp/.X11-unix:ro  : 호스트의 X윈도우와 컨테이너의 X윈도우를 연결

 

5. 참고 자료

https://blog.naver.com/cheeryun/222383212241

https://curioso365.tistory.com/44

 

 

끗.

 

'Docker' 카테고리의 다른 글

[docker] context 오류 해결 방법  (0) 2022.12.28