2013-05-21 11:47:16 -06:00
|
|
|
:title: Remote API
|
|
|
|
:description: API Documentation for Docker
|
|
|
|
:keywords: API, Docker, rcli, REST, documentation
|
|
|
|
|
2014-02-20 01:11:04 +02:00
|
|
|
.. COMMENT use https://pythonhosted.org/sphinxcontrib-httpdomain/ to
|
2013-07-18 19:04:51 -07:00
|
|
|
.. document the REST API.
|
|
|
|
|
2013-05-07 17:19:41 +02:00
|
|
|
=================
|
|
|
|
Docker Remote API
|
|
|
|
=================
|
|
|
|
|
|
|
|
|
|
|
|
1. Brief introduction
|
|
|
|
=====================
|
|
|
|
|
|
|
|
- The Remote API is replacing rcli
|
2013-08-05 22:56:02 +00:00
|
|
|
- By default the Docker daemon listens on unix:///var/run/docker.sock and the client must have root access to interact with the daemon
|
2013-08-13 12:02:20 -07:00
|
|
|
- If a group named *docker* exists on your system, docker will apply ownership of the socket to the group
|
2013-07-18 19:04:51 -07:00
|
|
|
- The API tends to be REST, but for some complex commands, like attach
|
|
|
|
or pull, the HTTP connection is hijacked to transport stdout stdin
|
|
|
|
and stderr
|
|
|
|
- Since API version 1.2, the auth configuration is now handled client
|
|
|
|
side, so the client has to send the authConfig as POST in
|
|
|
|
/images/(name)/push
|
2013-05-07 17:19:41 +02:00
|
|
|
|
2013-06-05 13:19:57 +02:00
|
|
|
2. Versions
|
|
|
|
===========
|
2013-05-28 15:49:57 +00:00
|
|
|
|
2014-02-14 22:53:53 +00:00
|
|
|
The current version of the API is 1.10
|
2013-07-18 19:04:51 -07:00
|
|
|
|
|
|
|
Calling /images/<name>/insert is the same as calling
|
2014-02-14 22:53:53 +00:00
|
|
|
/v1.10/images/<name>/insert
|
2013-07-18 19:04:51 -07:00
|
|
|
|
|
|
|
You can still call an old version of the api using
|
|
|
|
/v1.0/images/<name>/insert
|
2013-05-28 15:49:57 +00:00
|
|
|
|
2013-12-02 19:23:54 +01:00
|
|
|
|
2014-02-14 22:53:53 +00:00
|
|
|
v1.10
|
2014-02-19 01:21:32 +00:00
|
|
|
*****
|
2014-02-14 22:53:53 +00:00
|
|
|
|
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
|
|
|
:doc:`docker_remote_api_v1.10`
|
|
|
|
|
|
|
|
What's new
|
|
|
|
----------
|
|
|
|
|
|
|
|
.. http:delete:: /images/(name)
|
|
|
|
|
|
|
|
**New!** You can now use the force parameter to force delete of an image, even if it's
|
|
|
|
tagged in multiple repositories.
|
|
|
|
|
2014-02-05 23:10:57 -05:00
|
|
|
.. http:delete:: /containers/(id)
|
|
|
|
|
|
|
|
**New!** You can now use the force paramter to force delete a container, even if
|
|
|
|
it is currently running
|
|
|
|
|
2014-01-13 16:50:10 -08:00
|
|
|
v1.9
|
|
|
|
****
|
|
|
|
|
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
|
|
|
:doc:`docker_remote_api_v1.9`
|
|
|
|
|
|
|
|
What's new
|
|
|
|
----------
|
|
|
|
|
2014-01-03 15:13:32 -05:00
|
|
|
.. http:post:: /build
|
|
|
|
|
|
|
|
**New!** This endpoint now takes a serialized ConfigFile which it uses to
|
|
|
|
resolve the proper registry auth credentials for pulling the base image.
|
|
|
|
Clients which previously implemented the version accepting an AuthConfig
|
|
|
|
object must be updated.
|
|
|
|
|
2013-12-02 19:23:54 +01:00
|
|
|
v1.8
|
|
|
|
****
|
|
|
|
|
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
|
|
|
:doc:`docker_remote_api_v1.8`
|
|
|
|
|
|
|
|
What's new
|
|
|
|
----------
|
|
|
|
|
|
|
|
.. http:post:: /build
|
|
|
|
|
|
|
|
**New!** This endpoint now returns build status as json stream. In case
|
|
|
|
of a build error, it returns the exit status of the failed command.
|
|
|
|
|
2013-12-02 18:17:15 -08:00
|
|
|
.. http:get:: /containers/(id)/json
|
|
|
|
|
|
|
|
**New!** This endpoint now returns the host config for the container.
|
|
|
|
|
2013-12-02 13:55:31 -08:00
|
|
|
.. http:post:: /images/create
|
|
|
|
.. http:post:: /images/(name)/insert
|
|
|
|
.. http:post:: /images/(name)/push
|
|
|
|
|
|
|
|
**New!** progressDetail object was added in the JSON. It's now possible
|
|
|
|
to get the current value and the total of the progress without having to
|
|
|
|
parse the string.
|
2013-12-02 19:23:54 +01:00
|
|
|
|
2013-10-28 04:02:24 +00:00
|
|
|
v1.7
|
|
|
|
****
|
|
|
|
|
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
|
|
|
:doc:`docker_remote_api_v1.7`
|
|
|
|
|
|
|
|
What's new
|
|
|
|
----------
|
|
|
|
|
|
|
|
.. http:get:: /images/json
|
|
|
|
|
|
|
|
The format of the json returned from this uri changed. Instead of an entry
|
|
|
|
for each repo/tag on an image, each image is only represented once, with a
|
|
|
|
nested attribute indicating the repo/tags that apply to that image.
|
|
|
|
|
|
|
|
Instead of:
|
|
|
|
|
|
|
|
.. sourcecode:: http
|
|
|
|
|
|
|
|
HTTP/1.1 200 OK
|
|
|
|
Content-Type: application/json
|
|
|
|
|
|
|
|
[
|
|
|
|
{
|
|
|
|
"VirtualSize": 131506275,
|
|
|
|
"Size": 131506275,
|
|
|
|
"Created": 1365714795,
|
|
|
|
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
|
|
|
|
"Tag": "12.04",
|
|
|
|
"Repository": "ubuntu"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"VirtualSize": 131506275,
|
|
|
|
"Size": 131506275,
|
|
|
|
"Created": 1365714795,
|
|
|
|
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
|
|
|
|
"Tag": "latest",
|
|
|
|
"Repository": "ubuntu"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"VirtualSize": 131506275,
|
|
|
|
"Size": 131506275,
|
|
|
|
"Created": 1365714795,
|
|
|
|
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
|
|
|
|
"Tag": "precise",
|
|
|
|
"Repository": "ubuntu"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"VirtualSize": 180116135,
|
|
|
|
"Size": 24653,
|
|
|
|
"Created": 1364102658,
|
|
|
|
"Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
|
|
|
|
"Tag": "12.10",
|
|
|
|
"Repository": "ubuntu"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"VirtualSize": 180116135,
|
|
|
|
"Size": 24653,
|
|
|
|
"Created": 1364102658,
|
|
|
|
"Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
|
|
|
|
"Tag": "quantal",
|
|
|
|
"Repository": "ubuntu"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
The returned json looks like this:
|
|
|
|
|
|
|
|
.. sourcecode:: http
|
|
|
|
|
|
|
|
HTTP/1.1 200 OK
|
|
|
|
Content-Type: application/json
|
|
|
|
|
|
|
|
[
|
|
|
|
{
|
2014-01-10 11:35:01 +01:00
|
|
|
"RepoTags": [
|
2013-10-28 04:02:24 +00:00
|
|
|
"ubuntu:12.04",
|
|
|
|
"ubuntu:precise",
|
|
|
|
"ubuntu:latest"
|
|
|
|
],
|
|
|
|
"Id": "8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c",
|
|
|
|
"Created": 1365714795,
|
|
|
|
"Size": 131506275,
|
|
|
|
"VirtualSize": 131506275
|
|
|
|
},
|
|
|
|
{
|
2014-01-10 11:35:01 +01:00
|
|
|
"RepoTags": [
|
2013-10-28 04:02:24 +00:00
|
|
|
"ubuntu:12.10",
|
|
|
|
"ubuntu:quantal"
|
|
|
|
],
|
|
|
|
"ParentId": "27cf784147099545",
|
|
|
|
"Id": "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc",
|
|
|
|
"Created": 1364102658,
|
|
|
|
"Size": 24653,
|
|
|
|
"VirtualSize": 180116135
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
.. http:get:: /images/viz
|
|
|
|
|
2014-03-13 11:46:02 -06:00
|
|
|
This URI no longer exists. The ``images --viz`` output is now generated in
|
2013-10-28 04:02:24 +00:00
|
|
|
the client, using the ``/images/json`` data.
|
|
|
|
|
2013-10-02 18:18:46 -07:00
|
|
|
v1.6
|
|
|
|
****
|
|
|
|
|
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
2013-09-11 15:14:33 -07:00
|
|
|
:doc:`docker_remote_api_v1.6`
|
|
|
|
|
|
|
|
What's new
|
|
|
|
----------
|
|
|
|
|
|
|
|
.. http:post:: /containers/(id)/attach
|
|
|
|
|
|
|
|
**New!** You can now split stderr from stdout. This is done by prefixing
|
2013-09-26 15:59:02 -07:00
|
|
|
a header to each transmition. See :http:post:`/containers/(id)/attach`.
|
2013-09-11 15:14:33 -07:00
|
|
|
The WebSocket attach is unchanged.
|
2013-09-26 15:59:02 -07:00
|
|
|
Note that attach calls on the previous API version didn't change. Stdout and
|
|
|
|
stderr are merged.
|
2013-09-11 15:14:33 -07:00
|
|
|
|
|
|
|
|
2013-10-02 18:18:46 -07:00
|
|
|
v1.5
|
|
|
|
****
|
2013-09-27 08:32:55 -05:00
|
|
|
|
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
2013-09-04 22:58:58 +02:00
|
|
|
:doc:`docker_remote_api_v1.5`
|
|
|
|
|
|
|
|
What's new
|
|
|
|
----------
|
|
|
|
|
|
|
|
.. http:post:: /images/create
|
|
|
|
|
|
|
|
**New!** You can now pass registry credentials (via an AuthConfig object)
|
|
|
|
through the `X-Registry-Auth` header
|
|
|
|
|
|
|
|
.. http:post:: /images/(name)/push
|
|
|
|
|
|
|
|
**New!** The AuthConfig object now needs to be passed through
|
|
|
|
the `X-Registry-Auth` header
|
|
|
|
|
|
|
|
.. http:get:: /containers/json
|
|
|
|
|
|
|
|
**New!** The format of the `Ports` entry has been changed to a list of
|
|
|
|
dicts each containing `PublicPort`, `PrivatePort` and `Type` describing a
|
|
|
|
port mapping.
|
|
|
|
|
2013-10-02 18:18:46 -07:00
|
|
|
v1.4
|
|
|
|
****
|
2013-09-27 08:32:55 -05:00
|
|
|
|
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
2013-07-26 10:04:46 +00:00
|
|
|
:doc:`docker_remote_api_v1.4`
|
2013-06-21 13:51:48 -07:00
|
|
|
|
|
|
|
What's new
|
|
|
|
----------
|
|
|
|
|
2013-07-30 12:09:07 +00:00
|
|
|
.. http:post:: /images/create
|
|
|
|
|
2013-09-17 18:49:47 +00:00
|
|
|
**New!** When pulling a repo, all images are now downloaded in parallel.
|
2013-07-30 12:09:07 +00:00
|
|
|
|
2013-07-18 19:04:51 -07:00
|
|
|
.. http:get:: /containers/(id)/top
|
2013-06-28 18:05:41 +02:00
|
|
|
|
2013-07-22 16:22:11 +00:00
|
|
|
**New!** You can now use ps args with docker top, like `docker top <container_id> aux`
|
2013-07-19 10:34:55 +00:00
|
|
|
|
2013-08-12 11:55:23 +00:00
|
|
|
.. http:get:: /events:
|
|
|
|
|
|
|
|
**New!** Image's name added in the events
|
|
|
|
|
2013-10-02 18:18:46 -07:00
|
|
|
v1.3
|
|
|
|
****
|
2013-07-19 10:34:55 +00:00
|
|
|
|
|
|
|
docker v0.5.0 51f6c4a_
|
|
|
|
|
2013-09-27 08:32:55 -05:00
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
|
|
|
:doc:`docker_remote_api_v1.3`
|
|
|
|
|
2013-07-19 10:34:55 +00:00
|
|
|
What's new
|
|
|
|
----------
|
|
|
|
|
2013-07-22 16:22:11 +00:00
|
|
|
.. http:get:: /containers/(id)/top
|
2013-06-28 18:05:41 +02:00
|
|
|
|
2013-07-22 16:22:11 +00:00
|
|
|
List the processes running inside a container.
|
2013-06-28 18:05:41 +02:00
|
|
|
|
2013-07-17 15:44:06 +02:00
|
|
|
.. http:get:: /events:
|
|
|
|
|
|
|
|
**New!** Monitor docker's events via streaming or via polling
|
|
|
|
|
2013-06-21 13:51:48 -07:00
|
|
|
Builder (/build):
|
2013-06-22 01:08:20 +02:00
|
|
|
|
2013-06-21 13:51:48 -07:00
|
|
|
- Simplify the upload of the build context
|
2013-07-18 19:04:51 -07:00
|
|
|
- Simply stream a tarball instead of multipart upload with 4
|
|
|
|
intermediary buffers
|
2013-06-21 13:51:48 -07:00
|
|
|
- Simpler, less memory usage, less disk usage and faster
|
|
|
|
|
2013-07-18 19:04:51 -07:00
|
|
|
.. Warning::
|
|
|
|
|
|
|
|
The /build improvements are not reverse-compatible. Pre 1.3 clients
|
|
|
|
will break on /build.
|
2013-06-21 13:51:48 -07:00
|
|
|
|
2013-06-22 01:08:20 +02:00
|
|
|
List containers (/containers/json):
|
|
|
|
|
|
|
|
- You can use size=1 to get the size of the containers
|
|
|
|
|
2013-05-13 17:39:54 -06:00
|
|
|
Start containers (/containers/<id>/start):
|
|
|
|
|
2013-07-18 19:04:51 -07:00
|
|
|
- You can now pass host-specific configuration (e.g. bind mounts) in
|
|
|
|
the POST body for start calls
|
2013-06-21 13:51:48 -07:00
|
|
|
|
2013-10-02 18:18:46 -07:00
|
|
|
v1.2
|
|
|
|
****
|
2013-05-07 17:19:41 +02:00
|
|
|
|
2013-06-22 01:08:20 +02:00
|
|
|
docker v0.4.2 2e7649b_
|
|
|
|
|
2013-09-27 08:32:55 -05:00
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
|
|
|
:doc:`docker_remote_api_v1.2`
|
|
|
|
|
2013-06-05 13:19:57 +02:00
|
|
|
What's new
|
2013-05-07 17:19:41 +02:00
|
|
|
----------
|
|
|
|
|
2013-06-05 13:19:57 +02:00
|
|
|
The auth configuration is now handled by the client.
|
2013-05-09 23:10:26 +02:00
|
|
|
|
2013-07-18 19:04:51 -07:00
|
|
|
The client should send it's authConfig as POST on each call of
|
|
|
|
/images/(name)/push
|
|
|
|
|
|
|
|
.. http:get:: /auth
|
|
|
|
|
|
|
|
**Deprecated.**
|
|
|
|
|
|
|
|
.. http:post:: /auth
|
|
|
|
|
|
|
|
Only checks the configuration but doesn't store it on the server
|
|
|
|
|
|
|
|
Deleting an image is now improved, will only untag the image if it
|
2013-08-12 18:53:06 +01:00
|
|
|
has children and remove all the untagged parents if has any.
|
2013-05-09 23:10:26 +02:00
|
|
|
|
2013-07-18 19:04:51 -07:00
|
|
|
.. http:post:: /images/<name>/delete
|
2013-06-21 11:13:13 +02:00
|
|
|
|
2013-07-18 19:04:51 -07:00
|
|
|
Now returns a JSON structure with the list of images
|
|
|
|
deleted/untagged.
|
2013-05-09 23:10:26 +02:00
|
|
|
|
|
|
|
|
2013-10-02 18:18:46 -07:00
|
|
|
v1.1
|
|
|
|
****
|
2013-05-07 17:19:41 +02:00
|
|
|
|
2013-06-05 13:19:57 +02:00
|
|
|
docker v0.4.0 a8ae398_
|
2013-05-07 17:19:41 +02:00
|
|
|
|
2013-09-27 08:32:55 -05:00
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
|
|
|
:doc:`docker_remote_api_v1.1`
|
|
|
|
|
2013-06-05 13:19:57 +02:00
|
|
|
What's new
|
|
|
|
----------
|
2013-05-07 17:19:41 +02:00
|
|
|
|
2013-05-09 22:29:12 -07:00
|
|
|
.. http:post:: /images/create
|
2013-05-08 17:35:50 +02:00
|
|
|
.. http:post:: /images/(name)/insert
|
2013-05-07 17:19:41 +02:00
|
|
|
.. http:post:: /images/(name)/push
|
|
|
|
|
2013-07-18 19:04:51 -07:00
|
|
|
Uses json stream instead of HTML hijack, it looks like this:
|
2013-05-28 15:49:57 +00:00
|
|
|
|
|
|
|
.. sourcecode:: http
|
|
|
|
|
|
|
|
HTTP/1.1 200 OK
|
|
|
|
Content-Type: application/json
|
|
|
|
|
|
|
|
{"status":"Pushing..."}
|
2013-06-04 16:09:08 +00:00
|
|
|
{"status":"Pushing", "progress":"1/? (n/a)"}
|
2013-05-28 15:49:57 +00:00
|
|
|
{"error":"Invalid..."}
|
|
|
|
...
|
|
|
|
|
2013-10-02 18:18:46 -07:00
|
|
|
v1.0
|
|
|
|
****
|
2013-06-22 01:08:20 +02:00
|
|
|
|
2013-06-05 13:19:57 +02:00
|
|
|
docker v0.3.4 8d73740_
|
2013-05-07 17:19:41 +02:00
|
|
|
|
2013-09-27 08:32:55 -05:00
|
|
|
Full Documentation
|
|
|
|
------------------
|
|
|
|
|
|
|
|
:doc:`docker_remote_api_v1.0`
|
|
|
|
|
2013-06-13 17:58:06 +00:00
|
|
|
What's new
|
|
|
|
----------
|
2013-06-10 15:17:27 -07:00
|
|
|
|
2013-06-05 13:19:57 +02:00
|
|
|
Initial version
|
2013-05-07 17:19:41 +02:00
|
|
|
|
2013-06-11 10:12:36 +00:00
|
|
|
|
2013-06-05 13:19:57 +02:00
|
|
|
.. _a8ae398: https://github.com/dotcloud/docker/commit/a8ae398bf52e97148ee7bd0d5868de2e15bd297f
|
|
|
|
.. _8d73740: https://github.com/dotcloud/docker/commit/8d73740343778651c09160cde9661f5f387b36f4
|
2013-06-22 01:08:20 +02:00
|
|
|
.. _2e7649b: https://github.com/dotcloud/docker/commit/2e7649beda7c820793bd46766cbc2cfeace7b168
|
2013-07-19 10:34:55 +00:00
|
|
|
.. _51f6c4a: https://github.com/dotcloud/docker/commit/51f6c4a7372450d164c61e0054daf0223ddbd909
|