Docker 本身提供了强大的API功能,我们可以通过访问Docker API来对Docker服务进行管理。
在本章介绍如何使用Docker API。
Quick Guide
Docker API
Docker提供了很多的API以便用户使用。这些API包含四个方面:
- Docker Registry API:提供了与存储Docker镜像的Docker Registry集成的功能。
- Docker Hub API::提供了与Docker HUB集成的功能
- Docker OAuth API: 提供了与OAuth的认证授权的功能
- Docker Remote API::提供与Docker守护进程进行集成的功能
Docker Registry API
用途 | 方法 | url | 样例 |
---|---|---|---|
取出镜像层 | GET | /v1/images/(image_id)/layer | |
插入镜像层 | PUT | /v1/images/(image_id)/layer | |
检索镜像 | GET | /v1/images/(image_id)/json | |
检索根镜像 | GET | /v1/images/(image_id)/ancestry | |
获取库里所有的标签或者指定标签 | GET | /v1/repositories/(namespace)/(repository)/tags | |
获取库里所有的标签或者指定标签 | GET | /v1/repositories/(namespace)/(repository)/tags/(tag*) | |
删除标签 | DELETE | /v1/repositories/(namespace)/(repository)/tags/(tag*) | |
registry状态检查 | GET | /v1/_ping | |
创建镜像 | POST | /images/create | |
利用容器创建镜像 | POST | /commit | |
获取镜像清单 | GET | /images/json | |
导入指定的路径文件 | POST | /images/(name)/insert | |
删除镜像 | DELETE | /images/(name) | |
推送镜像到Registry | POST | /images/(name)/push | |
Tag镜像 | POST | /images/(name)/tag | |
搜索镜像 | GET | /images/search | |
查看镜像历史 | GET | /images/(name)/history | |
构建镜像 | POST | /build |
Docker Hub API
用途 | 方法 | url | 样例 |
---|---|---|---|
创建一个新的仓库 | PUT | /v1/repositories/(repo_name)/ | |
删除已经存在的仓库 | DELETE | /v1/repositories/(repo_name)/ | |
更新仓库镜像 | PUT | /v1/repositories/(repo_name)/images | |
从仓库中获取镜像 | GET | /v1/repositories/(repo_name)/images | |
授权 | PUT | /v1/repositories/(repo_name)/auth | |
创建用户仓库 | PUT | /v1/repositories/(namespace)/(repo_name)/ | |
删除用户仓库 | DELETE | /v1/repositories/(namespace)/(repo_name)/ | |
更新用户仓库镜像 | PUT | /v1/repositories/(namespace)/(repo_name)/images | |
从仓库中下载镜像 | GET | /v1/repositories/(namespace)/(repo_name)/images | |
验证用户登录 | GET | /v1/users | |
添加新用户 | POST | /v1/users | |
更新用户信息 | PUT | /v1/users/(username)/ |
Docker Remote API
用途 | 方法 | url | 样例 |
---|---|---|---|
容器列表 | GET | /containers/json | |
创建新容器 | POST | /containers/create | |
监控容器 | GET | /containers/(id)/json | |
进程列表 | GET | /containers/(id)/top | |
容器日志 | GET | /containers/(id)/logs | |
导出容器 | GET | /containers/(id)/export | |
启动容器 | POST | /containers/(id)/start | |
停止容器 | POST | /containers/(id)/stop | |
重启容器 | POST | /containers/(id)/restart | |
终止容器 | POST | /containers/(id)/kill |
注意事项
- 当Docker允许与访客容器目录共享而不限制其访问权限时,Docker Daemon的控制权应该只给授权用户。
- REST API支持Unix sockets,从而防止了cross-site-scripting攻击。
- REST API的HTTP接口应该在可信网络或者VPN下使用。
- 在服务器上单独运行Docker时,需要与其它服务隔离。
- 容器以非特权用户运行。
- Apparmor、SELinux、GRSEC解决方案,可用于额外的安全层。
- 可以使用其它容器系统的安全功能。
More info:Docker API