在 Docker 中运行评分服务

此模块演示如何创建 Docker 镜像并在本地运行它。

  1. 下载 Dockerfile 用于 ratings 微服务。

    $ curl -s https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
    
  2. 查看 Dockerfile

    $ cat Dockerfile
    

    请注意,它将文件复制到容器的文件系统中,然后运行您在上一个模块中运行的 npm install 命令。CMD 命令指示 Docker 在端口 9080 上运行 ratings 服务。

  3. 创建一个环境变量来存储您的用户 ID,该 ID 将用于标记 ratings 服务的 Docker 镜像。例如,user

    $ export USER=user
    
  4. 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
    
  5. 在 Docker 中运行评分服务。以下 docker run 命令指示 Docker 将容器的端口 9080 映射到计算机的端口 9081,允许您在端口 9081 上访问 ratings 微服务。

    $ docker run --name my-ratings  --rm -d -p 9081:9080 $USER/ratings
    
  6. 在浏览器中访问 https://127.0.0.1:9081/ratings/7 或使用以下 curl 命令

    $ curl localhost:9081/ratings/7
    {"id":7,"ratings":{"Reviewer1":5,"Reviewer2":4}}
    
  7. 查看正在运行的容器。运行 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
    ...
    
  8. 停止正在运行的容器

    $ docker stop my-ratings
    

您已经学习了如何将单个服务打包到容器中。下一步是学习如何将整个应用程序部署到 Kubernetes 集群

这些信息是否有用?
您是否有任何改进建议?

感谢您的反馈!