Compare commits

..

1 Commits

Author SHA1 Message Date
2714d4e718 tsukanova_irina_lab_1 is ready 2024-09-15 16:18:03 +04:00
9 changed files with 85 additions and 200 deletions

1
tsukanova_irina_lab_1/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*data/

View File

@@ -0,0 +1,32 @@
# Лабораторная работа №1 - Знакомство с docker и docker-compose
## Выбранные сервисы:
1. WordPress - платформа для публикаций
2. MySQL - база данных для WordPress
3. MediaWiki - вики-движок
## Запуск
Запуск производится посредством команды
```docker-compose up -d```
В консоль выведется информация о запуске:
```
[+] Running 4/4
✔ Network tsukanova_irina_lab_1_app-network Created 0.1s
✔ Container mediawiki_app Started 0.9s
✔ Container mysql Started 0.8s
✔ Container wordpress_app Started 1.2s
```
## Содержимое docker-compose.yml
У всех сервисов указан ```image``` - это шаблон среды для контейнера. Образ служит "базовой" версией, на основе которой создаются контейнеры.
```container_name``` - можно указать, как будет называться контейнер.
```ports``` - для проброса порта, чтобы можно было иметь доступ к сервису с хоста.
```environment``` - для указания переменных окружения, которые передаются контейнеру при его запуске.
```volumes``` - для организации постоянного хранилища данных контейнеров Docker.
```networks``` - определяет, как контейнеры взаимодействуют между собой и с внешним миром через сети.
## Скриншот работы
Docker Desktop:
![скриншот](screenshot.png)
## [Видео](https://drive.google.com/file/d/170k0_yR2gbg3eCDSanJmGT8NXN3PkKSf/view?usp=sharing)

View File

@@ -0,0 +1,52 @@
services: # определяет сервисы, которые будут запущены
db: # сервис базы данных
image: mysql:8.0 # Образ MySQL
container_name: mysql # имя для контейнера
restart: always
volumes:
- ./db_data:/var/lib/postgres # Том для постоянного хранения данных
ports:
- "20001:3306" # порт для доступа к MySQL с хоста
environment:
MYSQL_DATABASE: lab1 # имя базы данных
MYSQL_USER: user # имя пользовтеля
MYSQL_PASSWORD: password # пароль пользователя
MYSQL_ROOT_PASSWORD: password # пароль для root
networks:
- app-network
wordpress:
image: wordpress:latest # образ WordPress
container_name: wordpress_app
environment:
WORDPRESS_DB_HOST: db:3306 # имя хоста базы данных
WORDPRESS_DB_USER: user # имя пользователя БД
WORDPRESS_DB_PASSWORD: password # пароль пользователя
WORDPRESS_DB_NAME: lab1 # имя базы данных
ports:
- "20002:80" # порт для доступа к WordPress
volumes:
- ./wordpress_data:/var/www/html/wordpress_data # для хранения данных WordPress
depends_on:
- db # WordPress запустится после запуска базы данных
networks:
- app-network
mediawiki:
image: mediawiki:latest # образ MediaWiki
container_name: mediawiki_app
ports:
- "20003:80" # порт для доступа к MediaWiki
volumes:
- ./mediawiki_data:/var/www/html/mediawiki # для хранения данных MediaWiki
networks:
- app-network
networks:
app-network:
driver: bridge # общая сеть для контейнеров

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

View File

@@ -1,4 +0,0 @@
DB_HOST = db
DB_USER = wordpress
DB_PASSWORD = wordpress
DB_NAME = wordpress

View File

@@ -1 +0,0 @@
mediawiki_data/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

View File

@@ -1,129 +0,0 @@
# Лабораторная работа №1 - Знакомство с docker и docker-compose
## Задание
Разверните 3 сервиса на выбор в контейнерах docker с помощью docker-compose, учитывая следующие требования:
* Несколько контейнеров.
* Хотя бы один volume.
* Хотя бы один порт, проброшенный на хост.
* Разворачивание системы должно пройти до конца.
## Запуск
Введение в терминале команды:
```
docker-compose up -d
```
# Выбранные сервисы
 1. ```db``` - самая новая версия БД MaraiDB
 2. ```phpmyadmin``` - система управления базой данных
 3. ```mediawiki``` - движок вики
 4. ```wordpress``` - платформа для управления контентом
