2021. 6. 25. 17:11ㆍCloud
이 글에서는 GCP 외부의 Dokcer 개발환경 도는 GCP의 VM과 Container Registry 를 연동하는 방법을 알아본다.
Google Container Registry (GCR)이란?
GCP 내에 Docker 컨테이너 이미지를 저장, 관리할 수 있는 Docker Registry 이다. 매우 간단하게 Private 또는 Public Docker Registry를 구축할 수 있다. 이 글에서는 GCP 내에 Container Registry 를 사용하고 있다는 전제로 개발환경과의 연동방법을 설명한다.
https://cloud.google.com/container-registry
GCP 외부서버(Ubuntu 20.04) 와 GCR 연동
자신의 개인 또는 사내환경에 있는 Ubuntu 서버와 GCR을 연동해보자. 지금까지 알아본 바로는 GCR의 인증설정을 하기 위해서는 docker-credential-gcr 이라는 helper를 설치해야 한다. 이 helper 를 설치하기 위해서는 GO Lang 을 설치해서 빌드해야 하는데 이게 좀 귀찮다. 혹시나 다른 편한방법이 있다면 또 업데이트 하겠다.
GO Lang 설치
먼저 GO 를 설치해주자. 설치하는 스크립트를 만들어 두었으니 필요하면 가져다가 이대로 설치하면 된다. (스크립트 상은 1.16.5 버전이다) 직접 설치할 분은 공식 사이트에서 설치해주면 된다.
docker-credential-gcr 설치
GCP의 깃헙의 아래 링크를 따라서 설치해주면 된다.
https://github.com/GoogleCloudPlatform/docker-credential-gcr
docker-credential-gcr 설정
# Docker와 연계
docker-credential-gcr configure-docker
# GCP 본인 계정으로 로그인
docker-credential-gcr gcr-login
# 프로젝트 설정이 필요하다는 메세지가 뜨면 프로젝트명을 입력해 준다.
GCP VM(Ubuntu 20.04)와 GCR 연동
GCP VM(GCE)에는 gcloud가 기본설치 되어있어, 간편하게 GCR로 이미지 Push / Pull이 가능하다. 아래 세팅만 해주면 바로 GCR 이용이 가능하다.
# GCP 계정으로 로그인
gcloud auth login
# Docker 와 연계
gcloud auth configure-docker
테스트
docker push asia.gcr.io/<프로젝트명>/<도커 이미지명>
또는
docker push gcr.io/<프로젝트명>/<도커 이미지명>
asia.gcr.io 를 사용할지 gcr.io 를 사용할지는 GCP Console 에서 설정할 수 있다. 보통 두 개 모두 사용 가능하다.
주의사항
docker-credential-gcr 설정을 적용한 Ubuntu 계정으로만 push 할 수 있다는 점에 주의하자. 예를 들어 위 설정을 해두었는데 그 계정에 docker 권한이 없다면 push가 되지 않는다. 이 경우에는 해당 Ubuntu계정에 docker 명령어를 사용할 수 있도록 권한을 주자.
sudo groupadd docker # docker 그룹이 없을경우
sudo usermod -aG docker $USER # 자신의 유저명
newgrp docker
'Cloud' 카테고리의 다른 글
GCP에서의 CI/CD 파이프라인 구축 (0) | 2021.06.29 |
---|---|
VS Code 와 Google Compute Engine을 연동해보자 (Remote SSH) (0) | 2021.06.26 |
일반 Linux 환경에서 gsutil 사용하기 (Cloud Storage 데이터 업로드, 다운로드) (0) | 2021.06.25 |
윈도우 VM에 실행한 웹서버에 접속이 안될 경우 (GCP 방화벽 설정) (0) | 2021.06.13 |
리눅스, 윈도우 VM에 동시에 NAS 마운트하여 파일 공유하기 (GCP Filestore) (0) | 2021.06.09 |