alkin_ivan_lab_1
This commit is contained in:
parent
bc087de470
commit
b38e755299
161
alkin_ivan_lab_1/README.md
Normal file
161
alkin_ivan_lab_1/README.md
Normal file
@ -0,0 +1,161 @@
|
||||
Вот перефразированный текст:
|
||||
|
||||
---
|
||||
|
||||
# Лабораторная работа №1 — Ознакомление с Docker и Docker Compose
|
||||
|
||||
**Цель**: освоение технологий контейнеризации.
|
||||
|
||||
**Задачи**:
|
||||
1. Установить Docker — систему для контейнеризации.
|
||||
2. Изучить основы работы и принципы Docker.
|
||||
3. Изучить утилиту Docker Compose и формат файла docker-compose.yml.
|
||||
4. Развернуть как минимум три различных сервиса с использованием Docker Compose.
|
||||
5. Оформить отчет в формате Markdown и создать Pull Request в git-репозитории.
|
||||
|
||||
## Развертывание сервисов
|
||||
|
||||
Необходимо развернуть не менее трёх сервисов с помощью Docker Compose из предложенного списка:
|
||||
|
||||
1. **MediaWiki** — движок для вики-сайтов.
|
||||
2. **Redmine** — система управления задачами (баг-трекер).
|
||||
3. **WordPress** — популярная система управления контентом.
|
||||
4. **Drupal** — другая известная система управления контентом.
|
||||
5. **Moodle** — платформа для онлайн-обучения, например, используется на <https://lms.ulstu.ru>.
|
||||
6. **Gitea** — сервис для хранения git-репозиториев, на котором размещен этот репозиторий.
|
||||
|
||||
Требования к конфигурации Docker Compose:
|
||||
|
||||
- Использование нескольких контейнеров.
|
||||
- Наличие хотя бы одного volume.
|
||||
- Проброс хотя бы одного порта на хост-систему.
|
||||
|
||||
Развертывание должно завершиться успешно. Например, должен быть создан администратор, и система должна функционировать корректно. Это будет проверяться в отчете, поэтому не забывайте делать скриншоты.
|
||||
|
||||
## Ход работы
|
||||
|
||||
1. Установил Docker Desktop на своей операционной системе (Windows).
|
||||
2. Проверил корректность установки, выполнив команду `docker --version`.
|
||||
3. Запустил тестовый контейнер с помощью команды `docker run hello-world`. (Скриншот Image_1)
|
||||
4. Опыт с базовыми командами Docker. (Скриншот Image_2)
|
||||
5. Проверил версию Docker Compose командой `docker-compose --version`. (Скриншот Image_3)
|
||||
6. Развернул требуемые сервисы (описано ниже).
|
||||
|
||||
## Пояснение работы кода:
|
||||
|
||||
### WordPress:
|
||||
|
||||
1. Указан образ для сборки:
|
||||
```yaml
|
||||
image: wordpress:latest
|
||||
```
|
||||
Используется последний официальный образ WordPress.
|
||||
|
||||
2. Задание имени контейнера:
|
||||
```yaml
|
||||
container_name: wordpress
|
||||
```
|
||||
Контейнер получает имя `wordpress`.
|
||||
|
||||
3. Проброс портов:
|
||||
```yaml
|
||||
ports:
|
||||
- "8080:80"
|
||||
```
|
||||
Порт 80 контейнера пробрасывается на порт 8080 хоста.
|
||||
|
||||
4. Том для хранения данных:
|
||||
```yaml
|
||||
volumes:
|
||||
- wordpress_data:/var/www/html
|
||||
```
|
||||
Создается том `wordpress_data`, монтируемый в каталог `/var/www/html` контейнера для хранения данных WordPress.
|
||||
|
||||
5. Переменные окружения для подключения к базе данных:
|
||||
```yaml
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db
|
||||
WORDPRESS_DB_USER: example_user
|
||||
WORDPRESS_DB_PASSWORD: example_password
|
||||
WORDPRESS_DB_NAME: example_db
|
||||
```
|
||||
|
||||
6. Зависимость от базы данных:
|
||||
```yaml
|
||||
depends_on: db
|
||||
```
|
||||
WordPress зависит от контейнера с именем `db`, который должен быть запущен первым.
|
||||
|
||||
### Redmine:
|
||||
|
||||
1. Образ для сборки:
|
||||
```yaml
|
||||
image: redmine:latest
|
||||
```
|
||||
Используется последний официальный образ Redmine.
|
||||
|
||||
2. Имя контейнера:
|
||||
```yaml
|
||||
container_name: redmine
|
||||
```
|
||||
Контейнер получает имя `redmine`.
|
||||
|
||||
3. Проброс портов:
|
||||
```yaml
|
||||
ports:
|
||||
- "8081:3000"
|
||||
```
|
||||
Порт 3000 контейнера пробрасывается на порт 8081 хоста.
|
||||
|
||||
4. Переменные окружения для базы данных:
|
||||
```yaml
|
||||
environment:
|
||||
REDMINE_DB_MYSQL: redmine_db
|
||||
REDMINE_DB_USERNAME: redmine_user
|
||||
REDMINE_DB_PASSWORD: redmine_password
|
||||
```
|
||||
|
||||
5. Зависимость от базы данных:
|
||||
```yaml
|
||||
depends_on:
|
||||
- redmine_db
|
||||
```
|
||||
|
||||
### Gitea:
|
||||
|
||||
1. Образ для сборки:
|
||||
```yaml
|
||||
image: gitea/gitea:latest
|
||||
```
|
||||
Используется последний официальный образ Gitea.
|
||||
|
||||
2. Имя контейнера:
|
||||
```yaml
|
||||
container_name: gitea
|
||||
```
|
||||
Контейнер получает имя `gitea`.
|
||||
|
||||
3. Проброс портов:
|
||||
```yaml
|
||||
ports:
|
||||
- "8082:3000"
|
||||
```
|
||||
Порт 3000 контейнера пробрасывается на порт 8082 хоста.
|
||||
|
||||
4. Том для хранения данных:
|
||||
```yaml
|
||||
volumes:
|
||||
- gitea_data:/data
|
||||
```
|
||||
Создается том `gitea_data` для хранения данных Gitea.
|
||||
|
||||
5. Переменные окружения для Gitea:
|
||||
```yaml
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
```
|
||||
|
||||
## Видео по ссылке:
|
||||
|
||||
https://vkvideo.ru/video150882239_456240340https://vkvideo.ru/video150882239_456240340
|
68
alkin_ivan_lab_1/docker-compose.yml
Normal file
68
alkin_ivan_lab_1/docker-compose.yml
Normal file
@ -0,0 +1,68 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
wordpress:
|
||||
image: wordpress:latest
|
||||
container_name: wordpress
|
||||
ports:
|
||||
- "8080:80"
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db
|
||||
WORDPRESS_DB_USER: example_user
|
||||
WORDPRESS_DB_PASSWORD: example_password
|
||||
WORDPRESS_DB_NAME: example_db
|
||||
volumes:
|
||||
- wordpress_data:/var/www/html
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
image: mysql:5.7
|
||||
container_name: wordpress_db
|
||||
environment:
|
||||
MYSQL_DATABASE: example_db
|
||||
MYSQL_USER: example_user
|
||||
MYSQL_PASSWORD: example_password
|
||||
MYSQL_ROOT_PASSWORD: root_password
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
|
||||
redmine:
|
||||
image: redmine:latest
|
||||
container_name: redmine
|
||||
ports:
|
||||
- "8081:3000"
|
||||
environment:
|
||||
REDMINE_DB_MYSQL: redmine_db
|
||||
REDMINE_DB_USERNAME: redmine_user
|
||||
REDMINE_DB_PASSWORD: redmine_password
|
||||
depends_on:
|
||||
- redmine_db
|
||||
|
||||
redmine_db:
|
||||
image: mysql:5.7
|
||||
container_name: redmine_db
|
||||
environment:
|
||||
MYSQL_DATABASE: redmine
|
||||
MYSQL_USER: redmine_user
|
||||
MYSQL_PASSWORD: redmine_password
|
||||
MYSQL_ROOT_PASSWORD: root_password
|
||||
volumes:
|
||||
- redmine_db_data:/var/lib/mysql
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
ports:
|
||||
- "8082:3000"
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
volumes:
|
||||
- gitea_data:/data
|
||||
|
||||
volumes:
|
||||
wordpress_data:
|
||||
db_data:
|
||||
redmine_db_data:
|
||||
gitea_data:
|
Loading…
Reference in New Issue
Block a user