vdauchy/docker-php-api

1.40 2021-09-24 16:00 UTC

This package is auto-updated.

Last update: 2024-09-13 18:36:19 UTC


README

Docker Engine API 是由 Docker Engine 提供的 HTTP API。它是 Docker 客户端用来与 Engine 通信的 API,因此 Docker 客户端能做的所有事情都可以通过这个 API 完成。

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

错误

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

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

版本控制

API 通常在每个版本中都会更改,因此 API 调用都是版本化的,以确保客户端不会中断。要锁定到特定版本的 API,请在 URL 前缀加上其版本,例如,调用 /v1.30/info 来使用 /info 端点的 v1.30 版本。如果 URL 中指定的 API 版本不受守护进程支持,将返回 HTTP 400 Bad Request 错误消息。

如果您省略版本前缀,则使用当前版本的 API(v1.41)。例如,调用 /info 与调用 /v1.41/info 相同。在没有版本前缀的情况下使用 API 已被弃用,并将在未来版本中删除。

未来即将发布的 Engine 版本应支持此版本的 API,因此即使您的客户端在与更新的 Engine 通信,它也能继续工作。

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

身份验证

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

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

serveraddress 是不带协议的域名/IP。在此结构中,双引号是必需的。

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

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

安装与使用

要求

PHP 7.3 及以上。也应与 PHP 8.0 兼容,但尚未经过测试。

Composer

要通过 Composer 安装绑定,请将以下内容添加到 composer.json

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/vdauchy/docker-php-api.git"
    }
  ],
  "require": {
    "vdauchy/docker-php-api": "^1.41"
  }
}

然后运行 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\UNKNOWN_BASE_TYPE(); // \OpenAPI\Client\Model\UNKNOWN_BASE_TYPE

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.41

模型

授权

所有端点都不需要授权。

测试

要运行测试,请使用

composer install
vendor/bin/phpunit

作者

关于此包

本PHP包由OpenAPI Generator项目自动生成

  • API版本:1.41
  • 构建包:org.openapitools.codegen.languages.PhpClientCodegen