Loading...
태그
    dockergcegithub-cligoogle-cloud

구글 클라우드 VM에서 GitHub clone 후 Docker로 서비스 실행

최종수정일
2026년 02월 03일
3분걸림
작성자: Techy J
Table of Content (목차)

Google Cloud GCE VM에서 GitHub 저장소를 clone하고 Docker로 서비스를 실행하는 방법을 정리한다. gh(GitHub CLI)를 이용한 인증과 Docker 환경 구성까지 단계별로 설명한다.

구글 클라우드 vm 인스턴스

Google Compute Engine(GCE)은 Google Cloud Platform(GCP)에서 제공하는 여러 서비스 중 하나다. Google Compute Engine는 IaaS 이므로 가상머신(Virtual Machine) 인프라를 이용해 손쉽게 서버를 구성할 수 있다. Google Cloud 콘솔이나 Compute Engine 서비스에서 VM 인스턴스를 생성하면서 하드웨어와 운영체제 및 기타 설정을 하고 실행한다.

콘솔 대시보드에서 VM 인스턴스로 SSH 연결을 통해 서버 운영에 필요한 설정을 한다. 리눅스 기반 VM 인스턴스에서 SSH 접속이 되지 않는 경우 방화벽 정책에서 tcp 포트 22(SSH) 에 대한 ingress(인그레스) 접근이 허용되어 있는지 확인이 필요하다. Windows VM의 경우에는 3389(RDP) 포트를 사용한다. 또한, 웹 서버의 경우는 80(http), 443(https) tcp 포트를 허용해야 한다.

Google Compute Engine(GCE)은 GCP 내에서 가상머신을 제공하는 IaaS 서비스다. 개발된 서버 실행 코드가 GitHub에 있으면 GCE VM으로 clone을 받아 실행하거나 Dockerfile을 이용해 실행 이미지를 생성한 뒤 컨테이너를 실행한다. 이를 위해 GitHub 코드 clone과 Docker 실행을 위한 패키지 설치 및 설정이 필요하다.

GCE VM 인스턴스로 github 리포지토리 clone

gh 패키지 설치

GitHub에 접속하려면 SSH 키를 등록하거나 HTTPS 사용 시 PAT(Personal Access Token)을 추가해야 한다. 하지만 gh를 사용하면 인증을 보다 간단하게 처리할 수 있다.
apt로 gh 패키지를 설치하면 시스템 전체 업데이트 시 자동으로 관리된다.

시스템 업데이트와 curl, git, jq(json processor), gnupg(gnu privacy guard)를 설치한다. gnupg는 gpg --dearmor 명령으로 GPG 키를 검증하고 시스템에 등록한다. 우분투 패키지 관리자 apt는 이 키를 이용해 내려받은 gh 패키지가 GitHub 공식 저장소에서 제공된 파일인지 검증한다.

# 시스템 업데이트 및 필수 도구 설치
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git jq gnupg
 
# GitHub CLI 공식 저장소 등록 및 설치
 
# 기존 키 제거 
sudo rm -f /usr/share/keyrings/githubcli-archive-keyring.gpg
 
# - GPG 키 다운로드 및 저장소 리스트 추가
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /usr/share/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
 
# 패키지 목록 갱신 후 gh 설치
sudo apt update && sudo apt install gh -y

git과 gh 가 설치되면 github에서 저장소를 clone 한다. 가장먼저 gh 를 이용해 github 인증을 해야 한다.

gh를 이용한 github 인증

GitHub 인증은 gh에서 HTTPS 방식으로 진행한다. 아래 명령어를 실행하면 터미널에 나타나는 8자리 코드를 안내된 URL에 입력해 인증을 완료할 수 있으며, 이후 git 명령 실행 시 자동으로 인증이 적용된다.

gh auth login
# 주어지는 질문에 아래처럼 답한다.
# `What account do you want to log into?` → GitHub.com 선택
# `What is your preferred protocol for Git operations?` → HTTPS 선택 
# `Authenticate Git with your GitHub credentials?` → Yes (git 명령어 시 자동으로 인증)
# `How would you like to authenticate GitHub CLI?` → Login with a web browser 선택

⚠️ gh 인증은 현재 로그인한 사용자 계정 기준으로 저장되므로 sudo 없이 실행해야 한다.

git clone 으로 repository 복제

git clone https://github.com/<사용자ID>/<repository>.git
# 또는
gh repo clone <사용자ID>/<repository>

원격 repository의 목록 확인

gh repo list

GCE 우분투에 Docker 관리

docker 설치

Docker 도 패키지를 이용해 설치가능하지만, OS 및 버전에 따라 부가 패키지가 다양하다. 또한, 패키지 설치시 위와 같이 docker 사이트에서 GPG 키를 추가하는 단계가 필요하다. get-docker.sh 스크립트를 사용하면 OS를 자동 감지해 GPG 키 등록, 저장소 설정, 패키지 설치까지 한 번에 수행할 수 있다.

# Docker 공식 스크립트로 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
rm get-docker.sh # 설치 후 스크립트 삭제

Docker 설치 후 일반 사용자 계정에서 docker 명령을 사용하려면 docker 그룹에 사용자를 추가해야 한다.

sudo usermod -aG docker $USER
newgrp docker

도커 이미지 생성 및 컨테이너 실행

clone된 코드에 Dockerfile이 있는 경우 도커 이미지를 빌드한다.

docker build . -t <생성할 이미지>

이미지가 생성되면 컨테이너를 실행한다.

docker run <이미지>

웹 서버 컨테이너의 경우 호스트 포트와 컨테이너 포트를 매핑해 실행한다.

docker run -d -p 80:3000 --name <컨테이너> <이미지>

만일 .env 파일을 별도로 생성한 경우 컨테이너 실행 시 포함하도록 설정한다.

docker run --rm -d --env-file .env <이미지>

컨테이너 정리

컨테이너는 이미지 위에 쓰기 가능한 계층(Writable Layer)을 생성해 실행되며, 컨테이너에서 생성되는 파일이나 로그는 이 계층에 저장된다. 컨테이너가 종료되어도 디스크에 남을 수 있으므로 불필요한 컨테이너는 정리한다.

# 실행 중인 컨테이너 종료
docker stop <컨테이너 ID>
 
# 종료된 컨테이너 삭제
docker rm <컨테이너 ID>
 

docker 및 docker compose 명령어

이 글은 ' 출처: 변호사 전정숙 '과 ' 원본링크: https://www.korean-lawer.com/articles/iaas/gcp-vm-github-clone-docker-run'를 명시하는 조건으로 인용가능 합니다.
무단 복제, AI 학습 목적으로의 사용과 Google, Naver의 Indexing 외 크롤링 금지합니다
About
전정숙 변호사
법무법인 정맥 파트너 변호사부산파산법원 파산관재인전) 부산변호사회 부회장전) 전국여성변호사회 부회장전) 부산 가정법원 조정위원
Contact

(82) 051-916-8582 , 051-916-8583

부산광역시 연제구 법원로 12 (거제동)

로윈타워빌딩 2층 법무법인정맥

변호사 전정숙

© 2005-2026 전정숙 변호사.

All Rights Reserved.