From aac01e9f48ffee8b380528954a9d8d9cfec2056d Mon Sep 17 00:00:00 2001 From: ankav Date: Thu, 19 Sep 2024 01:56:40 +0400 Subject: [PATCH 1/5] complete lab 1 --- zhimolostnova_anna_lab_1/.env | 15 +++++ zhimolostnova_anna_lab_1/README.md | 69 ++++++++++++++++++++ zhimolostnova_anna_lab_1/docker-compose.yaml | 62 ++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 zhimolostnova_anna_lab_1/.env create mode 100644 zhimolostnova_anna_lab_1/README.md create mode 100644 zhimolostnova_anna_lab_1/docker-compose.yaml diff --git a/zhimolostnova_anna_lab_1/.env b/zhimolostnova_anna_lab_1/.env new file mode 100644 index 0000000..2f3051d --- /dev/null +++ b/zhimolostnova_anna_lab_1/.env @@ -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 diff --git a/zhimolostnova_anna_lab_1/README.md b/zhimolostnova_anna_lab_1/README.md new file mode 100644 index 0000000..5332713 --- /dev/null +++ b/zhimolostnova_anna_lab_1/README.md @@ -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) \ No newline at end of file diff --git a/zhimolostnova_anna_lab_1/docker-compose.yaml b/zhimolostnova_anna_lab_1/docker-compose.yaml new file mode 100644 index 0000000..0f021ef --- /dev/null +++ b/zhimolostnova_anna_lab_1/docker-compose.yaml @@ -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: From a1419f21ec8243ae9ce48f64e049c86243bc3c35 Mon Sep 17 00:00:00 2001 From: ankav Date: Thu, 19 Sep 2024 02:00:03 +0400 Subject: [PATCH 2/5] changes readme --- zhimolostnova_anna_lab_1/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zhimolostnova_anna_lab_1/README.md b/zhimolostnova_anna_lab_1/README.md index 5332713..ca9545c 100644 --- a/zhimolostnova_anna_lab_1/README.md +++ b/zhimolostnova_anna_lab_1/README.md @@ -17,8 +17,8 @@ ## Запуск работы 1. Убедиться, что установлены необходимые технологии: - 1.1. Docker: Платформа для контейнеризации приложений. - 1.2. Docker Compose: Инструмент для запуска многоконтейнерных приложений на основе `docker-compose.yaml`. Обычно поставляется вместе с Docker. Чтобы проверить, установлена ли утилита, нужно запустить команду: + - Docker: Платформа для контейнеризации приложений. + - Docker Compose: Инструмент для запуска многоконтейнерных приложений на основе `docker-compose.yaml`. Обычно поставляется вместе с Docker. Чтобы проверить, установлена ли утилита, нужно запустить команду: ```bash docker-compose --version ``` @@ -27,11 +27,11 @@ ```bash docker compose up -d ``` -Эта команда запустит контейнеры в фоновом режиме. Для отслеживания процесса можно использовать команду без флага `-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`). + - Moodle доступен по адресу: [http://localhost:80](http://localhost:80) (или по порту, указанному в переменной `MOODLE_PORT`). + - WordPress доступен по адресу: [http://localhost:8081](http://localhost:8081) (или по порту, указанному в переменной `WORDPRESS_PORT`). ## Другие возможности From ce9527b1c95b86ac52f6b23ea4a2bf71cf186720 Mon Sep 17 00:00:00 2001 From: ankav Date: Thu, 19 Sep 2024 02:02:41 +0400 Subject: [PATCH 3/5] fix comments --- zhimolostnova_anna_lab_1/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhimolostnova_anna_lab_1/docker-compose.yaml b/zhimolostnova_anna_lab_1/docker-compose.yaml index 0f021ef..dd7a95e 100644 --- a/zhimolostnova_anna_lab_1/docker-compose.yaml +++ b/zhimolostnova_anna_lab_1/docker-compose.yaml @@ -34,7 +34,7 @@ services: volumes: - moodle_data:/bitnami/moodle # Хранение данных в volume moodle_data - moodledata_data:/bitnami/moodledata # Хранение данных (moodledata) в отдельном volume - depends_on: # Зависимость от сервиса moodle_db. Данный сервис не запустится, пока не запустится moodle_db + depends_on: # Зависимость от сервиса mariadb. Данный сервис не запустится, пока не запустится mariadb - mariadb ports: # Проброс порта для доступа - "${MOODLE_PORT}:8080" From 1c77ba327222d2c0c84e0d362be06c01dc5a44d0 Mon Sep 17 00:00:00 2001 From: ankav Date: Thu, 19 Sep 2024 02:05:34 +0400 Subject: [PATCH 4/5] fix readme --- zhimolostnova_anna_lab_1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhimolostnova_anna_lab_1/README.md b/zhimolostnova_anna_lab_1/README.md index ca9545c..c072a22 100644 --- a/zhimolostnova_anna_lab_1/README.md +++ b/zhimolostnova_anna_lab_1/README.md @@ -27,7 +27,7 @@ ```bash docker compose up -d ``` - Эта команда запустит контейнеры в фоновом режиме. Для отслеживания процесса можно использовать команду без флага `-d`, чтобы контейнеры запускались в режиме вывода логов. +Эта команда запустит контейнеры в фоновом режиме. Для отслеживания процесса можно использовать команду без флага `-d`, чтобы контейнеры запускались в режиме вывода логов. 3. После успешного запуска можно перейти в браузер и проверить: - Moodle доступен по адресу: [http://localhost:80](http://localhost:80) (или по порту, указанному в переменной `MOODLE_PORT`). From 57970b3333313e34a2defa59506d35ed66f5c012 Mon Sep 17 00:00:00 2001 From: ankav Date: Thu, 19 Sep 2024 02:08:16 +0400 Subject: [PATCH 5/5] fix readme --- zhimolostnova_anna_lab_1/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zhimolostnova_anna_lab_1/README.md b/zhimolostnova_anna_lab_1/README.md index c072a22..cd25da8 100644 --- a/zhimolostnova_anna_lab_1/README.md +++ b/zhimolostnova_anna_lab_1/README.md @@ -46,6 +46,7 @@ docker compose pause ``` Контейнеры останутся в памяти, но их процессы будут приостановлены. + 3. Чтобы снять паузу, нужно выполнить команду: ```bash docker compose unpause