Клас VolumeConfig
є частиною простору імен Sangezar\DockerClient\Config
і надає зручний інтерфейс для налаштування та створення томів Docker.
namespace Sangezar\DockerClient\Config;
Клас VolumeConfig
дозволяє створювати та налаштовувати конфігурації томів Docker, які можуть бути використані API клієнтом для створення нових томів.
$volumeConfig = VolumeConfig::create();
Статичний метод для створення нового екземпляра конфігурації тому.
$volumeConfig = VolumeConfig::create();
Встановлює ім’я тому.
Параметри:
$name
- Ім’я томуВинятки:
InvalidParameterValueException
- якщо ім’я тому порожнє або недійсне.$volumeConfig->setName('my-volume');
Встановлює драйвер тому.
Параметри:
$driver
- Драйвер тому (наприклад, ‘local’, ‘nfs’, ‘cifs’ тощо)Винятки:
InvalidParameterValueException
- якщо параметр драйвера порожній.$volumeConfig->setDriver('local');
Додає опцію драйвера.
Параметри:
$key
- Ключ опції$value
- Значення опції$volumeConfig->addDriverOpt('type', 'nfs');
$volumeConfig->addDriverOpt('device', ':/path/to/dir');
$volumeConfig->addDriverOpt('o', 'addr=192.168.1.1,rw');
Налаштовує NFS том. Автоматично встановлює драйвер на ‘local’ і додає відповідні опції.
Параметри:
$serverAddress
- IP-адреса або хост сервера NFS$serverPath
- Шлях на сервері NFS для монтування$options
- Опції монтування, які будуть додані до рядка параметрівВинятки:
InvalidParameterValueException
- якщо порожня адреса сервера або шлях.$volumeConfig->setupNfs('192.168.1.100', '/exports/data');
Додає мітку до тому.
Параметри:
$key
- Ключ мітки$value
- Значення мітки$volumeConfig->addLabel('environment', 'production');
$volumeConfig->addLabel('backup', 'weekly');
Перетворює конфігурацію у масив для API Docker.
Винятки:
InvalidConfigurationException
- якщо конфігурація недійсна.Повертає:
array<string, mixed>
- Масив конфігурації для API Docker.$configArray = $volumeConfig->toArray();
use Sangezar\DockerClient\Config\VolumeConfig;
// Створення конфігурації тому
$volumeConfig = VolumeConfig::create()
->setName('app-data')
->setDriver('local')
->addLabel('application', 'my-app')
->addLabel('environment', 'development');
// Створення тому за допомогою API клієнта
$dockerClient->volumes()->create($volumeConfig);
use Sangezar\DockerClient\Config\VolumeConfig;
// Створення NFS тому
$volumeConfig = VolumeConfig::create()
->setName('shared-data')
->setupNfs('192.168.1.100', '/exports/shared', 'addr={server},rw,nolock,soft')
->addLabel('type', 'shared-storage');
// Створення тому за допомогою API клієнта
$dockerClient->volumes()->create($volumeConfig);
use Sangezar\DockerClient\Config\VolumeConfig;
// Створення тому з розширеними опціями
$volumeConfig = VolumeConfig::create()
->setName('database-data')
->setDriver('local')
->addDriverOpt('type', 'tmpfs')
->addDriverOpt('device', 'tmpfs')
->addDriverOpt('o', 'size=100m,uid=1000')
->addLabel('service', 'database')
->addLabel('backup', 'hourly');
// Перетворення на масив для API Docker
$configArray = $volumeConfig->toArray();
// Створення тому за допомогою API клієнта
$dockerClient->volumes()->create($volumeConfig);