Docker로 테스트 환경 만들기
2. 우분투 데스크탑 만들기
0. Docker로 우분투 데스크탑을 사용하는 이유
Docker는 VM (Virtual Machine)이 아니기 때문에 일반적으로는 Docker에 우분투 데스크탑을 만드는 것을 권하지 않는다. 하지만 우분투 데스크탑이 필요한데 Docker는 이미 설치되어 있고 추가로 VirtualBox, VMware Client 같은 가상환경을 설치하는 것이 부담스러울 때 Docker로 우분투 데스크탑을 사용하는 것이 좋은 대안이 될 수 있다.
더불어 아래와 같은 몇 가지 이유로 Docker에 우분투 데스크탑을 사용하기도 한다.
- GUI가 없는 환경이 불편할 때
서버 환경은 우분투나 리눅스에 익숙하지 않은 윈도우 사용자가 사용하면 GUI (Graphical User Interface)가 없어 불편함을 느낄 수 있다. 나도 회사에서 우분투를 처음 사용하게 된 개발자가 작업을 하면서 어려워하는 것을 종 종 볼 때가 있었다. 이럴 때 GUI를 제공하는 우분투 데스크탑은 서버보다 좀 더 좋은 선택일 수 있다.
- 내 윈도우 환경이 노출되는 것을 우려할 때 (노트북 보안)
VirtualBox와 같은 가상환경을 사용해서 우분투 데스크탑을 만드는 것이 좀 더 일반적이지만, 내 노트북에는 이미 Docker가 설치된 환경이니 Docker에 우분투 데스크탑을 올리는 것도 나쁘지 않아 보였다. Docker를 이용한 우분투 데스크탑을 사용하면, 내 윈도우 노트북 환경을 노출하지 않고 제한된 Docker 컨테이너에서 작업하는 효과도 있다. 만일 보안에 노출되는 것이 우려되는 원격 서버 또는 웹사이트에 접근해야 할 필요가 있다면 Docker로 우분투 데스탑을 만들어 사용하는 것도 좋은 방법이 될 것이다.
- 우리 회사의 환경이 노출되는 것이 우려될 때 (서버 보안)
이와는 반대로 사내의 보안 환경을 외부와 분리시켜 줄 수 있는 Thin client의 대체재로 Docker 컨테이너로 만들어진 데스크탑을 사용하는 것도 가능한다.
1. Docker 우분투 데스크탑
물론 우분투 서버 이미지에서
sudo apt install ubuntu-desktop -y
명령으로 데스크탑을 설치하는 것도 가능하지만, 이미 만들어진 Docker 이미지를 사용하는 것이 더 효율적이다.
- 먼저 우분투 데스크탑을 연결할 때 사용할 무료 VNC 프로그램을 설치한다.
TightVNC설치 프로그램을 실행하고 Next, Next를 누르면 "Choose Setup Type"화면이 나오는데,
Typical로 설치하면 TightVNC Server와 TightVNC Viewer가 같이 설치되기 때문에 Custom을 선택하고 TightVNC Server를 설치대상에서 빼면 VNC Viewer만 설치된다.
그런 다음 .vnc확장자를 TightVNC와 연결하고 Next를 눌러 설치를 완료한다.
우분투 데스크탑을 실행할 수 있는 Docker이미지는 몇 가지가 있는데, 먼저
- docker hub에 있는 kasmweb/desktop을 사용해서 우분투 데스크탑을 실행해 보자.
kasmweb/desktop은 kasm workspace라는 유료 제품을 제공하는 회사에서 무료로 사용할 수 있도록 만든 community버전인데, 우분투 18.04 (Bionic) 버전에 Xfce라는 가벼운 데스크탑 환경을 올려놓은 것으로 다음과 같이 실행할 수 있다.
docker run --rm -it --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/desktop:1.14.0
내가 설치했을 때에는 이 이미지에 latest tag가 제공되지 않는 관계로 반드시 :1.14.0 과 같이 버전을 지정해야 설치가 가능했었다. 또한, vnc viewer로 접속하는 것은 허용하지 않고 웹브라우저에서 https로만 접속할 수 있다.
community 버전이다 보니 https로 접속할 때 인증서가 없어 다음과 같은 경고가 나타나는데, 여기서 고급을 선택하고,
아래에 나오는 https://localhost:6901 링크를 클릭하면,
vnc사용 이름과 비밀번호를 묻는데, 암호는 docker를 생성할 때 -e VNC_PW로 지정한 암호를 사용하고 사용자 이름은 kasm_user를 입력하면
아래와 같은 우분투 데스크탑 화면이 나타난다.
만일 https로 연결하는 것이 불편해서 http나 vnc viewer로 빠르게 연결하고 싶거나 내 윈도우의 폴더를 공유해서 좀 더 복잡한 작업도 수행하고 싶다면
- dorowu/ubuntu-desktop-lxde-vnc 이미지를 사용해 보자.
dorowu/ubunbu-desktop-lxde-vnc 이미지는 아래와 같이 Docker이미지의 마지막에 지정하는 tag를 통해 여러 버전의 우분투 버전을 지원하고 있는데,
- :focal: Ubuntu 20.04 (:latest)
- :focal-lxqt: Ubuntu 20.04 LXQt
- :bionic: Ubuntu 18.04
- :bionic-lxqt: Ubuntu 18.04 LXQt
- :xenial: Ubuntu 16.04 (deprecated)
- :trusty: Ubuntu 14.04 (deprecated)
아래와 같이 tag 없이 명령을 주면 가장 최신버전(:latest) 이미지인 우분투 20.04 (focal)와 LXDE 데스크탑이 만들어진다.
docker run -p 6080:80 -v "%cd%:/data" dorowu/ubuntu-desktop-lxde-vnc
-v (volume) 옵션을 사용하여 현재 폴더("% cd%")를 데스크탑과 공유해서 작업하는 것도 가능하다.
실행할 때 -p 5900:5900 옵션으로 vnc port를 열게 되면 vnc viewer를 사용해서 빠르게 접속하는 것도 가능하며, VNC_PASSWORD를 함께 지정하는 경우 vmc로 접속할 때 사용할 password 지정도 가능하다.
docker run -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=password -v "%cd%:/data" dorowu/ubuntu-desktop-lxde-vnc
'윈도우 개발환경' 카테고리의 다른 글
윈도우에 만드는 리눅스 개발 환경; 8. Docker로 PostgreSQL 시작하기 (0) | 2023.12.28 |
---|---|
Flutter 개발 환경 만들기; 1. 안드로이드 App (1) | 2023.12.18 |
윈도우에 만드는 파이썬 개발 환경; 4. VSCode에 Jupyter연결 (0) | 2023.12.01 |
Docker로 테스트 환경 만들기; 1. Full version 우분투 서버 만들기 (0) | 2023.11.22 |
Git Bash 활용하기 - 2. 리눅스 기능으로 Node.js 개발환경 만들기 (1) | 2023.10.19 |