# Лабораторная работа №1 - Знакомство с docker и docker-compose ## Задание: 1. Установить средство контейнеризации docker. 2. Изучить применение и принципы docker. 3. Изучить утилиту docker-compose и структуру файла docker-compose.yml. 4. Развернуть не менее 3х различных сервисов при помощи docker-compose. Требования и docker-compose: * Несколько контейнеров. * Хотя бы один volume. * Хотя бы один порт, проброшенный на хост. ## Выполнение работы Были развернуты 3 сервиса через docker-compose: Предлагается развернуть не менее 3х сервисов через docker-compose из списка ниже: 1. **redmine** Система учёта багов, т.е. баг-трекер. 2. **wordpress** Популярная система управления контентом. 3. **gitea** Сервис для хранения репозиториев git, на котором работает этот репозиторий. ## Скрин запуска Панель консоли ![](1.png "") ## Объяснение работы кода: ## 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), который должен запуститься первым. Остальные сервисы развернуты по аналогии. ## Видео по ссылку: https://disk.yandex.ru/i/EVeX-9zD7H4Aog