Клас NetworkConfig є частиною простору імен Sangezar\DockerClient\Config і надає зручний інтерфейс для налаштування Docker мереж.
namespace Sangezar\DockerClient\Config;
Клас NetworkConfig дозволяє створювати та налаштовувати конфігурації мереж Docker, які можуть бути використані API клієнтом для створення нових мереж.
$networkConfig = NetworkConfig::create();
Статичний метод для створення нового екземпляра конфігурації мережі.
$networkConfig = NetworkConfig::create();
Встановлює ім’я мережі.
Параметри:
$name - Ім’я мережіВинятки:
InvalidParameterValueException - якщо ім’я мережі порожнє або недійсне.$networkConfig->setName('my-network');
Встановлює драйвер мережі.
Параметри:
$driver - Драйвер мережі. Допустимі значення:
bridge - стандартний містhost - використовує мережевий стек хостаoverlay - оверлейна мережаmacvlan - мережа MAC VLANipvlan - мережа IP VLANnone - без мережіВинятки:
InvalidParameterValueException - якщо драйвер невідомий.$networkConfig->setDriver('bridge');
Вмикає або вимикає підтримку IPv6.
Параметри:
$enable - true для ввімкнення IPv6, false для вимкнення.$networkConfig->setEnableIPv6(true);
Встановлює, чи повинна мережа бути внутрішньою.
Параметри:
$internal - true для внутрішньої мережі, false для зовнішньої.$networkConfig->setInternal(true);
Встановлює, чи можуть контейнери бути підключені до мережі.
Параметри:
$attachable - true, якщо контейнери можуть приєднуватися, інакше false.$networkConfig->setAttachable(true);
Встановлює область видимості мережі.
Параметри:
$scope - Область видимості мережі. Допустимі значення:
local - локальна мережаswarm - мережа роюglobal - глобальна мережаВинятки:
InvalidParameterValueException - якщо область видимості невідома.$networkConfig->setScope('local');
Додає підмережу до конфігурації IPAM.
Параметри:
$subnet - Підмережа у форматі CIDR (наприклад, 192.168.0.0/24)$gateway - IP-адреса шлюзу (опціонально)$ipRange - Діапазон IP у форматі CIDR (опціонально)Винятки:
InvalidParameterValueException - якщо параметри недійсні.$networkConfig->addSubnet('192.168.1.0/24', '192.168.1.1');
Встановлює драйвер IPAM.
Параметри:
$driver - Драйвер IPAM. Допустимі значення:
default - стандартний драйверnull - нульовий драйверВинятки:
InvalidParameterValueException - якщо драйвер невідомий.$networkConfig->setIpamDriver('default');
Додає опцію драйвера.
Параметри:
$key - Ключ опції$value - Значення опції$networkConfig->addOption('com.docker.network.bridge.name', 'my-bridge');
Додає мітку до мережі.
Параметри:
$key - Ключ мітки$value - Значення мітки$networkConfig->addLabel('com.example.description', 'Мережа для веб-додатків');
Перетворює конфігурацію у масив для API Docker.
Винятки:
InvalidConfigurationException - якщо конфігурація недійсна.Повертає:
array<string, mixed> - Масив конфігурації для API Docker.$configArray = $networkConfig->toArray();
use Sangezar\DockerClient\Config\NetworkConfig;
// Створення конфігурації мережі
$networkConfig = NetworkConfig::create()
->setName('my-web-network')
->setDriver('bridge')
->setEnableIPv6(true)
->addSubnet('192.168.0.0/24', '192.168.0.1')
->addLabel('environment', 'production')
->addOption('com.docker.network.bridge.enable_icc', 'true');
// Перетворення на масив для API Docker
$configArray = $networkConfig->toArray();
// Створення мережі за допомогою API клієнта
$dockerClient->networks()->create($networkConfig);