Image - це клас для роботи з образами Docker через API. Він надає методи для створення, завантаження, отримання інформації, маркування (тегування) та видалення образів Docker.
Sangezar\DockerClient\Api
Клас Image успадковується від AbstractApi та реалізує інтерфейс ImageInterface.
public function list(array $parameters = []): array
Отримує список образів.
$parameters - Масив параметрів для фільтрації результатів:
all (bool) - Показати всі образи (за замовчуванням приховує проміжні образи)filters (array |
string) - Фільтри для застосування у форматі JSON або масиву |
digests (bool) - Показати інформацію про дайджестиInvalidParameterValueException - якщо передані неприпустимі параметриpublic function build(array $parameters = [], array $config = []): array
Будує новий образ.
$parameters - Параметри запиту для побудови:
t (string) - Ім’я та тег для побудованого образуq (bool) - Пригнічувати детальний вивід побудовиnocache (bool) - Не використовувати кеш при побудові образуpull (bool |
string) - Завантажити образ перед побудовою |
rm (bool) - Видалити проміжні контейнери після успішної побудовиforcerm (bool) - Завжди видаляти проміжні контейнери$config - Конфігурація для контексту побудовиInvalidParameterValueException - якщо передані неприпустимі параметриOperationFailedException - якщо побудова не вдаласяpublic function buildWithOptions(\Sangezar\DockerClient\Config\ImageBuildOptions $options): array
Будує образ за допомогою об’єкта ImageBuildOptions.
$options - Конфігураційні опції для побудови образуInvalidParameterValueException - якщо передані неприпустимі параметриOperationFailedException - якщо побудова не вдаласяpublic function create(string $fromImage, ?string $tag = null): array
Створює образ завантаженням його з реєстру.
$fromImage - Ім’я вихідного образу$tag - Тег для завантаження (за замовчуванням ‘latest’)MissingRequiredParameterException - якщо fromImage порожнійInvalidParameterValueException - якщо формат імені образу або тегу неприпустимийOperationFailedException - якщо завантаження не вдалосяpublic function inspect(string $name): array
Отримує детальну інформацію про образ.
$name - Ім’я або ID образуMissingRequiredParameterException - якщо ім’я образу порожнєNotFoundException - якщо образ не знайденийpublic function history(string $name): array
Отримує історію образу.
$name - Ім’я або ID образуMissingRequiredParameterException - якщо ім’я образу порожнєNotFoundException - якщо образ не знайденийpublic function push(string $name, array $parameters = []): array
Відправляє образ до реєстру.
$name - Ім’я образу$parameters - Додаткові параметри:
tag (string) - Тег для відправкиMissingRequiredParameterException - якщо ім’я образу порожнєOperationFailedException - якщо відправлення не вдалосяpublic function tag(string $name, string $repo, ?string $tag = null): bool
Маркує образ новим іменем і тегом.
$name - Ім’я або ID образу$repo - Нове ім’я репозиторію для образу$tag - Новий тег (за замовчуванням ‘latest’)true, якщо образ успішно поміченийMissingRequiredParameterException - якщо обов’язкові параметри порожніInvalidParameterValueException - якщо формат репозиторію або тегу неприпустимийOperationFailedException - якщо маркування не вдалосяNotFoundException - якщо образ не знайденийpublic function exists(string $name): bool
Перевіряє, чи існує образ.
$name - Ім’я або ID образуtrue, якщо образ існує, false - якщо ніMissingRequiredParameterException - якщо ім’я образу порожнєpublic function remove(string $name, bool $force = false, bool $noprune = false): bool
Видаляє образ.
$name - Ім’я або ID образу$force - Форсувати видалення (за замовчуванням false)$noprune - Не видаляти невикористані батьківські шари (за замовчуванням false)true, якщо образ успішно видаленийMissingRequiredParameterException - якщо ім’я образу порожнєOperationFailedException - якщо видалення не вдалосяNotFoundException - якщо образ не знайденийpublic function search(string $term): array
Шукає образи в реєстрі Docker Hub.
$term - Пошуковий запитMissingRequiredParameterException - якщо пошуковий запит порожнійOperationFailedException - якщо пошук не вдавсяpublic function prune(array $filters = []): array
Видаляє невикористані образи.
$filters - Фільтри для вибору образів для очищення:
dangling (bool) - Видалити тільки висячі образи (образи без тегів)until (string) - Видалити образи, створені до вказаного часуlabel (string) - Видалити образи з вказаними міткамиInvalidParameterValueException - якщо фільтри неприпустиміOperationFailedException - якщо очищення не вдалося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";
}
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";
}