본문 바로가기

Development

[GCP] Docker 설치 및 Google Container Registry 관리

GCP 상에 Docker 컨테이너 이미지를 관리 하기 위해서 필요한 사항에 대해서 말씀 드리겠습니다.

 

본 가이드에서는 GCP Compute Engine 서비스의 VM instance  Debian/Linux OS 기반에서 도커 이미지를 생성하고

리파저토리에 올리고 관리하는 방법에 대해서 안내 합니다.

 

<<Docker 개발 환경 설정>>

 

#컨테이너 레지스트리 API 사용 설정

https://console.cloud.google.com/flows/enableapi?apiid=containerregistry.googleapis.com&redirect=https://cloud.google.com/container-registry/docs/quickstart&_ga=2.24126908.-764026566.1553496517&_gac=1.12574406.1569899513.Cj0KCQjww7HsBRDkARIsAARsIT6QwqmuFihndTAqANJrTcpMPpOAxJGj6bgzqWNqU7pQcQUOd4lLE7waAqcXEALw_wcB

#Cloud SDK 설치

https://cloud.google.com/sdk/docs/ *gcp compute engine vm이 아닌경우에만 cloud sdk를 사전에 설치 하셔야 합니다. 

 

# 리눅스 업데이트

$sudo apt-get update

$sudo apt-get upgrade$sudo usermod -a -G docker ${USER}udo usermod -a -G docker ${USER}

 

#Docker 설치

$sudo curl -fsSL https://get.docker.com/ | sudo sh

 

#sudo 제외하고 docker 실행 가능 하도록 변경

$sudo usermod -a -G docker ${USER}

 

#Docker 정상 설치 확인

$docker --version

 

#Docker 실행 여부 확인

$docker run busybox date

 

#Docker 이미지 생성

*quickstart-image 이름으로 도커 이미지 생성 -> 해당 부분 생략

 

<<생성한 이미지 Container Registry에 추가하기>>

 

#Google Container Registry에 인증요청

$gcloud auth configure-docker

#레지스트리 이름으로 이미지에 태그 지정

$docker tag quickstart-image gcr.io/[PROJECT-ID]/quickstart-image:tag1

* [PROJECT-ID] 확인 : $gcloud config list project

 

#도커 이미지 Container Registry로 보내기

$docker push gcr.io/[PROJECT-ID]/quickstart-image:tag1

*caller does not have permission 'storage.buckets.create'. to configure permissions, follow ins tructions at: https://cloud.google.com/container-registry/docs/access-control

상기와 같은 에러 발생시 vm 을 중지 시키고 cloud api 엑세스 범위에서 storage에 대한 권한을 부여 합니다.

 

#도커 이미지 가져오기

$ docker pull gcr.io/[PROJECT-ID]/quickstart-image:tag1

# Google Container Registry 등록된 이미지 조회

$gcloud container images list

#도커 이미지 Google Container Registry에서 삭제 하기

$gcloud container images delete gcr.io/[PROJECT-ID]/quickstart-image:tag1 --force-delete-tags