注释:译文和原文对应的docker版本为1.5,普发行版的维护版本大多在1.5左右,没有翻译docker最新版本1.17对应的文档。
1.简介
1.docker remote api主要的目的是取代命令行界面.
2.docker服务进程默认监听unix:///var/run/docker.sock
,也可以监听其他的端口和其他的unix socket
3.API尽量做到RESTful,尽量将全部的输出都输出给接口,但是一些复杂的命令,例如docker pull
,docker attach
,还是会不可避免地要输出到stdout
,stderr
和stdin
2.分类
2.1容器
列出容器
GET /containers/json
使用示例:
GET /containers/json?all=1&before=8dfafdbc3a40&size=1 HTTP/1.1
返回值:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"Id": "8dfafdbc3a40",
"Image": "ubuntu:latest",
"Command": "echo 1",
"Created": 1367854155,
"Status": "Exit 0",
"Ports": [{"PrivatePort": 2222, "PublicPort": 3333, "Type": "tcp"}],
"SizeRw": 12288,
"SizeRootFs": 0
},
{
"Id": "9cd87474be90",
"Image": "ubuntu:latest",
"Command": "echo 222222",
"Created": 1367854155,
"Status": "Exit 0",
"Ports": [],
"SizeRw": 12288,
"SizeRootFs": 0
},
{
"Id": "3176a2479c92",
"Image": "ubuntu:latest",
"Command": "echo 3333333333333333",
"Created": 1367854154,
"Status": "Exit 0",
"Ports":[],
"SizeRw":12288,
"SizeRootFs":0
},
{
"Id": "4cb07b47f9fb",
"Image": "ubuntu:latest",
"Command": "echo 444444444444444444444444444444444",
"Created": 1367854152,
"Status": "Exit 0",
"Ports": [],
"SizeRw": 12288,
"SizeRootFs": 0
}
]
备注:提供一个比较能接受的实例:
1.docker监听127.0.0.1:4243
2.curl -s "127.0.0.1:4243/containers/json"
或者curl -s "127.0.0.1:4243/containers/json"|python -m json.tool
进行格式化。
3.before的参数是容器ID,文档提供的是十二位的id,而实际是64位的d。
参数讲解:
晚上换windows再翻译。。