Docker API之Remote API
Docker之所以在市场上有如此优秀的表现与其优秀的API有着不可分割的关系。其API之所以有如此出色的表现离不开REST(Representational State Transfer)架构,即其API为RESTful API。
所以在深入了解DockerAPI之前先做点准备工作,主要两点:
1、RESTful简单介绍
RESTful是一种软件风格架构而不是标准,仅提供一组设计原则和约束条件;主要用于客户端和服务器交互类的软件。其优势在于可以软件更简洁、有层次且易于实现缓存等机制。如果一个架构符合REST原则,就称之为RESTful架构。
简单来说,RESTful架构有3个特点:一、每个URI代表一个资源;二、客户端和服务器之间,传递的是这种资源的某种表现层;三、客户端通过4个HTTP动词,对服务器端资源进行操作,实现REST。
eg:RESTful风格的API要管理用户时是这样的
//获取userId对应的user信息
get /users/{userId}
//创建一个新的user
post /users
//更改userId对应的user的信息
put /users/{userId}
//删除userId对应的user
delete /users/{userId}
基于REST架构开发模式同时意味着不必专门编写一套UI层代码就可以进行功能验证,例如可以使用curl或Postman等工具直接访问所提供的REST父类API接口,验证功能的正确性。由于REST是基于HTTP协议,因此对于用户请求的应答中应该使用正确的状态码以便客户端能够做出正确的处理。HTTP标准状态码都是三位整数,大概分成了以下几个区间:
2XX:请求正常处理并返回。
3XX:重定向,请求的资源位置发生了变化。
4XX:客户端发送的请求有错误。
5XX:服务端错误。
其他关于RESTful详细资料在网上可以搜索到不少,本文仅介绍学习Docker API需要用到的。对功能进行同一验证的Postman工具可以通过官网Download Postman | Get Started for Free下载并了解该工具的使用方法。
2、开启socket端口
为了更好地学习Docker API ,需要设置一下本地的Docker daemon启动参数,使其开启socket端口用于返回信息。在idea如何集成docker - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中已经对配置文件进行了相关的操作。
以上都准备好了就进入本文的正题了。
Docker 提供了多类RESTful API,包括Docker Registry API、Docker Hub API、Docker Remote API、Docker Swarm API等,本文主要介绍Remote API,具体可参考官网Reference documentation | Docker Documentation中API部分。
一、容器API
1、容器列表Docker Engine API v1.41 Reference
GET /containers/json
curl -X GET --unix-socket /var/run/docker.sock http://localhost:2375/containers/json
docker ps就是 GET /containers/json的执行结果。
2、创建容器Docker Engine API v1.41 Reference
POST /containers/create
3、监控容器Docker Engine API v1.41 Reference
GET /containers/{id}/json
4、进程列表Docker Engine API v1.41 Reference
GET /containers/{id}/top
5、容器日志Docker Engine API v1.41 Reference
GET /containers/{id}/logs
6、导出容器Docker Engine API v1.41 Reference
GET /containers/{id}/export
7、启动容器Docker Engine API v1.41 Reference
POST /containers/{id}/start
8、停止容器Docker Engine API v1.41 Reference
POST /containers/{id}/stop
9、重启容器Docker Engine API v1.41 Reference
POST /containers/{id}/restart
10、终止容器Docker Engine API v1.41 Reference
POST /containers/{id}/kill
等其他一些系列容器列表。
二、镜像API
1、创建镜像Docker Engine API v1.41 Reference
POST /images/create
2、使用容器创建镜像Docker Engine API v1.41 Reference
POST /commit
3、镜像列表Docker Engine API v1.41 Reference
GET /images/json
4、删除镜像Docker Engine API v1.41 Reference
DELETE /images/{name}
5、推送镜像Docker Engine API v1.41 Reference
POST /images/{name}/push
6、打上标签Docker Engine API v1.41 Reference
POST /images/{name}/tag
7、搜索镜像Docker Engine API v1.41 Reference
GET /images/search
8、镜像历史Docker Engine API v1.41 Reference
GET /images/{name}/history
9、构建镜像Docker Engine API v1.41 Reference
GET /build
等
未完,待续……
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?