며칠 전 우분투 서버를 이용한 커스텀 ISO 만들기를 올렸었는데 실은 한 일주일 동안 씨름을 하면서 시도해 보았던 것이 있습니다. 솔직히는 한 일년 전부터 시도를 해 보다가 제대로 성공을 못하고 놔두었던 문제이기도 했습니다.
우선 다커를 사용하는 목적에 대하여 정확히 이해해 보기로 합니다.
제일 쉽게 이해할 수 있는 것은 경량 VM 입니다. 기존에 HW부터 모두 소프트웨어로 동작하는 VM은 너무 무겁다는 단점이 존재합니다. 하지만 docker를 이용하면 동일한 기능을 하는 Host 같은 동작을 더 가볍게 만들어 돌릴 수 있다는 장점이 있습니다.
그리고 Docker는 어디까지나 사용자가 직접 UI를 입력할 수 있는 환경이라기 보다는 서버를 위한 구성이 더 맞습니다. 따라서 파이썬이나 Go, Java, NodeJS 등으로 구현한 Backend 시스템을 Docker로 개발, 구현, 테스트 등을 모두 한 다음 배포 등을 해 놓은 DevOps와 딱 맞는 것이라 할 수 있습니다.
위의 모든 사이클을 모두 Docker로 하고 싶다는 생각이 2015년 부터 들어 제일 간단하게는 Firefox 웹 브라우저 만이라도 X윈도우 환경의 docker 컨테이너로 돌릴 수 있을까 시도를 했었습니다. 그 당시 누군가가 시도 했었던 것을 따라 해 보고는 했는데 어려움이 많아 하두번 시도하다가 그냥 두었던 것이 기억납니다.
그러다가 다시 최근에 혹시 가벼운 개뱔환경 관련되어 작업된 것이 있을까 살펴보게 되었습니다. 그 결과 다음과 같은 것들을 찾을 수 있었습니다.
noVNC(해당 설명 블로그) 라는 것을 이용하면 vnc를 통해 다른 VNC 클라이언트나 원격 데스크탑 등이 없어도 작업이 가능하다는 것이었습니다. 만약 아이패드 등을 가지고 있다고 해도 아무 프로그램없이 웹 브라우져 만으로 원격 데스크탑 처럼 연결할 수 있다는 것은 큰 장점을 가진다고 볼 수 있겠더군요. 그런데 받아온 해당 이미지의 크기를 살펴보았습니다. 1.23GB를 차지 하였습니다. 물론 VM을 최소한으로 설치해도 이 정도는 나오므로 꽤 쓸만 하다고 볼 수도 있으나 어딘지 모르게 VM스러운 크기라 할 수 있었습니다.또한 외부에서 접속할 수 있게 작업된 프로토콜(서비스) 입니다. 필요한 포트만 호스트 포트로 remap 시키면 되겠습니다.
ssh[22] : 원격 접속이 가능하게 되어 있습니다. 터미널 접속이나 포트 터널링 등이 가능합니다.rdp[3393] : 원래 윈도우에서는 원격데스크탑, Linux에서는 VNC 로 화면 공유를 하고는 했었지요. 그런데 VNC 대비 RDP가 압축 및 속도 등에서 좀 더 우위를 보였었습니다. 그리고 윈도우에 기본으로 원격 데스크탑 클라이언트 프로그램이 설치되어 있다는 것도 장점이 될 수 있지요. 그래서 xrdp 라는 것을 리눅스에 설치하면 VNC 환경 위에 RDP 환경을 이용할 수 있게 Wrapping 시키는 역할을 합니다.noVNC[6081] : 위의 XRDP와 아주 유사하게 VNC위에 약간의 작업을 하여 웹브라우저의 HTML5 컨트롤과 통신을 하여 원격 데스크탑을 볼 수 있게 만들어 준 것입니다. 처음 이 솔루션을 확인하고는 약간 쇼킹하였습니다. 웹브라우저 만을 이용하여 모든 것이 동일하게 잘 동작하는 것을 확인하고는 말이지요.# 내 데스크탑 이름
MYDT=rdp
# docker host에서 사용할 RDP 포트
HP_RDP=33899
# docker host에서 사용할 noVNC 포트
HP_NOVNC=60811
docker container run -it \
--name $MYDT \
--hostname $MYDT \
-p $HP_RDP:3389 \
-p $HP_NOVNC:6081 \
-v /dhv/xfce/toor:/home/toor \
mcchae/xfce
-it대신-d옵션을 이용하면 백그라운드 서비스로 실행됩니다.
~/mydt.yml 이라는 이름으로 다음의 내용을 저장합니다.
version: '2'
services:
mydt:
image: "mcchae/xfce"
hostname: "mydt"
ports:
- "33899:3389"
- "60811:6081"
volumes:
- ${HOME}/dhv/toor:/home/
그 다음, 다음과 같이 실행합니다.
$ docker-compose -f ~/mydt.yml up
위와 같이 결국은 가벼운 데스크탑을 Docker로 구현해 보았습니다. 그 쓰임새 및 이용은 기대 이상일 것으로 상상됩니다.
어느 분께는 도움이 되셨기를...
Content type
Image
Digest
Size
274.2 MB
Last updated
about 7 years ago
docker pull mcchae/xfce