page_title: Remote API v1.2 page_description: API Documentation for Docker page_keywords: API, Docker, rcli, REST, documentation
GET /containers/json
List containers
Example request:
GET /containers/json?all=1&before=8dfafdbc3a40 HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"Id": "8dfafdbc3a40",
"Image": "ubuntu:latest",
"Command": "echo 1",
"Created": 1367854155,
"Status": "Exit 0",
"Ports":"",
"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": "centos:latest",
"Command": "echo 3333333333333333",
"Created": 1367854154,
"Status": "Exit 0",
"Ports":"",
"SizeRw":12288,
"SizeRootFs":0
},
{
"Id": "4cb07b47f9fb",
"Image": "fedora:latest",
"Command": "echo 444444444444444444444444444444444",
"Created": 1367854152,
"Status": "Exit 0",
"Ports":"",
"SizeRw":12288,
"SizeRootFs":0
}
]
Query Parameters:
limit
last created
containers, include non-running ones.Status Codes:
POST /containers/create
Create a container
Example request:
POST /containers/create HTTP/1.1
Content-Type: application/json
{
"Hostname":"",
"User":"",
"Memory":0,
"MemorySwap":0,
"AttachStdin":false,
"AttachStdout":true,
"AttachStderr":true,
"PortSpecs":null,
"Tty":false,
"OpenStdin":false,
"StdinOnce":false,
"Env":null,
"Cmd":[
"date"
],
"Dns":null,
"Image":"ubuntu",
"Volumes":{},
"VolumesFrom":""
}
Example response:
HTTP/1.1 201 OK
Content-Type: application/json
{
"Id":"e90e34656806"
"Warnings":[]
}
Json Parameters:
Status Codes:
GET /containers/(id)/json
Return low-level information on the container id
Example request:
GET /containers/4fa6e0f0c678/json HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"Id": "4fa6e0f0c6786287e131c3852c58a2e01cc697a68231826813597e4994f1d6e2",
"Created": "2013-05-07T14:51:42.041847+02:00",
"Path": "date",
"Args": [],
"Config": {
"Hostname": "4fa6e0f0c678",
"User": "",
"Memory": 0,
"MemorySwap": 0,
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"PortSpecs": null,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": null,
"Cmd": [
"date"
],
"Dns": null,
"Image": "ubuntu",
"Volumes": {},
"VolumesFrom": ""
},
"State": {
"Running": false,
"Pid": 0,
"ExitCode": 0,
"StartedAt": "2013-05-07T14:51:42.087658+02:01360",
"Ghost": false
},
"Image": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
"NetworkSettings": {
"IpAddress": "",
"IpPrefixLen": 0,
"Gateway": "",
"Bridge": "",
"PortMapping": null
},
"SysInitPath": "/home/kitty/go/src/github.com/docker/docker/bin/docker",
"ResolvConfPath": "/etc/resolv.conf",
"Volumes": {}
}
Status Codes:
GET /containers/(id)/changes
Inspect changes on container id
's filesystem
Example request:
GET /containers/4fa6e0f0c678/changes HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"Path":"/dev",
"Kind":0
},
{
"Path":"/dev/kmsg",
"Kind":1
},
{
"Path":"/test",
"Kind":1
}
]
Status Codes:
GET /containers/(id)/export
Export the contents of container id
Example request:
GET /containers/4fa6e0f0c678/export HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/octet-stream
{{ TAR STREAM }}
Status Codes:
POST /containers/(id)/start
Start the container id
Example request:
POST /containers/e90e34656806/start HTTP/1.1
Example response:
HTTP/1.1 200 OK
Status Codes:
POST /containers/(id)/stop
Stop the container id
Example request:
POST /containers/e90e34656806/stop?t=5 HTTP/1.1
Example response:
HTTP/1.1 204 OK
Query Parameters:
Status Codes:
POST /containers/(id)/restart
Restart the container id
Example request:
POST /containers/e90e34656806/restart?t=5 HTTP/1.1
Example response:
HTTP/1.1 204 OK
Query Parameters:
Status Codes:
POST /containers/(id)/kill
Kill the container id
Example request:
POST /containers/e90e34656806/kill HTTP/1.1
Example response:
HTTP/1.1 204 OK
Status Codes:
POST /containers/(id)/attach
Attach to the container id
Example request:
POST /containers/16253994b7c4/attach?logs=1&stream=0&stdout=1 HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/vnd.docker.raw-stream
{{ STREAM }}
Query Parameters:
Status Codes:
POST /containers/(id)/wait
Block until container id
stops, then returns the exit code
Example request:
POST /containers/16253994b7c4/wait HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{"StatusCode":0}
Status Codes:
DELETE /containers/(id)
Remove the container id
from the filesystem
Example request:
DELETE /containers/16253994b7c4?v=1 HTTP/1.1
Example response:
HTTP/1.1 204 OK
Query Parameters:
Status Codes:
GET /images/(format)
List images format
could be json or viz (json default)
Example request:
GET /images/json?all=0 HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"Repository":"ubuntu",
"Tag":"precise",
"Id":"b750fe79269d",
"Created":1364102658,
"Size":24653,
"VirtualSize":180116135
},
{
"Repository":"ubuntu",
"Tag":"12.04",
"Id":"b750fe79269d",
"Created":1364102658,
"Size":24653,
"VirtualSize":180116135
}
]
Example request:
GET /images/viz HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: text/plain
digraph docker {
"d82cbacda43a" -> "074be284591f"
"1496068ca813" -> "08306dc45919"
"08306dc45919" -> "0e7893146ac2"
"b750fe79269d" -> "1496068ca813"
base -> "27cf78414709" [style=invis]
"f71189fff3de" -> "9a33b36209ed"
"27cf78414709" -> "b750fe79269d"
"0e7893146ac2" -> "d6434d954665"
"d6434d954665" -> "d82cbacda43a"
base -> "e9aa60c60128" [style=invis]
"074be284591f" -> "f71189fff3de"
"b750fe79269d" [label="b750fe79269d\nubuntu",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"e9aa60c60128" [label="e9aa60c60128\ncentos",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
"9a33b36209ed" [label="9a33b36209ed\nfedora",shape=box,fillcolor="paleturquoise",style="filled,rounded"];
base [style=invisible]
}
Query Parameters:
Status Codes:
POST /images/create
Create an image, either by pull it from the registry or by importing i
Example request:
POST /images/create?fromImage=ubuntu HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{"status":"Pulling..."}
{"status":"Pulling", "progress":"1/? (n/a)"}
{"error":"Invalid..."}
...
Query Parameters:
Status Codes:
POST /images/(name)/insert
Insert a file from url
in the image name
at path
Example request:
POST /images/test/insert?path=/usr&url=myurl HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{"status":"Inserting..."}
{"status":"Inserting", "progress":"1/? (n/a)"}
{"error":"Invalid..."}
...
Query Parameters:
Status Codes:
GET /images/(name)/json
Return low-level information on the image name
Example request:
GET /images/centos/json HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id":"b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
"parent":"27cf784147099545",
"created":"2013-03-23T22:24:18.818426-07:00",
"container":"3d67245a8d72ecf13f33dffac9f79dcdf70f75acb84d308770391510e0c23ad0",
"container_config":
{
"Hostname":"",
"User":"",
"Memory":0,
"MemorySwap":0,
"AttachStdin":false,
"AttachStdout":false,
"AttachStderr":false,
"PortSpecs":null,
"Tty":true,
"OpenStdin":true,
"StdinOnce":false,
"Env":null,
"Cmd": ["/bin/bash"],
"Dns":null,
"Image":"centos",
"Volumes":null,
"VolumesFrom":""
},
"Size": 6824592
}
Status Codes:
GET /images/(name)/history
Return the history of the image name
Example request:
GET /images/fedora/history HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"Id":"b750fe79269d",
"Tag":["ubuntu:latest"],
"Created":1364102658,
"CreatedBy":"/bin/bash"
},
{
"Id":"27cf78414709",
"Created":1364068391,
"CreatedBy":""
}
]
Status Codes:
POST /images/(name)/push
Push the image name
on the registry
> **Example request**:
>
> POST /images/test/push HTTP/1.1
> {{ authConfig }}
>
> **Example response**:
HTTP/1.1 200 OK
Content-Type: application/json
{"status":"Pushing..."}
{"status":"Pushing", "progress":"1/? (n/a)"}
{"error":"Invalid..."}
...
Status Codes:
POST /images/(name)/tag
Tag the image name
into a repository
Example request:
POST /images/test/tag?repo=myrepo&force=0 HTTP/1.1
Example response:
HTTP/1.1 201 OK
Query Parameters:
Status Codes:
DELETE /images/(name)
Remove the image name
from the filesystem
Example request:
DELETE /images/test HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-type: application/json
[
{"Untagged":"3e2f21a89f"},
{"Deleted":"3e2f21a89f"},
{"Deleted":"53b4f83ac9"}
]
Status Codes:
GET /images/search
Search for an image on Docker Hub
Example request:
GET /images/search?term=sshd HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"Name":"cespare/sshd",
"Description":""
},
{
"Name":"johnfuller/sshd",
"Description":""
},
{
"Name":"dhrp/mongodb-sshd",
"Description":""
}
]
:query term: term to search
:statuscode 200: no error
:statuscode 500: server error
POST /build
Build an image from Dockerfile
Example request:
POST /build HTTP/1.1
{{ TAR STREAM }}
Example response:
HTTP/1.1 200 OK
{{ STREAM }}
Query Parameters:
Status Codes:
{{ STREAM }} is the raw text output of the build command. It uses the HTTP Hijack method in order to stream.
POST /auth
Get the default username and email
Example request:
POST /auth HTTP/1.1
Content-Type: application/json
{
"username":"hannibal",
"password:"xxxx",
"email":"hannibal@a-team.com"
}
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"Status": "Login Succeeded"
}
Status Codes:
GET /info
Display system-wide information
Example request:
GET /info HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"Containers":11,
"Images":16,
"Debug":false,
"NFd": 11,
"NGoroutines":21,
"MemoryLimit":true,
"SwapLimit":false
}
Status Codes:
GET /version
Show the docker version information
Example request:
GET /version HTTP/1.1
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"Version":"0.2.2",
"GitCommit":"5a2a5cc+CHANGES",
"GoVersion":"go1.0.3"
}
Status Codes:
POST /commit
Create a new image from a container's changes
Example request:
POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
Content-Type: application/json
{
"Cmd": ["cat", "/world"],
"PortSpecs":["22"]
}
Example response:
HTTP/1.1 201 OK
Content-Type: application/vnd.docker.raw-stream
{"Id":"596069db4bf5"}
Query Parameters:
Status Codes:
docker run
Here are the steps of docker run
:
Create the container
If the status code is 404, it means the image doesn't exists:
- Try to pull i
- Then retry to create the container
Start the container
If you are not in detached mode:
- Attach to the container, using logs=1 (to have stdout and
stderr from the container's start) and stream=1
If in detached mode or only stdin is attached:
- Display the container's
In this version of the API, /attach, uses hijacking to transport stdin, stdout and stderr on the same socket. This might change in the future.
To enable cross origin requests to the remote api add the flag "–api-enable-cors" when running docker in daemon mode.
docker -d -H="tcp://192.168.1.9:2375" –api-enable-cors