서버 세팅
계기
부트캠프 과정에서 도커를 사용하는데, 나는 아주 작고 소중한 8GM 메모리를 가진 맥북을 사용하기 때문에 도커 데스크탑을 설치해서 작동시키기가 쉽지 않았다.
Superset을 쓸 때는 Preset.io 서비스를, Airflow를 쓸 때는 Airflow 서버를 만들었다. 하지만 이번엔 도커 그 자체를 사용하는 과정이어서 다른 서비스로 회피할 수 없었다.(ㅠㅠ) 처음에는 우분투 서버에 도커만 설치할까 하다가, 우분투 데스크탑을 설치해 GUI환경을 세팅하고 그 위에 도커 데스크탑을 설치하여 GUI환경 전체를 세팅해보기로 결심했다.
첫날 온갖 시행착오를 겪으며 서버를 세팅한 데는 5시간 정도 걸렸지만, 그 이후 다른 사람에게 알려주면서 같이 세팅했을 땐 한시간~한시간 반 정도 걸렸다. 서버 세팅법을 알려주고 다시 만들어보면서 나름 정리가 되어서, 블로그에 적어보기로 했다.
과정
서버 설정과 연결은 로컬 터미널에서 진행하며,
google cloud sdk가 설치되어 있어야 한다.
VM 인스턴스에 연결됐을때는 root 계정이 아니라 일반 계정으로 설치 및 설정을 진행한다.
GCE(Google Compute Engine) VM 설정
중첩된 가상화를 설정해야하기 때문에, 이를 지원하는 머신인n1, n2, c3중에 골라 사용해야 한다.
도커 데스크탑의 요구 사양이 높은 편이기 때문에,vCPU 최소 2개 이상, 메모리 최소 8GB 이상으로 구성해야 한다.
머신 : n1-standard-4 (
4 vCPUs, 2 cores,15GB memory)부팅 디스크 :
Ubuntu 22.04 LTS, 64GBSSD



VM_NAME : 본인의 VM instance 이름
ZONE : 해당 instance가 위치한 지역
다음 명령어로 VM 속성을 config.yaml 파일으로 내보낸다. GCE를 처음 써본다면 이 과정에서 권한 설정 관련 구글 로그인이 진행될 수 있다.
1 2 3gcloud compute instances export VM_NAME --destination=config.yaml --zone=ZONE # ------- gcloud compute instances export "docker-test" --destination=config.yaml --zone=asia-northeast3-bconfig.yaml 파일을 열고 다음을 파일에 추가한다.
1 2advancedMachineFeatures: enableNestedVirtualization: true
다음 명령어로 수정된 config.yaml 파일으로부터 VM 속성을 업데이트 한다. 이 과정은 시간이 좀 걸릴 수 있음.
1 2 3gcloud compute instances update-from-file VM_NAME --source=config.yaml --most-disruptive-allowed-action=RESTART --zone=ZONE # ------- gcloud compute instances update-from-file "docker-test" --source=config.yaml --most-disruptive-allowed-action=RESTART --zone=asia-northeast3-b업데이트 이후 VM에 연결한다. VM을 업데이트 하면 재부팅을 진행하므로, 바로 연결이 안될수도 있다.
1gcloud compute ssh --zone "asia-northeast3-b" "docker-test"
(연결된 인스턴스에서) 다음 커맨드로 중첩된 가상화가 설정되었는지 확인한다. 0 이외의 응답이 나와야 사용 설정이 제대로 된 것이다.
1grep -cw vmx /proc/cpuinfo
(연결된 VM 인스턴스에서) 다음 커맨드를 입력해 kvm를 지원하는지 확인한다.
1 2 3 4 5 6 7 8 9modprobe kvm modprobe kvm-intel # 위 커맨드가 실패한 경우, 다음 커맨드를 입력해본다. sudo apt install cpu-checker kvm-ok # 다음 커맨드로 지원되는 kvm module을 확인할 수 있다. lsmod | grep kvm
Chrome, Chrome remote desktop, Ubuntu Desktop 설치
https://ubuntu.com/blog/launch-ubuntu-desktop-on-google-cloud
https://snowdeer.github.io/linux/2017/08/04/install-gui-desktop-on-ubuntu/
| |
| |
| |
| |
| |
- 이 과정은 설치 시간이 오래 걸리는 편이니 참고할 것
| |
Chrome remote desktop으로 Ubuntu 서버에 접속
- 크롬 원격 데스크탑 실행 시, 우분투 데스크탑이 실행되도록 파일 설정
| |
![]()
이후 VM에 재 접속해서 진행
ubuntuuser password 변경 (본인이 자주 사용하는걸로 설정)
| |
크롬 원격 데스크탑 SSH 연결을 누르고 해당 커맨드 복사하여 인스턴스와 연결된 터미널에 입력


- PIN 6자리를 설정하는데, 본인이 자주 사용하는걸로 설정해야 나중에 잊지 않음
- 이 커맨드는 서버의 원격 데스크탑 호스트를 데몬서비스로 백그라운드에서 실행해주기 때문에, 호스트 서비스를 실행하기 위해 따로 명령어를 실행할 필요가 없음

서버 접속 : https://remotedesktop.google.com/access
- 앞에서 설정한 PIN 입력


ubuntu desktop 실행 시 가끔 발생하는 Activities 활성화 오류를 막기 위해 extension 설치
- 우분투 데스크탑에 접속해서 진행해야 함!
- gnome shell integration 크롬 확장 설치 (우분투 데스크탑에서 크롬을 열고 설치)

- gnome shell brower integration 설치 (vm 연결 터미널에서 진행)
1sudo apt install chrome-gnome-shell- extension 설치 : https://extensions.gnome.org/extension/4099/no-overview/

- extension manager 설치
1sudo apt install gnome-shell-extension-manager
keyring 설정 (Ubuntu 계정과 마찬가지로 자주 사용하는 비밀번호로 세팅해야 잊지 않음 ㅠ)

Docker Desktop 설치 및 실행
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
| |
| |
| |
| |
| |
https://docs.docker.com/desktop/install/ubuntu/#install-docker-desktop
- xfce 같은 non-Gnome Desktop 환경인 경우에 다음 패키지를 다운받아야 함
| |
- docker-desktop 패키지의 버전은 시간에 따라 달라질 수 있으니 페이지에서 다운받으라는 파일으로 알아서 변경할 것
| |
| |
설치 후 Application에서 실행하거나,
systemctl --user start docker-desktop으로 실행시작 시 docker-desktop이 실행되도록 하려면
systemctl --user enable docker-desktop으로 설정
| |
권한 부여 후 Application > 도커 데스크탑 실행 화면


