[infra] GCR, Google Container Registry 이용해 GCP에 Docker 연동하기

orca·2023년 1월 3일

CS

목록 보기
38/46

Google Container Registry를 활용하면, 개발 환경의 도커를 간단하게 GCP instance로 옮길 수 있다
활용해보자

Container Registry gdocs
일단 GCP 프로젝트에서 Google Container Registry API를 사용 설정해야 한다

1. 로컬 Docker 인증

내 로컬에 깔린 docker를 gcr에 인증해야 한다
gcloud로 인증하는 방법과
docker-credential-gcr로 인증하는 방법 두가지가 있다

1-1. gcloud로 인증

아래 링크에서 OS에 맞는 패키지를 다운로드한다

gcloud CLI 설치

그리고 다운로드 받은 폴더로 이동해서 아래 명령어 입력

./google-cloud-sdk/install.sh

이제 gcloud에 로그인을 하자

gcloud auth login

아마 아래와 같은 로그인 화면으로 자동 리다이렉팅될 것이다
안된다면 터미널에 나온 링크 복붙하기

로그인 해주면 아래와 같이 뜬다
저기 PROJECT_ID 윗 부분을 유심히 살펴두자

gcloud auth configure-docker

.docker/config.json 파일에 사용자가 gcloud 인증할 수 있는 정보를 저장하는 과정이라고 한다

이제 GCR 사용 가능함!

[아래추가]1-2. docker-credential-gcr로 인증

docker-credentail-gcr.git

docker-credential-gcr is Google Container Registry's standalone, gcloud SDK-independent Docker credential helper.
...
Note: docker-credential-gcr is primarily intended for users wishing to authenticate with GCR in the absence of gcloud, though they are not mutually exclusive. For normal development setups, users are encouraged to use gcloud auth configure-docker, instead.

docker-credential-gcr은 도커의 자격 증명 도우미인데,
이건 gcloud가 없을 때 대안적으로 사용하면 좋다고 한다
또 docker-credential-gcr 보다는 gcloud를 사용하기를 권장하고 있다
헷갈릴 수 있을 것 같아 아래에 붙여넣기 하겠다

2. GCR에 도커를 올려보자

이제 사전에 빌드한 도커를 아래와 같이 태깅한다

#docker build -t CONTAINER_NAME -f Dockerfile_dev --platform linux/amd64 .
docker tag CONTAINER_NAME gcr.io/PROJECT_ID/CONTAINER_NAME

docker push gcr.io/PROJECT_ID/CONTAINER_NAME

이제 GCR에 접속하면 아래와 같이 올라가 있을 것이다

3. GCP instance에 도커 이미지 받아오기

GCP instance에는 gcloud가 설치되어 있어 간단하다

gcloud auth login

이번에도 터미널에 링크가 뜰 것이다

웹브라우저에 링크를 복붙하면 아까와 같은 로그인 창이 뜬다


허용해주고~ 하단의 copy 버튼을 눌러 코드를 복사한다

붙여넣기 해주면 로그인 성공!

gcloud auth configure-docker
docker pull gcr.io/PROJECT_ID/CONTAINER_NAME
docker images

도커 이미지가 GCP에 잘 들어온 것을 알 수 있다

[아래추가]1-2. docker-credential-gcr로 인증

docker-credential-gcr is Google Container Registry's standalone, gcloud SDK-independent Docker credential helper.
docker-credential-gcr은 도커의 자격 증명 도우미임

docker-credential-gcr은 github에서 다운 받아야 한다

공식 문서에는 아래와 같이 다운로드 받으라고 나와져있는데

VERSION=2.1.5
OS=linux  # or "darwin" for OSX, "windows" for Windows.
ARCH=amd64  # or "386" for 32-bit OSs, "arm64" for ARM 64.

curl -fsSL "https://github.com/GoogleCloudPlatform/docker-credential-gcr/releases/download/v${VERSION}/docker-credential-gcr_${OS}_${ARCH}-${VERSION}.tar.gz" \
| tar xz docker-credential-gcr \
&& chmod +x docker-credential-gcr && sudo mv docker-credential-gcr /usr/bin/

예를 들어 macOS + ARM 64 라면 아래와 같이 다운 받으면 된다

curl -fsSL "https://github.com/GoogleCloudPlatform/docker-credential-gcr/releases/download/v2.1.6/docker-credential-gcr_darwin_arm64-2.1.6.tar.gz" \
| tar xz docker-credential-gcr \
&& chmod +x docker-credential-gcr && sudo mv docker-credential-gcr /usr/bin/

잘 다운로드 되었는지 확인 한번 해보자

docker-credential-gcr configure-docker
docker-credential-gcr gcr-login

0개의 댓글