Сети Docker

Средний уровень Docker

Mike Metzger

Data Engineering Consultant

Сети Docker

  • Docker предоставляет широкие сетевые возможности
  • Можно создавать сети для связи между контейнерами, хостом и внешними системами
  • Рассмотрим основные команды для работы с сетями.
Средний уровень Docker

Типы сетей Docker

  • Docker поддерживает разные типы сетей с помощью драйверов
    • bridge: драйвер по умолчанию; разрешает исходящие соединения и входящие — при публикации портов
    • host: обеспечивает полное взаимодействие между хостом и контейнерами
    • none: изолирует контейнер от сети
    • Другие варианты, включая пользовательские драйверы
  • В основном будем использовать драйвер bridge для создания собственных сетей
Средний уровень Docker

Работа с сетями Docker

Основные команды:

  • docker network
    • docker network <command>
    • docker network <command> --help
    • docker network ls — список всех сетей Docker на хосте
    • docker network create — создать сеть
    • docker network rm — удалить сеть
Средний уровень Docker

Пример создания сети Docker

  • Создание сети Docker с именем mynetwork
    repl@host:~$ docker network create mynetwork
    
5ff0febab98f73b74dd753eb44a30f7d7291052b3b1d58b0134589221cb8e33d
repl@host:~$ docker network ls

NETWORK ID NAME DRIVER SCOPE 2edc5ae4838c bridge bridge local a92988382711 host host local 5ff0febab98f mynetwork bridge local 5464ed866dad none null local
Средний уровень Docker

Подключение контейнеров к сетям

  • Как подключить контейнер к сети?
  • docker run --network <networkname> ...
  • docker run --network mynetwork ubuntu bash
  • Контейнеры можно подключать и после запуска
    • docker network connect <networkname> <container>
    • docker network connect mynetwork ubuntu-B
Средний уровень Docker

docker network inspect

  • Как просмотреть сведения о сети?
  • docker network inspect <networkname>
  • Показывает конфигурацию и IP-адреса, назначенные контейнерам
    repl@host:~$ docker network inspect mynetwork
    
Средний уровень Docker

Пример docker network inspect

        "Name": "mynetwork",
        ...
        "Driver": "bridge",
        ...
        Containers": {    "2be08aa942029191350d4bceb8816254af8713dd6f7dcbadcab8f068f7dbfdfa": {
                "Name": "unruffled_kare",
                "EndpointID": "29739356ae200e1e901d2eabef05efaca0fb37e1a4e1a4c3bf369f2892ca6c4b",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
Средний уровень Docker

Давайте потренируемся!

Средний уровень Docker

Preparing Video For Download...