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 |
---|