Запуск ratings у Docker
Цей модуль демонструє, як створити образ Docker та запустити його локально.
Завантажте
Dockerfile
для мікросервісуratings
.$ curl -s https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
Ознайомтесь з
Dockerfile
.$ cat Dockerfile
Зверніть увагу, що він копіює файли у файлову систему контейнера, а потім виконує команду
npm install
, яку ви виконували в попередньому модулі. КомандаCMD
інструктує Docker запустити сервісratings
на порту9080
.Створіть змінну середовища для збереження вашого ідентифікатора користувача, який буде використовуватися для теґування образу Docker для сервісу
ratings
. Наприклад,user
.$ export USER=user
Зберіть Docker образ з
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
Запустіть
ratings
у Docker. Наступна команда docker run інструктує Docker відкрити порт9080
контейнера для порту9081
вашого компʼютера, що дозволяє вам отримати доступ до мікросервісуratings
на порту9081
.$ docker run --name my-ratings --rm -d -p 9081:9080 $USER/ratings
Отримайте доступ до http://localhost:9081/ratings/7 у вашому оглядачі або скористайтеся наступною командою
curl
:$ curl localhost:9081/ratings/7 {"id":7,"ratings":{"Reviewer1":5,"Reviewer2":4}}
Огляньте працюючий контейнер. Виконайте команду docker ps, щоб показати всі працюючі контейнери та зверніть увагу на контейнер з образом
<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 ...
Зупиніть працюючий контейнер:
$ docker stop my-ratings
Ви навчилися упаковувати один сервіс у контейнер. Наступний крок — дізнатися, як розгортати весь застосунок у кластер Kubernetes.