一、什么是 Docker API?
Docker API 是 Docker 提供的一组基于 REST 的接口,用于与 Docker Daemon 通信。它是 Docker Client 与 Daemon 之间交互的桥梁,也为第三方工具(如 Portainer、Harbor)或自动化脚本提供程序化访问支持。
二、API 分类
Docker API 主要包括以下几类:
-
容器管理 API:启动、停止、删除容器等
-
镜像管理 API:拉取、构建、删除镜像等
-
网络与卷管理 API:创建网络、挂载卷等
-
系统信息 API:查看版本、健康状态等
三、常见 API 示例
-
查看系统信息:
GET /info
-
创建容器:
POST /containers/create
-
启动容器:
POST /containers/<id>/start
-
停止容器:
POST /containers/<id>/stop
-
删除容器:
DELETE /containers/<id>
四、如何访问 Docker API
1. 使用 Unix Socket(默认)
curl --unix-socket /var/run/docker.sock http://localhost/containers/json
2. 开启远程 TCP API(需配置 TLS)
修改 /etc/docker/daemon.json
:
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2376"]
}
重启 Docker 服务:
sudo systemctl restart docker
五、安全性建议
-
避免公开暴露未经 TLS 保护的 Docker API
-
使用身份验证与访问控制机制(如 mTLS)
-
控制
docker.sock
文件权限,避免被普通用户访问
六、与其他组件的关系
组件 | 关系说明 |
---|---|
Docker Daemon | API 服务由 Daemon 提供,监听 socket 或 TCP |
Docker Client | 调用 API 以管理容器、镜像等资源 |
Compose/Swarm | 内部基于 API 实现容器编排功能 |
第三方工具 | 使用 API 对接 Docker,进行图形化管理或监控 |
七、版本与兼容性
Docker API 版本与 Docker Engine 绑定,例如:
-
Docker 20.10 默认支持 API v1.41
-
可通过
GET /version
查看当前支持的版本
请求时可在 URL 中指定版本:
/v1.41/containers/json
八、总结
Docker API 是 Docker 架构中的关键通信通道。它为 Docker 的自动化管理、工具集成和平台扩展提供了强大的支持。熟练掌握 Docker API 不仅有助于底层调试和监控,也是构建 DevOps 流水线与容器平台开发的核心技能。