tslol / docker-api-php
引擎API是Docker引擎提供的HTTP API。这是Docker客户端用于与引擎通信的API,因此客户端可以执行的所有操作都可以通过API执行。大多数客户端命令直接映射到API端点(例如,“docker ps”对应“GET /containers/json”)。以下
Requires
- php: ^7.4 || ^8.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^1.7 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- phpunit/phpunit: ^8.0 || ^9.0
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
模型
- 地址
- 认证配置
- 构建缓存
- 构建信息
- 构建剪枝响应
- 更改类型
- 集群信息
- 集群卷
- 集群卷信息
- 集群卷发布状态内部
- 集群卷规范
- 集群卷规范访问模式
- 集群卷规范访问模式可访问性要求
- 集群卷规范访问模式容量范围
- 集群卷规范访问模式密钥内部
- 提交
- 配置
- 配置创建请求
- 配置规范
- 容器配置
- 容器创建请求
- 容器创建响应
- 容器检查响应
- 容器剪枝响应
- 容器状态
- 容器状态
- 容器摘要
- 容器摘要主机配置
- 容器摘要网络设置
- 容器顶响应
- 容器更新请求
- 容器更新响应
- 容器等待退出错误
- 容器等待响应
- 创建镜像信息
- 设备映射
- 设备请求
- 分发检查
- 驱动器
- 端点IPAM配置
- 端点端口配置
- 端点设置
- 端点规范
- 引擎描述
- 引擎描述插件内部
- 错误详情
- 错误响应
- 事件操作者
- 事件消息
- 执行配置
- 执行检查响应
- 执行启动配置
- 文件系统更改
- 通用资源内部
- 通用资源内部离散资源规范
- 通用资源内部命名资源规范
- 图形驱动器数据
- 健康
- 健康配置
- 健康检查结果
- 历史响应项
- 主机配置
- 主机配置所有者日志配置
- IPAM
- IPAM配置
- 标识响应
- 镜像删除响应项
- 镜像ID
- 镜像检查
- 镜像检查元数据
- 镜像检查根文件系统
- 镜像剪枝响应
- 镜像搜索响应项
- 镜像摘要
- 索引信息
- 加入令牌
- 限制
- 本地节点状态
- 管理状态
- 挂载
- 挂载绑定选项
- 挂载点
- 挂载tmpfs选项
- 挂载卷选项
- 挂载卷选项驱动器配置
- 网络
- 网络附加配置
- 网络连接请求
- 网络容器
- 网络创建请求
- 网络创建响应
- 网络断开请求
- 网络剪枝响应
- 网络设置
- 网络配置
- 节点
- 节点描述
- 节点规范
- 节点状态
- 节点状态
- OCIDescriptor
- OCI平台
- 对象版本
- 对等节点
- 平台
- 插件
- 插件配置
- 插件配置参数
- 插件配置接口
- 插件配置Linux
- 插件配置网络
- 插件配置根文件系统
- 插件配置用户
- 插件设备
- 插件环境
- 插件接口类型
- 插件挂载
- 插件权限
- 插件设置
- 插件信息
- 端口
- 端口绑定
- 端口状态
- 进程配置
- 进度详情
- 推送镜像信息
- 可达性
- 注册表服务配置
- 资源对象
- 资源
- 资源BlkioWeightDevice内部
- 资源Ulimits内部
- 重启策略
- 运行时
- 密钥
- 密钥创建请求
- 密钥规范
- 服务
- 服务创建请求
- 服务创建响应
- 服务端点
- 服务端点虚拟IP内部
- 服务作业状态
- 服务服务状态
- 服务规范
- 服务规范模式
- 服务规范模式复制
- 服务规范模式复制作业
- 服务规范回滚配置
- 服务规范更新配置
- 服务更新请求
- 服务更新响应
- 服务更新状态
- 集群
- 集群信息
- 集群初始化请求
- 集群加入请求
- 集群规范
- 集群规范CA配置
- 集群规范CA配置外部CA内部
- 集群规范调度器
- 集群规范加密配置
- 集群规范编排
- 集群规范Raft
- 集群规范任务默认值
- 集群规范任务默认值日志驱动器
- 集群解锁请求
- 系统认证响应
- 系统数据使用情况响应
- 系统信息
- 系统信息默认地址池内部
- 系统版本
- 系统版本组件内部
- 系统版本平台
- TLS信息
- 任务
- 任务规范
- 任务规范容器规范
- 任务规范容器规范配置内部
- 任务规范容器规范配置内部文件
- 任务规范容器规范DNS配置
- 任务规范容器规范权限
- 任务规范容器规范权限AppArmor
- 任务规范容器规范权限凭证规范
- 任务规范容器规范权限SELinux上下文
- 任务规范容器规范权限Seccomp
- 任务规范容器规范密钥内部
- 任务规范容器规范密钥内部文件
- 任务规范日志驱动程序
- 任务规范网络附加规范
- 任务规范放置
- 任务规范放置偏好内部
- 任务规范放置偏好内部扩散
- 任务规范插件规范
- 任务规范资源
- 任务规范重启策略
- 任务状态
- 任务状态
- 节流设备
- 解锁密钥响应
- 卷
- 卷创建选项
- 卷列表响应
- 卷修剪响应
- 卷更新请求
- 卷使用数据
授权
端点不需要授权。
测试
要运行测试,请使用
composer install vendor/bin/phpunit