DAS_2024_1/alkin_ivan_lab_1/README.md
2024-12-09 21:05:04 +04:00

161 lines
6.0 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. Развернуть как минимум три различных сервиса с использованием Docker Compose.
5. Оформить отчет в формате Markdown и создать Pull Request в git-репозитории.
## Развертывание сервисов
Необходимо развернуть не менее трёх сервисов с помощью Docker Compose из предложенного списка:
1. **MediaWiki** — движок для вики-сайтов.
2. **Redmine** — система управления задачами (баг-трекер).
3. **WordPress** — популярная система управления контентом.
4. **Drupal** — другая известная система управления контентом.
5. **Moodle** — платформа для онлайн-обучения, например, используется на <https://lms.ulstu.ru>.
6. **Gitea** — сервис для хранения git-репозиториев, на котором размещен этот репозиторий.
Требования к конфигурации Docker Compose:
- Использование нескольких контейнеров.
- Наличие хотя бы одного volume.
- Проброс хотя бы одного порта на хост-систему.
Развертывание должно завершиться успешно. Например, должен быть создан администратор, и система должна функционировать корректно. Это будет проверяться в отчете, поэтому не забывайте делать скриншоты.
## Ход работы
1. Установил Docker Desktop на своей операционной системе (Windows).
2. Проверил корректность установки, выполнив команду `docker --version`.
3. Запустил тестовый контейнер с помощью команды `docker run hello-world`. (Скриншот Image_1)
4. Опыт с базовыми командами Docker. (Скриншот Image_2)
5. Проверил версию Docker Compose командой `docker-compose --version`. (Скриншот Image_3)
6. Развернул требуемые сервисы (описано ниже).
## Пояснение работы кода:
### WordPress:
1. Указан образ для сборки:
```yaml
image: wordpress:latest
```
Используется последний официальный образ WordPress.
2. Задание имени контейнера:
```yaml
container_name: wordpress
```
Контейнер получает имя `wordpress`.
3. Проброс портов:
```yaml
ports:
- "8080:80"
```
Порт 80 контейнера пробрасывается на порт 8080 хоста.
4. Том для хранения данных:
```yaml
volumes:
- wordpress_data:/var/www/html
```
Создается том `wordpress_data`, монтируемый в каталог `/var/www/html` контейнера для хранения данных WordPress.
5. Переменные окружения для подключения к базе данных:
```yaml
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: example_user
WORDPRESS_DB_PASSWORD: example_password
WORDPRESS_DB_NAME: example_db
```
6. Зависимость от базы данных:
```yaml
depends_on: db
```
WordPress зависит от контейнера с именем `db`, который должен быть запущен первым.
### Redmine:
1. Образ для сборки:
```yaml
image: redmine:latest
```
Используется последний официальный образ Redmine.
2. Имя контейнера:
```yaml
container_name: redmine
```
Контейнер получает имя `redmine`.
3. Проброс портов:
```yaml
ports:
- "8081:3000"
```
Порт 3000 контейнера пробрасывается на порт 8081 хоста.
4. Переменные окружения для базы данных:
```yaml
environment:
REDMINE_DB_MYSQL: redmine_db
REDMINE_DB_USERNAME: redmine_user
REDMINE_DB_PASSWORD: redmine_password
```
5. Зависимость от базы данных:
```yaml
depends_on:
- redmine_db
```
### Gitea:
1. Образ для сборки:
```yaml
image: gitea/gitea:latest
```
Используется последний официальный образ Gitea.
2. Имя контейнера:
```yaml
container_name: gitea
```
Контейнер получает имя `gitea`.
3. Проброс портов:
```yaml
ports:
- "8082:3000"
```
Порт 3000 контейнера пробрасывается на порт 8082 хоста.
4. Том для хранения данных:
```yaml
volumes:
- gitea_data:/data
```
Создается том `gitea_data` для хранения данных Gitea.
5. Переменные окружения для Gitea:
```yaml
environment:
- USER_UID=1000
- USER_GID=1000
```
## Видео по ссылке находится тут:
https://vkvideo.ru/video150882239_456240340https://vkvideo.ru/video150882239_456240340