Container
- це клас для роботи з контейнерами Docker через API. Він надає методи для створення, запуску, зупинки, перезапуску, видалення та управління контейнерами Docker.
Sangezar\DockerClient\Api
Клас Container
успадковується від AbstractApi
та реалізує інтерфейс ContainerInterface
.
public const SIGNAL_HUP = 'SIGHUP';
public const SIGNAL_INT = 'SIGINT';
public const SIGNAL_QUIT = 'SIGQUIT';
public const SIGNAL_ILL = 'SIGILL';
public const SIGNAL_TRAP = 'SIGTRAP';
public const SIGNAL_ABRT = 'SIGABRT';
public const SIGNAL_BUS = 'SIGBUS';
public const SIGNAL_FPE = 'SIGFPE';
public const SIGNAL_KILL = 'SIGKILL';
public const SIGNAL_USR1 = 'SIGUSR1';
public const SIGNAL_SEGV = 'SIGSEGV';
public const SIGNAL_USR2 = 'SIGUSR2';
public const SIGNAL_PIPE = 'SIGPIPE';
public const SIGNAL_ALRM = 'SIGALRM';
public const SIGNAL_TERM = 'SIGTERM';
public const SIGNAL_STKFLT = 'SIGSTKFLT';
public const SIGNAL_CHLD = 'SIGCHLD';
public const SIGNAL_CONT = 'SIGCONT';
public const SIGNAL_STOP = 'SIGSTOP';
public const SIGNAL_TSTP = 'SIGTSTP';
public const SIGNAL_TTIN = 'SIGTTIN';
public const SIGNAL_TTOU = 'SIGTTOU';
public const SIGNAL_URG = 'SIGURG';
public const SIGNAL_XCPU = 'SIGXCPU';
public const SIGNAL_XFSZ = 'SIGXFSZ';
public const SIGNAL_VTALRM = 'SIGVTALRM';
public const SIGNAL_PROF = 'SIGPROF';
public const SIGNAL_WINCH = 'SIGWINCH';
public const SIGNAL_IO = 'SIGIO';
public const SIGNAL_PWR = 'SIGPWR';
public const SIGNAL_SYS = 'SIGSYS';
public const SIGNAL_POLL = 'SIGPOLL';
public function list(array $parameters = []): array
Отримує список контейнерів.
$parameters
- Масив параметрів для фільтрації результатів:
all
(bool) - Показати всі контейнери (за замовчуванням показуються тільки запущені)limit
(int) - Обмежити кількість результатівsize
(bool) - Показати розміри контейнерівfilters (array |
string) - Фільтри у форматі JSON |
InvalidParameterValueException
- якщо передані неприпустимі параметриpublic function create(ContainerConfig $config): array
Створює новий контейнер.
$config
- Об’єкт ContainerConfig
з конфігурацією контейнераMissingRequiredParameterException
- якщо відсутні обов’язкові параметриInvalidParameterValueException
- якщо передані неприпустимі параметриInvalidConfigurationException
- якщо конфігурація неприпустимаOperationFailedException
- якщо операція не вдаласяpublic function inspect(string $containerId): array
Отримує детальну інформацію про контейнер.
$containerId
- ID або ім’я контейнераMissingRequiredParameterException
- якщо ID контейнера порожнійNotFoundException
- якщо контейнер не знайденийpublic function start(string $containerId): bool
Запускає контейнер.
$containerId
- ID або ім’я контейнераtrue
, якщо контейнер успішно запущенийMissingRequiredParameterException
- якщо ID контейнера порожнійOperationFailedException
- якщо операція не вдаласяNotFoundException
- якщо контейнер не знайденийpublic function stop(string $containerId, int $timeout = 10): bool
Зупиняє контейнер.
$containerId
- ID або ім’я контейнера$timeout
- Таймаут у секундах перед примусовим зупиненням (за замовчуванням 10 секунд)true
, якщо контейнер успішно зупиненийMissingRequiredParameterException
- якщо ID контейнера порожнійOperationFailedException
- якщо операція не вдаласяNotFoundException
- якщо контейнер не знайденийpublic function restart(string $containerId, int $timeout = 10): bool
Перезапускає контейнер.
$containerId
- ID або ім’я контейнера$timeout
- Таймаут у секундах перед примусовим перезапуском (за замовчуванням 10 секунд)true
, якщо контейнер успішно перезапущенийMissingRequiredParameterException
- якщо ID контейнера порожнійOperationFailedException
- якщо операція не вдаласяNotFoundException
- якщо контейнер не знайденийpublic function kill(string $id, string $signal = null): bool
Вбиває контейнер, надсилаючи сигнал.
$id
- ID або ім’я контейнера$signal
- Сигнал для надсилання (за замовчуванням SIGKILL)true
, якщо контейнер успішно вбитийMissingRequiredParameterException
- якщо ID контейнера порожнійInvalidParameterValueException
- якщо сигнал неприпустимийOperationFailedException
- якщо операція не вдаласяNotFoundException
- якщо контейнер не знайденийpublic function remove(string $containerId, bool $force = false, bool $removeVolumes = false): bool
Видаляє контейнер.
$containerId
- ID або ім’я контейнера$force
- Форсувати видалення, навіть якщо контейнер запущений (за замовчуванням false
)$removeVolumes
- Видалити пов’язані томи (за замовчуванням false
)true
, якщо контейнер успішно видаленийMissingRequiredParameterException
- якщо ID контейнера порожнійOperationFailedException
- якщо операція не вдаласяNotFoundException
- якщо контейнер не знайденийpublic function logs(string $containerId, array $parameters = []): array
Отримує логи контейнера.
$containerId
- ID або ім’я контейнера$parameters
- Масив параметрів для фільтрації логів:
follow
(bool) - Слідкувати за логамиstdout
(bool) - Включити stdout (за замовчуванням true
)stderr
(bool) - Включити stderr (за замовчуванням true
)since
(int) - Мітка часу початку логівuntil
(int) - Мітка часу кінця логівtimestamps
(bool) - Включити мітки часуtail (string |
int) - Кількість рядків для виведення з кінця логів |
MissingRequiredParameterException
- якщо ID контейнера порожнійInvalidParameterValueException
- якщо передані неприпустимі параметриNotFoundException
- якщо контейнер не знайденийpublic function stats(string $containerId, bool $stream = false): array
Отримує статистику використання ресурсів контейнера.
$containerId
- ID або ім’я контейнера$stream
- Отримувати статистику в реальному часі (за замовчуванням false
)MissingRequiredParameterException
- якщо ID контейнера порожнійNotFoundException
- якщо контейнер не знайденийpublic function exists(string $containerId): bool
Перевіряє, чи існує контейнер.
$containerId
- ID або ім’я контейнераtrue
, якщо контейнер існує, false
- якщо ніMissingRequiredParameterException
- якщо ID контейнера порожнійuse Sangezar\DockerClient\DockerClient;
$client = DockerClient::createUnix();
$containers = $client->container()->list(['all' => true]);
foreach ($containers as $container) {
echo "Контейнер: {$container['Names'][0]}, статус: {$container['Status']}\n";
}
use Sangezar\DockerClient\DockerClient;
use Sangezar\DockerClient\Config\ContainerConfig;
$client = DockerClient::createUnix();
$config = new ContainerConfig();
$config->setName('my-container')
->setImage('nginx:latest')
->setExposedPorts(['80/tcp' => []])
->setHostConfig([
'PortBindings' => [
'80/tcp' => [['HostPort' => '8080']]
]
]);
$container = $client->container()->create($config);
$client->container()->start($container['Id']);
echo "Контейнер створено з ID: {$container['Id']}\n";
use Sangezar\DockerClient\DockerClient;
$client = DockerClient::createUnix();
$containerId = 'my-container';
if ($client->container()->exists($containerId)) {
$client->container()->stop($containerId);
$client->container()->remove($containerId);
echo "Контейнер {$containerId} зупинено та видалено\n";
}