leibbrand-development / php-docker-client
引擎API是由Docker引擎提供的一个HTTP API。它是Docker客户端用于与引擎通信的API,因此Docker客户端可以执行的操作都可以通过API执行。客户端的大部分命令直接映射到API端点(例如,`docker ps`映射到`GET /containers/json`)。以下
Requires
- php: ^7.2|^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.0.1
- guzzlehttp/psr7: ^1.8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.12
- phpunit/phpunit: ^8.0 || ^9.0
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请求 | 描述 |
|---|---|---|---|
| ConfigApi | configCreate | POST /configs/create | 创建配置 |
| ConfigApi | configDelete | 删除 /configs/{id} | 删除配置 |
| ConfigApi | configInspect | GET /configs/{id} | 检查配置 |
| ConfigApi | configList | GET /configs | 列出配置 |
| ConfigApi | configUpdate | POST /configs/{id}/update | 更新配置 |
| ContainerApi | containerArchive | GET /containers/{id}/archive | 获取容器中文件系统的归档 |
| ContainerApi | containerArchiveInfo | HEAD /containers/{id}/archive | 获取容器中文件的信息 |
| ContainerApi | containerAttach | POST /containers/{id}/attach | 连接到容器 |
| ContainerApi | containerAttachWebsocket | GET /containers/{id}/attach/ws | 通过WebSocket连接到容器 |
| ContainerApi | containerChanges | GET /containers/{id}/changes | 获取容器文件系统上的更改 |
| ContainerApi | containerCreate | POST /containers/create | 创建容器 |
| ContainerApi | containerDelete | DELETE /containers/{id} | 移除容器 |
| ContainerApi | containerExport | GET /containers/{id}/export | 导出容器 |
| ContainerApi | containerInspect | GET /containers/{id}/json | 检查容器 |
| ContainerApi | containerKill | POST /containers/{id}/kill | 杀死容器 |
| ContainerApi | containerList | GET /containers/json | 列出容器 |
| ContainerApi | containerLogs | GET /containers/{id}/logs | 获取容器日志 |
| ContainerApi | containerPause | POST /containers/{id}/pause | 暂停容器 |
| ContainerApi | containerPrune | POST /containers/prune | 删除停止的容器 |
| ContainerApi | containerRename | POST /containers/{id}/rename | 重命名容器 |
| ContainerApi | containerResize | POST /containers/{id}/resize | 调整容器 TTY 的大小 |
| ContainerApi | containerRestart | POST /containers/{id}/restart | 重启容器 |
| ContainerApi | containerStart | POST /containers/{id}/start | 启动容器 |
| ContainerApi | containerStats | GET /containers/{id}/stats | 根据资源使用情况获取容器统计信息 |
| ContainerApi | containerStop | POST /containers/{id}/stop | 停止容器 |
| ContainerApi | containerTop | GET /containers/{id}/top | 列出容器内运行的进程 |
| ContainerApi | containerUnpause | POST /containers/{id}/unpause | 取消暂停容器 |
| ContainerApi | containerUpdate | POST /containers/{id}/update | 更新容器 |
| ContainerApi | containerWait | POST /containers/{id}/wait | 等待容器 |
| ContainerApi | putContainerArchive | PUT /containers/{id}/archive | 将文件或文件夹的归档提取到容器中的目录 |
| DistributionApi | distributionInspect | GET /distribution/{name}/json | 从仓库获取镜像信息 |
| ExecApi | containerExec | POST /containers/{id}/exec | 创建一个执行实例 |
| ExecApi | execInspect | GET /exec/{id}/json | 检查执行实例 |
| ExecApi | execResize | POST /exec/{id}/resize | 调整执行实例的大小 |
| ExecApi | execStart | POST /exec/{id}/start | 启动执行实例 |
| ImageApi | buildPrune | POST /build/prune | 删除构建器缓存 |
| ImageApi | imageBuild | POST /build | 构建镜像 |
| ImageApi | imageCommit | POST /commit | 从容器创建新的镜像 |
| ImageApi | imageCreate | POST /images/create | 创建镜像 |
| ImageApi | imageDelete | DELETE /images/{name} | 移除镜像 |
| ImageApi | imageGet | GET /images/{name}/get | 导出镜像 |
| ImageApi | imageGetAll | GET /images/get | 导出多个镜像 |
| ImageApi | imageHistory | GET /images/{name}/history | 获取镜像的历史记录 |
| ImageApi | imageInspect | GET /images/{name}/json | 检查镜像 |
| ImageApi | imageList | GET /images/json | 列出图像 |
| ImageApi | imageLoad | POST /images/load | 导入图像 |
| ImageApi | imagePrune | POST /images/prune | 删除未使用的图像 |
| ImageApi | imagePush | POST /images/{name}/push | 推送一个图像 |
| ImageApi | imageSearch | GET /images/search | 搜索图像 |
| ImageApi | imageTag | POST /images/{name}/tag | 标记一个图像 |
| NetworkApi | networkConnect | POST /networks/{id}/connect | 将容器连接到网络 |
| NetworkApi | networkCreate | POST /networks/create | 创建网络 |
| NetworkApi | networkDelete | DELETE /networks/{id} | 删除网络 |
| NetworkApi | networkDisconnect | POST /networks/{id}/disconnect | 从网络断开容器 |
| NetworkApi | networkInspect | GET /networks/{id} | 检查网络 |
| NetworkApi | networkList | GET /networks | 列出网络 |
| NetworkApi | networkPrune | POST /networks/prune | 删除未使用的网络 |
| NodeApi | nodeDelete | DELETE /nodes/{id} | 删除一个节点 |
| NodeApi | nodeInspect | GET /nodes/{id} | 检查节点 |
| NodeApi | nodeList | GET /nodes | 列出节点 |
| NodeApi | nodeUpdate | POST /nodes/{id}/update | 更新一个节点 |
| PluginApi | getPluginPrivileges | GET /plugins/privileges | 获取插件权限 |
| PluginApi | pluginCreate | POST /plugins/create | 创建插件 |
| PluginApi | pluginDelete | DELETE /plugins/{name} | 删除插件 |
| PluginApi | pluginDisable | POST /plugins/{name}/disable | 禁用插件 |
| PluginApi | pluginEnable | POST /plugins/{name}/enable | 启用插件 |
| PluginApi | pluginInspect | GET /plugins/{name}/json | 检查插件 |
| PluginApi | pluginList | GET /plugins | 列出插件 |
| PluginApi | pluginPull | POST /plugins/pull | 安装插件 |
| PluginApi | pluginPush | POST /plugins/{name}/push | 推送插件 |
| PluginApi | pluginSet | POST /plugins/{name}/set | 配置插件 |
| PluginApi | pluginUpgrade | POST /plugins/{name}/upgrade | 升级插件 |
| SecretApi | secretCreate | POST /secrets/create | 创建密钥 |
| SecretApi | secretDelete | DELETE /secrets/{id} | 删除密钥 |
| SecretApi | secretInspect | GET /secrets/{id} | 检查密钥 |
| SecretApi | secretList | GET /secrets | 列出密钥 |
| SecretApi | secretUpdate | POST /secrets/{id}/update | 更新密钥 |
| ServiceApi | serviceCreate | POST /services/create | 创建服务 |
| ServiceApi | serviceDelete | DELETE /services/{id} | 删除服务 |
| ServiceApi | serviceInspect | GET /services/{id} | 检查服务 |
| ServiceApi | serviceList | GET /services | 列出服务 |
| ServiceApi | serviceLogs | GET /services/{id}/logs | 获取服务日志 |
| ServiceApi | serviceUpdate | POST /services/{id}/update | 更新服务 |
| SessionApi | session | POST /session | 初始化交互式会话 |
| SwarmApi | swarmInit | POST /swarm/init | 初始化一个新的swarm |
| SwarmApi | swarmInspect | GET /swarm | 检查swarm |
| SwarmApi | swarmJoin | POST /swarm/join | 加入现有的swarm |
| SwarmApi | swarmLeave | POST /swarm/leave | 离开swarm |
| SwarmApi | swarmUnlock | POST /swarm/unlock | 解锁锁定的管理器 |
| SwarmApi | swarmUnlockkey | GET /swarm/unlockkey | 获取解锁密钥 |
| SwarmApi | swarmUpdate | POST /swarm/update | 更新swarm |
| 系统API | 系统认证 | POST /auth | 检查认证配置 |
| 系统API | 系统数据使用 | GET /system/df | 获取数据使用信息 |
| 系统API | 系统事件 | GET /events | 监控事件 |
| 系统API | 系统信息 | GET /info | 获取系统信息 |
| 系统API | 系统ping | GET /_ping | Ping |
| 系统API | 系统ping头 | HEAD /_ping | Ping |
| 系统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 | 删除未使用的卷 |
模型
- 地址
- 认证配置
- 构建缓存
- 构建信息
- 构建修剪响应
- 集群信息
- 提交
- 配置
- 配置规范
- 容器更改响应项
- 容器配置
- 容器创建响应
- 容器检查响应
- 容器修剪响应
- 容器状态
- 容器顶部响应
- 容器更新响应
- 容器等待响应
- 容器等待响应错误
- 创建镜像信息
- 设备映射
- 设备请求
- 分发检查响应
- 分发检查响应描述符
- 分发检查响应平台
- 驱动程序
- 端点IPAM配置
- 端点端口配置
- 端点设置
- 端点规范
- 引擎描述
- 引擎描述插件
- 错误详情
- 错误响应
- 执行检查响应
- 图形驱动器数据
- 健康
- 健康配置
- 健康检查结果
- 历史响应项
- 主机配置
- 主机配置全部
- 主机配置全部日志配置
- IPAM
- 标识响应
- 镜像
- 镜像删除响应项
- 镜像ID
- 镜像元数据
- 镜像修剪响应
- 镜像根文件系统
- 镜像搜索响应项
- 镜像摘要
- 索引信息
- 内联对象
- 内联对象1
- 内联对象2
- 内联对象3
- 内联对象4
- 内联对象5
- 内联对象6
- 内联对象7
- 内联响应400
- 加入令牌
- 限制
- 本地节点状态
- 管理状态
- 挂载
- 挂载绑定选项
- 挂载点
- 挂载tmpfs选项
- 挂载卷选项
- 挂载卷选项驱动器配置
- 网络
- 网络附件配置
- 网络容器
- 网络创建响应
- 网络修剪响应
- 网络设置
- 网络配置
- 节点
- 节点描述
- 节点规范
- 节点状态
- 节点状态
- 对象版本
- 对等节点
- 平台
- 插件
- 插件配置
- 插件配置参数
- 插件配置接口
- 插件配置Linux
- 插件配置网络
- 插件配置根文件系统
- 插件配置用户
- 插件设备
- 插件环境
- 插件接口类型
- 插件挂载
- 插件权限项
- 插件设置
- 插件信息
- 端口
- 端口绑定
- 进程配置
- 进度详情
- 推送镜像信息
- 可达性
- 注册表服务配置
- 资源对象
- 资源
- 资源BlkioWeightDevice
- 资源Ulimits
- 重启策略
- 运行时
- 秘密
- 秘密规范
- 服务
- 服务创建响应
- 服务端点
- 服务端点虚拟IP
- 服务作业状态
- 服务服务状态
- 服务规范
- 服务规范模式
- 服务规范模式复制的
- 服务规范模式作业
- 服务规格回滚配置
- 服务规格更新配置
- 服务更新响应
- 服务更新状态
- 集群
- 集群全部
- 集群信息
- 集群规格
- 集群规格CA配置
- 集群规格CA配置外部CA
- 集群规格调度器
- 集群规格加密配置
- 集群规格编排
- 集群规格Raft
- 集群规格任务默认值
- 集群规格任务默认值日志驱动
- 系统身份验证响应
- 系统数据使用响应
- 系统事件响应
- 系统事件响应演员
- 系统信息
- 系统信息默认地址池
- 系统版本
- 系统版本组件
- 系统版本平台
- TLS信息
- 任务
- 任务规格
- 任务规格容器规格
- 任务规格容器规格配置
- 任务规格容器规格DNS配置
- 任务规格容器规格文件
- 任务规格容器规格文件1
- 任务规格容器规格权限
- 任务规格容器规格权限凭证规范
- 任务规格容器规格权限SELinux上下文
- 任务规格容器规格秘密
- 任务规格日志驱动
- 任务规格网络附加规范
- 任务规格放置
- 任务规格放置偏好
- 任务规格放置扩散
- 任务规格插件规范
- 任务规格资源
- 任务规格重启策略
- 任务状态
- 任务状态
- 任务状态容器状态
- 节流设备
- 解锁密钥响应
- 卷
- 卷配置
- 卷列表响应
- 卷修剪响应
- 卷使用数据
授权
所有端点都不需要授权。
测试
要运行测试,请使用
composer install
vendor/bin/phpunit
作者
关于此包
此PHP包是由OpenAPI Generator项目自动生成的
- API版本:
1.41- 包版本:
1.41
- 包版本:
- 构建包:
org.openapitools.codegen.languages.PhpClientCodegen