xantios / docker

PHP中的简单易用的Docker API客户端

dev-master 2018-03-04 12:27 UTC

This package is auto-updated.

Last update: 2024-09-19 21:44:33 UTC


README

关于

使用PHP连接到Docker有几种方法,但它们都不适合我的特定需求。所以,我就像任何开发者一样,自己编写了解决方案。

虽然受到Laravel的启发,但您不必在Laravel中使用它。它应该是框架无关的。

安装

composer require xantios/docker 

使用

快速启动并运行
<?php
    
use Xantios\Docker\Client;
    
$client = new Client();
$all = $client->all(); // Gets all containers (as neat little objects)
   
foreach($all as $container) {
   var_dump($container); // Have a peak in the container
   
   // You can also call some methods on the containers
   $ports = $container->ports();
   var_dump($ports);
}   
一些美观的输出和更高级的使用示例
<?php

    use Xantios\Docker\Client;

        $client     = new Client();
        $containers = $client->all();

        foreach ($containers as $container) {

            print "Name :: " . $container->name() . " \r\n";

            print "Exposed :: \r\n";
            foreach ($container->exposed() as $exposed) {
                print '     ' . $exposed['protocol'] . '/' . $exposed['port'] . "\r\n";
            }
            print "\r\n";

            print "Network :: \r\n";
            print "IP:  " . $container->ip() . "\r\n";
            print "Mac: " . $container->mac() . "\r\n";
            print "\r\n";

            print "Portmap:: \r\n";
            $ports = $container->ports();
            foreach ($ports as $port) {
                print $port['container']['protocol'] . '/' . $port['container']['ip'] . ':' . $port['container']['port']
                    . '      =>      ' .
                    $port['host']['protocol'] . '/' . $port['host']['ip'] . ':' . $port['host']['port']
                    . "\r\n";
            }
            print "\r\n";

            print "Env :: \r\n";
            foreach ($container->env() as $k => $v) {
                print $k . '        ' . $v . "\r\n";
            }


            print "\r\n";
            print "-------------------------------------------------\r\n";