Введение
В этом практическом занятии (лабораторной работе) вы научитесь управлять сетевыми соединениями контейнеров с помощью команды docker network disconnect. Сначала мы создадим пользовательскую сеть и запустим контейнер, подключенный к ней.
Затем вы узнаете, как подключить существующий контейнер к дополнительной сети. Наконец, вы научитесь отключать контейнер от определенной сети и проверять, что отключение произошло. Эта практическая работа предоставит вам опыт управления сетевой связностью контейнеров.
Создать сеть и контейнер
На этом этапе мы научимся создавать пользовательскую сеть Docker и запускать контейнер, подключенный к ней. По умолчанию контейнеры Docker подключаются к сети bridge, но создание пользовательских сетей позволяет лучше изолировать контейнеры и управлять их взаимодействием.
Сначала создадим новую сеть типа bridge с именем my-network.
docker network create my-network
В выводе вы должны увидеть идентификатор (ID) только что созданной сети.
Далее мы загрузим образ nginx с Docker Hub. Этот образ будет использоваться для создания нашего контейнера.
docker pull nginx
Эта команда загружает образ nginx на вашу локальную машину.
Теперь запустим контейнер Nginx и подключим его к только что созданной сети my-network. Назовем контейнер my-nginx.
docker run -d --name my-nginx --network my-network nginx
Разберем эту команду по частям:
docker run: Эта команда используется для запуска контейнера.-d: Этот флаг запускает контейнер в отсоединенном режиме (detached mode), то есть он работает в фоновом режиме.--name my-nginx: Это присваивает контейнеру имяmy-nginx.--network my-network: Это подключает контейнер к сетиmy-network, которую мы создали.nginx: Это образ, который будет использован для создания контейнера.
После выполнения команды Docker запустит контейнер my-nginx и подключит его к сети my-network.
Подключить контейнер к сети
На предыдущем этапе мы создали сеть и запустили контейнер, подключенный к ней. На этом этапе мы покажем, как подключить уже запущенный контейнер к дополнительной сети. Это полезно, если вам нужно, чтобы контейнер мог взаимодействовать с другими контейнерами в другой сети.
Сначала создадим еще одну новую сеть типа bridge с именем another-network.
docker network create another-network
В выводе вы должны увидеть идентификатор (ID) этой новой сети.
Теперь подключим наш существующий контейнер my-nginx к этой новой сети another-network.
docker network connect another-network my-nginx
Эта команда подключает указанный контейнер (my-nginx) к указанной сети (another-network). Теперь у контейнера будут сетевые интерфейсы как в сети my-network, так и в сети another-network.
Для проверки того, что контейнер подключен к обеим сетям, мы можем проверить настройки сети контейнера.
docker inspect my-nginx
Найдите раздел "Networks" в выводе. Вы должны увидеть записи как для сети my-network, так и для сети another-network, что означает, что контейнер успешно подключен к обеим сетям.
Отключить контейнер от сети
На предыдущем этапе мы подключили наш контейнер my-nginx к дополнительной сети another-network. На этом этапе мы научимся отключать контейнер от определенной сети. Это полезно, когда вам больше не нужно, чтобы контейнер был частью определенной сети.
Для отключения контейнера my-nginx от сети another-network мы используем команду docker network disconnect.
docker network disconnect another-network my-nginx
Эта команда принимает в качестве аргументов имя сети (another-network) и имя контейнера (my-nginx).
После выполнения этой команды контейнер будет удален из указанной сети. Теперь он больше не сможет взаимодействовать с другими контейнерами в сети another-network, если они не находятся также в общей сети.
Для подтверждения того, что контейнер был отключен, мы можем снова проверить настройки сети контейнера.
docker inspect my-nginx
Посмотрите на раздел "Networks" в выводе. Теперь вы должны увидеть только сеть my-network, а сети another-network не должно быть. Это подтверждает, что контейнер был успешно отключен от сети another-network.
Проверить, что контейнер отключен
На предыдущем этапе мы отключили контейнер my-nginx от сети another-network. На этом этапе мы проведем финальную проверку, чтобы убедиться, что контейнер действительно больше не подключен к сети another-network.
Мы можем снова использовать команду docker inspect, чтобы проверить конфигурацию сети контейнера my-nginx.
docker inspect my-nginx
Просмотрите вывод этой команды. В частности, найдите раздел "Networks". В этом разделе вы должны увидеть только сеть my-network. Отсутствие сети another-network в этом списке подтверждает, что контейнер был успешно отключен от нее.
Этот этап служит подтверждением предыдущего действия и повторяет, как проверить статус сети Docker - контейнера.
Резюме
В этом практическом занятии (лабораторной работе) мы научились управлять сетевыми соединениями Docker - контейнеров. Мы начали с создания пользовательской мостовой сети (custom bridge network) и запуска контейнера, напрямую подключенного к ней с использованием команды docker run --network. Это показало, как подключить контейнер к определенной сети при его создании.
Затем мы изучили, как подключить уже запущенный контейнер к дополнительной сети с помощью команды docker network connect. Наконец, мы научились отключать контейнер от сети с использованием команды docker network disconnect и проверили отключение, показав гибкость управления принадлежностью контейнера к сети после его создания.



