lialin / docker-php-client

该包最新版本(1.0)没有提供许可证信息。

1.0 2017-07-21 01:33 UTC

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"可用,并对该端点运行测试。