Мережі 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...