123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- :title: Remote API
- :description: API Documentation for Docker
- :keywords: API, Docker, rcli, REST, documentation
- =================
- Docker Remote API
- =================
- .. contents:: Table of Contents
- 1. Brief introduction
- =====================
- - The Remote API is replacing rcli
- - Default port in the docker deamon is 4243
- - 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
- 2. Versions
- ===========
- The current verson of the API is 1.2
- Calling /images/<name>/insert is the same as calling /v1.2/images/<name>/insert
- You can still call an old version of the api using /v1.0/images/<name>/insert
- :doc:`docker_remote_api_v1.2`
- *****************************
- What's new
- ----------
- The auth configuration is now handled by the client.
- The client should send it's authConfig as POST on each call of /images/(name)/push
- .. http:get:: /auth is now 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 has chidrens and remove all the untagged parents if has any.
- .. http:post:: /images/<name>/delete now returns a JSON with the list of images deleted/untagged
- :doc:`docker_remote_api_v1.1`
- *****************************
- docker v0.4.0 a8ae398_
- What's new
- ----------
- .. http:post:: /images/create
- .. http:post:: /images/(name)/insert
- .. http:post:: /images/(name)/push
- Uses json stream instead of HTML hijack, it looks like this:
- .. sourcecode:: http
- HTTP/1.1 200 OK
- Content-Type: application/json
- {"status":"Pushing..."}
- {"status":"Pushing", "progress":"1/? (n/a)"}
- {"error":"Invalid..."}
- ...
- docker v0.3.4 8d73740_
- HTTP/1.1 200 OK
- Content-Type: application/vnd.docker.raw-stream
- {{ STREAM }}
- :query registry: the registry you wan to push, optional
- :statuscode 200: no error
- :statuscode 404: no such image
- :statuscode 500: server error
- Tag an image into a repository
- ******************************
- .. http:post:: /images/(name)/tag
- Tag the image ``name`` into a repository
- **Example request**:
- .. sourcecode:: http
-
- POST /images/test/tag?repo=myrepo&force=0 HTTP/1.1
- **Example response**:
- .. sourcecode:: http
- HTTP/1.1 200 OK
- :query repo: The repository to tag in
- :query force: 1/True/true or 0/False/false, default false
- :statuscode 200: no error
- :statuscode 400: bad parameter
- :statuscode 404: no such image
- :statuscode 500: server error
- Remove an image
- ***************
- .. http:delete:: /images/(name)
- Remove the image ``name`` from the filesystem
-
- **Example request**:
- .. sourcecode:: http
- DELETE /images/test HTTP/1.1
- **Example response**:
- .. sourcecode:: http
- HTTP/1.1 204 OK
- :statuscode 204: no error
- :statuscode 404: no such image
- :statuscode 500: server error
- Search images
- *************
- .. http:get:: /images/search
- Search for an image in the docker index
-
- **Example request**:
- .. sourcecode:: http
- GET /images/search?term=sshd HTTP/1.1
- **Example response**:
- .. sourcecode:: http
- 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
- 3.3 Misc
- --------
- Build an image from Dockerfile via stdin
- ****************************************
- .. http:post:: /build
- Build an image from Dockerfile via stdin
- **Example request**:
- .. sourcecode:: http
- POST /build HTTP/1.1
-
- {{ STREAM }}
- **Example response**:
- .. sourcecode:: http
- HTTP/1.1 200 OK
-
- {{ STREAM }}
- :query t: tag to be applied to the resulting image in case of success
- :query remote: URL to be fetch. Either a single Dockerfile or a Git repository
- :statuscode 200: no error
- :statuscode 500: server error
- Get default username and email
- ******************************
- .. http:get:: /auth
- Get the default username and email
- **Example request**:
- .. sourcecode:: http
- GET /auth HTTP/1.1
- **Example response**:
- .. sourcecode:: http
- HTTP/1.1 200 OK
- Content-Type: application/json
- {
- "username":"hannibal",
- "email":"hannibal@a-team.com"
- }
- :statuscode 200: no error
- :statuscode 500: server error
- Set auth configuration
- **********************
- .. http:post:: /auth
- Get the default username and email
- **Example request**:
- .. sourcecode:: http
- POST /auth HTTP/1.1
- Content-Type: application/json
- {
- "username":"hannibal",
- "password:"xxxx",
- "email":"hannibal@a-team.com"
- }
- **Example response**:
- .. sourcecode:: http
- HTTP/1.1 200 OK
- :statuscode 200: no error
- :statuscode 204: no error
- :statuscode 500: server error
- Display system-wide information
- *******************************
- .. http:get:: /info
- Display system-wide information
-
- **Example request**:
- .. sourcecode:: http
- GET /info HTTP/1.1
- **Example response**:
- .. sourcecode:: http
- HTTP/1.1 200 OK
- Content-Type: application/json
- {
- "Containers":11,
- "Images":16,
- "Debug":false,
- "NFd": 11,
- "NGoroutines":21,
- "MemoryLimit":true,
- "SwapLimit":false
- }
- :statuscode 200: no error
- :statuscode 500: server error
- Show the docker version information
- ***********************************
- .. http:get:: /version
- Show the docker version information
- **Example request**:
- .. sourcecode:: http
- GET /version HTTP/1.1
- **Example response**:
- .. sourcecode:: http
- HTTP/1.1 200 OK
- Content-Type: application/json
- {
- "Version":"0.2.2",
- "GitCommit":"5a2a5cc+CHANGES",
- "GoVersion":"go1.0.3"
- }
- :statuscode 200: no error
- :statuscode 500: server error
- Create a new image from a container's changes
- *********************************************
- .. http:post:: /commit
- Create a new image from a container's changes
- **Example request**:
- .. sourcecode:: http
- POST /commit?container=44c004db4b17&m=message&repo=myrepo HTTP/1.1
- **Example response**:
- .. sourcecode:: http
- HTTP/1.1 201 OK
- Content-Type: application/vnd.docker.raw-stream
- {"Id":"596069db4bf5"}
- Initial version
- .. _a8ae398: https://github.com/dotcloud/docker/commit/a8ae398bf52e97148ee7bd0d5868de2e15bd297f
- .. _8d73740: https://github.com/dotcloud/docker/commit/8d73740343778651c09160cde9661f5f387b36f4
- ==================================
- Docker Remote API Client Libraries
- ==================================
- These libraries have been not tested by the Docker Maintainers for
- compatibility. Please file issues with the library owners. If you
- find more library implementations, please list them in Docker doc bugs
- and we will add the libraries here.
- +----------------------+----------------+--------------------------------------------+
- | Language/Framework | Name | Repository |
- +======================+================+============================================+
- | Python | docker-py | https://github.com/dotcloud/docker-py |
- +----------------------+----------------+--------------------------------------------+
- | Ruby | docker-ruby | https://github.com/ActiveState/docker-ruby |
- +----------------------+----------------+--------------------------------------------+
- | Ruby | docker-client | https://github.com/geku/docker-client |
- +----------------------+----------------+--------------------------------------------+
- | Javascript | docker-js | https://github.com/dgoujard/docker-js |
- +----------------------+----------------+--------------------------------------------+
- | Javascript (Angular) | dockerui | https://github.com/crosbymichael/dockerui |
- | **WebUI** | | |
- +----------------------+----------------+--------------------------------------------+
|