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/