docker-php-client

DockerClient Class Documentation

Description

DockerClient is the main class for interacting with the Docker API. It provides a convenient interface for working with various Docker components such as containers, images, networks, volumes, and system functions.

Namespace

Sangezar\DockerClient

Methods

Constructor

public function __construct(
    ?ClientConfig $config = null,
    ?ClientInterface $httpClient = null,
    string $apiVersion = 'v1.47'
)

Parameters:

Static Creation Methods

create

public static function create(?ClientConfig $config = null): self

Creates a new client instance.

Parameters:
Returns:

createTcp

public static function createTcp(
    string $host,
    ?string $certPath = null,
    ?string $keyPath = null,
    ?string $caPath = null
): self

Creates a client for TCP connection to the Docker API.

Parameters:
Returns:

createUnix

public static function createUnix(string $socketPath = '/var/run/docker.sock'): self

Creates a client for connection via Unix socket.

Parameters:
Returns:

API Access Methods

container

public function container(): ContainerInterface

Returns API for working with containers.

Returns:

image

public function image(): ImageInterface

Returns API for working with images.

Returns:

system

public function system(): SystemInterface

Returns API for working with Docker system functions.

Returns:

network

public function network(): NetworkInterface

Returns API for working with Docker networks.

Returns:

volume

public function volume(): VolumeInterface

Returns API for working with Docker volumes.

Returns:

Usage Examples

Connection via Unix Socket (Most Common Method)

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createUnix();

Connection via TCP

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createTcp('tcp://docker-host:2375');

Connection via TCP with TLS

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createTcp(
    'tcp://docker-host:2376',
    '/path/to/cert.pem',
    '/path/to/key.pem',
    '/path/to/ca.pem'
);

Using Different Client APIs

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createUnix();

// Getting a list of containers
$containers = $client->container()->list();

// Getting a list of images
$images = $client->image()->list();

// Getting information about the Docker system
$info = $client->system()->info();

// Working with networks
$networks = $client->network()->list();

// Working with volumes
$volumes = $client->volume()->list();