leoboiron / php-docker-manager
A PHP library to wrap Docker container management (start/stop).
Requires
- php: >=8.2
- symfony/http-client: ^7.2
This package is auto-updated.
Last update: 2025-06-27 21:49:01 UTC
README
PHP Docker Manager is a lightweight PHP library that provides an easy way to manage Docker containers (run/remove) from your PHP applications.
I developed this library for my personal needs. In consequence, it is not a complete Docker API client. It only provides the features I needed. See the API section for more details. Feel free to contribute to this project if you need more features.
Only the Docker Unix socket is supported. The TCP socket is not yet supported.
Requirements
- PHP extension
sockets
andcurl
must be enabled. - Docker socket rights: the user running the PHP script must be in the
docker
group or have the rights to access the Docker socket.
Installation
Install the library using Composer:
composer require leoboiron/php-docker-manager
Quick start
use PhpDockerManager\Container\Config; use PhpDockerManager\Manager; // Create the manager with the Unix socket. $manager = new Manager('unix:///var/run/docker.sock'); // Create a configuration for the container. // Image name and tag are required. $config = new Config('phpmyadmin/phpmyadmin', 'latest'); // Add some options. $config ->setName('my-phpmyadmin') ->addLabel('traefik.enable', 'true') ->setNetwork('traefik') ->addEnvVar('PMA_ARBITRARY', '1') ; // Run the container. $instance = $manager->run($config); // Get the status and id of the container. echo 'Container status: ' . $manager->getStatus($instance)->name . PHP_EOL; echo 'Container ID: ' . $instance->getId() . PHP_EOL; // Remove the container. $manager->remove($instance);
API
Run a container
$manager->run($config)
This method runs a container using the create and start methods. It returns the created instance. If the image is not available, it will be downloaded.
Create a container
$manager->create($config)
Create a container. It returns the created instance. The image must be available.
Start a container
$manager->start($instance)
Start a container. The container must be created before.
Get the status of a container
$manager->getStatus($instance)
Get the status of a container. It returns a StatusCase object. Possible values are: CREATED
, RUNNING
, RESTARTING
, EXITED
, PAUSED
, DEAD
.
Check if a container is running
$manager->isRunning($instance)
Check if a container is running. It returns a boolean.
Check if an image is available
$manager->isImageAvailable($image, $tag)
Check if an image is available. It returns a boolean.
Download an image
$manager->downloadImage($image, $tag)
Download an image using the tag.
Get an instance from its ID
$manager->getInstanceFromId($id)
Get an instance object from its ID.
Remove a container
$manager->remove($instance)
Remove a container. This method forces the removal of the container and removes the associated volumes.
License
This project is licensed under the GPL-3.0 License. See the LICENSE.md file for details.
Author
Léo Boiron - leo.boiron@gmail.com - https://leoboiron.fr