앞에서 준비한 docker 이미지를 가지고 로컬환경을 넘어 웹으로 가보도록 합시다.
본 주제의 맨 처음에 언급 했던 것처럼, 웹 서비스로 Google Cloud Platform 을 사용하고자 합니다. 많은 서비스중 이번 주제에 사용할 서비스는 Compute Engine 과 Container Registry 입니다.
간략하게 전체를 보자면, 로컬에서 만든 docker 이미지 -> Container Registry -> Compute Engine 으로 이루어져 있습니다. 이번 포스팅에서는 Container Registry에 이미지를 push 하는것 까지 해보겠습니다.
1. Google Cloud Platform 사용하기
ㅇ 구글 클라우드 이용을 위해서는 기본적인 가입과 결재수단 및 API 사용설정, 그리고 Cloud SDK 설치를 수행해야 합니다. 이는 Container Registry 튜토리얼 1~5까지로 대체하도록 하겠습니다.
ㅇ 콘솔에서 새로운 프로젝트를 생성하면 아래와 같은 화면을 보실 수 있습니다. 여기서 프로젝트 이름과 프로젝트ID 는 구분되는 값이며, 우리는 주로 프로젝트 ID를 명령어 등에 기입하게 됩니다.
2. docker 이미지를 Container Registry로 push(업로드)
ㅇ Container Registry의 화면입니다. 우리는 이곳으로 미리 만들어둔 이미지를 push 할 것입니다. API 사용설정이 되어 있지 않으면 버튼을 클릭하여 사용설정 해 둡시다.
ㅇ Kitemetic의 docker cli 에서 docker 와 cloud sdk 기능을 사용하여 이미지를 업로드 합니다. 이를위해 우선 우리가 만들어둔 이미지(docker_django:0.1)을 업로드 가능한 형식으로 이름을 바꿔줘야 합니다.
[HOSTNAME]/[PROJECT-ID]/[IMAGE][:TAG]
[HOSTNAME] : 업로드된 호스트의 이름 입니다. 구글은 gcr.io를 사용합니다.
[PROJECT-ID] : 프로젝트를 만들때 생성된 프로젝트 ID 입니다.
[IMAGE][:TAG] : 사용할 이미지 명칭과 TAG
ㅇ우리가 만들어준 이미지의 이름을 바꿔줍시다.
PS C:\users\dev\pycharmprojects\docker_django> docker tag docker_django:0.1 gcr.io/docker-django-192515/docker_django:0.
1
PS C:\users\dev\pycharmprojects\docker_django> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker_django 0.1 8a7138a8a35f 24 hours ago 489MB
gcr.io/docker-django-192515/docker_django 0.1 8a7138a8a35f 24 hours ago 489MB
docker tag 로 우리가 원하는 이름의 이미지를 하나 더 만들었습니다. 만약 처음 이미지를 만들때 tag 지정을 했다면(여기서는 0.1) 사용하고자 하는 이미지에 맞는 테그를 같이 적어줘야 합니다.(볼드체 부분)
ㅇ gcloud 사용을 위한 로그인
PS C:\users\dev\pycharmprojects\docker_django> gcloud auth login
구글 로그인 팝업이 뜨며 로그인을 진행할 수 있습니다.
ㅇ docker 이미지 업로드
- gcloud docker -- push 를 이용하여 이미지를 업로드 합니다. 이미 이미지 이름에 프로젝트, 이미지의 명칭에 대한 정보가 포함되어 있기 때문에 별도의 설정은 필요치 않습니다.
PS C:\users\dev\pycharmprojects\docker_django> gcloud docker -- push gcr.io/docker-django-192515/docker_django:0.1
The push refers to a repository [gcr.io/docker-django-192515/docker_django]
dae60ef945e2: Mounted from dockerup-191713/docker_django
65e139dc736e: Mounted from dockerup-191713/docker_django
87f565ebc154: Mounted from dockerup-191713/docker_django
6b40014654e7: Mounted from dockerup-191713/docker_django
3ab948145758: Mounted from dockerup-191713/docker_django
ee60a81bb2ca: Mounted from dockerup-191713/docker_django
55abc740f531: Mounted from dockerup-191713/docker_django
73897d7193a7: Mounted from dockerup-191713/docker_django
4db5b92895d8: Mounted from dockerup-191713/docker_django
dfe7120c9f65: Mounted from dockerup-191713/docker_django
e8575daa8bfe: Mounted from dockerup-191713/docker_django
8e2a0cdf6e34: Mounted from dockerup-191713/docker_django
0.1: digest: sha256:13fb3c6d5444a097fc62aff825fd808b0d2643b0f24c2f53680149448158f231 size: 2818
ㅇ Container Registry 확인
이제 자신의 Container Registry에 우리가 만든 이미지를 포함시켰습니다. 좀 더 자세한 내용은 공식 튜토리얼을 참고 하시기 바랍니다. 다음 포스팅에는 push된 이미지를 Compute Engine에 배포하여 웹에서 접속해 보도록 하겠습니다.
'Technique' 카테고리의 다른 글
웹서비스 비동기(백그라운드) 프로세스 만들기 (feat. Django, Celery) 1 (0) | 2018.03.27 |
---|---|
Google Cloud, Docker로 간단하게 웹서비스 구축하기(feat. Django) 5 (1) | 2018.01.20 |
Google Cloud, Docker로 간단하게 웹서비스 구축하기(feat. Django) 3 (0) | 2018.01.18 |
Google Cloud, Docker로 간단하게 웹서비스 구축하기(feat. Django) 2 (0) | 2018.01.17 |
Google Cloud, Docker로 간단하게 웹서비스 구축하기(feat. Django) 1 (0) | 2018.01.14 |