DAS_2024_1/alkin_ivan_lab_1/README.md
2024-12-12 22:12:41 +04:00

6.0 KiB
Raw Blame History

Вот перефразированный текст:


Лабораторная работа №1 — Ознакомление с Docker и Docker Compose

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

Задачи:

  1. Установить Docker — систему для контейнеризации.
  2. Изучить основы работы и принципы Docker.
  3. Изучить утилиту Docker Compose и формат файла docker-compose.yml.
  4. Развернуть как минимум три различных сервиса с использованием Docker Compose.
  5. Оформить отчет в формате Markdown и создать Pull Request в git-репозитории.

Развертывание сервисов

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

  1. MediaWiki — движок для вики-сайтов.
  2. Redmine — система управления задачами (баг-трекер).
  3. WordPress — популярная система управления контентом.
  4. Drupal — другая известная система управления контентом.
  5. Moodle — платформа для онлайн-обучения, например, используется на https://lms.ulstu.ru.
  6. Gitea — сервис для хранения git-репозиториев, на котором размещен этот репозиторий.

Требования к конфигурации Docker Compose:

  • Использование нескольких контейнеров.
  • Наличие хотя бы одного volume.
  • Проброс хотя бы одного порта на хост-систему.

Развертывание должно завершиться успешно. Например, должен быть создан администратор, и система должна функционировать корректно. Это будет проверяться в отчете, поэтому не забывайте делать скриншоты.

Ход работы

  1. Установил Docker Desktop на своей операционной системе (Windows).
  2. Проверил корректность установки, выполнив команду docker --version.
  3. Запустил тестовый контейнер с помощью команды docker run hello-world. (Скриншот Image_1)
  4. Опыт с базовыми командами Docker. (Скриншот Image_2)
  5. Проверил версию Docker Compose командой docker-compose --version. (Скриншот Image_3)
  6. Развернул требуемые сервисы (описано ниже).

Пояснение работы кода:

WordPress:

  1. Указан образ для сборки:

    image: wordpress:latest
    

    Используется последний официальный образ WordPress.

  2. Задание имени контейнера:

    container_name: wordpress
    

    Контейнер получает имя wordpress.

  3. Проброс портов:

    ports:
      - "8080:80"
    

    Порт 80 контейнера пробрасывается на порт 8080 хоста.

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

    volumes:
      - wordpress_data:/var/www/html
    

    Создается том wordpress_data, монтируемый в каталог /var/www/html контейнера для хранения данных WordPress.

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

    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. Переменные окружения для базы данных:

    environment:
      REDMINE_DB_MYSQL: redmine_db
      REDMINE_DB_USERNAME: redmine_user
      REDMINE_DB_PASSWORD: redmine_password
    
  5. Зависимость от базы данных:

    depends_on:
      - redmine_db
    

Gitea:

  1. Образ для сборки:

    image: gitea/gitea:latest
    

    Используется последний официальный образ Gitea.

  2. Имя контейнера:

    container_name: gitea
    

    Контейнер получает имя gitea.

  3. Проброс портов:

    ports:
      - "8082:3000"
    

    Порт 3000 контейнера пробрасывается на порт 8082 хоста.

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

    volumes:
      - gitea_data:/data
    

    Создается том gitea_data для хранения данных Gitea.

  5. Переменные окружения для Gitea:

    environment:
      - USER_UID=1000
      - USER_GID=1000
    

Видео по ссылке находится тут:

https://vkvideo.ru/video150882239_456240340https://vkvideo.ru/video150882239_456240340