Запуск ratings у Docker

Цей модуль демонструє, як створити образ Docker та запустити його локально.

  1. Завантажте Dockerfile для мікросервісу ratings.

    $ curl -s https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/src/ratings/Dockerfile -o Dockerfile
  2. Ознайомтесь з Dockerfile.

    $ cat Dockerfile

    Зверніть увагу, що він копіює файли у файлову систему контейнера, а потім виконує команду npm install, яку ви виконували в попередньому модулі. Команда CMD інструктує Docker запустити сервіс ratings на порту 9080.

  3. Створіть змінну середовища для збереження вашого ідентифікатора користувача, який буде використовуватися для теґування образу Docker для сервісу ratings. Наприклад, user.

    $ export USER=user
  4. Зберіть 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
  5. Запустіть ratings у Docker. Наступна команда docker run інструктує Docker відкрити порт 9080 контейнера для порту 9081 вашого компʼютера, що дозволяє вам отримати доступ до мікросервісу ratings на порту 9081.

    $ docker run --name my-ratings --rm -d -p 9081:9080 $USER/ratings
  6. Отримайте доступ до http://localhost:9081/ratings/7 у вашому оглядачі або скористайтеся наступною командою curl:

    $ curl localhost:9081/ratings/7
    {"id":7,"ratings":{"Reviewer1":5,"Reviewer2":4}}
  7. Огляньте працюючий контейнер. Виконайте команду 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
    ...
  8. Зупиніть працюючий контейнер:

    $ docker stop my-ratings

Ви навчилися упаковувати один сервіс у контейнер. Наступний крок — дізнатися, як розгортати весь застосунок у кластер Kubernetes.

Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!