docker-php-client

VolumeConfig

Клас VolumeConfig є частиною простору імен Sangezar\DockerClient\Config і надає зручний інтерфейс для налаштування та створення томів Docker.

Простір імен

namespace Sangezar\DockerClient\Config;

Опис

Клас VolumeConfig дозволяє створювати та налаштовувати конфігурації томів Docker, які можуть бути використані API клієнтом для створення нових томів.

Створення екземпляру

$volumeConfig = VolumeConfig::create();

Методи

create(): self

Статичний метод для створення нового екземпляра конфігурації тому.

$volumeConfig = VolumeConfig::create();

setName(string $name): self

Встановлює ім’я тому.

Параметри:

Винятки:

$volumeConfig->setName('my-volume');

setDriver(string $driver): self

Встановлює драйвер тому.

Параметри:

Винятки:

$volumeConfig->setDriver('local');

addDriverOpt(string $key, string $value): self

Додає опцію драйвера.

Параметри:

$volumeConfig->addDriverOpt('type', 'nfs');
$volumeConfig->addDriverOpt('device', ':/path/to/dir');
$volumeConfig->addDriverOpt('o', 'addr=192.168.1.1,rw');

setupNfs(string $serverAddress, string $serverPath, string $options = ‘addr={server},rw’): self

Налаштовує NFS том. Автоматично встановлює драйвер на ‘local’ і додає відповідні опції.

Параметри:

Винятки:

$volumeConfig->setupNfs('192.168.1.100', '/exports/data');

addLabel(string $key, string $value): self

Додає мітку до тому.

Параметри:

$volumeConfig->addLabel('environment', 'production');
$volumeConfig->addLabel('backup', 'weekly');

toArray(): array

Перетворює конфігурацію у масив для 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);

Налаштування NFS тому

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);