
ПКАПиИ_БСТ2104_Кофанов_Первухина_Лабораторная_работа_2
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ
Ордена Трудового Красного Знамени
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
__________________________________________________________________
Кафедра «Сетевые информационные технологии и сервисы»
Отчёт по лабораторной работе №2
по дисциплине «Программно-конфигурируемая архитектура приложений и инфраструктуры»
на тему «Базовые команды Docker»
Выполнили: студенты гр. БСТ2104
Кофанов Дмитрий Алексеевич
Первухина Алиса Александровна
Проверил: ст. преп.
Маклачкова Виктория Валентиновна
Москва
2025
Цель работы
Целью работы является освоение базовых команд Docker по взаимодействию с образами и контейнерами, а также управлению их жизненным циклом.
Задание
Установить Docker на виртуальную машину с Ubuntu Server 22.04.
Изучить и выполнить базовые команды Docker:
запуск контейнера с образом «hello-world»;
загрузка и управление образами (docker pull, docker images);
запуск контейнера с PostgreSQL и настройка переменных окружения;
просмотр логов контейнера и подключение к работающему контейнеру;
управление томами для сохранения данных.
Отработать команды для остановки, удаления контейнеров и очистки неиспользуемых ресурсов.
Оформить отчёт, приложить скриншоты выполнения и ответить на контрольные вопросы.
Содержание
Ход выполнения работы 4
Ответы на контрольные вопросы 15
Заключение 17
Ход выполнения работы
Установим Docker на виртуальную машину с Ubuntu Server 22.04 (см. рис. 1-5):
Рисунок 1 – Установка пакетов для работы с репозиториями
Рисунок 2 – Добавление официального репозитория Docker
Рисунок 3 – Обновление списка пакетов
Рисунок 4 – Установка Docker
Рисунок 5 – Проверка состояния службы Docker
Изучим и выполним базовые команды Docker (см. рис. 6-18):
Рисунок 6 – Запуск контейнера с образом «hello-world»
Рисунок 7 – Загрузка образа «postgres»
Рисунок 8 – Просмотр списка загруженных образов
Рисунок 9 – Загрузка образа «postgres» с меткой 15.10
Рисунок 10 – Создание нового тега (метки) для существующего образа «postgres» и его последующее удаление
Рисунок 11 – Удаление неиспользуемых образов
Рисунок 12 – Запуск контейнера с PostgreSQL
Рисунок 13 – Просмотр логов контейнера
Рисунок 14 – Список запущенных и остановленных контейнеров
Рисунок 15 – Подключение к контейнеру и запуск оболочки Bash, вход в psql
Рисунок 16 – Просмотр списка изменений контейнера
Рисунок 17 – Остановка и удаление контейнера
Рисунок 18 – Просмотр списка томов, создание нового тома, просмотр информации о томе, удаление тома
Создадим том для хранения данных PostgreSQL, чтобы данные не удалялись при завершении контейнера (см. рис. 19-20):
Рисунок 19 – Создание тома «postgres_data», запуск контейнера «postgres_container» с указанием тома, создание тестовой базы данных и таблицы
Рисунок 20 – Остановка и удаление контейнера «postgres_container», создание нового контейнера «new_postgres_container» с указанием тома, проверка сохранения данных
Ответы на контрольные вопросы
Что такое и зачем нужен Docker? Альтернативные системы?
Docker — это платформа для создания, распространения и запуска контейнеров. Контейнеры позволяют запускать приложения в изолированной среде с минимальными накладными расходами, по сравнению с виртуальными машинами. Docker упрощает развертывание, масштабирование и управление приложениями.
Альтернативные системы:
Podman
LXC (Linux Containers)
rkt (Rocket)
containerd
Как получить Docker-образ, что это такое?
Docker-образ — это шаблон, содержащий приложение и все необходимые зависимости для его запуска. Для получения образа используется команда:
docker pull имя_образа
Как запустить контейнер? Как получить доступ к его портам?
Например, запуск контейнера с PostgreSQL и доступом на порт 5432:
docker run -d -p 5432:5432 --name postgres_container postgres
Как просмотреть логи контейнера?
docker logs имя_контейнера
Как сохранить данные внутри контейнера между его перезапусками?
docker volume create имя_тома
docker run -d -v имя_тома:/var/lib/postgresql/data postgres
Это позволит сохранять данные базы данных PostgreSQL между перезапусками контейнера.
Почему контейнеры могут обращаться между собой по имени (хэшу, если его нет)?
Docker создает собственную внутреннюю сеть и автоматически настраивает DNS-сервер, который позволяет контейнерам обращаться друг к другу по именам контейнеров.
Что такое метки (docker tag)?
Метка (tag) позволяет создавать псевдонимы для образов. Это полезно для управления версиями образов. Пример команды для создания метки:
docker tag postgres:latest postgres:15.0-custom
Как удалить ненужные образы и контейнеры?
Удалить контейнер:
docker rm имя_контейнера
Удалить образ:
docker rmi имя_образа
Очистить все неиспользуемые ресурсы:
docker system prune -a
Заключение
В результате выполнения лабораторной работы был установлен Docker на виртуальную машину с Ubuntu Server 22.04, были освоены базовые команды Docker по взаимодействию с образами и контейнерами, а также управлению их жизненным циклом.