얼마전 딥러닝 환경을 위해서 

도커(docker) 를 설치해서 ubuntu를 사용했는데

docker 컨테이너에서 GUI화면이 뜨지않고 DISPLAY 에러가 발생해서 

이도저도 못했던 일이 발생했습니다. 


구글링을 통해 docker run 할때 옵션을 주고 컨테이너에서 패키지 다운받고

이것저것 하라고 해서 했는데 다 안되더군요. (내가 못하는거지...ㅜㅜ)


혼자서 삽질만 하다가 발견한 방법을 작성합니다.

일단 제 구성 환경은

windows 7의 docker를 설치 docker 에서 ubuntu 이미지를 다운받아서 테스트 하였습니다.


해결 방법이 조금 꼼수 같네요

사용 port를 설정(-p 8022:8022) 하고

net설정을 host(ip가 동일 사용되므로 서버에서는 이 방법이 불가능 할듯 합니다)

ssh 설치 및 재기동합니다.


##  일단 port 설정하고 ssh로 설정포트로 접속

$ docker run -it -p 8022:8022 --net=host --name test test_image /bin/bash

## 이러면 로컬장비와 docker 컨테이너가 같은 IP를 사용합니다.

## port 8022를 사용설정되어 있으므로 ssh를 8022로 변경합니다.

$ sudo apt-get update

$ sudo apt-get ssh

$ vi /etc/ssh/sshd_config   ###port 수정  8022

$ /etc/init.d/ssh restart


## 사용 계정을 따로 만들어도 되고

## root password 변경해도 된다.


여기까지 했다면 putty(Xming 있는 상태)나 Xmanager로 접속을 합니다. 

(사용 프로그램에 따라 설정 포트로 접속하세요

$ ssh xxx.xxx.xxx.xxx 8022 


접속 해서 DISPLAY 변수를 확인합니다.

$ echo $DISPLAY  

localhost:10.0

위와 같은 문구가 표시되면 컨테이너로 ssh로 접속도 가능하고 GUI도 이용 됩니다.


### 확인 사항

만약 window환경이 아닌 다른 환경에서 도커 사용할 경우

kernel 버전 3.16 이하라면 

컨테이너에서 접속하여 password 수정이 되지 않는 현상이 발생합니다.

ubuntu 14.04에서 도커 사용시 컨테이너 패스워드 수정이 불가능 하였습니다.




블로그 이미지

§§

내 주머니속 작은 수첩

,