DAS_2023_1/arutunyan_dmitry_lab_1
2023-11-12 14:36:18 +04:00
..
docker-compose.yaml arutunyan_dmitry_lab_1 is ready 2023-11-12 14:36:18 +04:00
pic1.png arutunyan_dmitry_lab_1 is ready 2023-11-12 14:36:18 +04:00
pic2.png arutunyan_dmitry_lab_1 is ready 2023-11-12 14:36:18 +04:00
README.md arutunyan_dmitry_lab_1 is ready 2023-11-12 14:36:18 +04:00

Лабораторная работа 1. Вариант 4.

Задание

  • Установить средство контейнеризации docker.
  • Изучить применение и принципы docker.
  • Изучить утилиту docker-compose и структуру файла docker-compose.yaml.
  • Развернуть не менее 3х различных сервисов при помощи docker-compose.

Как запустить

В директории с файлом характеристик docker-compose.yaml выполнить команду:

docker-compose -f docker-compose.yaml up

Это запустит docker-compose, который развернёт в общем контейнере 4 контейнера с сервисами по собранным образам.

Раззворачиваемые сервисы

  • mysql - СУБД для создания БД, которую будут использовать другие сервисы,
  • redmine - открытая веб-платформа управления проектами и задачами,
  • wordpress- популярная платформа для управления контентом (CMS),
  • mediawiki - свободная и открытая вики-платформа, разработанная для создания и совместного редактирования веб-страниц.

Описание работы

Структура файла docker-compose.yaml:

|_ version:
|_ mainproperties:
|_ services:
|____ serivce1:
|________ service1properties:
|____ serivce2:
|________ service2properties:

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

Конфигурации сервиса в docker-compose.yaml:

mysql:
    image: mysql
    container_name: my-mysql-container
    restart: always
    environment:
      MYSQL_DATABASE: my_wiki
      MYSQL_USER: wiki_user
      MYSQL_PASSWORD: my_secret_password
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
    volumes:
      - ./data:/var/lib/mysql

Где image отвечает за образ сборки, container_name указывает имя контейнера, restart определяет сценарий перезапуска сервиса, environment описывает настройки окружения (в данном случае название БД, пользователя, пароль), volumes указывает локальные файлы, необходимые для переноса в сборочный контейнер.

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

Конфигурации сервиса в docker-compose.yaml:

redmine:
    depends_on:
      - mysql
    image: redmine
    container_name: my-redmine-container
    ports:
      - 8081:3000
    volumes:
      - ./data:/usr/src/redmine/files
    environment:
      - REDMINE_DB_MYSQL=mysql
      - REDMINE_DB_DATABASE=my_wiki
      - REDMINE_DB_USERNAME=wiki_user
      - REDMINE_DB_PASSWORD=my_secret_password

Где depends_on указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, image отвечает за образ сборки, container_name указывает имя контейнера, ports указывает порт, на котором сервис будет запущен внутри сети, volumes указывает локальные файлы, необходимые для переноса в сборочный контейнер, environment описывает настройки окружения (в данном случае хост БД, название БД, пользователя, пароль).

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

Конфигурации сервиса в docker-compose.yaml:

  wordpress:
    depends_on:
      - mysql
    image: wordpress
    container_name: my-wordpress-container
    ports:
      - 8082:80
    volumes:
      - ./wp-content:/var/www/html/wp-content
    environment:
      - WORDPRESS_DB_HOST=mysql
      - WORDPRESS_DB_USER=wiki_user
      - WORDPRESS_DB_PASSWORD=my_secret_password
      - WORDPRESS_DB_NAME=my_wiki

Где depends_on указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, image отвечает за образ сборки, container_name указывает имя контейнера, ports указывает порт, на котором сервис будет запущен внутри сети, volumes указывает локальные файлы, необходимые для переноса в сборочный контейнер, environment описывает настройки окружения (в данном случае хост БД, название БД, пользователя, пароль).

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

Конфигурации сервиса в docker-compose.yaml:

  mediawiki:
    depends_on:
      - mysql
    image: mediawiki
    container_name: my-mediawiki-container
    ports:
      - 8083:80
    restart: always
    environment:
      MW_INSTALL_PATH: /var/www/html
      MW_USE_INSTALLED: 'true'
      MW_ADMIN_NAME: admin
      MW_ADMIN_PASS: my_secret_password
      MW_DB_PORT: 3306
      MW_DB_HOST: mysql
      MW_DB_NAME: my_wiki
      MW_DB_USER: wiki_user
      MW_DB_PASS: my_secret_password
    volumes:
      - ./config:/var/www/html/config

Где depends_on указывает на перечень зависимых сервисов, после запуска которых данный сервис может быть запущен, image отвечает за образ сборки, container_name указывает имя контейнера, ports указывает порт, на котором сервис будет запущен внутри сети, restart определяет сценарий перезапуска сервиса, environment описывает настройки окружения (в данном случае путь установки, имя админа, порт БД, хост БД, название БД, пользователя, пароль), volumes указывает локальные файлы, необходимые для переноса в сборочный контейнер.

Запуск сервисов

Выполнение команды docker-compose и log-журнал контейнеров:

Видео

https://youtu.be/Y7B9pzEn5Sc