Ejecutar ratings en Docker
Este módulo muestra cómo crear una imagen Docker y ejecutarla localmente.
Descarga el
Dockerfile
para el microservicioratings
.$ curl -s https://raw.githubusercontent.com/istio/istio/release-1.27/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
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 comandoCMD
instruye a Docker para ejecutar el Serviceratings
en el puerto9080
.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
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
Ejecuta ratings en Docker. El siguiente comando docker run instruye a Docker para exponer el puerto
9080
del contenedor al puerto9081
de tu computadora, permitiéndote acceder al microservicioratings
en el puerto9081
.$ docker run --name my-ratings --rm -d -p 9081:9080 $USER/ratings
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}}
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 ...
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.