Введение в сеть Docker: рабочий процесс, основы работы с сетью, сетевые команды

Опубликовано: 2020-04-30

Оглавление

Введение

В наш век виртуализации сетевые администраторы больше не работают только с традиционными сетевыми компонентами, такими как маршрутизаторы, компоненты LAN/WAN и коммутаторы. Им приходится работать с сетевыми компонентами на платформах виртуализации. Вся ИТ-индустрия заинтересована в концепции контейнеризации, где необходимы сильные сетевые навыки.

Поскольку Docker является одним из наиболее часто используемых программ для контейнеризации, для настройки контейнера важны сетевые навыки Docker . В настоящее время более 12 000 компаний используют контейнеры Docker для доставки своих приложений . Эти компании включают JPMorgan Chase, ThoughtWorks и Neudesic.

В этой статье мы узнаем о введении в Docker, основах сети Docker .

Давайте сначала разберемся с основами Docker.

Что такое Докер?

Docker — это платформа для упаковки программного обеспечения, которая представила концепцию контейнеризации. Контейнеризация — это процесс, с помощью которого программное приложение упаковывается со всеми необходимыми зависимостями, такими как библиотеки, модули и ОС. Это делает программное обеспечение легко исполняемым в любой среде.

Эти программные пакеты называются контейнерами Docker . Эти контейнеры используются для развертывания приложения в определенной среде. Это может быть контейнер Ubuntu, контейнер CentOS, контейнер Tomcat-Ubuntu или CakePHP.

Допустим, приложение Java создается для выполнения в среде с установленным сервером Tomcat. После разработки приложение отправляется на тестирование. Тестировщики должны снова настроить сервер Tomcat для запуска приложения. Затем он будет отправлен в производственную среду, для которой снова потребуется настроить ту же среду.

Но контейнер Docker, в котором уже есть среда, решит проблему запуска с нуля. Таким образом, разработчики, тестировщики и члены производственного подразделения могут запускать приложение без повторной настройки сервера Tomcat.

Читайте: Идеи и темы проекта Docker

Докер Рабочий процесс

Код приложения или проекта записывается в файл Docker . Этот файл содержит требования к приложению и зависимости. Этот файл создает образ Docker , который позже используется для выполнения кода в файле.

Образ содержит код, переменные среды, файлы конфигурации, среду выполнения и библиотеки, необходимые для запуска приложения. Затем образы загружаются в Docker Hub , который представляет собой репозиторий GIT, состоящий из образов Docker. Из этих репозиториев вы можете получать и загружать свои собственные образы Docker.

Члены группы обеспечения качества или производственной группы компании получают изображения для разработки своих контейнеров. Поскольку все эти контейнеры могут быть изолированы друг от друга, сеть Docker — это набор правил, по которым они взаимодействуют друг с другом.

Теперь, когда у вас есть общее представление о Docker , давайте подробнее рассмотрим сетевое взаимодействие Docker .

Читайте также: Зарплата докера в Индии

Основы работы с сетью Docker

При первоначальной установке Docker настраиваются три разные сети Docker — нет, хост и мост. none и host являются важными компонентами стека Docker и не могут быть удалены. Мостовую сеть можно настроить, известную как сеть docker0.

Docker можно использовать для создания множества сетей. Вы можете добавить контейнеры более чем в одну сеть. Контейнер, подключенный к нескольким сетям, может подключаться к контейнерам этих сетей.

Основные сетевые драйверы, используемые в Docker, следующие:

Мост

Это частная сеть по умолчанию, созданная Docker на хосте. Эта сеть автоматически создает IP-подсеть и шлюз. Контейнеры, принадлежащие этой сети, являются частью одной подсети. Таким образом, контейнеры в этой сети взаимодействуют через IP-адресацию.

Сетевые драйверы моста очень полезны, когда приложение выполняется в автономном контейнере. Установки Docker по умолчанию представляют docker0. Docker вернет объект JSON, описывающий мостовую сеть, если вы введете в консоли следующую команду:

Docker Network проверяет мост

Хозяин

