diff --git a/tsukanova_irina_lab_1/.gitignore b/tsukanova_irina_lab_1/.gitignore new file mode 100644 index 0000000..d859866 --- /dev/null +++ b/tsukanova_irina_lab_1/.gitignore @@ -0,0 +1 @@ +*data/ \ No newline at end of file diff --git a/tsukanova_irina_lab_1/README.md b/tsukanova_irina_lab_1/README.md new file mode 100644 index 0000000..5cf3f78 --- /dev/null +++ b/tsukanova_irina_lab_1/README.md @@ -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) diff --git a/tsukanova_irina_lab_1/docker-compose.yml b/tsukanova_irina_lab_1/docker-compose.yml new file mode 100644 index 0000000..bc85215 --- /dev/null +++ b/tsukanova_irina_lab_1/docker-compose.yml @@ -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 # общая сеть для контейнеров \ No newline at end of file diff --git a/tsukanova_irina_lab_1/screenshot.png b/tsukanova_irina_lab_1/screenshot.png new file mode 100644 index 0000000..22240bd Binary files /dev/null and b/tsukanova_irina_lab_1/screenshot.png differ