오래 전 우분투 서버를 이용한 커스텀 ISO 만들기를 작업하여 가상머신 용 우분투 개발 환경을 만들었었습니다.
그 이후 Docker 컨테이너 용으로 만들어 본 적이 있습니다. 그 당시 주로 컨테이너의 production OS로 alpine linux를 이용했으므로 알파인 리눅스에 웹 브라우저 또는 원격 데스크탑으로 접속 할 수 있게 하였습니다. 작업 내용을 여기에 다시 기술해 보면,
/root/.autoenv에 설치했습니다.와 같았습니다.
그런데 이번에 또 다시 필요에 따라 우분투 서버 위에 간단한 UI 환경의 컨테이너가 필요하게 되었습니다. 그 이유는 alpine 이 아니라 Ubuntu 위에서 컴파일 되고 돌아갈 수 있는 프로그램이 있는데 이것을 Ubuntu Server 로 docker image를 만들어 컨테이너로 사용하였기 때문이었습니다. 그런 경우에도 디버깅이 필요한데 그 경우에도 다른 컨테이너가 동작하고 있고 연결되어 디버깅 등이 필요한데 그 때 이런 UI 환경이 동작하는 컨테이너가 필요합니다.
따라서 이번에 NOVNC를 통한 웹브라우저를 제외하고 다른 작업을 하고 성공을 하여 올려봅니다.
그리고 외부에 노출되는 포트 및, 이용할 수 있는 서비스 입니다.
rdp[3393] : 원래 윈도우에서는 원격데스크탑, Linux에서는 VNC 로 화면 공유를 하고는 했었지요. 그런데 VNC 대비 RDP가 압축 및 속도 등에서 좀 더 우위를 보였었습니다. 그리고 윈도우에 기본으로 원격 데스크탑 클라이언트 프로그램이 설치되어 있다는 것도 장점이 될 수 있지요. 그래서 xrdp 라는 것을 리눅스에 설치하면 VNC 환경 위에 RDP 환경을 이용할 수 있게 Wrapping 시키는 역할을 합니다.# 내 데스크탑 이름
MYDT=rdp
# docker host에서 사용할 RDP 포트
HP_RDP=33899
docker container run -it \
--name $MYDT \
--hostname $MYDT \
-p $HP_RDP:3389 \
-v /dhv/vbuntu/root:/root \
mcchae/vbuntu
-it대신-d옵션을 이용하면 백그라운드 서비스로 실행됩니다.
~/mydt.yml 이라는 이름으로 다음의 내용을 저장합니다.
version: '2'
services:
mydt:
image: "mcchae/vbuntu"
hostname: "mydt"
ports:
- "33899:3389"
volumes:
- ${HOME}/dhv/root:/root
# 아래의 볼륨은 작업을 위하여 별도 지정하는 경우
- ${HOME}/work:/root/work
3389포트는 외부로 노출될 원격데스크탑 포트입니다. (위의 예에서는 33899 포트로 접근 가능합니다)- docker를 돌리는 호스트에
$HOME/dhv라는 폴더가 있고 이 폴더에 있는root디렉터리가 docker 컨테이너의/root디렉터리로 볼륨 마운트되어 root 홈 폴더는 영속성을 갖습니다$HOME/work라는 폴더에 모든 프로젝트가 있고 작업을 하는데 이것이 컨테이너의/root/work로 볼륨 마운트되어 프로젝트 작업을 합니다
그 다음, 다음과 같이 실행합니다.
$ docker-compose -f ~/mydt.yml up
-d옵션을 이용하면 백그라운드 서비스로 실행됩니다.docker-compose -f ~/mydt.yml logs명령으로 컨테이너의 로그를 확인합니다. (특별히 -d 로 up 하였을 경우)docker-compose -f ~/mydt.yml down명령으로 컨테이너를 내립니다.
위와 같이 컨테이버 기반의 가벼운 데스크탑을 Docker로 구현해 보았습니다. 그 쓰임새 및 이용은 기대 이상일 것으로 상상됩니다.
어느 분께는 도움이 되셨기를...
Content type
Image
Digest
Size
768.7 MB
Last updated
about 7 years ago
docker pull mcchae/vbuntu