Docker Engine API
Docker Engine API 是 Docker 引擎提供的 RESTful API,允许您通过 HTTP 请求控制 Docker 守护进程。这个 API 是 Docker CLI 和 Docker Desktop 等工具与 Docker 引擎通信的基础。
API 版本说明
Docker Engine API 遵循语义化版本控制。API 版本格式为 v[x].[y],其中 x 表示主版本号,y 表示次版本号。
认证
Docker Engine API 支持多种认证方式,包括:
- Unix Socket(默认)
- HTTPS 和 TLS 证书
- API Token
端点基础 URL
API 端点的基础 URL 格式如下:
http://localhost:2375/v1.43/
unix:///var/run/docker.sock
主要 API 端点
HTTP 方法 | 路径 | 描述 |
---|---|---|
GET | /containers/json | 列出容器 |
POST | /containers/create | 创建容器 |
GET | /images/json | 列出镜像 |
POST | /images/create | 拉取或导入镜像 |
GET | /volumes | 列出数据卷 |
GET | /networks | 列出网络 |
API 示例
列出所有容器
获取所有容器的列表,包括停止的容器。
curl --unix-socket /var/run/docker.sock http://localhost/v1.43/containers/json?all=true
创建并启动容器
创建一个新的容器并启动它。
# 创建容器
curl -X POST --unix-socket /var/run/docker.sock \
-H "Content-Type: application/json" \
-d '{"Image": "nginx", "ExposedPorts": {"80/tcp": {}}}' \
http://localhost/v1.43/containers/create
# 启动容器
curl -X POST --unix-socket /var/run/docker.sock \
http://localhost/v1.43/containers/{container_id}/start
SDK 支持
官方 SDK
Docker 提供多种语言的官方 SDK:
社区 SDK
社区维护的其他语言 SDK:
- Java: docker-java
- PHP: docker-php
- Ruby: docker-api
- Rust: shiplift
安全提示
在生产环境中使用 Docker Engine API 时,请确保:
- 配置 TLS 证书以确保通信安全
- 限制 API 访问权限
- 定期更新 Docker Engine 版本
- 监控 API 使用情况