PHPackages                             acamposm/docker-engine-api-poller - 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. [Logging &amp; Monitoring](/categories/logging)
4. /
5. acamposm/docker-engine-api-poller

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

acamposm/docker-engine-api-poller
=================================

A Laravel package to allow laravel applications to query the Docker Engine API.

1.0.0(5y ago)1276MITPHPPHP &gt;=7.4

Since May 16Pushed 5y ago1 watchersCompare

[ Source](https://github.com/angelcamposm/docker-engine-api-poller)[ Packagist](https://packagist.org/packages/acamposm/docker-engine-api-poller)[ Docs](https://github.com/angelcamposm/docker-engine-api-poller)[ RSS](/packages/acamposm-docker-engine-api-poller/feed)WikiDiscussions master Synced 2d ago

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

[![License](https://camo.githubusercontent.com/c121accbd01c2bd80504a7b38220406527ed61c447145fcd5c18b5030a227233/68747470733a2f2f706f7365722e707567782e6f72672f6163616d706f736d2f646f636b65722d656e67696e652d6170692d706f6c6c65722f6c6963656e7365)](https://packagist.org/packages/acamposm/docker-engine-api-poller)[![Latest Stable Version](https://camo.githubusercontent.com/a17197d4b8c8dbb872bfe1a4cd113038508c8f9a8ae1459d99024170a4867347/68747470733a2f2f706f7365722e707567782e6f72672f6163616d706f736d2f646f636b65722d656e67696e652d6170692d706f6c6c65722f76)](https://packagist.org/packages/acamposm/docker-engine-api-poller)[![Latest Unstable Version](https://camo.githubusercontent.com/9dc5f64f6a4006c54721a7bd4f70110d4b8b2035bb131216464cec6ba1645860/68747470733a2f2f706f7365722e707567782e6f72672f6163616d706f736d2f646f636b65722d656e67696e652d6170692d706f6c6c65722f762f756e737461626c65)](https://packagist.org/packages/acamposm/docker-engine-api-poller)[![CodeFactor](https://camo.githubusercontent.com/bbdbef039bd107679f87e79631683674c4f95f757e2fbabb8bf314b96ec47d5b/68747470733a2f2f7777772e636f6465666163746f722e696f2f7265706f7369746f72792f6769746875622f616e67656c63616d706f736d2f646f636b65722d656e67696e652d6170692d706f6c6c65722f6261646765)](https://www.codefactor.io/repository/github/angelcamposm/docker-engine-api-poller)[![StyleCI](https://camo.githubusercontent.com/51d8b1bb01f88fdd3fea96f6e49016631683167cda53744bb4616fe9220cd9f2/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3239373138323430352f736869656c643f6272616e63683d6d6173746572267374796c653d666c6174)](https://github.styleci.io/repos/297182405)[![Total Downloads](https://camo.githubusercontent.com/d9181df6439a124913a406fe2ee8f24a206492ae5f508640de8c8de1536c2b86/68747470733a2f2f706f7365722e707567782e6f72672f6163616d706f736d2f646f636b65722d656e67696e652d6170692d706f6c6c65722f646f776e6c6f616473)](https://packagist.org/packages/acamposm/docker-engine-api-poller)

Docker Poller for Laravel
=========================

[](#docker-poller-for-laravel)

---

This package allows Laravel applications to interact with the Docker Engine API.

The Docker Engine API is an HTTP API served by Docker Engine. It is the API the Docker client uses to communicate with the Engine, so everything the Docker client can do can be done with the API.

- [Installation](#installation)
- [Requirements](#requirements)
- [Usage](#usage)
    - [Basic Initialization](#basic-initialization)
    - [API Resources](#api-resources)
        - [Containers](#containers)
        - [Images](#images)
        - [Networks](#networks)
        - [Volumes](#volumes)
- [Testing](#testing)

Installation
------------

[](#installation)

You can install the package via [composer](https://getcomposer.org/) and then publish the assets:

```
composer require acamposm/docker-poller

php artisan vendor:publish --provider="Acamposm\DockerEngineApiPoller\DockerPollerServiceProvider"
```

***Note:*** We try to follow [SemVer v2.0.0](https://semver.org/).

Requirements
------------

[](#requirements)

To use this packet, you must enable first the Docker Engine API, normally the Engine API listens on port 2375, but it is configurable.

***Note:*** In production environments, you must always secure the API with SSL encryption and control who can perform request to this API.

Usage
-----

[](#usage)

### Basic Initialization

[](#basic-initialization)

First, create a DockerServer instance with the details of the docker server hosts.

***Note:*** By default, the DockerServer class uses the default port (2375) and the protocol (http) of the Docker Engine API.

#### Docker Engine API over HTTP

[](#docker-engine-api-over-http)

```
use Acamposm\DockerEngineApiPoller\DockerServer;

$server = (new DockerServer())->server('localhost');
```

or

```
use Acamposm\DockerEngineApiPoller\DockerServer;

$server = (new DockerServer())->insecure()->port(12375)->server('localhost');
```

#### Docker Engine API over HTTPS

[](#docker-engine-api-over-https)

```
use Acamposm\DockerEngineApiPoller\DockerServer;

$server = (new DockerServer())->secure()->server('localhost');
```

or

```
use Acamposm\DockerEngineApiPoller\DockerServer;

$server = (new DockerServer())->secure()->port(12375)->server('localhost');
```

### API Resources

[](#api-resources)

#### Containers

[](#containers)

##### Get Containers List

[](#get-containers-list)

Get a list of the running containers in the docker host.

```
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;

$server = (new DockerServer())->server('192.168.10.101');

$containers_list = (new DockerApiRequest($server))
  ->containers(ResourceMethods::CONTAINERS_LIST)
  ->get();
```

##### Get Container Details

[](#get-container-details)

To get the full details of a container...

```
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;

$server = (new DockerServer())->server('192.168.10.101');

$container_details = (new DockerApiRequest($server))
  ->containers(ResourceMethods::CONTAINERS_INSPECT, 'container_name')
  ->get();
```

##### Get Container Stats

[](#get-container-stats)

Get the resources used by a single container, then use the class ContainerMetrics to get the usage of a container.

```
use Acamposm\DockerEngineApiPoller\ContainerMetrics;
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;
$server = (new DockerServer())->server('192.168.10.101');

$container_stats = (new DockerApiRequest($server))
  ->containers(ResourceMethods::CONTAINERS_STATS, 'container_name')
  ->get();

$metrics = (new ContainerMetrics($container_stats))->metrics();

var_dump($metrics);
```

The result will be a json object with the container statistics, ready to save to a database.

```
{
  "timestamp": "2020-09-20T19:00:05.491127778Z",
  "id": "2206b35c6fecc6ce320effb68492d8a79fd5f2e5f230dda9371fca8c822428df",
  "name": "/nextcloud",
  "cpu": {
    "count": 2,
    "percent_free": 99.9960912,
    "percent_used": 0.0039088
  },
  "memory": {
    "free": 8236134400,
    "used": 105889792,
    "total": 8342024192,
    "percent_free": 98.730646308823,
    "percent_used": 1.2693536911766
  },
  "network": [
    {
      "eth0": {
        "rx_bytes": 3337270,
        "rx_packets": 3306,
        "rx_errors": 0,
        "rx_dropped": 0,
        "tx_bytes": 1002431,
        "tx_packets": 2090,
        "tx_errors": 0,
        "tx_dropped": 0
      }
    }
  ]
}
```

#### Images

[](#images)

##### Get Images List

[](#get-images-list)

To get a list with all images on the docker host.

```
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;

$server = (new DockerServer())->server('192.168.10.101');

$images = (new DockerApiRequest($server))
  ->images(ResourceMethods::IMAGES_LIST)
  ->get();
```

##### Get Image Details

[](#get-image-details)

To get the full details of an image.

```
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;

$server = (new DockerServer())->server('192.168.10.101');

$image_details = (new DockerApiRequest($server))
  ->images(ResourceMethods::IMAGES_INSPECT, 'image_name')
  ->get();
```

#### Networks

[](#networks)

##### Get Networks List

[](#get-networks-list)

```
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;

$server = (new DockerServer())->server('192.168.10.101');

$networks = (new DockerApiRequest($server))
  ->networks(ResourceMethods::NETWORKS_LIST)
  ->get();
```

##### Get Network Details

[](#get-network-details)

To get the full details of a network in the docker host.

```
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;

$server = (new DockerServer())->server('192.168.10.101');

$network_details = (new DockerApiRequest($server))
  ->networks(ResourceMethods::NETWORKS_INSPECT, 'network_name')
  ->get();
```

#### Volumes

[](#volumes)

##### Get Volumes List

[](#get-volumes-list)

Get a list of volumes in the docker host.

```
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;

$server = (new DockerServer())->server('192.168.10.101');

$volumes = (new DockerApiRequest($server))
  ->volumes(ResourceMethods::VOLUMES_LIST)
  ->get();
```

##### Get Volume Details

[](#get-volume-details)

Get a list of volumes in the docker host.

```
use Acamposm\DockerEngineApiPoller\DockerServer;
use Acamposm\DockerEngineApiPoller\DockerApiRequest;
use Acamposm\DockerEngineApiPoller\Enums\ResourceMethods;

$server = (new DockerServer())->server('192.168.10.101');

$volume_details = (new DockerApiRequest($server))
  ->volumes(ResourceMethods::VOLUMES_INSPECT, 'volume_name')
  ->get();
```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Thank you for considering contributing to the improvement of the package. Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

If you discover any security related issues, please send an e-mail to Angel Campos via  instead of using the issue tracker. All security vulnerabilities will be promptly addressed.

Credits
-------

[](#credits)

- [Angel Campos](https://github.com/angelcamposm)

License
-------

[](#license)

The package Ping is open-source package and is licensed under The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

27

—

LowBetter than 46% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.4% 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

1919d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/abe2ce7c293312ef08e979cc3254362328d7b5a1a73c24656afd6077f3b0f2ad?d=identicon)[angel.campos.m](/maintainers/angel.campos.m)

---

Top Contributors

[![angelcamposm](https://avatars.githubusercontent.com/u/63554840?v=4)](https://github.com/angelcamposm "angelcamposm (17 commits)")[![spekulatius](https://avatars.githubusercontent.com/u/8433587?v=4)](https://github.com/spekulatius "spekulatius (1 commits)")

---

Tags

dockerdocker-clientdocker-engine-apidocker-pollerenginelaravelmonitoringphpphp7pollingphpapilaravelpackageMetricsdocker

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/acamposm-docker-engine-api-poller/health.svg)

```
[![Health](https://phpackages.com/badges/acamposm-docker-engine-api-poller/health.svg)](https://phpackages.com/packages/acamposm-docker-engine-api-poller)
```

###  Alternatives

[leventcz/laravel-top

Real-time monitoring straight from the command line for Laravel applications.

584119.3k1](/packages/leventcz-laravel-top)[joisarjignesh/bigbluebutton

BigBlueButton Server API Library for Laravel

162158.4k1](/packages/joisarjignesh-bigbluebutton)[renoki-co/octane-exporter

Export Laravel Octane metrics using this Prometheus exporter.

30128.9k](/packages/renoki-co-octane-exporter)[iamfarhad/laravel-prometheus

Production-ready Laravel Prometheus metrics package with built-in collectors for HTTP, database, cache, queue, events, errors, filesystem, and mail monitoring

112.2k](/packages/iamfarhad-laravel-prometheus)

PHPackages © 2026

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