在 Docker 中运行评分服务
此模块演示如何创建 Docker 镜像并在本地运行它。
下载
Dockerfile
用于ratings
微服务。$ 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 在端口9080
上运行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 中运行评分服务。以下 docker run 命令指示 Docker 将容器的端口
9080
映射到计算机的端口9081
,允许您在端口9081
上访问ratings
微服务。$ docker run --name my-ratings --rm -d -p 9081:9080 $USER/ratings
在浏览器中访问 https://127.0.0.1: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 集群。