forked from Alexey/DAS_2024_1
kadyrov_aydar_lab_1
This commit is contained in:
parent
131dc39f6c
commit
506d544060
BIN
kadyrov_aydar_lab_1/Image_1.png
Normal file
BIN
kadyrov_aydar_lab_1/Image_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
kadyrov_aydar_lab_1/Image_2.png
Normal file
BIN
kadyrov_aydar_lab_1/Image_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
BIN
kadyrov_aydar_lab_1/Image_3.png
Normal file
BIN
kadyrov_aydar_lab_1/Image_3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
BIN
kadyrov_aydar_lab_1/Image_4_Work.png
Normal file
BIN
kadyrov_aydar_lab_1/Image_4_Work.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
173
kadyrov_aydar_lab_1/README.md
Normal file
173
kadyrov_aydar_lab_1/README.md
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
# Лабораторная работа №1 - Знакомство с docker и docker-compose
|
||||||
|
|
||||||
|
**Цель**: изучение современных технологий контейнеризации.
|
||||||
|
|
||||||
|
**Задачи**:
|
||||||
|
|
||||||
|
1. Установить средство контейнеризации docker.
|
||||||
|
2. Изучить применение и принципы docker.
|
||||||
|
3. Изучить утилиту docker-compose и структуру файла docker-compose.yml.
|
||||||
|
4. Развернуть не менее 3х различных сервисов при помощи docker-compose.
|
||||||
|
5. Оформить отчёт в формате Markdown и создать Pull Request в git-репозитории.
|
||||||
|
|
||||||
|
## Разворачивание сервисов
|
||||||
|
|
||||||
|
Предлагается развернуть не менее 3х сервисов через docker-compose из списка ниже:
|
||||||
|
|
||||||
|
1. **mediawiki**
|
||||||
|
Движок вики.
|
||||||
|
2. **redmine**
|
||||||
|
Система учёта багов, т.е. баг-трекер.
|
||||||
|
3. **wordpress**
|
||||||
|
Популярная система управления контентом.
|
||||||
|
4. **drupal**
|
||||||
|
Ещё одна популярная система управления контентом.
|
||||||
|
5. **moodle**
|
||||||
|
Система для обучения, на которой построена <https://lms.ulstu.ru>.
|
||||||
|
6. **gitea**
|
||||||
|
Сервис для хранения репозиториев git, на котором работает этот репозиторий.
|
||||||
|
|
||||||
|
Требования и docker-compose:
|
||||||
|
|
||||||
|
* Несколько контейнеров.
|
||||||
|
* Хотя бы один volume.
|
||||||
|
* Хотя бы один порт, проброшенный на хост.
|
||||||
|
|
||||||
|
При этом разворачивание системы должно пройти до конца.
|
||||||
|
Например, должен быть создан администратор и система должна корректно функционировать.
|
||||||
|
Это необходимо будет предоставить в отчёте, поэтому не забывайте делать скриншоты.
|
||||||
|
|
||||||
|
## Ход работы
|
||||||
|
|
||||||
|
1. Установил Docker dekstop на свою ОС (Windows)
|
||||||
|
2. Открыл терминал и с помощью команды "docker --version" проверил корректность установки
|
||||||
|
3. Запустил первый тестовый контейнер с помощью команды "docker run hello-world". (Скрин Image_1)
|
||||||
|
4. Попробовал несколько базовых команд.(Скрин Image_2)
|
||||||
|
5. C помощью команды "docker-compose --version" проверил версию Docker-Compose. (Скрин Image_3)
|
||||||
|
6. Развернул сервисы (Описал ниже)
|
||||||
|
|
||||||
|
## Объяснение работы кода:
|
||||||
|
|
||||||
|
## WordPress:
|
||||||
|
|
||||||
|
1. Эта строка отвечает за образ сборки:
|
||||||
|
|
||||||
|
image: wordpress:latest
|
||||||
|
|
||||||
|
Используем последний официальный образ WordPress.
|
||||||
|
|
||||||
|
2. Задание имени контейнера:
|
||||||
|
|
||||||
|
container_name: wordpress
|
||||||
|
|
||||||
|
Устанавливается имя контейнера как wordpress.
|
||||||
|
|
||||||
|
3. Проброс портов:
|
||||||
|
|
||||||
|
Порт 80 контейнера пробрасывается на порт 8080 хоста.
|
||||||
|
|
||||||
|
4. Тома для хранения данных:
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- wordpress_data:/var/www/html
|
||||||
|
|
||||||
|
Том wordpress_data монтируется в директорию /var/www/html контейнера для хранения данных WordPress.
|
||||||
|
|
||||||
|
5. Переменные окружения для WordPress:
|
||||||
|
|
||||||
|
environment:
|
||||||
|
WORDPRESS_DB_HOST: db
|
||||||
|
WORDPRESS_DB_USER: example_user
|
||||||
|
WORDPRESS_DB_PASSWORD: example_password
|
||||||
|
WORDPRESS_DB_NAME: example_db
|
||||||
|
|
||||||
|
Здесь задаются параметры для подключения к базе данных:
|
||||||
|
|
||||||
|
WORDPRESS_DB_HOST: адрес базы данных (контейнер с именем db).
|
||||||
|
WORDPRESS_DB_USER: имя пользователя базы данных.
|
||||||
|
WORDPRESS_DB_PASSWORD: пароль пользователя базы данных.
|
||||||
|
WORDPRESS_DB_NAME: имя базы данных.
|
||||||
|
|
||||||
|
6. Зависимость от базы данных:
|
||||||
|
|
||||||
|
depends_on: db
|
||||||
|
|
||||||
|
Указываем, что WordPress зависит от контейнера с базой данных (db), который должен запуститься первым.
|
||||||
|
|
||||||
|
## Redmine:
|
||||||
|
|
||||||
|
1. Эта строка отвечает за образ сборки:
|
||||||
|
|
||||||
|
image: redmine:latest
|
||||||
|
|
||||||
|
Используем последний официальный образ Redmine.
|
||||||
|
|
||||||
|
2. Задание имени контейнера:
|
||||||
|
|
||||||
|
container_name: redmine
|
||||||
|
|
||||||
|
Устанавливается имя контейнера как redmine.
|
||||||
|
|
||||||
|
3. Проброс портов:
|
||||||
|
|
||||||
|
ports:"8081:3000"
|
||||||
|
|
||||||
|
Порт 3000 контейнера пробрасывается на порт 8081 хоста
|
||||||
|
|
||||||
|
4. Переменные окружения для Redmine:
|
||||||
|
|
||||||
|
environment:
|
||||||
|
REDMINE_DB_MYSQL: redmine_db
|
||||||
|
REDMINE_DB_USERNAME: redmine_user
|
||||||
|
REDMINE_DB_PASSWORD: redmine_password
|
||||||
|
|
||||||
|
Задаются параметры для подключения к базе данных:
|
||||||
|
|
||||||
|
REDMINE_DB_MYSQL: имя контейнера базы данных.
|
||||||
|
REDMINE_DB_USERNAME: имя пользователя базы данных.
|
||||||
|
REDMINE_DB_PASSWORD: пароль пользователя базы данных.
|
||||||
|
|
||||||
|
5. Зависимость от базы данных:
|
||||||
|
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- redmine_db
|
||||||
|
|
||||||
|
Redmine зависит от контейнера с базой данных redmine_db.
|
||||||
|
|
||||||
|
## Gitea:
|
||||||
|
|
||||||
|
1. Эта строка отвечает за образ сборки:
|
||||||
|
|
||||||
|
image: gitea/gitea:latest
|
||||||
|
|
||||||
|
Используем последний официальный образ Gitea.
|
||||||
|
|
||||||
|
2. Задание имени контейнера:
|
||||||
|
|
||||||
|
container_name: gitea
|
||||||
|
|
||||||
|
Устанавливается имя контейнера как gitea.
|
||||||
|
|
||||||
|
3. Проброс портов:
|
||||||
|
|
||||||
|
ports:"8082:3000"
|
||||||
|
|
||||||
|
Порт 3000 контейнера пробрасывается на порт 8082 хоста
|
||||||
|
|
||||||
|
4. Тома для хранения данных:
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- gitea_data:/data
|
||||||
|
|
||||||
|
Том gitea_data монтируется в директорию /data контейнера для хранения данных Gitea.
|
||||||
|
|
||||||
|
5. Переменные окружения для Gitea:
|
||||||
|
|
||||||
|
environment:
|
||||||
|
- USER_UID=1000
|
||||||
|
- USER_GID=1000
|
||||||
|
|
||||||
|
## Видео по ссылку:
|
||||||
|
|
||||||
|
https://vk.com/video64471408_456239204?list=ln-0pkqwQsSiTkihNDILH
|
68
kadyrov_aydar_lab_1/docker-compose.yml
Normal file
68
kadyrov_aydar_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