在 Docker 中运行 ratings 服务

这项工作正在进行中,我们将逐段添加其内容。欢迎您在 discuss.istio.io 网站上提供反馈。

本模块展示了如何创建一个 Docker 镜像并在本地运行它。

  1. 下载微服务 ratingsDockerfile

    1. $ curl -s https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
  2. 观察这个Dockerfile

    1. $ cat Dockerfile

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

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

    1. $ export USER=user
  4. 根据 Dockerfile 构建出一个镜像:

    1. $ docker build -t $USER/ratings .
    2. ...
    3. Step 9/9 : CMD node /opt/microservices/ratings.js 9080
    4. ---> Using cache
    5. ---> 77c6a304476c
    6. Successfully built 77c6a304476c
    7. Successfully tagged user/ratings:latest
  5. 在 Docker 中运行 ratings 服务. 接下来的 docker run 命令 指示 Docker 将容器的 9080 端口暴露到计算机的 9081 端口,从而允许您访问 9081 端口上的 ratings 微服务。

    1. $ docker run --name my-ratings --rm -d -p 9081:9080 $USER/rating
  6. 在浏览器访问 http://localhost:9081/ratings/7,或使用以下的 curl 命令:

    1. $ curl localhost:9081/ratings/7
    2. {"id":7,"ratings":{"Reviewer1":5,"Reviewer2":4}}
  7. 观察运行中的容器。执行 docker ps 命令,列出所有运行中的容器,同时 注意镜像是 <your user name>/ratings 的容器。

    1. $ docker ps
    2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3. 47e8c1fe6eca user/ratings "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:9081->9080/tcp elated_stonebraker
    4. ...
  8. 停止运行中的容器:

    1. $ docker stop my-ratings

现在,您已经了解了如何将单个服务打包到容器中。接下来去学习在 Kubernetes 集群上部署应用程序