docker-php-client

Документація класу Network

Опис

Network - це клас для роботи з мережами Docker через API. Він надає методи для створення, інспектування, підключення контейнерів та керування мережами Docker.

Простір імен

Sangezar\DockerClient\Api

Успадкування

Клас Network успадковується від AbstractApi та реалізує інтерфейс NetworkInterface.

Константи

Типи драйверів мережі

public const DRIVER_BRIDGE = 'bridge';
public const DRIVER_HOST = 'host';
public const DRIVER_OVERLAY = 'overlay';
public const DRIVER_MACVLAN = 'macvlan';
public const DRIVER_IPVLAN = 'ipvlan';
public const DRIVER_NONE = 'none';

Константи для параметрів створення мережі

public const SCOPE_LOCAL = 'local';
public const SCOPE_SWARM = 'swarm';
public const SCOPE_GLOBAL = 'global';

public const IPAM_DRIVER_DEFAULT = 'default';
public const IPAM_DRIVER_NULL = 'null';

Методи

list

public function list(array $filters = []): array

Отримує список мереж.

Параметри:

Повертає:

Винятки:

inspect

public function inspect(string $id): array

Отримує детальну інформацію про мережу.

Параметри:

Повертає:

Винятки:

create

public function create(NetworkConfig $config): array

Створює нову мережу.

Параметри:

Повертає:

Винятки:

connect

public function connect(string $id, string $container, array $config = []): bool

Підключає контейнер до мережі.

Параметри:

Повертає:

Винятки:

disconnect

public function disconnect(string $networkId, string $containerId, array $config = []): bool

Відключає контейнер від мережі.

Параметри:

Повертає:

Винятки:

remove

public function remove(string $id): bool

Видаляє мережу.

Параметри:

Повертає:

Винятки:

prune

public function prune(array $filters = []): array

Видаляє всі невикористані мережі.

Параметри:

Повертає:

Винятки:

exists

public function exists(string $id): bool

Перевіряє, чи існує мережа.

Параметри:

Повертає:

Винятки:

Приклади використання

Отримання списку мереж

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createUnix();
$networks = $client->network()->list();

foreach ($networks as $network) {
    echo "Мережа: {$network['Name']}, драйвер: {$network['Driver']}\n";
}

Створення нової мережі

use Sangezar\DockerClient\DockerClient;
use Sangezar\DockerClient\Config\NetworkConfig;

$client = DockerClient::createUnix();

$config = new NetworkConfig();
$config->setName('my-network')
       ->setDriver(Network::DRIVER_BRIDGE)
       ->setOptions([
           'com.docker.network.bridge.name' => 'my-bridge'
       ]);

$network = $client->network()->create($config);
echo "Мережу створено з ID: {$network['Id']}\n";

Підключення контейнера до мережі

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createUnix();
$networkId = 'my-network';
$containerId = 'my-container';

$client->network()->connect($networkId, $containerId, [
    'Aliases' => ['web-server'],
    'IPAddress' => '172.18.0.10'
]);

echo "Контейнер {$containerId} підключено до мережі {$networkId}\n";

Видалення мережі

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createUnix();
$networkId = 'my-network';

if ($client->network()->exists($networkId)) {
    $client->network()->remove($networkId);
    echo "Мережу {$networkId} видалено\n";
}