Похожие презентации:
Docker network
1.
DOCKER NETWORK2.
ВВОДНАЯ ИНФОРМАЦИЯСЕТЬ DOCKER ПОСТРОЕНА НА CONTAINER NETWORK MODEL (CNM), КОТОРАЯ ПОЗВОЛЯЕТ КОМУ УГОДНО СОЗДАТЬ
СВОЙ СОБСТВЕННЫЙ СЕТЕВОЙ ДРАЙВЕР. ТАКИМ ОБРАЗОМ, У КОНТЕЙНЕРОВ ЕСТЬ ДОСТУП К РАЗНЫМ ТИПАМ СЕТЕЙ
И ОНИ МОГУТ ПОДКЛЮЧАТЬСЯ К НЕСКОЛЬКИМ СЕТЯМ ОДНОВРЕМЕННО. ПОМИМО РАЗЛИЧНЫХ СТОРОННИХ
СЕТЕВЫХ ДРАЙВЕРОВ, У САМОГО DOCKER-А ЕСТЬ 4 ВСТРОЕННЫХ:
BRIDGE: В ЭТОЙ СЕТИ КОНТЕЙНЕРЫ ЗАПУСКАЮТСЯ ПО УМОЛЧАНИЮ. СВЯЗЬ УСТАНАВЛИВАЕТСЯ ЧЕРЕЗ BRIDGEИНТЕРФЕЙС НА ХОСТЕ. У КОНТЕЙНЕРОВ, КОТОРЫЕ ИСПОЛЬЗУЮТ ОДИНАКОВУЮ СЕТЬ, ЕСТЬ СВОЯ СОБСТВЕННАЯ
ПОДСЕТЬ, И ОНИ МОГУТ ПЕРЕДАВАТЬ ДАННЫЕ ДРУГ ДРУГУ ПО УМОЛЧАНИЮ.
HOST: ЭТОТ ДРАЙВЕР ДАЕТ КОНТЕЙНЕРУ ДОСТУП К СОБСТВЕННОМУ ПРОСТРАНСТВУ ХОСТА (КОНТЕЙНЕР БУДЕТ
ВИДЕТЬ И ИСПОЛЬЗОВАТЬ ТОТ ЖЕ ИНТЕРФЕЙС, ЧТО И ХОСТ).
MACVLAN: ЭТОТ ДРАЙВЕР ДАЕТ КОНТЕЙНЕРАМ ПРЯМОЙ ДОСТУП К ИНТЕРФЕЙСУ И СУБ-ИНТЕРФЕЙСУ (VLAN) ХОСТА.
ТАКЖЕ ОН РАЗРЕШАЕТ ТРАНКИНГ.
OVERLAY: ЭТОТ ДРАЙВЕР ПОЗВОЛЯЕТ СТРОИТЬ СЕТИ НА НЕСКОЛЬКИХ ХОСТАХ С DOCKER (ОБЫЧНО НА DOCKER
SWARM КЛАСТЕРЕ). У КОНТЕЙНЕРОВ ТАКЖЕ ЕСТЬ СВОИ АДРЕСА СЕТИ И ПОДСЕТИ, И ОНИ МОГУТ НАПРЯМУЮ
ОБМЕНИВАТЬСЯ ДАННЫМИ, ДАЖЕ ЕСЛИ ОНИ РАСПОЛАГАЮТСЯ ФИЗИЧЕСКИ НА РАЗНЫХ ХОСТАХ.
3.
BRIDGE СЕТИ• САМЫЙ ПРОСТОЙ ТИП СЕТИ DOCKER — ЭТО МОСТОВАЯ СЕТЬ С ОДНИМ ХОСТОМ.
НАЗВАНИЕ ГОВОРИТ НАМ О ДВУХ ВЕЩАХ:
• СЕТЬ СУЩЕСТВУЕТ ТОЛЬКО НА ОДНОМ ХОСТЕ DOCKER И МОЖЕТ ПОДКЛЮЧАТЬСЯ ТОЛЬКО
К КОНТЕЙНЕРАМ, РАСПОЛОЖЕННЫМ НА ОДНОМ ХОСТЕ.
• BRIDGE СООБЩАЕТ НАМ, ЧТО ЭТО РЕАЛИЗАЦИЯ МОСТА 802.1D (КОММУТАТОР
КАНАЛЬНОГО УРОВНЯ).
4.
BRIDGE СЕТИ5.
BRIDGE СЕТИ• У КАЖДОГО ХОСТА DOCKER ПО УМОЛЧАНИЮ ЕСТЬ СЕТЬ ТИПА BRIDGE. К ЭТОЙ СЕТИ ПО
УМОЛЧАНИЮ ПОДКЛЮЧЕНЫ ВСЕ НОВЫЕ КОНТЕЙНЕРЫ, ЕСЛИ СЕТЬ НЕ ПЕРЕОПРЕДЕЛЕНА
ПРИ ЗАПУСКЕ КОНТЕЙНЕРА.
6.
7.
BRIDGE СЕТИ• ДАВАЙТЕ ВОСПОЛЬЗУЕМСЯ КОМАНДОЙ docker network create, ЧТОБЫ СОЗДАТЬ
НОВУЮ МОСТОВУЮ СЕТЬ С ОДНИМ ХОСТОМ ПОД НАЗВАНИЕМ localnet.
8.
BRIDGE СЕТИ. ВНИМАНИЕ!• СЕТЬ «BRIDGE» В LINUX НЕ ПОДДЕРЖИВАЕТ РАЗРЕШЕНИЕ ИМЕН ЧЕРЕЗ СЛУЖБУ DNS
DOCKER. ВСЕ ОСТАЛЬНЫЕ BRIDGE СЕТИ, СОЗДАВАЕМЫЕ ПОЛЬЗОВАТЕЛЕМ, ПОЗВОЛЯЮТ
ОБРАЩАТЬСЯ К КОНТЕЙНЕРАМ ПО НАЗВАНИЮ, НЕ ТОЛЬКО ПО IP-АДРЕСУ.
9.
10.
11.
ЗАДАНИЕ• НАПИШИТЕ DOCKERFILE, ОСНОВЫВАЯСЬ НА ОБРАЗЕ UBUNTU, В КОТОРОМ ВЫ НА УЖЕ
СУЩЕСТВУЮЩИЙ ОБРАЗ UBUNTU УСТАНОВИТЕ СЛЕДУЮЩИЕ ПАКЕТЫ:
• iproute2
• iputils-ping
• СОБЕРИТЕ DOCKERFILE, ЗАПУСТИТЕ КОНТЕЙНЕР В ИНТЕРАКТИВНОМ РЕЖИМЕ И ВВЕДИТЕ
СЛЕДУЮЩИЕ КОМАНДЫ:
$ ip a
$ ping 8.8.8.8
12.
СЛЕДУЮЩЕЕ ЗАДАНИЕ• СОЗДАЙТЕ СВОЮ СЕТЬ ТИПА BRIDGE.
• ОТКРОЙТЕ 2 ТЕРМИНАЛА, В КАЖДОМ ИЗ КОТОРЫХ ЗАПУСТИТЕ ПО КОНТЕЙНЕРУ ИЗ
СОБРАННОГО ОБРАЗА. ДОБАВЬТЕ ИХ В СОЗДАННУЮ СЕТЬ.
• ПРОВЕРЬТЕ IP АДРЕС КАЖДОГО КОНТЕЙНЕРА
• ПРОПИНГУЙТЕ СОСЕДНИЙ КОНТЕЙНЕР (ПО IP-АДРЕСУ И ПО НАЗВАНИЮ КОНТЕЙНЕРА)
• В ТРЕТЬЕМ ОКНЕ ТЕРМИНАЛА ПРОСМОТРИТЕ ВЫВОД КОМАНДЫ
$ docker network inspect network_name
13.
НЕМНОГО ПРО NETCAT• КОМАНДА NC (NETCAT) СЛУЖИТ ДЛЯ ПЕРЕДАЧИ И ПОЛУЧЕНИЯ ДАННЫХ ПОСРЕДСТВОМ
ПРОТОКОЛОВ TCP И UDP. ОНА НЕ МОЖЕТ ПОХВАСТАТЬ БОЛЬШИМ НАБОРОМ ФУНКЦИЙ,
НО ПРИ ЭТОМ ЕЁ ДОСТАТОЧНО ДЛЯ ТОГО, ЧТОБЫ ПРОВЕРИТЬ СОЕДИНЕНИЕ И ПРОВЕСТИ
НЕСЛОЖНУЮ ОТЛАДКУ.
14.
НЕКОТОРЫЕ ФЛАГИ NETCAT• -L – РЕЖИМ ПРОСЛУШИВАНИЯ. ИСПОЛЬЗУЕТСЯ С УКАЗАНИЕМ ПОРТА;
• -N – ЗАКРЫТЬ СОЕДИНЕНИЕ ПРИ ДОСТИЖЕНИИ КОНЦА ФАЙЛА ПРИ ЕГО ОТПРАВКЕ;
• -V – ПОДРОБНЫЙ РЕЖИМ. ИСПОЛЬЗУЕТСЯ ПРИ СКАНИРОВАНИИ ПОРТОВ;
• -W КОЛИЧЕСТВО_ПАКЕТОВ – ЗАКРЫТЬ СОЕДИНЕНИЕ ПОСЛЕ ПОЛУЧЕНИЯ ОПРЕДЕЛЁННОГО
КОЛИЧЕСТВА ПАКЕТОВ;
• -W ТАЙМЕР – ВКЛЮЧИТЬ ТАЙМЕР ДЛЯ ОГРАНИЧЕНИЯ ВРЕМЕНИ СОЕДИНЕНИЯ. ЗАДАЁТСЯ В
СЕКУНДАХ;
• -Z – ОТКЛЮЧИТЬ ОТПРАВКУ ДАННЫХ. ИСПОЛЬЗУЕТСЯ ПРИ СКАНИРОВАНИИ ПОРТОВ.
15.
НЕКОТОРЫЕ КОНСТРУКЦИИ NETCAT• ДЛЯ ПРОСЛУШИВАНИЯ ПОРТА
$ nc -l номер_порта
• ДЛЯ ОТПРАВКИ ИНФОРМАЦИИ ПОЛУЧАТЕЛЮ:
$ nc ip-адрес_получателя порт_получателя
• ДЛЯ ЗАПИСИ ПРОСЛУШАННОЙ ИНФОРМАЦИИ В ФАЙЛ
$ nc -l порт_получателя > paste.txt
• ДЛЯ ОТПРАВКИ ФАЙЛА ЧЕРЕЗ NETCAT
$ nc -n ip-адрес_получателя порт_получателя < copy.txt
16.
ДОМАШНЕЕ ЗАДАНИЕ (ПОЛЕГЧЕ)• ЗАПУСТИТЬ 2 КОНТЕЙНЕРА С NETCAT В ОДНОЙ BRIDGE DOCKER СЕТИ
• УЗНАТЬ IP-АДРЕСА КАЖДОГО ИЗ КОНТЕЙНЕРОВ
• НА ОДНОМ КОНТЕЙНЕРЕ ЗАПУСТИТЬ NETCAT В РЕЖИМЕ ПРОСЛУШИВАНИЯ
• НА ДРУГОМ КОНТЕЙНЕРЕ ЗАПУСТИТЬ NETCAT ДЛЯ ОТПРАВКИ ИНФОРМАЦИИ
• НАПИСАТЬ ИНФОРМАЦИЮ В ОДНОМ КОНТЕЙНЕРЕ И ПОЛУЧИТЬ ЕЁ В ДРУГОМ
КОНТЕЙНЕРЕ
17.
ДОМАШНЕЕ ЗАДАНИЕ (ПОСЛОЖНЕЕ)• НАПИСАТЬ 2 BASH-СКРИПТА: ОДИН ДЛЯ ПРОСЛУШИВАНИЯ ИНФОРМАЦИИ NETCAT’ОМ,
ДРУГОЙ ДЛЯ ОТПРАВКИ ИНФОРМАЦИИ NETCAT’ОМ
• СОЗДАТЬ 2 ОБРАЗА, КАЖДЫЙ ИЗ КОТОРЫХ БУДЕТ ЗАПУСКАТЬ ОДИН ИЗ СКРИПТОВ ПРИ
ЗАПУСКЕ КОНТЕЙНЕРА
• ПРИНИМАЮЩИЙ КОНТЕЙНЕР ДОЛЖЕН ЗАПИСАТЬ ПОЛУЧЕННЫЕ ДАННЫЕ В ФАЙЛ,
КОТОРЫЙ ДОЛЖЕН ОКАЗАТЬСЯ НА ХОСТОВОЙ СИСТЕМЕ ПО ПОЛУЧЕНИИ ДАННЫХ ОТ
NETCAT.