complete lab 1
This commit is contained in:
parent
f980a74f5e
commit
aac01e9f48
15
zhimolostnova_anna_lab_1/.env
Normal file
15
zhimolostnova_anna_lab_1/.env
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Moodle
|
||||||
|
MARIADB_USER=moodle_user
|
||||||
|
MARIADB_ROOT_PASSWORD=moodle_root_password
|
||||||
|
MARIADB_PASSWORD=moodle_password
|
||||||
|
MARIADB_DATABASE=moodle_db
|
||||||
|
|
||||||
|
# WordPress
|
||||||
|
MYSQL_ROOT_PASSWORD=wordpress_root_password
|
||||||
|
MYSQL_DATABASE=wordpress_db
|
||||||
|
MYSQL_USER=wordpress_user
|
||||||
|
MYSQL_PASSWORD=wordpress_password
|
||||||
|
|
||||||
|
# Ports
|
||||||
|
MOODLE_PORT=80
|
||||||
|
WORDPRESS_PORT=8081
|
69
zhimolostnova_anna_lab_1/README.md
Normal file
69
zhimolostnova_anna_lab_1/README.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Отчет по лабораторной работе №1
|
||||||
|
|
||||||
|
## Поставленные задачи
|
||||||
|
|
||||||
|
1. Установить средство контейнеризации **docker**.
|
||||||
|
2. Изучить применение и принципы **docker**.
|
||||||
|
3. Изучить утилиту **docker-compose** и структуру файла `docker-compose.yml`.
|
||||||
|
4. Развернуть не менее 3х различных сервисов при помощи **docker-compose**.
|
||||||
|
5. Оформить отчёт в формате **Markdown** и создать **Pull Request** в git-репозитории.
|
||||||
|
|
||||||
|
## Сервисы
|
||||||
|
|
||||||
|
1. **Moodle** — платформа для дистанционного обучения (LMS).
|
||||||
|
2. **WordPress** — популярная система управления контентом (CMS).
|
||||||
|
3. **MariaDB** — реляционная база данных для хранения данных.
|
||||||
|
|
||||||
|
## Запуск работы
|
||||||
|
|
||||||
|
1. Убедиться, что установлены необходимые технологии:
|
||||||
|
1.1. Docker: Платформа для контейнеризации приложений.
|
||||||
|
1.2. Docker Compose: Инструмент для запуска многоконтейнерных приложений на основе `docker-compose.yaml`. Обычно поставляется вместе с Docker. Чтобы проверить, установлена ли утилита, нужно запустить команду:
|
||||||
|
```bash
|
||||||
|
docker-compose --version
|
||||||
|
```
|
||||||
|
|
||||||
|
2. В директории, где находится файл `docker-compose.yaml`, выполнить следующую команду для запуска всех сервисов:
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
Эта команда запустит контейнеры в фоновом режиме. Для отслеживания процесса можно использовать команду без флага `-d`, чтобы контейнеры запускались в режиме вывода логов.
|
||||||
|
|
||||||
|
3. После успешного запуска можно перейти в браузер и проверить:
|
||||||
|
3.1. Moodle доступен по адресу: [http://localhost:80](http://localhost:80) (или по порту, указанному в переменной `MOODLE_PORT`).
|
||||||
|
3.2. WordPress доступен по адресу: [http://localhost:8081](http://localhost:8081) (или по порту, указанному в переменной `WORDPRESS_PORT`).
|
||||||
|
|
||||||
|
## Другие возможности
|
||||||
|
|
||||||
|
1. Чтобы остановить контейнеры, нужно выполнить команду:
|
||||||
|
```bash
|
||||||
|
docker compose down
|
||||||
|
```
|
||||||
|
Эта команда остановит все контейнеры и удалит их, но сохранит данные в volume-ах.
|
||||||
|
|
||||||
|
2. Чтобы поставить контейнеры на паузу (без их остановки), нужно выполнить команду:
|
||||||
|
```bash
|
||||||
|
docker compose pause
|
||||||
|
```
|
||||||
|
Контейнеры останутся в памяти, но их процессы будут приостановлены.
|
||||||
|
3. Чтобы снять паузу, нужно выполнить команду:
|
||||||
|
```bash
|
||||||
|
docker compose unpause
|
||||||
|
```
|
||||||
|
|
||||||
|
## Описание работы
|
||||||
|
|
||||||
|
1. **Сервис mariadb:**
|
||||||
|
Этот сервис поднимает контейнер с MariaDB (образ от Bitnami), который хранит данные для Moodle. Здесь используются переменные окружения для конфигурации имени базы данных, паролей и пользователя. Данные базы хранятся в volume moodle_db_data, чтобы они сохранялись даже после перезапуска контейнера.
|
||||||
|
2. **Сервис wordpress_db:**
|
||||||
|
Аналогично mariadb, этот сервис поднимает контейнер MariaDB для базы данных WordPress. Данные хранятся в отдельном volume wordpress_db_data.
|
||||||
|
3. **Сервис moodle:**
|
||||||
|
Это контейнер с приложением Moodle, который зависит от настроенного контейнера базы данных mariadb. Moodle использует переменные окружения для подключения к своей базе данных. Также используются volumes для хранения файлов Moodle и данных, загружаемых пользователями, что обеспечивает их сохранение между перезапусками.
|
||||||
|
4. **Сервис wordpress:**
|
||||||
|
Этот контейнер поднимает приложение WordPress, которое зависит от сервиса базы данных wordpress_db. Volumes используются для хранения файлов WordPress (включая темы, плагины и медиафайлы), что гарантирует их сохранность между перезапусками.
|
||||||
|
|
||||||
|
Построчное описание docker-compose.yaml выполнено в самом файле.
|
||||||
|
|
||||||
|
## Демонстрационное видео
|
||||||
|
|
||||||
|
Видеозапись доступна по адресу: [https://vk.com/video193898050_456240868?list=ln-FRUcWLBDSsFz3YNUEk](https://vk.com/video193898050_456240868?list=ln-FRUcWLBDSsFz3YNUEk)
|
62
zhimolostnova_anna_lab_1/docker-compose.yaml
Normal file
62
zhimolostnova_anna_lab_1/docker-compose.yaml
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
services:
|
||||||
|
mariadb: # Определение сервиса
|
||||||
|
image: bitnami/mariadb:11.4 # Имя образа docker и его версия (предпочтиельно указывать версию явно, вместо использования latest)
|
||||||
|
container_name: mariadb # Имя контейнера
|
||||||
|
environment: # Переменные окружения
|
||||||
|
- MARIADB_USER=${MARIADB_USER} # Имя пользователя
|
||||||
|
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} # Пароль для пользователя root
|
||||||
|
- MARIADB_PASSWORD=${MARIADB_PASSWORD} # Пароль для пользователя
|
||||||
|
- MARIADB_DATABASE=${MARIADB_DATABASE} # Имя базы данных
|
||||||
|
volumes: # Настройка volumes для хранения данных
|
||||||
|
- moodle_db_data:/bitnami/mariadb # Хранение данных в volume moodle_db_data
|
||||||
|
|
||||||
|
# Далее комментарии идентичны
|
||||||
|
wordpress_db:
|
||||||
|
image: mariadb:11.4
|
||||||
|
container_name: wordpress_db
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||||
|
MYSQL_USER: ${MYSQL_USER}
|
||||||
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
|
volumes:
|
||||||
|
- wordpress_db_data:/var/lib/mysql # Хранение данных в volume wordpress_db_data
|
||||||
|
|
||||||
|
moodle:
|
||||||
|
image: bitnami/moodle:4.4
|
||||||
|
container_name: moodle
|
||||||
|
environment:
|
||||||
|
- MOODLE_DATABASE_HOST=mariadb # Указание хоста базы данных
|
||||||
|
- MOODLE_DATABASE_PORT_NUMBER=3306
|
||||||
|
- MOODLE_DATABASE_NAME=${MARIADB_DATABASE}
|
||||||
|
- MOODLE_DATABASE_USER=${MARIADB_USER}
|
||||||
|
- MOODLE_DATABASE_PASSWORD=${MARIADB_PASSWORD}
|
||||||
|
volumes:
|
||||||
|
- moodle_data:/bitnami/moodle # Хранение данных в volume moodle_data
|
||||||
|
- moodledata_data:/bitnami/moodledata # Хранение данных (moodledata) в отдельном volume
|
||||||
|
depends_on: # Зависимость от сервиса moodle_db. Данный сервис не запустится, пока не запустится moodle_db
|
||||||
|
- mariadb
|
||||||
|
ports: # Проброс порта для доступа
|
||||||
|
- "${MOODLE_PORT}:8080"
|
||||||
|
|
||||||
|
wordpress:
|
||||||
|
image: wordpress:6
|
||||||
|
container_name: wordpress
|
||||||
|
environment:
|
||||||
|
WORDPRESS_DB_HOST: wordpress_db
|
||||||
|
WORDPRESS_DB_USER: ${MYSQL_USER}
|
||||||
|
WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
|
WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
|
||||||
|
volumes:
|
||||||
|
- wordpress_data:/var/www/html # Хранение данных в volume wordpress_data
|
||||||
|
depends_on: # Зависимость от сервиса wordpress_db, Данный сервис не запустится, пока не запустится wordpress_db
|
||||||
|
- wordpress_db
|
||||||
|
ports:
|
||||||
|
- "${WORDPRESS_PORT}:80"
|
||||||
|
|
||||||
|
volumes: # Определение volumes для хранения данных
|
||||||
|
moodle_db_data:
|
||||||
|
wordpress_db_data:
|
||||||
|
moodle_data:
|
||||||
|
moodledata_data:
|
||||||
|
wordpress_data:
|
Loading…
Reference in New Issue
Block a user