Драйвер хоста используется для автономных контейнеров . Если для контейнера используется сетевой режим узла, изоляция между узлом Docker и сетевым стеком удаляется. Контейнер не получает выделенный IP-адрес.

Например, выполняется контейнер, который привязывается к порту 80, и используется хост-сеть. В этом случае приложение контейнера будет доступно на порту 80 по IP-адресу хоста. Этот сетевой режим полезен, когда контейнер обрабатывает большое количество портов.

Более того, драйвер хоста позволяет запускать несколько веб-контейнеров на одном хосте.

Никто

В этом типе сети контейнеры не имеют доступа к внешним сетям и не подключены к другим контейнерам или сетям. None используется, когда вы хотите отключить сетевой стек в конкретном контейнере.

Ни у кого нет только петлевого интерфейса, а это значит, что внешних сетевых интерфейсов нет.

Наложение

Это используется для создания внутренней частной сети, охватывающей все узлы в кластере swarm. Docker swarm network — это группа виртуальных или физических машин, на которых выполняется приложение Docker. Этот сетевой драйвер важен для сети Docker , поскольку он обеспечивает связь между автономным контейнером и службой swarm.

Автономные контейнеры на разных демонах Docker также могут взаимодействовать с этим драйвером. Таким образом, вам не нужно выполнять маршрутизацию на уровне ОС для контейнеров.

Маквлан

Эта сеть позволяет назначить MAC-адрес контейнеру. Это делает его видимым как физическое устройство. Используя этот адрес, демон Docker направляет трафик на определенный маршрутизатор. Демон Docker — это сервер, который работает на хост-ОС и взаимодействует с ней для выполнения различных действий. Сеть Macvlan упрощает связь между контейнерами.

Macvlan — хороший вариант при работе с устаревшими приложениями, которые должны быть подключены к физической сети. Если вы создаете сеть Macvlan, она может быть в двух режимах — в режиме моста или в режиме транкового моста 802.1q.

Сетевые плагины

Вы можете использовать сторонний сетевой плагин с Docker. Эти подключаемые модули доступны в Docker Hub и могут быть получены у сторонних поставщиков.

Сетевые команды Docker

Наиболее распространенные сетевые команды Docker:

Получение списка сетей Docker

Этот код выведет список всех сетей Docker на хосте —

докер сеть ls

Создание сети Docker

Следующая команда поможет вам создать сеть перед запуском контейнера:

docker network create --driver имя_драйвера

Здесь имя_драйвера — это имя, данное сетевому драйверу, а Список сетевых команд

Эта команда используется для вывода списка доступных сетевых команд:

справка по докерной сети

Удаление сети

Команду rm можно использовать для удаления сети.

сеть докеров rm mynetwork

Подключение к сети Docker

Когда вы создаете сеть Docker, по умолчанию она подключается к сети моста. Для подключения к другой сети при запуске контейнера можно использовать следующую команду:

docker-контейнер запустить -it –net=mynetwork nginx

Получение контейнерных портов

Вы можете получить порт контейнера с помощью команды port:

порт докера cotainer_name/id

Заключение

В наши дни Docker является важным аспектом разработки программного обеспечения. По мере того, как все больше и больше компаний переходят к контейнеризации, сетевое взаимодействие важно для изоляции контейнеров. Это позволяет разрабатывать веб-приложения, которые безопасно работают вместе. Эти сети помогают улучшить связь между контейнерами.

Docker помог многим компаниям сократить время развертывания и сократить связанные с этим расходы. Итак, если вы новичок, эта статья будет полезна для ознакомления с основами работы с сетями докеров .

Если вам интересно узнать больше о разработке полного стека, ознакомьтесь с дипломом PG upGrad & IIIT-B по разработке программного обеспечения с полным стеком, который предназначен для работающих профессионалов и предлагает более 500 часов интенсивного обучения, более 9 проектов и заданий, IIIT -B статус выпускника, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Подготовьтесь к карьере будущего

ПРОМЫШЛЕННОЕ ОБУЧЕНИЕ, ПРИЗНАННОЕ В ПРОМЫШЛЕННОСТИ.
Применить сейчас