
ПКАПиИ_БСТ2104_Кофанов_Первухина_Лабораторная_работа_3
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ
Ордена Трудового Красного Знамени
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
__________________________________________________________________
Кафедра «Сетевые информационные технологии и сервисы»
Отчёт по лабораторной работе №3
по дисциплине «Программно-конфигурируемая архитектура приложений и инфраструктуры»
на тему «Контейнер Adminer»
Выполнили: студенты гр. БСТ2104
Кофанов Дмитрий Алексеевич
Первухина Алиса Александровна
Проверил: ст. преп.
Маклачкова Виктория Валентиновна
Москва
2025
Цель работы
Целью работы является освоение навыков по работе с контейнерами, взаимодействующими между собой, а также навыков по настройке сетей в Docker для организации взаимодействия между контейнерами.
Задание
Запустить контейнер с Adminer (веб-интерфейс для управления базами данных).
Настроить взаимодействие между контейнерами Adminer и PostgreSQL с использованием Docker-сетей.
Изучить и применить команды для создания и управления Docker-сетей.
Проверить работоспособность связки контейнеров, подключившись к базе данных через Adminer.
Оформить отчёт, приложить скриншоты выполнения и ответить на контрольные вопросы.
Содержание
Ход выполнения работы 4
Ответы на контрольные вопросы 11
Заключение 13
Ход выполнения работы
Запустим контейнер с Adminer (см. рис. 1-2):
Рисунок 1 – Запуск контейнера с Adminer
Рисунок 2 – Веб-интерфейс для подключения к Adminer
Настроим взаимодействие между контейнерами Adminer и PostgreSQL с использованием Docker-сетей (см. рис. 3-5):
Рисунок 3 – Запуск нового контейнера Adminer с указанием связи
Рисунок 4 – Попытка входа в Adminer
Рисунок 5 – Успешный вход в Adminer
Изучим и применим команды для создания и управления Docker-сетей (см. рис. 6-10):
Рисунок 6 – Создание и просмотр информации Docker-сети
Рисунок 7 – Сетевые настройки контейнера PostgreSQL
Рисунок 8 – Сетевые настройки контейнера Adminer
Рисунок 9 – Удаление контейнеров PostgreSQL и Adminer
Рисунок 10 – Создание новых контейнеров PostgreSQL и Adminer с указанием сети и просмотр их сетевых настроек
Проверим работоспособность связки контейнеров, подключившись к базе данных через Adminer (см. рис. 11-14):
Рисунок 11 – Попытка входа в Adminer по IP-адресу
Рисунок 12 – Успешный вход в Adminer
Также возможно подключение по доменному имени.
Рисунок 13 – Попытка входа в Adminer по домену
Рисунок 14 – Успешный вход в Adminer
Ответы на контрольные вопросы
Как запустить что-то внутри работающего контейнера?
Например, для запуска оболочки Bash внутри контейнера:
docker exec -it имя_контейнера /bin/bash
Как узнать, какие файлы изменяет программа внутри контейнера?
docker diff имя_контейнера
Команда покажет список файлов, которые были изменены, удалены или добавлены в контейнере после его запуска.
Когда происходит завершение контейнера? Как сделать?
Контейнер завершает свою работу:
После завершения основного процесса внутри контейнера.
Вручную с помощью команды docker stop имя_контейнера
Принудительно завершить контейнер можно командой docker kill имя_контейнера
Перезапустите сборку собранного образа, оцените время пересборки, объясните причины.
При повторной сборке образа Docker использует кэш для слоев, которые не изменились. Если слои кэшированы, повторная сборка будет быстрой. Изменение слоев в верхней части Dockerfile приведет к тому, что последующие команды будут пересобираться, что увеличит время сборки.
К какому числу слоев стремиться в образе, правила оптимизации?
Рекомендуется минимизировать количество слоев, чтобы ускорить сборку и уменьшить размер образа.
Правила оптимизации:
Объединяйте команды в Dockerfile.
Очищайте ненужные пакеты сразу после установки.
Используйте .dockerignore, чтобы исключить лишние файлы из контекста сборки.
Что такое Dockerfile?
Dockerfile — это текстовый файл, содержащий инструкции для создания Docker-образа. Каждая команда в Dockerfile создает новый слой образа.
Опишите базовые команды Dockerfile, что они делают, где смотреть документацию?
FROM: Базовый образ.
RUN: Выполняет команду в процессе сборки образа.
CMD: Задает команду по умолчанию для выполнения при запуске контейнера.
COPY: Копирует файлы из контекста сборки в контейнер.
EXPOSE: Открывает порты.
WORKDIR: Устанавливает рабочую директорию внутри контейнера.
Документация доступна на официальном сайте Docker.
Что такое контекст сборки, как его оптимизировать?
Контекст сборки — это набор файлов и директорий, доступных для копирования в образ во время сборки.
Оптимизация:
Используйте файл .dockerignore, чтобы исключить ненужные файлы.
Минимизируйте размер контекста, чтобы ускорить передачу файлов на Docker-демон.
Заключение
В результате выполнения лабораторной работы были освоены навыки по работе с контейнерами, взаимодействующими между собой, а также навыки по настройке сетей в Docker для организации взаимодействия между контейнерами.