Перейти к содержанию

5. Развертывание приложений в Docker на сервере BR SRV

Подробное описание пункта задания:

  • Создайте в домашней директории пользователя файл wiki.yml для приложения MediaWiki
  • Средствами docker compose должен создаваться стек контейнеров с приложением MediaWiki и базой данных
  • Используйте два сервиса
  • Основной контейнер MediaWiki должен называться wiki и использовать образ mediawiki
  • Файл LocalSettings.php с корректными настройками должен находиться в домашней папке пользователя и автоматически монтироваться в образ
  • Контейнер с базой данных должен называться mariadb и использовать образ mariadb
  • Он должен создавать базу с названием mediawiki, доступную по стандартному порту, пользователя wiki с паролем WikiP@ssw0rd должен иметь права доступа к этой базе данных
  • MediaWiki должна быть доступна извне через порт 8080

Как выполнять:

Устанавливаем и запускаем docker: apt-get install docker-compose docker-engine
systemctl enable --now docker

Загружаем необходимые образы: docker pull mediawiki
docker pull mariadb

Создаем файл wiki.yml для приложения MediaWiki в папке /root:

services:
mariadb:
image: mariadb:latest
container_name: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: P@ssw0rd
MYSQL_DATABASE: mediawiki
MYSQL_USER: wiki
MYSQL_PASSWORD: WikiP@ssw0rd
volumes:
- mariadb_data: /var/lib/mysql
mediawiki:
image: mediawiki
container_name: mediawiki
restart: always
environment:
MEDIAWIKI_DB_HOST: mariadb
MEDIAWIKI_DB_USER: wiki
MEDIAWIKI_DB_PASSWORD: WikiP@ssw0rd
MEDIAWIKI_DB_NAME: mediawiki
ports:
- "8080:80"
depends_on:
- mariadb
volumes:
# [/root/mediawiki/LocalSettings.php:/var/www/html/LocalSettings.php]
volumes:
mariadb_data:


Запускаем контейнер с ключом -f для запуска в фоновом режиме: docker-compose -f  /root/wiki.yml up -d

Производим установку mediawiki с клиента HQ-CLI, пользователь wiki с паролем WikiP@ssw0rd: Копируем полученный файл LocalSettings.php в /home/sshuser на HQ-CLI: mv /home/sshuser/Загрузка/LocalSettings.php /home/sshuser/LocalSettings.php

С сервер HQ-SRV забираем файл в папку /root/mediawiki/LocalSettings.php: scp -P 2024 sshuser@hq-cli:/home/sshuser/LocalSettings.php /root/mediawiki/LocalSettings.php

Уберём символ комментария перед строкой [/root/mediawiki/LocalSettings.php:/var/www/html/LocalSettings.php] в файле /root/wiki.yml

Перезапускаем образ: docker-compose down /root/wiki.yml
docker-compose -f  /root/wiki.yml up -d

Где выполнять:

BR-SRV, HQ-CLI

Дополнительно:

Docker — это платформа для автоматизации развертывания, масштабирования и управления приложениями в контейнерах. Вот несколько основных преимуществ использования Docker: - Изоляция приложений: Контейнеры Docker обеспечивают изоляцию приложений и их зависимостей, что позволяет избежать конфликтов между различными версиями библиотек и программного обеспечения. - Портативность: Контейнеры могут работать на любой системе, поддерживающей Docker, что делает приложения легко переносимыми между различными средами - Упрощенное развертывание: Docker позволяет быстро и легко развертывать приложения, используя образы, что сокращает время на настройку и конфигурацию - Масштабируемость: Docker упрощает масштабирование приложений, позволяя быстро создавать и удалять контейнеры в зависимости от нагрузки - Эффективное использование ресурсов: Контейнеры используют меньше ресурсов по сравнению с виртуальными машинами, так как они разделяют ядро операционной системы, что позволяет запускать большее количество приложений на одном хосте - Управление зависимостями: Docker позволяет упаковывать все зависимости приложения в один контейнер, что упрощает управление и развертывание - Поддержка микросервисной архитектуры: Docker идеально подходит для разработки и развертывания микросервисов, позволяя каждому сервису работать в своем контейнере. - Сообщество и экосистема: Docker имеет активное сообщество и множество доступных образов в Docker Hub, что облегчает поиск готовых решений и ускоряет разработку

Docker является мощным инструментом для разработки, развертывания и управления приложениями, что позволяет повысить гибкость и эффективность работы команд.

Где изучается:

3,4 курс: Организация администрирования компьютерных систем и далее

Справочные материалы(во Всемирной паутине):

https://www.mediawiki.org/wiki/MediaWiki-Docker/ru https://habr.com/ru/articles/491030/