alkin_ivan_lab_1

This commit is contained in:
marimo 2024-12-09 21:03:02 +04:00
parent bc087de470
commit b38e755299
2 changed files with 229 additions and 0 deletions

161
alkin_ivan_lab_1/README.md Normal file
View 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

View 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: