4.3 KiB
▎Лабораторная работа №1 - Знакомство с Docker и Docker Compose
Цель: Изучение современных технологий контейнеризации.
▎Задачи:
-
Установить Docker.
-
Изучить применение и принципы работы Docker.
-
Изучить утилиту Docker Compose и структуру файла docker-compose.yml.
-
Развернуть не менее трех различных сервисов с помощью Docker Compose.
▎Разворачивание сервисов
Необходимо развернуть минимум три сервиса из предложенного списка:
-
Redmine - система учета багов (баг-трекер).
-
WordPress - популярная система управления контентом.
-
Gitea - сервис для хранения git-репозиториев.
▎Требования к Docker Compose:
• Несколько контейнеров.
• Хотя бы один volume.
• Хотя бы один проброшенный порт на хост.
Система должна быть развернута полностью, включая создание администратора и корректное функционирование, что будет подтверждено скриншотами.
▎Ход работы
-
Установил Docker Desktop на Windows.
-
Проверил установку с помощью команды docker --version.
-
Развернул сервисы (описаны ниже).
▎Объяснение работы кода:
▎WordPress:
-
Образ сборки:
image: wordpress:latest - используется последний официальный образ WordPress. -
Имя контейнера:
container_name: wordpress - имя контейнера устанавливается как wordpress. -
Проброс портов:
Порт 80 контейнера пробрасывается на порт 8080 хоста. -
Тома для хранения данных:
volumes:
- wordpress_data:/var/www/html
Том wordpress_data монтируется в директорию /var/www/html контейнера для хранения данных WordPress.
-
Переменные окружения для WordPress:
environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: example_user WORDPRESS_DB_PASSWORD: example_password WORDPRESS_DB_NAME: example_db
Параметры для подключения к базе данных.
-
Зависимость от базы данных:
depends_on: db - указывает, что WordPress зависит от контейнера базы данных (db).
▎Redmine:
-
Образ сборки:
image: redmine:latest - используется последний официальный образ Redmine. -
Имя контейнера:
container_name: redmine - имя контейнера устанавливается как redmine. -
Проброс портов:
ports:"8081:3000" - порт 3000 контейнера пробрасывается на порт 8081 хоста. -
Переменные окружения для Redmine:
environment: REDMINE_DB_MYSQL: redmine_db REDMINE_DB_USERNAME: redmine_user REDMINE_DB_PASSWORD: redmine_password
Параметры для подключения к базе данных.
-
Зависимость от базы данных:
depends_on: - redmine_db - Redmine зависит от контейнера с базой данных.
▎Gitea:
-
Образ сборки:
image: gitea/gitea:latest - используется последний официальный образ Gitea. -
Имя контейнера:
container_name: gitea - имя контейнера устанавливается как gitea. -
Проброс портов:
ports:"8082:3000" - порт 3000 контейнера пробрасывается на порт 8082 хоста. -
Тома для хранения данных:
volumes:
- gitea_data:/data