Initial commit
This commit is contained in:
commit
5244660c01
15
README.md
Normal file
15
README.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Распределенные вычисления и приложения
|
||||||
|
|
||||||
|
В этом репозитории располагается курс лабораторных работ.
|
||||||
|
Также тут необходимо их сдавать.
|
||||||
|
|
||||||
|
## Лабораторные работы
|
||||||
|
|
||||||
|
1. [Знакомство с docker и docker-compose](labs/lab_1/README.md)
|
||||||
|
2. TBA
|
||||||
|
3. TBA
|
||||||
|
4. TBA
|
||||||
|
5. TBA
|
||||||
|
6. TBA
|
||||||
|
7. TBA
|
||||||
|
8. TBA
|
87
labs/lab_1/README.md
Normal file
87
labs/lab_1/README.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# Лабораторная работа №1 - Знакомство с docker и docker-compose
|
||||||
|
|
||||||
|
**Цель**: изучение современных технологий контейнеризации.
|
||||||
|
|
||||||
|
**Задачи**:
|
||||||
|
|
||||||
|
1. Установить средство контейнеризации docker.
|
||||||
|
2. Изучить применение и принципы docker.
|
||||||
|
3. Изучить утилиту docker-compose и структуру файла docker-compose.yml.
|
||||||
|
4. Развернуть не менее 3х различных сервисов при помощи docker-compose.
|
||||||
|
5. Оформить отчёт в формате Markdown и создать Pull Request в git-репозитории.
|
||||||
|
|
||||||
|
## Установка docker
|
||||||
|
|
||||||
|
Для систем с графическим дисплеем рекомендуется устанавливать Docker Desktop, т.к. это средство позволяет максимально легко установить docker с графическим управлением в ОС.
|
||||||
|
|
||||||
|
Если же установка Docker Desktop для Вашей системы не применима, можно установить отдельно docker engine и, например, расширение Docker для Visual Studio Code.
|
||||||
|
|
||||||
|
## Принципы docker
|
||||||
|
|
||||||
|
1. Переменные окружения для запуска приложений.
|
||||||
|
2. Монтирование директорий в linux и других подобный ОС.
|
||||||
|
3. Отличие контейнера от виртуальной машины.
|
||||||
|
4. Что такое образ (image) в docker, и в чём отличие от контейнера (container).
|
||||||
|
5. Что такое Docker Hub.
|
||||||
|
6. Что такое раздел/том (volume), и как это помогает обмениваться файлами между контейнерами или с хостом (host).
|
||||||
|
7. Зачем нужно отображение портов из контейнера в хоста.
|
||||||
|
|
||||||
|
## Изучение docker-compose
|
||||||
|
|
||||||
|
В рамках этого пункта необходимо понять, что такое docker-compose и конфигурационный файл _docker-compose.yml_.
|
||||||
|
|
||||||
|
Также в этом разделе изучите формат записи YAML, т.к. это **сильно** поможет в будущем.
|
||||||
|
|
||||||
|
## Разворачивание сервисов
|
||||||
|
|
||||||
|
Предлагается развернуть не менее 3х сервисов через docker-compose из списка ниже:
|
||||||
|
|
||||||
|
1. **mediawiki**
|
||||||
|
Движок вики.
|
||||||
|
2. **redmine**
|
||||||
|
Система учёта багов, т.е. баг-трекер.
|
||||||
|
3. **wordpress**
|
||||||
|
Популярная система управления контентом.
|
||||||
|
4. **drupal**
|
||||||
|
Ещё одна популярная система управления контентом.
|
||||||
|
5. **moodle**
|
||||||
|
Система для обучения, на которой построена <https://lms.ulstu.ru>.
|
||||||
|
6. **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! Преподаватель может оставлять комментарии-замечания, которые необходимо будет исправлять.
|
31
tasks/moiseev-vv/lab_1/README.md
Normal file
31
tasks/moiseev-vv/lab_1/README.md
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# Отчёт по лабораторной работе №1
|
||||||
|
|
||||||
|
Выполнил: студент гр. ИСТбд-41 Моисеев Владислав.
|
||||||
|
|
||||||
|
## Разворачивание сервера minecraft
|
||||||
|
|
||||||
|
Содержимое файла `docker-compose.yml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services: # Описание служб (контейнеров).
|
||||||
|
minecraft: # Ну как же без майкг'афта.
|
||||||
|
image: itzg/minecraft-server # Образ контейнера из Docker Hub. Tag: latest.
|
||||||
|
ports:
|
||||||
|
- "25565:25565" # Прокидывается порт 25565 из контейнера в хост.
|
||||||
|
environment: # Ой, а это что?
|
||||||
|
EULA: "TRUE"
|
||||||
|
deploy: # А это?
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 1.5G
|
||||||
|
volumes: # Хммм.. Какие-то тома. Наверное, это описание библиотеки. Или нет? 😁
|
||||||
|
- "~/minecraft_data:/data"
|
||||||
|
```
|
||||||
|
|
||||||
|
Разворачивается командой `docker-compose up`.
|
||||||
|
|
||||||
|
Убеждаемся, что всё работает:
|
||||||
|
|
||||||
|
![](ready-to-play.png)
|
||||||
|
|
||||||
|
Удаляется всё командой `docker-compose down` или `docker-compose down -v`.
|
BIN
tasks/moiseev-vv/lab_1/ready-to-play.png
Normal file
BIN
tasks/moiseev-vv/lab_1/ready-to-play.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 486 KiB |
Loading…
Reference in New Issue
Block a user