# 설치된 패키지 검색
$ dpkg --list | grep nvidia
ii libnvidia-container-tools 1.9.0-1 amd64 NVIDIA container runtime library (command-line tools)
ii libnvidia-container1:amd64 1.10.0-1 amd64 NVIDIA container runtime library
ii nvidia-container-toolkit 1.9.0-1 amd64 NVIDIA container runtime hook
...
# 출력된 리스트 중 불필요한 구 파일 삭제
# dpkg -r [패키지명]
$ dpkg -r libnvidia-container-tools
$ dpkg -r libnvidia-container1:amd64
$ dpkg -r nvidia-container-toolkit
2) 순서대로 설치
$ dpkg - i libnvidia-container1_1.13.5-1_amd64.deb
$ dpkg - i libnvidia-container-tools_1.13.5-1_amd64.deb
$ dpkg - i nvidia-container-toolkit-base_1.13.5-1_amd64.deb
$ dpkg - i nvidia-container-toolkit_1.13.5-1_amd64.deb
3) [필수] 도커 서비스 재가동 (docker service restart)
$ systemctl restart docker
※ 참고사항
- 순서가 바뀌거나 더 필요한 게 있다면 하기와 같이 친절히 표기가 되니, 맞추어 설치한다.
dpkg: dependency problems prevent configuration of nvidia-container-toolkit: nvidia-container-toolkit depends on nvidia-container-toolkit-base (= 1.13.5-1); however: Package nvidia-container-toolkit-base is not installed.
리눅스에서 종종 있는 문제로 GSSAPI kerberos 가 활성화되어 있으면 keberos DNS에 질의를 하는데 DNS 응답이 늦어질 경우 접속지연이 발생한다. 이로 인해 간헐적으로 접속지연이 발생하거나 화면이 멈추는 현상이 발생한다.
만약 서버에서 설정하고 싶다면
vi /etc/ssh/sshd_config
GSSAPIAuthentication no
을 입력하고 저장한다.
2. 사용이 오래되어 세션이 끊기는 현상 (stopped session)
이것은 사실 정상적인 애플리케이션의 처리현상이다. 다만, 역시 불편하다. 하기와 같이 나올 때 세션이 끊긴 것이다.
Network error: Software caused connection abort ───────────────────────────────────────────────────── Session stopped - Press <Return> to exit tab - Press R to restart session - Press S to save terminal output to file
Container를 실행(running) 상태로 두면서 나오기, 아래처럼 Ctrl 버튼 누른 상태에서 p, q를 순서대로 입력한다.
Ctrl+p+q
나온 상태에서 docker ps를 실행하면
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
042b6ec17812 nvidia "/opt/…" 51 minutes ago Up 51 minutes strange_galois
위 STATUS 항목에서 볼 수 있듯이 UP 상태로 그대로 실행 중인 것을 확인할 수 있다.
다시 접속을 위해서는 위 예제의 경우 NAMES = strange_galois 이므로 아래와 같이 명령을 수행한다.
$ docker attach strange_galois
여담으로 실행 중인 docker 컨테이너에 접속하는 것을 attach라고 칭하듯이, 컨테이너 중단 없이 나가는 것을 detach 라고 부른다. 또한, docker 옵션 중 -d 옵션이 detach mode를 뜻하며 아래 명령은 컨테이너 ABC를 중단없이 백그라운드로 실행한다.
#!/bin/sh
# xrdp X session start script (c) 2015, 2017 mirabilos
# published under The MirOS Licence
... 중략 ....
test -z "${LC_NUMERIC+x}" || export LC_NUMERIC
test -z "${LC_PAPER+x}" || export LC_PAPER
test -z "${LC_TELEPHONE+x}" || export LC_TELEPHONE
test -z "${LC_TIME+x}" || export LC_TIME
test -z "${LOCPATH+x}" || export LOCPATH
fi
if test -r /etc/profile; then
. /etc/profile
fi
# 추가할 부분
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
. $HOME/.profile
test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession
~
추가한 세 줄은 test ... exec.. 위에 위치해야 하며 이후 xrdp 서비스를 재시작한다.