## Описание работы:
Были развёрнуты следующие сервисы:
### phpmyadmin
```
phpmyadmin:
depends_on:
- db
image: phpmyadmin
hostname: php_my_admin
container_name: php_my_admin
volumes: # см. конец файла
- php_my_admin_data:/var/www/html
ports:
- 8080:80
restart: always
environment:
PMA_ARBITRARY: 1
TZ: "Europe/Moscow"
PMA_HOST: ${DB_HOST}
PMA_USER : ${DB_USER}
PMA_PASSWORD : ${DB_PASSWORD}
```
Этот код представляет собой часть файла конфигурации ```Docker Compose```, который используется для управления многоконтейнерными приложениями в Docker.
#### Объяснение работы кода:
Эта строка отвечает за образ сброки:
```
image: phpmyadmin
```
Задание имени контейнера:
```
container_name: php_my_admin
```
Проброс портов:
```
ports:
- 8080:80
```
Тома для хранения данных:
```
volumes:
- .php_my_admin_data:/var/www/html
```
Переменные окружения для Drupal
```
environment:
PMA_ARBITRARY: 1
TZ: "Europe/Moscow"
PMA_HOST: ${DB_HOST}
PMA_USER : ${DB_USER}
PMA_PASSWORD : ${DB_PASSWORD}
```
Аналогично со другими сервисами:
### mediawiki
```
image: mediawiki:latest # образ MediaWiki
container_name: mediawiki_app
volumes: # см. конец файла
- ./mediawiki_data:/var/www/html/mediawiki
ports:
- "8088:80"
restart: always
```
### Wordpress
```
depends_on:
- db
image: wordpress:latest
hostname: wp_app
container_name: wp_app
volumes: # см. конец файла
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
user: www-data
environment: # секция настроек для подключения wordpress к БД
TZ: "Europe/Moscow"
WORDPRESS_DB_HOST: ${DB_HOST}
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: ${DB_NAME}
```
# Скриншот работы
Панель консоли
![](1.png "")
# ВК
https://vk.com/video256017065_456239870?list=ln-qWUdZke5z53x940ZHv

View File

@@ -1,66 +0,0 @@
services:
db: # контейнер базы данных
image: mariadb:latest # самая свежая версия MySql
hostname: wp_database # хост контейнера внутри стистемы докер
container_name: wp_database # имя контейнера с системе docker
volumes: # см. конец файла
- db_data:/var/lib/mysql
restart: always
environment: # cекция настроек для БД
TZ: "Europe/Moscow"
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: ${DB_NAME}
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
phpmyadmin: # СУБД для БД
depends_on: # запускаем после MySql
- db
image: phpmyadmin # скачиваем уже существующие образы для построения и запуска наших контейнеров
hostname: php_my_admin
container_name: php_my_admin
volumes: # см. конец файла
- php_my_admin_data:/var/www/html
ports:
- 8080:80
restart: always
environment:
PMA_ARBITRARY: 1 # разрешение на подключения к любому серверу
TZ: "Europe/Moscow"
PMA_HOST: ${DB_HOST} # сразу заходим под нашими паролями и учёткой
PMA_USER : ${DB_USER}
PMA_PASSWORD : ${DB_PASSWORD}
wordpress: # контейнер wordpress
depends_on: # запускаем после MySql
- db
image: wordpress:latest # самая свежая версия MySql
hostname: wp_app
container_name: wp_app
volumes: # см. конец файла
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
user: www-data
environment: # секция настроек для подключения wordpress к БД
TZ: "Europe/Moscow"
WORDPRESS_DB_HOST: ${DB_HOST}
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: ${DB_NAME}
mediawiki: # контейнер mediawiki
image: mediawiki:latest # образ MediaWiki
container_name: mediawiki_app
volumes: # см. конец файла
- ./mediawiki_data:/var/www/html/mediawiki
ports:
- "8088:80"
restart: always
volumes: # для локального хранения сессионных данных из работы контейнеров
db_data: {}
wordpress_data: {}
php_my_admin_data: {}
mediawiki: {}