在 Docker 中執行評分服務
本模組展示如何建立 Docker 映像檔並在本機執行。
下載
ratings
微服務的Dockerfile
。$ curl -s https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
觀察
Dockerfile
。$ cat Dockerfile
請注意,它會將檔案複製到容器的檔案系統中,然後執行您在上一個模組中執行的
npm install
命令。CMD
命令會指示 Docker 在 port9080
上執行ratings
服務。建立一個環境變數來儲存您的使用者 ID,該 ID 將用於標記
ratings
服務的 Docker 映像檔。例如,user
。$ export USER=user
從
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
在 Docker 中執行 ratings。以下 docker run 命令指示 Docker 將容器的 port
9080
暴露到您電腦的 port9081
,讓您可以透過 port9081
存取ratings
微服務。$ docker run --name my-ratings --rm -d -p 9081:9080 $USER/ratings
在您的瀏覽器中存取 https://#:9081/ratings/7 或使用以下
curl
命令。$ curl localhost:9081/ratings/7 {"id":7,"ratings":{"Reviewer1":5,"Reviewer2":4}}
觀察正在執行的容器。執行 docker ps 命令以列出所有正在執行的容器,並注意映像檔為
<您的使用者名稱>/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 ...
停止正在執行的容器。
$ docker stop my-ratings
您已學會如何將單一服務封裝到容器中。下一步是學習如何將 整個應用程式部署到 Kubernetes 叢集。