Run ratings in Docker
This is work in progress. We will add its sections in pieces. Your feedback is welcome at discuss.istio.io.
This module shows how you create a Docker image and run it locally.
Download the Dockerfile for the
ratingsmicroservice.$ curl -s https://raw.githubusercontent.com/istio/istio/release-1.18/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
Observe the
Dockerfile.$ cat Dockerfile
Note that it copies the files into the container’s filesystem and then runs the
npm installcommand you ran in the previous module. TheCMDcommand instructs Docker to run theratingsservice on port9080.Create an environment variable to store your user id which will be used to tag the docker image for
ratingsservice. For example,user.$ export USER=user
Build a Docker image from the
Dockerfile:$ docker build -t $USER/ratings ....Step 9/9 : CMD node /opt/microservices/ratings.js 9080---> Using cache---> 77c6a304476cSuccessfully built 77c6a304476cSuccessfully tagged user/ratings:latest
Run ratings in Docker. The following docker run command instructs Docker to expose port
9080of the container to port9081of your computer, allowing you to access theratingsmicroservice on port9081.$ docker run --name my-ratings --rm -d -p 9081:9080 $USER/ratings
Access http://localhost:9081/ratings/7 in your browser or use the following
curlcommand:$ curl localhost:9081/ratings/7{"id":7,"ratings":{"Reviewer1":5,"Reviewer2":4}}
Observe the running container. Run the docker ps command to list all the running containers and notice the container with the image
<your user name>/ratings.$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES47e8c1fe6eca user/ratings "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:9081->9080/tcp elated_stonebraker...
Stop the running container:
$ docker stop my-ratings
You have learned how to package a single service into a container. The next step is to learn how to deploy the whole application to a Kubernetes cluster.