DAS_2024_1/putilin_pavel_lab_1/README.md

169 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №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
## Ссылка на видео:
https://drive.google.com/file/d/1ytamJUnLILeb3UfDOzYtiQJxiXHcWpT0/view?usp=sharing