环境
- docker version 20.10.8
- curl 7.74.0
- docker api version 1.4.1
示例
获取容器
https://docs.docker.com/engine/api/v1.41/#operation/ContainerList
# docker ps -a
curl --unix-socket /var/run/docker.sock 'http://localhost/v1.41/containers/json?all=true'
# docker ps --last=2
curl --unix-socket /var/run/docker.sock 'http://localhost/v1.41/containers/json?limit=2'
# docker ps --filter=status=running
# ?filters={"status":["running"]} 经过urlencode编码
curl --unix-socket /var/run/docker.sock 'http://localhost/v1.41/containers/json?filters=%7B%22status%22%3A%20%5B%22running%22%5D%7D'
# 更多parameter见API说明
创建容器
https://docs.docker.com/engine/api/v1.41/#operation/ContainerCreate
# docker run --name=nginx-test -d nginx
curl --unix-socket /var/run/docker.sock 'http://localhost/v1.41/containers/create?name=nginx-test' -X POST -H "Content-Type: application/json; charset=utf-8" -d '{"Image": "nginx"}'
# {"Id":"f550b859af5db54396daba6450a7906fcf51ded63e12e0ef8b3a913013827c3a","Warnings":[]}
curl --unix-socket /var/run/docker.sock 'http://localhost/v1.41/containers/f550b859af5db54396daba6450a7906fcf51ded63e12e0ef8b3a913013827c3a/start' -X POST -H "Content-Type: application/json; charset=utf-8"
# docker run --name=nginx-test2 -p 8080:80 -d nginx
curl --unix-socket /var/run/docker.sock 'http://localhost/v1.41/containers/create?name=nginx-test2' -X POST -H "Content-Type: application/json; charset=utf-8" -d '{"Image": "nginx", "PortBindings":{"80/tcp":[{"HostPort":"8888"}]}}'
curl --unix-socket /var/run/docker.sock 'http://localhost/v1.41/containers/f2f93023c261e0f6ba72b0cbf2adde0b11d12c5f9bf1a8a61df8bfaeaa71f3ad/start' -X POST -H "Content-Type: application/json; charset=utf-8"