Практическая работа с Docker

Описание
В данной практической работе выполнена настройка контейнеров Docker с использованием различных сетевых конфигураций и типов томов.

Выполненные задачи

  1. Создание и запуск контейнеров
    Запущены контейнеры с Nginx в качестве полезной нагрузки
    Проброшены порты 8081 и 8082 на хост-машину

sudo docker run -d --name web1 --network mynetwork -p 8081:80 nginx
sudo docker run -d --name web2 --network mynetwork -p 8082:80 nginx

  1. Настройка сетевого взаимодействия

Создана общая сеть для контейнеров
sudo docker network create mynetwork

Установлен ping для проверки связности
sudo docker exec web1 apt-get update && sudo docker exec web1 apt-get install -y iputils-ping

Проверена связность между контейнерами
sudo docker exec web1 ping web2

  1. Изоляция сети

Создана изолированная сеть без доступа к интернету
sudo docker network create --internal no-internet

Подключены контейнеры к изолированной сети
sudo docker network connect no-internet web1
sudo docker network connect no-internet web2

  1. Работа с томами
    Временный том (tmpfs)

Создан контейнер с tmpfs томом
sudo docker run -d --name web1_tmpfs --tmpfs /app nginx

Общий том

Создан общий том
sudo docker volume create shared_data

Созданы контейнеры с подключенным общим томом
sudo docker run -d --name web3 -v shared_data:/shared nginx
sudo docker run -d --name web4 -v shared_data:/shared nginx

Добавлены тестовые данные в общий том

echo "Test shared volume" > /shared/test.txt

Проверка работоспособности

Сетевое взаимодействие
Проверка связности между контейнерами через ping
Проверка отсутствия доступа к интернету в изолированной сети

Общие тома
Проверка доступности данных в общем томе из разных контейнеров
Проверка работы tmpfs тома

Использованные команды:
docker ps -a - просмотр всех контейнеров
docker network ls - просмотр сетей
docker volume ls - просмотр томов
docker exec - выполнение команд в контейнерах
docker network connect - подключение контейнеров к сетям

Выводы
В ходе практической работы были успешно настроены:

Контейнеры с веб-сервером Nginx
Сетевое взаимодействие между контейнерами
Изолированная сеть
Различные типы томов (tmpfs и общий том)

Все поставленные задачи выполнены, работоспособность проверена.