DAS_2024_1/putilin_pavel_lab_1/README.md

169 lines
5.6 KiB
Markdown
Raw Normal View History

2024-11-14 21:51:46 +04:00
# Лабораторная работа №1 - Знакомство с docker и docker-compose
**Цель**: изучение современных технологий контейнеризации.
**Задачи**:
1. Установить средство контейнеризации docker.
2. Изучить применение и принципы docker.
3. Изучить утилиту docker-compose и структуру файла docker-compose.yml.
4. Развернуть не менее 3х различных сервисов при помощи docker-compose.
5. Оформить отчёт в формате Markdown и создать Pull Request в git-репозитории.
## Разворачивание сервисов
Предлагается развернуть не менее 3х сервисов через docker-compose из списка ниже:
1. **mediawiki**
Движок вики.
2. **redmine**
Система учёта багов, т.е. баг-трекер.
3. **wordpress**
Популярная система управления контентом.
4. **drupal**
Ещё одна популярная система управления контентом.
5. **moodle**
Система для обучения, на которой построена <https://lms.ulstu.ru>.
6. **gitea**
Сервис для хранения репозиториев git, на котором работает этот репозиторий.
Требования и docker-compose:
* Несколько контейнеров.
* Хотя бы один volume.
* Хотя бы один порт, проброшенный на хост.
## Ход работы
1. Установить Docker dekstop
2. В терминале с помощью команды "docker --version" проверить корректность установки
3. Командой "docker-compose --version" проверить версию Docker-Compose
4. Развернуть сервисы
## Сервисы:
## WordPress:
1. Эта строка отвечает за образ сборки:
image: wordpress:latest
Используем последний официальный образ WordPress.
2. Задание имени контейнера:
container_name: wordpress
Устанавливается имя контейнера как wordpress.
3. Проброс портов:
Порт 80 контейнера пробрасывается на порт 8080 хоста.
4. Тома для хранения данных:
volumes:
- wordpress_data:/var/www/html
Том wordpress_data монтируется в директорию /var/www/html контейнера для хранения данных WordPress.
5. Переменные окружения для WordPress:
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: example_user
WORDPRESS_DB_PASSWORD: example_password
WORDPRESS_DB_NAME: example_db
Здесь задаются параметры для подключения к базе данных:
WORDPRESS_DB_HOST: адрес базы данных (контейнер с именем db).
WORDPRESS_DB_USER: имя пользователя базы данных.
WORDPRESS_DB_PASSWORD: пароль пользователя базы данных.
WORDPRESS_DB_NAME: имя базы данных.
6. Зависимость от базы данных:
depends_on: db
Указываем, что WordPress зависит от контейнера с базой данных (db), который должен запуститься первым.
## Redmine:
1. Эта строка отвечает за образ сборки:
image: redmine:latest
Используем последний официальный образ Redmine.
2. Задание имени контейнера:
container_name: redmine
Устанавливается имя контейнера как redmine.
3. Проброс портов:
ports:"8090:3000"
Порт 3000 контейнера пробрасывается на порт 8090 хоста
4. Переменные окружения для Redmine:
environment:
REDMINE_DB_MYSQL: redmine_db
REDMINE_DB_USERNAME: redmine_user
REDMINE_DB_PASSWORD: redmine_password
Задаются параметры для подключения к базе данных:
REDMINE_DB_MYSQL: имя контейнера базы данных.
REDMINE_DB_USERNAME: имя пользователя базы данных.
REDMINE_DB_PASSWORD: пароль пользователя базы данных.
5. Зависимость от базы данных:
depends_on:
- redmine_db
Redmine зависит от контейнера с базой данных redmine_db.
## Gitea:
1. Эта строка отвечает за образ сборки:
image: gitea/gitea:latest
Используем последний официальный образ Gitea.
2. Задание имени контейнера:
container_name: gitea
Устанавливается имя контейнера как gitea.
3. Проброс портов:
ports:"8091:3000"
Порт 3000 контейнера пробрасывается на порт 8091 хоста
4. Тома для хранения данных:
volumes:
- gitea_data:/data
Том gitea_data монтируется в директорию /data контейнера для хранения данных Gitea.
5. Переменные окружения для Gitea:
environment:
- USER_UID=1000
- USER_GID=1000
2024-11-14 21:59:21 +04:00
2024-11-14 21:51:46 +04:00
## Ссылка на видео:
https://drive.google.com/file/d/1ytamJUnLILeb3UfDOzYtiQJxiXHcWpT0/view?usp=sharing