Skip to content

Soyhuce/laravel-docker

Repository files navigation

Docker

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status GitHub PHPStan Action Status Total Downloads

This package allows you to communicate with a Docker instance via unix socket or API.

API mode is based on API Docker Engine

Installation

You can install the package via composer:

composer require soyhuce/laravel-docker

Utilisation

Configuration

Publish configuration file via:

php artisan vendor:publish --provider="Soyhuce\Docker\ServiceProvider"

API

To use this package with API drive, you can expose Docker on HTTP port.

For example, you can do this:

socat TCP-LISTEN:<port-number>,reuseaddr,fork UNIX-CLIENT:<path-to-unix-socket>

So, in your configuration file, you have to define your configuration file like this:

[
    'driver' => 'api',
    'version' => 'v1.40',
    'drivers' => [
        'api' => [
            'url' => 'http://127.0.0.1:<port-number>',
        ]
    ],
]

You can also use the unix socket to connect to Docker :

[
    'driver' => 'api',
    'version' => 'v1.40',
    'drivers' => [
        'socket' => [
            'unix_socket' => '/var/run/docker.sock',
        ],
    ],
]

Working with Docker containers

  • create($imageName, $containerName) : Create a container from an image
  • start($containerId) : Start a container from its name or id
  • stop($containerId) : Stop a container from its name or id
  • wait($containerId) : Wait a container from its name or id
  • delete($containerId) : Delete a container from its name or id

Working with Docker images

  • create($imageName, $tagName) : Pull an image
  • all() : Retrieve all images on your Docker instance
  • remove($imageName) : Remove an image from its name