docker-php-client

Network Class Documentation

Description

Network is a class for working with Docker networks through the API. It provides methods for creating, inspecting, connecting containers, and managing Docker networks.

Namespace

Sangezar\DockerClient\Api

Inheritance

The Network class inherits from AbstractApi and implements the NetworkInterface interface.

Constants

Network Driver Types

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

Constants for Network Creation Parameters

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

Methods

list

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

Gets a list of networks.

Parameters:

Returns:

Exceptions:

inspect

public function inspect(string $id): array

Gets detailed information about a network.

Parameters:

Returns:

Exceptions:

create

public function create(NetworkConfig $config): array

Creates a new network.

Parameters:

Returns:

Exceptions:

connect

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

Connects a container to a network.

Parameters:

Returns:

Exceptions:

disconnect

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

Disconnects a container from a network.

Parameters:

Returns:

Exceptions:

remove

public function remove(string $id): bool

Removes a network.

Parameters:

Returns:

Exceptions:

prune

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

Removes all unused networks.

Parameters:

Returns:

Exceptions:

exists

public function exists(string $id): bool

Checks if a network exists.

Parameters:

Returns:

Exceptions:

Usage Examples

Getting a List of Networks

use Sangezar\DockerClient\DockerClient;

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

foreach ($networks as $network) {
    echo "Network: {$network['Name']}, driver: {$network['Driver']}\n";
}

Creating a New Network

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 "Network created with ID: {$network['Id']}\n";

Connecting a Container to a Network

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 "Container {$containerId} connected to network {$networkId}\n";

Removing a Network

use Sangezar\DockerClient\DockerClient;

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

if ($client->network()->exists($networkId)) {
    $client->network()->remove($networkId);
    echo "Network {$networkId} removed\n";
}