Skip to content

A PHP library for the Docker Engine API

License

Notifications You must be signed in to change notification settings

khs1994-docker/libdocker

Repository files navigation

Docker PHP SDK

GitHub stars PHP from Packagist GitHub (pre-)release Build Status StyleCI codecov

A PHP library for the Docker Engine API

微信订阅号

关注项目作者微信订阅号,接收项目最新动态

Installation

To Use Docker PHP Library, simply:

$ composer require khs1994/docker

For latest commit version:

$ composer require khs1994/docker @dev

Usage

<?php

require __DIR__.'/vendor/autoload.php';

use Docker\Docker;

$option = Docker::createOptionArray('127.0.0.1:2375');

// Connect TLS Docker Daemon

// $option = Docker::createOptionArray('123.123.123.133:2376',true,'/etc/docker/cert');

$docker = Docker::docker($option);

$docker_container = $docker->container;

$docker_image = $docker->image;

/*
 * $ docker run -it -d -v lnmp-data:/app php:7.2.8-fpm-alpine3.7 /bin/sh
 */

$image = 'php:7.2.8-fpm-alpine3.7';

$docker_image->pull($image);

$container_id = $docker_container
  ->setImage($image)
  ->setCmd(['/bin/sh'])
  ->setBinds(['lnmp-data:/app'])
  ->create(true);

$docker_container->start($container_id);

var_dump($docker_container->logs($container_id));

Laravel

$ php artisan vendor:publish --tag=config

Then edit config file config/docker.php

use Docker;

// call by facade
Docker::container()->list();

// call by helper function
docker()->container()->list();

// call by DI

class MyController
{
    public $docker;

    public function __construct(\Docker\Docker $docker)
    {
        $this->docker = $docker;
    }

    public function demo()
    {
        $this->docker->container()->list();
    }
}

Who use it?

PHP CaaS

Powered By khs1994-docker/lnmp