ПГК · Практикум МДК
Практическое заданиеСиСА · Демо 2026

Контейнеры Docker

Сохраняется в этом браузере
На этой странице

Задание

6. Разверните веб приложение в docker на сервере BR-SRV:

  • Средствами docker должен создаваться стек контейнеров с веб приложением и базой данных
  • Используйте образы site_latest и mariadb_latest располагающиеся в директории docker в образе Additional.iso
  • Основной контейнер testapp должен называться tespapp
  • Контейнер с базой данных должен называться db
  • Импортируйте образы в docker, укажите в yaml файле параметры подключения к СУБД, имя БД - testdb, пользователь test с паролем P@ssw0rd, порт приложения 8080, при необходимости другие параметры
  • Приложение должно быть доступно для внешних подключений через порт 8080

Реализация

Виртуальная машина BR-SRV

Установка docker и docker-compose

Устанавливаем Docker и Docker Compose на BR-SRV

# dnf install docker-ce docker-ce-cli  docker-compose  -y

После установки запускаем сервис контейнеризации docker и добавляем его в автозагрузку

# systemctl enable docker --now

Проверка статуса запущенной службы

# systemctl status docker

Монтирование CD-ROM

Смотрим подключен ли cd-rom

# lsblk

2-6_003.png

Монтируем Additional.iso

# mount /dev/sr0 /mnt/

Смотрим содержимое

# ls –l  /mnt/

# ls –l /mnt/docker

2-6_001.png

Импортируем образы mariadb_latest и site_latest

# docker load < /mnt/docker/site_latest.tar

# docker load < /mnt/docker/mariadb_latest.tar

2-6_002.png

Выводим список локально сохранённых образов

# docker image ls

2-6_004.png

Смотрим инструкцию от разработчиков в файле readme.txt

# nano /mnt/docker/readme.txt

2-6_005.png

web.yaml

Создаем файл web.yaml

# nano web.yaml

Со следующим содержимым

services:
  testapp:
    container_name: testapp
    image: site:latest
    restart: always
    ports:
      - "8080:8000"
    environment:
      DB_HOST: "192.168.4.2"
      DB_PORT: "3306"
      DB_NAME: testdb
      DB_USER: test
      DB_PASS: P@ssw0rd
      DB_TYPE: maria
    depends_on:
      - db

  db:
    container_name: db
    image: mariadb:10.11
    restart: always
    ports:
      - "3306:3306"
    environment:
      DB_USER: test
      DB_PASS: P@ssw0rd
      DN_NAME: testdb
      MARIADB_ROOT_PASSWORD: P@ssw0rd

Параметры в файле web.yml

2-6_010.png

Запускаем приложение

# docker-compose -f web.yaml up -d

Видим что контейнер site:latest перезапускается (не может подключиться к контейнеру mariadb:10.11 (в контейнере отсутствует база данных)

Создание базы данных в контейнере

Заходим в контейнер:

# docker exec -it db mysql -u root -p

Вводим пароль пользователя root (P@ssw0rd) (задан в параметре MARIADB_ROOT_PASSWORD в web.yaml)

Создам базу данных:

CREATE DATABASE testdb;

Создаем пользователя:

CREATE USER 'test'@'%' IDENTIFIED BY 'P@ssw0rd';

Даем права пользователю test на БД testdb

GRANT ALL PRIVILEGES ON testdb.* TO 'test'@'%';

Обновляем привилегии:

FLUSH PRIVILEGES;

Выходим:

\q

Останавливаем контейнеры:

# docker-compose -f web.yaml stop

Запускаем контейнеры:

# docker-compose -f web.yaml up -d

Смотрим список запущенных контейнеров:

# docker ps

2-6_011.png

Виртуальная машина HQ-CLI

На HQ-CLI в браузере вводим IP BR-SRV и порт 8080

http://192.168.4.2:8080

Проверяем работу веб приложения с браузера на HQ-CLI

2-6_007.png

Поиск по мануалу

Введите текст для поиска.