lialin / docker-php-client
该包最新版本(1.0)没有提供许可证信息。
1.0
2017-07-21 01:33 UTC
Requires (Dev)
- phpunit/phpunit: 5.1.*
This package is not auto-updated.
Last update: 2024-09-28 20:20:11 UTC
README
安装
通过composer安装
{
"require": {
"lialin/docker-php-client": "0.9.*"
}
}
用法
ApiClient通过HTTP连接到Docker远程API。您可以使用容器"jarkt/docker-remote-api"使API可用。
首先创建一个ApiClient实例。
\jarkt\docker\ApiClient::construct ($host, $port [, $version ] )
示例
$docker = new ApiClient(getenv('API_PORT_2375_TCP_ADDR'), getenv('API_PORT_2375_TCP_PORT'), 'v1.21');
(哈哈,就像1.21吉瓦一样:-)
您可以使用各种类型的请求方法来执行API调用。有get、head、delete、post和put。签名是相同的
method ($path [, array $params [, requestHandlers\RequestHandler $requestHandler ]] )
对于您的调用,您必须提供请求路径和可选的请求参数数组。一些请求需要在请求体中提供数据 - 对于这些请求,您也可以提供一个实现requestHandlers\RequestHandler的实例。这些实现为http api请求准备特定类型的数据。
以下是一些示例
$response = $docker->get('/containers/json');
$response = $docker->head('/containers/4fa6e0f0c678/archive', ['path' => '/path/on/container']);
$response = $docker->post('/containers/create', [], new requestHandlers\Json(['Image' => '4fa6e0f0c678']));
$response = $docker->put( '/containers/4fa6e0f0c678/archive', ['path' => '/path/on/container'], new requestHandlers\Files('/path/on/local/machine') );
从响应中,您可以获取状态码,以决定需要哪种类型的ResponseHandler。使用responseHandler\ResponseHandler从响应中获取信息或在本地机器上启动操作,如解压tar存档。
以下是一些示例
$response = $docker->get('/containers/json'); if($response->getStatus() === 200) { $responseHandler = new responseHandlers\Json($response); $containers = $responseHandler->getData(); var_dump($containers); }
$response = $docker->get('/containers/4fa6e0f0c678/archive', ['path' => '/path/on/container']); if($response->getStatus() === 200) { $responseHandler = new responseHandlers\Files($response); $stat = json_decode(base64_decode($responseHandler->getHeader('x-docker-container-path-stat')), true); var_dump($stat); $responseHandler->extract('/path/on/local/machine'); }
提示
使用环境变量HOSTNAME作为您主机的容器ID。
开发者
测试在docker容器内运行。通过进入"containers"文件夹并运行docker-compose -f install.yml up来安装所有测试依赖项。
使用docker-compose -f update.yml up更新依赖项
使用docker-compose up运行测试
这将使API通过容器"jarkt/docker-remote-api"可用,并对该端点运行测试。