PHPackages                             leoboiron/php-docker-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. leoboiron/php-docker-manager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

leoboiron/php-docker-manager
============================

A PHP library to wrap Docker container management (start/stop).

1.0.0(1y ago)11GPL-3.0PHPPHP &gt;=8.2

Since Jan 27Pushed 1y ago1 watchersCompare

[ Source](https://github.com/leoboiron/php-docker-manager)[ Packagist](https://packagist.org/packages/leoboiron/php-docker-manager)[ RSS](/packages/leoboiron-php-docker-manager/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

PHP Docker Manager
==================

[](#php-docker-manager)

**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
------------

[](#requirements)

- PHP extension `sockets` and `curl` 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
------------

[](#installation)

Install the library using Composer:

```
composer require leoboiron/php-docker-manager
```

Quick start
-----------

[](#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
---

[](#api)

### Run a container

[](#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

[](#create-a-container)

```
$manager->create($config)
```

Create a container. It returns the created instance. The image must be available.

### Start a container

[](#start-a-container)

```
$manager->start($instance)
```

Start a container. The container must be created before.

### Get the status of a container

[](#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

[](#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

[](#check-if-an-image-is-available)

```
$manager->isImageAvailable($image, $tag)
```

Check if an image is available. It returns a boolean.

### Download an image

[](#download-an-image)

```
$manager->downloadImage($image, $tag)
```

Download an image using the tag.

### Get an instance from its ID

[](#get-an-instance-from-its-id)

```
$manager->getInstanceFromId($id)
```

Get an instance object from its ID.

### Remove a container

[](#remove-a-container)

```
$manager->remove($instance)
```

Remove a container. This method forces the removal of the container and removes the associated volumes.

License
-------

[](#license)

This project is licensed under the GPL-3.0 License. See the LICENSE.md file for details.

Author
------

[](#author)

Léo Boiron -  -

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance39

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

523d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4943385?v=4)[Léo Boiron](/maintainers/leoboiron)[@leoboiron](https://github.com/leoboiron)

---

Top Contributors

[![leoboiron](https://avatars.githubusercontent.com/u/4943385?v=4)](https://github.com/leoboiron "leoboiron (2 commits)")

### Embed Badge

![Health badge](/badges/leoboiron-php-docker-manager/health.svg)

```
[![Health](https://phpackages.com/badges/leoboiron-php-docker-manager/health.svg)](https://phpackages.com/packages/leoboiron-php-docker-manager)
```

###  Alternatives

[symfony/asset-mapper

Maps directories of assets &amp; makes them available in a public directory with versioned filenames.

1678.8M238](/packages/symfony-asset-mapper)[internal/dload

Downloads binaries.

102212.3k19](/packages/internal-dload)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
