Biotechnology

[13] - 도커(docker) GUI 앱 실행 본문

연구노트/도커(Docker)

[13] - 도커(docker) GUI 앱 실행

로얄블루 2019. 10. 25. 17:22

[주의 사항]

1. 위 포스팅은 타 블로그의 글을 가져와 재가공한 것임을 밝힙니다.

2. 위 포스팅은 개인적인 연구의 빠른 참조를 위한 것이고, 그 외의 목적은 없음을 밝힙니다.

 

 

1. 컨테이너 생성

 

nvidia-docker run -it -e DISPLAY=$DISPLAY -e USER=$USER -v /tmp/.X11-unix:/tmp/.X11-unix \
-v /root/.Xauthority:/root/.Xauthority --net host [IMAGE_NAME] /bin/bash

 

사용한 키워드

-e DISPLAY=$DISPLAY

-e USER=$USER

-v /tmp/.X11-unix:/tmp/.X11-unix

-v /root/.Xauthority:/root/.Xauthority

--net host

 

1-1. Error response from daemon: OCI runtime created failed

 

에러 발생 원인은 본인 소유 외의 디렉토리를 -v 형태로 넣어줬기 때문임.

특히 /usr/lib, /lib, /etc 등의 디텍토리를 넣었을 때, NVIDIA DRIVER가 꼬이면서 발생

 

- NVIDIA 드라이버 삭제 및 재설치

2019/10/23 - [연구노트/도커(Docker)] - [01] - Ubuntu에서 NVIDIA 드라이버 및 CUDA 설치

 

Tips: 굳이 드라이버를 삭제할 필요까지 없음. 그냥 NVIDIA RUN 파일로 재설치만 하면 돌아옴.

 

1-2. Error: Can't open display: localhost:10.0 등

 

에러 발생 원인은 xauth 에 사용자가 등록되지 않아서임.

 

-e $DISPLAY=DISPLAY

-e USER=$USER

--net host 

 

2. 도커 내에서 xclock 설치 

apt-get install x11-apps

 

3. 도커 내에서 GUI 앱 실행

xclock

 

 

 

 

4. 개인적인 컨테이너 생성 키워드

nvidia-docker run -it -e DISPLAY=$DISPLAY -e USER=$USER -v /tmp/.X11-unix:/tmp/.X11-unix \
-e XDG_RUNTIME_DIR=/tmp -v /usr/share:/usr/share \
-v /usr/local/share/applications:/usr/local/share/applications \ 
-v /root/.Xauthority:/root/.Xauthority \
--net host [IMAGE_NAME] /bin/bash

 

참조 혹은 추천 사이트: 

https://blog.mobatek.net/post/how-to-keep-X11-display-after-su-or-sudo/

 

Comments