Ejecutar ratings en Docker

Este módulo muestra cómo crear una imagen Docker y ejecutarla localmente.

  1. Descarga el Dockerfile para el microservicio ratings.

    $ curl -s https://raw.githubusercontent.com/istio/istio/release-1.27/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
  2. Observa el Dockerfile.

    $ cat Dockerfile

    Nota que copia los archivos en el sistema de archivos del contenedor y luego ejecuta el comando npm install que ejecutaste en el módulo anterior. El comando CMD instruye a Docker para ejecutar el Service ratings en el puerto 9080.

  3. Crea una variable de entorno para almacenar tu ID de usuario que se usará para etiquetar la imagen docker para el Service ratings. Por ejemplo, user.

    $ export USER=user
  4. Construye una imagen Docker desde el Dockerfile:

    $ 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. Ejecuta ratings en Docker. El siguiente comando docker run instruye a Docker para exponer el puerto 9080 del contenedor al puerto 9081 de tu computadora, permitiéndote acceder al microservicio ratings en el puerto 9081.

    $ docker run --name my-ratings  --rm -d -p 9081:9080 $USER/ratings
  6. Accede a http://localhost:9081/ratings/7 en tu navegador o usa el siguiente comando curl:

    $ curl localhost:9081/ratings/7
    {"id":7,"ratings":{"Reviewer1":5,"Reviewer2":4}}
  7. Observa el contenedor en ejecución. Ejecuta el comando docker ps para listar todos los contenedores en ejecución y nota el contenedor con la imagen <your user name>/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. Detén el contenedor en ejecución:

    $ docker stop my-ratings

Has aprendido cómo empaquetar un solo Service en un contenedor. El siguiente paso es aprender cómo desplegar toda la aplicación en un Cluster de Kubernetes.

¿Fue útil esta información?
¿Tienes alguna sugerencia para mejorar?

¡Gracias por tus comentarios!