Docker Compose – популярный инструмент для определения и управления многоконтейнерными приложениями Docker. Одной из его мощных функций является возможность создавать собственные сети для изоляции контейнеров и управления сетевым трафиком. В этой статье блога мы рассмотрим различные методы настройки пользовательских сетевых подсетей в Docker Compose, используя разговорный язык и примеры кода.
Метод 1: определение пользовательской подсети сети в Docker Compose YAML
Чтобы настроить пользовательскую сетевую подсеть в Docker Compose, вы можете определить сетевой блок в своем файле YAML и указать диапазон подсети, используя нотацию CIDR. Вот пример:
version: "3.9"
services:
myapp:
image: myapp:latest
networks:
mynetwork:
ipv4_address: 172.20.0.2
networks:
mynetwork:
ipam:
config:
- subnet: 172.20.0.0/16
В приведенном выше примере мы определяем сеть под названием «mynetwork» с диапазоном подсетей 172.20.0.0/16. Свойство «ipv4_address» внутри сервисного блока назначает контейнеру определенный IP-адрес.
Метод 2. Использование команды Docker Network Create.
Другой способ настройки пользовательской подсети — использование Docker CLI. Вы можете создать сеть с определенным диапазоном подсетей, используя следующую команду:
docker network create --subnet=172.20.0.0/16 mynetwork
Эта команда создает сеть с именем «mynetwork» с диапазоном подсетей 172.20.0.0/16.
Метод 3: настройка псевдонимов подсетей
Если вы хотите назначить несколько подсетей одной сети, вы можете использовать псевдонимы подсетей. Это может быть полезно, когда вам нужно сегментировать контейнеры на разные подсети в зависимости от их функциональности. Вот пример:
version: "3.9"
services:
myapp1:
image: myapp1:latest
networks:
mynetwork:
ipv4_address: 172.20.0.2
myapp2:
image: myapp2:latest
networks:
mynetwork:
ipv4_address: 172.30.0.2
networks:
mynetwork:
ipam:
config:
- subnet: 172.20.0.0/16
- subnet: 172.30.0.0/16
В этом примере мы определяем две службы: «myapp1» и «myapp2», каждая из которых назначена отдельной подсети в сети «mynetwork».
Настройка пользовательских сетевых подсетей в Docker Compose обеспечивает гибкость и контроль над взаимодействием контейнеров и изоляцией сети. В этой статье мы рассмотрели три метода: определение подсети в Docker Compose YAML, использование команды создания сети Docker и настройка псевдонимов подсети. Понимая эти методы, вы сможете эффективно разрабатывать сложные контейнерные приложения и управлять ими.