leibbrand-development/php-docker-client

引擎API是由Docker引擎提供的一个HTTP API。它是Docker客户端用于与引擎通信的API,因此Docker客户端可以执行的操作都可以通过API执行。客户端的大部分命令直接映射到API端点(例如,`docker ps`映射到`GET /containers/json`)。以下

dev-main 2021-08-02 19:18 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:43 UTC


README

引擎API是由Docker引擎提供的一个HTTP API。它是Docker客户端用于与引擎通信的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已被弃用,并将在未来版本中删除。

不久将来的引擎版本应该支持此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.2及其以上版本。

Composer

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

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/leibbrand-development/php-docker-client.git"
    }
  ],
  "require": {
    "leibbrand-development/php-docker-client": "*@dev"
  }
}

然后运行composer install

手动安装

下载文件并包含autoload.php

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

入门

请按照安装说明进行操作,然后运行以下命令

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




$apiInstance = new ld\php\dockerClient\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 \ld\php\dockerClient\Model\UNKNOWN_BASE_TYPE(); // \ld\php\dockerClient\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

方法HTTP请求描述
ConfigApiconfigCreatePOST /configs/create创建配置
ConfigApiconfigDelete删除 /configs/{id}删除配置
ConfigApiconfigInspectGET /configs/{id}检查配置
ConfigApiconfigListGET /configs列出配置
ConfigApiconfigUpdatePOST /configs/{id}/update更新配置
ContainerApicontainerArchiveGET /containers/{id}/archive获取容器中文件系统的归档
ContainerApicontainerArchiveInfoHEAD /containers/{id}/archive获取容器中文件的信息
ContainerApicontainerAttachPOST /containers/{id}/attach连接到容器
ContainerApicontainerAttachWebsocketGET /containers/{id}/attach/ws通过WebSocket连接到容器
ContainerApicontainerChangesGET /containers/{id}/changes获取容器文件系统上的更改
ContainerApicontainerCreatePOST /containers/create创建容器
ContainerApicontainerDeleteDELETE /containers/{id}移除容器
ContainerApicontainerExportGET /containers/{id}/export导出容器
ContainerApicontainerInspectGET /containers/{id}/json检查容器
ContainerApicontainerKillPOST /containers/{id}/kill杀死容器
ContainerApicontainerListGET /containers/json列出容器
ContainerApicontainerLogsGET /containers/{id}/logs获取容器日志
ContainerApicontainerPausePOST /containers/{id}/pause暂停容器
ContainerApicontainerPrunePOST /containers/prune删除停止的容器
ContainerApicontainerRenamePOST /containers/{id}/rename重命名容器
ContainerApicontainerResizePOST /containers/{id}/resize调整容器 TTY 的大小
ContainerApicontainerRestartPOST /containers/{id}/restart重启容器
ContainerApicontainerStartPOST /containers/{id}/start启动容器
ContainerApicontainerStatsGET /containers/{id}/stats根据资源使用情况获取容器统计信息
ContainerApicontainerStopPOST /containers/{id}/stop停止容器
ContainerApicontainerTopGET /containers/{id}/top列出容器内运行的进程
ContainerApicontainerUnpausePOST /containers/{id}/unpause取消暂停容器
ContainerApicontainerUpdatePOST /containers/{id}/update更新容器
ContainerApicontainerWaitPOST /containers/{id}/wait等待容器
ContainerApiputContainerArchivePUT /containers/{id}/archive将文件或文件夹的归档提取到容器中的目录
DistributionApidistributionInspectGET /distribution/{name}/json从仓库获取镜像信息
ExecApicontainerExecPOST /containers/{id}/exec创建一个执行实例
ExecApiexecInspectGET /exec/{id}/json检查执行实例
ExecApiexecResizePOST /exec/{id}/resize调整执行实例的大小
ExecApiexecStartPOST /exec/{id}/start启动执行实例
ImageApibuildPrunePOST /build/prune删除构建器缓存
ImageApiimageBuildPOST /build构建镜像
ImageApiimageCommitPOST /commit从容器创建新的镜像
ImageApiimageCreatePOST /images/create创建镜像
ImageApiimageDeleteDELETE /images/{name}移除镜像
ImageApiimageGetGET /images/{name}/get导出镜像
ImageApiimageGetAllGET /images/get导出多个镜像
ImageApiimageHistoryGET /images/{name}/history获取镜像的历史记录
ImageApiimageInspectGET /images/{name}/json检查镜像
ImageApiimageListGET /images/json列出图像
ImageApiimageLoadPOST /images/load导入图像
ImageApiimagePrunePOST /images/prune删除未使用的图像
ImageApiimagePushPOST /images/{name}/push推送一个图像
ImageApiimageSearchGET /images/search搜索图像
ImageApiimageTagPOST /images/{name}/tag标记一个图像
NetworkApinetworkConnectPOST /networks/{id}/connect将容器连接到网络
NetworkApinetworkCreatePOST /networks/create创建网络
NetworkApinetworkDeleteDELETE /networks/{id}删除网络
NetworkApinetworkDisconnectPOST /networks/{id}/disconnect从网络断开容器
NetworkApinetworkInspectGET /networks/{id}检查网络
NetworkApinetworkListGET /networks列出网络
NetworkApinetworkPrunePOST /networks/prune删除未使用的网络
NodeApinodeDeleteDELETE /nodes/{id}删除一个节点
NodeApinodeInspectGET /nodes/{id}检查节点
NodeApinodeListGET /nodes列出节点
NodeApinodeUpdatePOST /nodes/{id}/update更新一个节点
PluginApigetPluginPrivilegesGET /plugins/privileges获取插件权限
PluginApipluginCreatePOST /plugins/create创建插件
PluginApipluginDeleteDELETE /plugins/{name}删除插件
PluginApipluginDisablePOST /plugins/{name}/disable禁用插件
PluginApipluginEnablePOST /plugins/{name}/enable启用插件
PluginApipluginInspectGET /plugins/{name}/json检查插件
PluginApipluginListGET /plugins列出插件
PluginApipluginPullPOST /plugins/pull安装插件
PluginApipluginPushPOST /plugins/{name}/push推送插件
PluginApipluginSetPOST /plugins/{name}/set配置插件
PluginApipluginUpgradePOST /plugins/{name}/upgrade升级插件
SecretApisecretCreatePOST /secrets/create创建密钥
SecretApisecretDeleteDELETE /secrets/{id}删除密钥
SecretApisecretInspectGET /secrets/{id}检查密钥
SecretApisecretListGET /secrets列出密钥
SecretApisecretUpdatePOST /secrets/{id}/update更新密钥
ServiceApiserviceCreatePOST /services/create创建服务
ServiceApiserviceDeleteDELETE /services/{id}删除服务
ServiceApiserviceInspectGET /services/{id}检查服务
ServiceApiserviceListGET /services列出服务
ServiceApiserviceLogsGET /services/{id}/logs获取服务日志
ServiceApiserviceUpdatePOST /services/{id}/update更新服务
SessionApisessionPOST /session初始化交互式会话
SwarmApiswarmInitPOST /swarm/init初始化一个新的swarm
SwarmApiswarmInspectGET /swarm检查swarm
SwarmApiswarmJoinPOST /swarm/join加入现有的swarm
SwarmApiswarmLeavePOST /swarm/leave离开swarm
SwarmApiswarmUnlockPOST /swarm/unlock解锁锁定的管理器
SwarmApiswarmUnlockkeyGET /swarm/unlockkey获取解锁密钥
SwarmApiswarmUpdatePOST /swarm/update更新swarm
系统API系统认证POST /auth检查认证配置
系统API系统数据使用GET /system/df获取数据使用信息
系统API系统事件GET /events监控事件
系统API系统信息GET /info获取系统信息
系统API系统pingGET /_pingPing
系统API系统ping头HEAD /_pingPing
系统API系统版本GET /version获取版本
任务API任务检查GET /tasks/{id}检查任务
任务API任务列表GET /tasks列出任务
任务API任务日志GET /tasks/{id}/logs获取任务日志
卷API创建卷POST /volumes/create创建卷
卷API删除卷DELETE /volumes/{name}移除卷
卷API检查卷GET /volumes/{name}检查卷
卷API卷列表GET /volumes列出卷
卷API修剪卷POST /volumes/prune删除未使用的卷

模型

授权

所有端点都不需要授权。

测试

要运行测试,请使用

composer install
vendor/bin/phpunit

作者

关于此包

此PHP包是由OpenAPI Generator项目自动生成的

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