tslol/docker-api-php

引擎API是Docker引擎提供的HTTP API。这是Docker客户端用于与引擎通信的API,因此客户端可以执行的所有操作都可以通过API执行。大多数客户端命令直接映射到API端点(例如,“docker ps”对应“GET /containers/json”)。以下

dev-main 2024-01-30 21:03 UTC

This package is auto-updated.

Last update: 2024-09-30 01:41:26 UTC


README

引擎API是Docker引擎提供的HTTP API。这是Docker客户端用于与引擎通信的API,因此客户端可以执行的所有操作都可以通过API执行。

大多数客户端命令直接映射到API端点(例如,`docker ps`对应`GET /containers/json`)。唯一的例外是运行容器,这需要多个API调用。

错误

API使用标准的HTTP状态码来指示API调用的成功或失败。响应体的格式如下

{
  \"message\": \"page not found\"
}

版本控制

API通常在每次发布时都会更改,因此API调用是版本化的,以确保客户端不会出错。为了锁定到API的特定版本,请使用URL的前缀,例如,调用`/v1.30/info`使用`/info`端点的v1.30版本。如果URL中指定的API版本不支持守护程序,将返回HTTP `400 Bad Request`错误信息。

如果省略版本前缀,则使用当前API版本(v1.44)。例如,调用`/info`与调用`/v1.44/info`相同。使用不带版本前缀的API已被弃用,将在未来的版本中删除。

即将发布的引擎版本应支持此版本的API,因此即使客户端与较新的引擎通信,客户端也将继续工作。

API使用开放的架构模型,这意味着服务器可能会在响应中添加额外的属性。同样,服务器将忽略任何额外的查询参数和请求体属性。在编写客户端时,您需要忽略响应中的额外属性,以确保在与较新的守护程序通信时不会出错。

身份验证

注册表的认证由客户端处理。客户端必须向需要与注册表通信的各种端点发送认证详情,例如`POST /images/(name)/push`。这些作为`X-Registry-Auth`头发送,作为以下结构的base64url编码(JSON)字符串

{
  \"username\": \"string\",
  \"password\": \"string\",
  \"email\": \"string\",
  \"serveraddress\": \"string\"
}

`serveraddress`是带有协议的域名/IP。在整个结构中,双引号是必需的。

如果您已经从`/auth`端点获取了身份令牌,您可以只需传递此令牌而不是凭证

{
  \"identitytoken\": \"9cbaf023786cd7...\"
}

安装与使用

要求

PHP 7.4及以后版本。也应与PHP 8.0兼容。

Composer

要使用Composer安装绑定,请将以下内容添加到`composer.json`中

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/tslol/docker-api-php.git"
    }
  ],
  "require": {
    "GIT_USER_ID/GIT_REPO_ID": "*@dev"
  }
}

然后运行`composer install`

手动安装

下载文件并包含`autoload.php`

<?php
require_once('/path/to/OpenAPIClient-php/vendor/autoload.php');

入门

请遵循安装过程,然后运行以下

<?php
require_once(__DIR__ . '/vendor/autoload.php');




$apiInstance = new OpenAPI\Client\Api\ConfigApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client()
);
$body = new \OpenAPI\Client\Model\ConfigCreateRequest(); // \OpenAPI\Client\Model\ConfigCreateRequest

try {
    $result = $apiInstance->configCreate($body);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling ConfigApi->configCreate: ', $e->getMessage(), PHP_EOL;
}

API端点

所有URI都是相对于https:///v1.44

模型

授权

端点不需要授权。

测试

要运行测试,请使用

composer install
vendor/bin/phpunit