6.5 KiB
Лабораторная работа №1 - Знакомство с docker и docker-compose
Цель: изучение современных технологий контейнеризации.
Задачи:
- Установить средство контейнеризации docker.
- Изучить применение и принципы docker.
- Изучить утилиту docker-compose и структуру файла docker-compose.yml.
- Развернуть не менее 3х различных сервисов при помощи docker-compose.
- Оформить отчёт в формате Markdown и создать Pull Request в git-репозитории.
Установка docker
Для систем с графическим дисплеем рекомендуется устанавливать Docker Desktop, т.к. это средство позволяет максимально легко установить docker с графическим управлением в ОС.
Если же установка Docker Desktop для Вашей системы не применима, можно установить отдельно docker engine и, например, расширение Docker для Visual Studio Code.
Принципы docker
- Переменные окружения для запуска приложений.
- Монтирование директорий в linux и других подобный ОС.
- Отличие контейнера от виртуальной машины.
- Что такое образ (image) в docker, и в чём отличие от контейнера (container).
- Что такое Docker Hub.
- Что такое раздел/том (volume), и как это помогает обмениваться файлами между контейнерами или с хостом (host).
- Зачем нужно отображение портов из контейнера в хоста.
Изучение docker-compose
В рамках этого пункта необходимо понять, что такое docker-compose и конфигурационный файл docker-compose.yml.
Также в этом разделе изучите формат записи YAML, т.к. это сильно поможет в будущем.
Разворачивание сервисов
Предлагается развернуть не менее 3х сервисов через docker-compose из списка ниже:
- mediawiki Движок вики.
- redmine Система учёта багов, т.е. баг-трекер.
- wordpress Популярная система управления контентом.
- drupal Ещё одна популярная система управления контентом.
- moodle Система для обучения, на которой построена https://lms.ulstu.ru.
- gitea Сервис для хранения репозиториев git, на котором работает этот репозиторий.
Можно вбить в поисковый движок фразу "%service_name% docker-compose", и вы удивитесь, что, скорее всего, найдёте ответ.
Требования и docker-compose:
- Несколько контейнеров.
- Хотя бы один volume.
- Хотя бы один порт, проброшенный на хост.
При этом разворачивание системы должно пройти до конца. Например, должен быть создан администратор и система должна корректно функционировать. Это необходимо будет предоставить в отчёте, поэтому не забывайте делать скриншоты.
Оформление отчёта
Существует множество форматов для разметки текста. Например, HTML или TeX. Наряду с ними существует формат Markdown, который используется достаточно часто, особенно в репозиториях git, чтобы его изучить.
Необходимо написать отчёт с примерами содержимого docker-compose.yml и скриншотами по каждому выбранному сервису.
После содержимого docker-compose.yml в тексте отчёта необходимо написать, что за что там отвечает.
Например, «определяется volume «db», который затем монтируется в директорию «/var/database» контейнера «database». Контейнер «database» запускается из образа «postgresql:latest» из Docker Hub» и т.д.
Можно также оставлять комментарии прямиком в yml-файле через #
.
Для оформления отчёта необходимо форкнуть (fork) к себе в профиль этот репозиторий.
После клонирования созданного репозитория к себе на рабочий ПК необходимо создать и переключиться на ветку в формате фамилия-инициалы-lab-номер
, например, moiseev-vv-lab-1
.
После этого отчёт и скриншоты необходимо положить в специальную папку в формате /tasks/фамилия-инициалы/lab_номер
, например, /tasks/moiseev-vv/lab_1
.
Пример уже есть в этом репозитории.
После отправки вашей ветки в git-репозиторий (git push
) необходимо оформить Pull Request из вашей ветки в main основного репозитория для того, что ваши изменения прошли ревью и были приняты.
Лабораторная работа считается выполненной, если ваш PR будет влит в основную ветвь основного репозитория.
Следите за вашим Pull Request! Преподаватель может оставлять комментарии-замечания, которые необходимо будет исправлять.