DAS_2023_1/arutunyan_dmitry_lab_1/README.md

123 lines
6.8 KiB
Markdown
Raw 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. Вариант 4.
### Задание
- Установить средство контейнеризации `docker`.
- Изучить применение и принципы `docker`.
- Изучить утилиту `docker-compose` и структуру файла `docker-compose.yaml`.
- Развернуть не менее 3х различных сервисов при помощи `docker-compose`.
### Как запустить
В директории с файлом характеристик `docker-compose.yaml` выполнить команду:
```
docker-compose -f docker-compose.yaml up
```
Это запустит `docker-compose`, который развернёт в общем контейнере 4 контейнера с сервисами по собранным образам.
### Раззворачиваемые сервисы
- `mysql` - СУБД для создания БД, которую будут использовать другие сервисы,
- `redmine` - открытая веб-платформа управления проектами и задачами,
- `wordpress`- популярная платформа для управления контентом (CMS),
- `mediawiki` - свободная и открытая вики-платформа, разработанная для создания и совместного редактирования веб-страниц.
### Описание работы
Структура файла `docker-compose.yaml`:
```yaml
|_ version:
|_ mainproperties:
|_ services:
|____ serivce1:
|________ service1properties:
|____ serivce2:
|________ service2properties:
```
#### Разворачивание сервиса MySQL
Конфигурации сервиса в `docker-compose.yaml`:
```yaml
mysql:
image: mysql
container_name: my-mysql-container
restart: always
environment:
MYSQL_DATABASE: my_wiki
MYSQL_USER: wiki_user
MYSQL_PASSWORD: my_secret_password
MYSQL_RANDOM_ROOT_PASSWORD: "yes"
volumes:
- ./data:/var/lib/mysql
```
Где `image` отвечает за образ сборки, `container_name` указывает имя контейнера, `restart` определяет сценарий перезапуска сервиса, `environment` описывает настройки окружения (в данном случае название БД, пользователя, пароль), `volumes` указывает локальные файлы, необходимые для переноса в сборочный контейнер.
#### Разворачивание сервиса Redmine
Конфигурации сервиса в `docker-compose.yaml`:
```yaml
redmine:
depends_on:
- mysql
image: redmine
container_name: my-redmine-container
ports:
- 8081:3000
volumes:
- ./data:/usr/src/redmine/files
environment:
- REDMINE_DB_MYSQL=mysql
- REDMINE_DB_DATABASE=my_wiki
- REDMINE_DB_USERNAME=wiki_user
- REDMINE_DB_PASSWORD=my_secret_password
```
Где `depends_on` указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, `image` отвечает за образ сборки, `container_name` указывает имя контейнера, `ports` указывает порт, на котором сервис будет запущен внутри сети, `volumes` указывает локальные файлы, необходимые для переноса в сборочный контейнер, `environment` описывает настройки окружения (в данном случае хост БД, название БД, пользователя, пароль).
#### Разворачивание сервиса Wordpress
Конфигурации сервиса в `docker-compose.yaml`:
```yaml
wordpress:
depends_on:
- mysql
image: wordpress
container_name: my-wordpress-container
ports:
- 8082:80
volumes:
- ./wp-content:/var/www/html/wp-content
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=wiki_user
- WORDPRESS_DB_PASSWORD=my_secret_password
- WORDPRESS_DB_NAME=my_wiki
```
Где `depends_on` указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, `image` отвечает за образ сборки, `container_name` указывает имя контейнера, `ports` указывает порт, на котором сервис будет запущен внутри сети, `volumes` указывает локальные файлы, необходимые для переноса в сборочный контейнер, `environment` описывает настройки окружения (в данном случае хост БД, название БД, пользователя, пароль).
#### Разворачивание сервиса MediaWiki
Конфигурации сервиса в `docker-compose.yaml`:
```yaml
mediawiki:
depends_on:
- mysql
image: mediawiki
container_name: my-mediawiki-container
ports:
- 8083:80
restart: always
environment:
MW_INSTALL_PATH: /var/www/html
MW_USE_INSTALLED: 'true'
MW_ADMIN_NAME: admin
MW_ADMIN_PASS: my_secret_password
MW_DB_PORT: 3306
MW_DB_HOST: mysql
MW_DB_NAME: my_wiki
MW_DB_USER: wiki_user
MW_DB_PASS: my_secret_password
volumes:
- ./config:/var/www/html/config
```
Где `depends_on` указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, `image` отвечает за образ сборки, `container_name` указывает имя контейнера, `ports` указывает порт, на котором сервис будет запущен внутри сети, `restart` определяет сценарий перезапуска сервиса, `environment` описывает настройки окружения (в данном случае путь установки, имя админа, порт БД, хост БД, название БД, пользователя, пароль), `volumes` указывает локальные файлы, необходимые для переноса в сборочный контейнер.
#### Запуск сервисов
Выполнение команды docker-compose и log-журнал контейнеров:
![](pic1.png "")
![](pic2.png "")
### Видео
https://youtu.be/Y7B9pzEn5Sc