Цель:

  1. Понять основы контейнеризации и ее преимущества.
  2. Научиться создавать и управлять контейнерами с использованием Docker.

Задание:

Основным заданием данной практической работы является перенос реализованной инфраструктуры (tg-бот и база данных) в контейнеры.

<aside> ❗ Проект должен развораичаться только с использованием файла docker-compose.yaml и необходимых образов, созданных через Dockerfile. Проект, требующий дополнительной настройки, считается выполненным некорректно.

</aside>

Реализация основного задания подразумевает следующие шаги:

  1. Создание необходимых образов контейнеров

    Этот шаг включает в себя создание образов контейнеров, которые будут использоваться для развертывания приложений. Образы определяют состав и настройки приложения, а также его окружение. Для этого используются Dockerfile'ы, содержащие инструкции по сборке образа, например, установка зависимостей, копирование файлов и настройка окружения.

    <aside> ❗ Названия образов:

    Для бота: bot_image

    Для базы данных: db_image

    Для реплики базы данных: db_repl_image

    </aside>

  2. Настройка виртуальной машины, на которой были созданы образы, как локального реестра

    В этом шаге на виртуальной машине устанавливается и настраивается Docker Registry, для хранения и управления созданными образами контейнеров. Это позволяет другим виртуальным машинам получать доступ к образам из локального реестра.

  3. Создание новой виртуальной машины

    В данном шаге создается новая виртуальная машина, на которой будет развернуто приложение.

  4. Установка и настройка docker и docker-compose на новой виртуальной машине.

    Здесь происходит установка и настройка Docker и Docker Compose на созданной виртуальной машине. Docker используется для управления контейнерами, а Docker Compose - для определения и запуска многоконтейнерных приложений.

  5. Создать файл docker-compose, в котором будет использоваться созданные ранее образы, которые необходимо будет загружать с локального реестра

    В этом шаге создается файл docker-compose.yml, в котором определяются параметры и зависимости контейнеров, используемых в приложении.

  6. Запуск проекта

    После создания всех необходимых файлов и настроек запускается процесс развертывания проекта. Docker Compose используется для запуска контейнеров в соответствии с описанными в docker-compose.yml настройками.

  7. Проверка работоспособности

    Необходимо предоставить скриншоты, на которых видно, что контейнеры запущены (docker ps) и при этом открыт telegram и отправлены боту команды на вывод данных из БД, а также переданна команда на вывод логов о репликации.