docker-php-client

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

Опис

Image - це клас для роботи з образами Docker через API. Він надає методи для створення, завантаження, отримання інформації, маркування (тегування) та видалення образів Docker.

Простір імен

Sangezar\DockerClient\Api

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

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

Методи

list

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

Отримує список образів.

Параметри:

Повертає:

Винятки:

build

public function build(array $parameters = [], array $config = []): array

Будує новий образ.

Параметри:

Повертає:

Винятки:

buildWithOptions

public function buildWithOptions(\Sangezar\DockerClient\Config\ImageBuildOptions $options): array

Будує образ за допомогою об’єкта ImageBuildOptions.

Параметри:

Повертає:

Винятки:

create

public function create(string $fromImage, ?string $tag = null): array

Створює образ завантаженням його з реєстру.

Параметри:

Повертає:

Винятки:

inspect

public function inspect(string $name): array

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

Параметри:

Повертає:

Винятки:

history

public function history(string $name): array

Отримує історію образу.

Параметри:

Повертає:

Винятки:

push

public function push(string $name, array $parameters = []): array

Відправляє образ до реєстру.

Параметри:

Повертає:

Винятки:

tag

public function tag(string $name, string $repo, ?string $tag = null): bool

Маркує образ новим іменем і тегом.

Параметри:

Повертає:

Винятки:

exists

public function exists(string $name): bool

Перевіряє, чи існує образ.

Параметри:

Повертає:

Винятки:

remove

public function remove(string $name, bool $force = false, bool $noprune = false): bool

Видаляє образ.

Параметри:

Повертає:

Винятки:

public function search(string $term): array

Шукає образи в реєстрі Docker Hub.

Параметри:

Повертає:

Винятки:

prune

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

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

Параметри:

Повертає:

Винятки:

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

Отримання списку образів

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createUnix();
$images = $client->image()->list(['all' => true]);

foreach ($images as $image) {
    $tags = $image['RepoTags'] ?? ['<none>:<none>'];
    echo "Образ: " . implode(', ', $tags) . ", розмір: " . $image['Size'] . " байт\n";
}

Завантаження образу з Docker Hub

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createUnix();
$result = $client->image()->create('nginx', 'latest');
echo "Образ nginx:latest успішно завантажений\n";

Маркування та видалення образу

use Sangezar\DockerClient\DockerClient;

$client = DockerClient::createUnix();
$imageName = 'nginx:latest';

if ($client->image()->exists($imageName)) {
    // Маркуємо образ новим іменем
    $client->image()->tag($imageName, 'my-nginx', 'v1');
    
    // Видаляємо оригінальний образ
    $client->image()->remove($imageName);
    
    echo "Образ {$imageName} перейменовано в my-nginx:v1 та видалено оригінал\n";
}