DAS_2024_1/agliullov_daniyar_lab_1/readme.md
2024-11-14 21:39:53 +04:00

4.3 KiB
Raw Blame History

▎Лабораторная работа №1 - Знакомство с Docker и Docker Compose

Цель: Изучение современных технологий контейнеризации.

▎Задачи:

  1. Установить Docker.

  2. Изучить применение и принципы работы Docker.

  3. Изучить утилиту Docker Compose и структуру файла docker-compose.yml.

  4. Развернуть не менее трех различных сервисов с помощью Docker Compose.

▎Разворачивание сервисов

Необходимо развернуть минимум три сервиса из предложенного списка:

  1. Redmine - система учета багов (баг-трекер).

  2. WordPress - популярная система управления контентом.

  3. Gitea - сервис для хранения git-репозиториев.

▎Требования к Docker Compose:

• Несколько контейнеров.

• Хотя бы один volume.

• Хотя бы один проброшенный порт на хост.

Система должна быть развернута полностью, включая создание администратора и корректное функционирование, что будет подтверждено скриншотами.

▎Ход работы

  1. Установил Docker Desktop на Windows.

  2. Проверил установку с помощью команды docker --version.

  3. Развернул сервисы (описаны ниже).

▎Объяснение работы кода:

▎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

    Параметры для подключения к базе данных.

  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

    Параметры для подключения к базе данных.

  5. Зависимость от базы данных:
    depends_on: - redmine_db - Redmine зависит от контейнера с базой данных.

▎Gitea:

  1. Образ сборки:
    image: gitea/gitea:latest - используется последний официальный образ Gitea.

  2. Имя контейнера:
    container_name: gitea - имя контейнера устанавливается как gitea.

  3. Проброс портов:
    ports:"8082:3000" - порт 3000 контейнера пробрасывается на порт 8082 хоста.

  4. Тома для хранения данных:

    volumes:

    • gitea_data:/data

Видео