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.
Sangezar\DockerClient
public function __construct(
?ClientConfig $config = null,
?ClientInterface $httpClient = null,
string $apiVersion = 'v1.47'
)
$config
- (optional) ClientConfig
client configuration object$httpClient
- (optional) HTTP client implementing the ClientInterface
interface$apiVersion
- Docker API version (default v1.47
)public static function create(?ClientConfig $config = null): self
Creates a new client instance.
$config
- (optional) ClientConfig
client configuration objectDockerClient
instancepublic 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.
$host
- Docker API host$certPath
- (optional) Path to certificate$keyPath
- (optional) Path to key$caPath
- (optional) Path to CA certificateDockerClient
instance configured for TCP connectionpublic static function createUnix(string $socketPath = '/var/run/docker.sock'): self
Creates a client for connection via Unix socket.
$socketPath
- Path to Unix socket (default /var/run/docker.sock
)DockerClient
instance configured for Unix socket connectionpublic function container(): ContainerInterface
Returns API for working with containers.
ContainerInterface
interfacepublic function image(): ImageInterface
Returns API for working with images.
ImageInterface
interfacepublic function system(): SystemInterface
Returns API for working with Docker system functions.
SystemInterface
interfacepublic function network(): NetworkInterface
Returns API for working with Docker networks.
NetworkInterface
interfacepublic function volume(): VolumeInterface
Returns API for working with Docker volumes.
VolumeInterface
interfaceuse Sangezar\DockerClient\DockerClient;
$client = DockerClient::createUnix();
use Sangezar\DockerClient\DockerClient;
$client = DockerClient::createTcp('tcp://docker-host:2375');
use Sangezar\DockerClient\DockerClient;
$client = DockerClient::createTcp(
'tcp://docker-host:2376',
'/path/to/cert.pem',
'/path/to/key.pem',
'/path/to/ca.pem'
);
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();