Как использовать команду docker network disconnect для отключения контейнера от сети

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь управлять сетевыми соединениями контейнеров с помощью команды docker network disconnect. Сначала мы создадим пользовательскую сеть и запустим контейнер, подключенный к ней.

Затем вы узнаете, как подключить существующий контейнер к дополнительной сети. Наконец, вы научитесь отключать контейнер от определенной сети и проверять, что отключение произошло. Эта практическая работа предоставит вам опыт управления сетевой связностью контейнеров.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/run -.-> lab-555175{{"Как использовать команду docker network disconnect для отключения контейнера от сети"}} docker/inspect -.-> lab-555175{{"Как использовать команду docker network disconnect для отключения контейнера от сети"}} docker/create -.-> lab-555175{{"Как использовать команду docker network disconnect для отключения контейнера от сети"}} docker/pull -.-> lab-555175{{"Как использовать команду docker network disconnect для отключения контейнера от сети"}} docker/network -.-> lab-555175{{"Как использовать команду docker network disconnect для отключения контейнера от сети"}} end

Создание сети и контейнера

На этом этапе мы научимся создавать пользовательскую сеть 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 и проверили отключение, показав гибкость управления принадлежностью контейнера к сети после его создания.