DAS_2024_1/kadyrov_aydar_lab_1/README.md
2024-10-21 02:36:18 +04:00

173 lines
6.4 KiB
Markdown
Raw Permalink 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 на свою ОС (Windows)
2. Открыл терминал и с помощью команды "docker --version" проверил корректность установки
3. Запустил первый тестовый контейнер с помощью команды "docker run hello-world". (Скрин Image_1)
4. Попробовал несколько базовых команд.(Скрин Image_2)
5. C помощью команды "docker-compose --version" проверил версию Docker-Compose. (Скрин Image_3)
6. Развернул сервисы (Описал ниже)
## Объяснение работы кода:
## 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:"8081:3000"
Порт 3000 контейнера пробрасывается на порт 8081 хоста
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:"8082:3000"
Порт 3000 контейнера пробрасывается на порт 8082 хоста
4. Тома для хранения данных:
volumes:
- gitea_data:/data
Том gitea_data монтируется в директорию /data контейнера для хранения данных Gitea.
5. Переменные окружения для Gitea:
environment:
- USER_UID=1000
- USER_GID=1000
## Видео по ссылку:
https://vk.com/video64471408_456239204?list=ln-0pkqwQsSiTkihNDILH