ratings를 Docker로 실행하기

ratings를 Docker로 실행하기

이 모듈에서는 Docker 이미지를 만들고 로컬에서 실행하는 방법을 배워요. ratings 마이크로서비스를 컨테이너 이미지로 패키징하고 로컬에서 실행하는 과정을 단계별로 보여줄게요.

출처: Istio 문서

본문

이 모듈에서는 Docker 이미지를 만들고 로컬에서 실행하는 방법을 보여줘요.

  1. ratings 마이크로서비스의 Dockerfile을 다운로드하세요.
$ curl -s https://raw.githubusercontent.com/istio/istio/release-1.31/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
  1. Dockerfile을 살펴보세요.
$ cat Dockerfile

파일을 컨테이너의 파일시스템에 복사한 다음, 이전 모듈에서 실행했던 npm install 명령을 실행하는 걸 확인할 수 있어요. CMD 명령은 Docker에게 ratings 서비스를 포트 9080에서 실행하도록 지시해요. 3. ratings 서비스의 docker 이미지를 태깅하는 데 사용할 사용자 ID를 저장할 환경 변수를 만드세요. 예를 들어 user로요.

$ export USER=user
  1. Dockerfile에서 Docker 이미지를 빌드하세요.
$ docker build -t $USER/ratings .
...
Step 9/9 : CMD node /opt/microservices/ratings.js 9080
---> Using cache
---> 77c6a304476c
Successfully built 77c6a304476c
Successfully tagged user/ratings:latest
  1. ratings를 Docker에서 실행하세요. 다음 docker run 명령은 컨테이너의 포트 9080을 컴퓨터의 포트 9081로 노출하도록 Docker에 지시해서, 포트 9081에서 ratings 마이크로서비스에 접근할 수 있게 해요.
$ docker run --name my-ratings  --rm -d -p 9081:9080 $USER/ratings
  1. 브라우저에서 http://localhost:9081/ratings/7에 접근하거나 다음 curl 명령을 사용하세요.
$ curl localhost:9081/ratings/7
{"id":7,"ratings":{"Reviewer1":5,"Reviewer2":4}}
  1. 실행 중인 컨테이너를 관찰하세요. docker ps 명령을 실행해서 실행 중인 모든 컨테이너를 나열하고, 이미지가 <your user name>/ratings인 컨테이너를 확인하세요.
$ docker ps
CONTAINER ID        IMAGE            COMMAND                  CREATED             STATUS              PORTS                    NAMES
47e8c1fe6eca        user/ratings     "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes        0.0.0.0:9081->9080/tcp   elated_stonebraker
...
  1. 실행 중인 컨테이너를 중지하세요.
$ docker stop my-ratings

단일 서비스를 컨테이너로 패키징하는 방법을 배웠어요. 다음 단계로 전체 애플리케이션을 쿠버네티스 클러스터에 배포하는 방법을 배워보세요.

더 알아보기 (Learn more)