|
@@ -0,0 +1,12836 @@
|
|
|
+diff --git a/docs/sources/articles.md b/docs/sources/articles.md
|
|
|
+index da5a2d2..48654b0 100644
|
|
|
+--- a/docs/sources/articles.md
|
|
|
++++ b/docs/sources/articles.md
|
|
|
+@@ -1,8 +1,7 @@
|
|
|
+-# Articles
|
|
|
+
|
|
|
+-## Contents:
|
|
|
++# Articles
|
|
|
+
|
|
|
+-- [Docker Security](security/)
|
|
|
+-- [Create a Base Image](baseimages/)
|
|
|
+-- [Runtime Metrics](runmetrics/)
|
|
|
++- [Docker Security](security/)
|
|
|
++- [Create a Base Image](baseimages/)
|
|
|
++- [Runtime Metrics](runmetrics/)
|
|
|
+
|
|
|
+diff --git a/docs/sources/articles/runmetrics.md b/docs/sources/articles/runmetrics.md
|
|
|
+index 1a832d1..2372282 100644
|
|
|
+--- a/docs/sources/articles/runmetrics.md
|
|
|
++++ b/docs/sources/articles/runmetrics.md
|
|
|
+@@ -56,7 +56,7 @@ ID or long ID of the container. If a container shows up as ae836c95b4c3
|
|
|
+ in `docker ps`, its long ID might be something like
|
|
|
+ `ae836c95b4c3c9e9179e0e91015512da89fdec91612f63cebae57df9a5444c79`{.docutils
|
|
|
+ .literal}. You can look it up with `docker inspect`
|
|
|
+-or `docker ps -notrunc`.
|
|
|
++or `docker ps --no-trunc`.
|
|
|
+
|
|
|
+ Putting everything together to look at the memory metrics for a Docker
|
|
|
+ container, take a look at
|
|
|
+diff --git a/docs/sources/articles/security.md b/docs/sources/articles/security.md
|
|
|
+index 23d595f..13917f0 100644
|
|
|
+--- a/docs/sources/articles/security.md
|
|
|
++++ b/docs/sources/articles/security.md
|
|
|
+@@ -5,7 +5,7 @@ page_keywords: Docker, Docker documentation, security
|
|
|
+ # Docker Security
|
|
|
+
|
|
|
+ > *Adapted from* [Containers & Docker: How Secure are
|
|
|
+-> They?](blogsecurity)
|
|
|
++> They?](http://blog.docker.io/2013/08/containers-docker-how-secure-are-they/)
|
|
|
+
|
|
|
+ There are three major areas to consider when reviewing Docker security:
|
|
|
+
|
|
|
+@@ -255,4 +255,4 @@ with Docker, since everything is provided by the kernel anyway.
|
|
|
+
|
|
|
+ For more context and especially for comparisons with VMs and other
|
|
|
+ container systems, please also see the [original blog
|
|
|
+-post](blogsecurity).
|
|
|
++post](http://blog.docker.io/2013/08/containers-docker-how-secure-are-they/).
|
|
|
+diff --git a/docs/sources/contributing.md b/docs/sources/contributing.md
|
|
|
+index b311d13..0a31cb2 100644
|
|
|
+--- a/docs/sources/contributing.md
|
|
|
++++ b/docs/sources/contributing.md
|
|
|
+@@ -1,7 +1,6 @@
|
|
|
+-# Contributing
|
|
|
+
|
|
|
+-## Contents:
|
|
|
++# Contributing
|
|
|
+
|
|
|
+-- [Contributing to Docker](contributing/)
|
|
|
+-- [Setting Up a Dev Environment](devenvironment/)
|
|
|
++- [Contributing to Docker](contributing/)
|
|
|
++- [Setting Up a Dev Environment](devenvironment/)
|
|
|
+
|
|
|
+diff --git a/docs/sources/contributing/devenvironment.md b/docs/sources/contributing/devenvironment.md
|
|
|
+index 3b77acf..76df680 100644
|
|
|
+--- a/docs/sources/contributing/devenvironment.md
|
|
|
++++ b/docs/sources/contributing/devenvironment.md
|
|
|
+@@ -10,7 +10,7 @@ used for all tests, builds and releases. The standard development
|
|
|
+ environment defines all build dependencies: system libraries and
|
|
|
+ binaries, go environment, go dependencies, etc.
|
|
|
+
|
|
|
+-## Install Docker
|
|
|
++## Step 1: Install Docker
|
|
|
+
|
|
|
+ Docker’s build environment itself is a Docker container, so the first
|
|
|
+ step is to install Docker on your system.
|
|
|
+@@ -20,7 +20,7 @@ system](https://docs.docker.io/en/latest/installation/). Make sure you
|
|
|
+ have a working, up-to-date docker installation, then continue to the
|
|
|
+ next step.
|
|
|
+
|
|
|
+-## Install tools used for this tutorial
|
|
|
++## Step 2: Install tools used for this tutorial
|
|
|
+
|
|
|
+ Install `git`; honest, it’s very good. You can use
|
|
|
+ other ways to get the Docker source, but they’re not anywhere near as
|
|
|
+@@ -30,7 +30,7 @@ Install `make`. This tutorial uses our base Makefile
|
|
|
+ to kick off the docker containers in a repeatable and consistent way.
|
|
|
+ Again, you can do it in other ways but you need to do more work.
|
|
|
+
|
|
|
+-## Check out the Source
|
|
|
++## Step 3: Check out the Source
|
|
|
+
|
|
|
+ git clone http://git@github.com/dotcloud/docker
|
|
|
+ cd docker
|
|
|
+@@ -38,7 +38,7 @@ Again, you can do it in other ways but you need to do more work.
|
|
|
+ To checkout a different revision just use `git checkout`{.docutils
|
|
|
+ .literal} with the name of branch or revision number.
|
|
|
+
|
|
|
+-## Build the Environment
|
|
|
++## Step 4: Build the Environment
|
|
|
+
|
|
|
+ This following command will build a development environment using the
|
|
|
+ Dockerfile in the current directory. Essentially, it will install all
|
|
|
+@@ -50,7 +50,7 @@ This command will take some time to complete when you first execute it.
|
|
|
+ If the build is successful, congratulations! You have produced a clean
|
|
|
+ build of docker, neatly encapsulated in a standard build environment.
|
|
|
+
|
|
|
+-## Build the Docker Binary
|
|
|
++## Step 5: Build the Docker Binary
|
|
|
+
|
|
|
+ To create the Docker binary, run this command:
|
|
|
+
|
|
|
+@@ -73,7 +73,7 @@ Note
|
|
|
+ Its safer to run the tests below before swapping your hosts docker
|
|
|
+ binary.
|
|
|
+
|
|
|
+-## Run the Tests
|
|
|
++## Step 5: Run the Tests
|
|
|
+
|
|
|
+ To execute the test cases, run this command:
|
|
|
+
|
|
|
+@@ -114,7 +114,7 @@ eg.
|
|
|
+
|
|
|
+ > TESTFLAGS=’-run \^TestBuild\$’ make test
|
|
|
+
|
|
|
+-## Use Docker
|
|
|
++## Step 6: Use Docker
|
|
|
+
|
|
|
+ You can run an interactive session in the newly built container:
|
|
|
+
|
|
|
+@@ -122,7 +122,7 @@ You can run an interactive session in the newly built container:
|
|
|
+
|
|
|
+ # type 'exit' or Ctrl-D to exit
|
|
|
+
|
|
|
+-## Build And View The Documentation
|
|
|
++## Extra Step: Build and view the Documentation
|
|
|
+
|
|
|
+ If you want to read the documentation from a local website, or are
|
|
|
+ making changes to it, you can build the documentation and then serve it
|
|
|
+diff --git a/docs/sources/examples.md b/docs/sources/examples.md
|
|
|
+index 98b3d25..81ad1de 100644
|
|
|
+--- a/docs/sources/examples.md
|
|
|
++++ b/docs/sources/examples.md
|
|
|
+@@ -1,25 +1,23 @@
|
|
|
+
|
|
|
+ # Examples
|
|
|
+
|
|
|
+-## Introduction:
|
|
|
+-
|
|
|
+ Here are some examples of how to use Docker to create running processes,
|
|
|
+ starting from a very simple *Hello World* and progressing to more
|
|
|
+ substantial services like those which you might find in production.
|
|
|
+
|
|
|
+-## Contents:
|
|
|
+-
|
|
|
+-- [Check your Docker install](hello_world/)
|
|
|
+-- [Hello World](hello_world/#hello-world)
|
|
|
+-- [Hello World Daemon](hello_world/#hello-world-daemon)
|
|
|
+-- [Node.js Web App](nodejs_web_app/)
|
|
|
+-- [Redis Service](running_redis_service/)
|
|
|
+-- [SSH Daemon Service](running_ssh_service/)
|
|
|
+-- [CouchDB Service](couchdb_data_volumes/)
|
|
|
+-- [PostgreSQL Service](postgresql_service/)
|
|
|
+-- [Building an Image with MongoDB](mongodb/)
|
|
|
+-- [Riak Service](running_riak_service/)
|
|
|
+-- [Using Supervisor with Docker](using_supervisord/)
|
|
|
+-- [Process Management with CFEngine](cfengine_process_management/)
|
|
|
+-- [Python Web App](python_web_app/)
|
|
|
++- [Check your Docker install](hello_world/)
|
|
|
++- [Hello World](hello_world/#hello-world)
|
|
|
++- [Hello World Daemon](hello_world/#hello-world-daemon)
|
|
|
++- [Node.js Web App](nodejs_web_app/)
|
|
|
++- [Redis Service](running_redis_service/)
|
|
|
++- [SSH Daemon Service](running_ssh_service/)
|
|
|
++- [CouchDB Service](couchdb_data_volumes/)
|
|
|
++- [PostgreSQL Service](postgresql_service/)
|
|
|
++- [Building an Image with MongoDB](mongodb/)
|
|
|
++- [Riak Service](running_riak_service/)
|
|
|
++- [Using Supervisor with Docker](using_supervisord/)
|
|
|
++- [Process Management with CFEngine](cfengine_process_management/)
|
|
|
++- [Python Web App](python_web_app/)
|
|
|
++- [Apt-Cacher-ng Service](apt-cacher-ng/)
|
|
|
++- [Running Docker with https](https/)
|
|
|
+
|
|
|
+diff --git a/docs/sources/examples/couchdb_data_volumes.md b/docs/sources/examples/couchdb_data_volumes.md
|
|
|
+index c4d478e..9665bb0 100644
|
|
|
+--- a/docs/sources/examples/couchdb_data_volumes.md
|
|
|
++++ b/docs/sources/examples/couchdb_data_volumes.md
|
|
|
+@@ -11,6 +11,8 @@ Note
|
|
|
+ install*](../hello_world/#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ Here’s an example of using data volumes to share the same data between
|
|
|
+ two CouchDB containers. This could be used for hot upgrades, testing
|
|
|
+diff --git a/docs/sources/examples/hello_world.md b/docs/sources/examples/hello_world.md
|
|
|
+index 8f2ae58..a9b0d7d 100644
|
|
|
+--- a/docs/sources/examples/hello_world.md
|
|
|
++++ b/docs/sources/examples/hello_world.md
|
|
|
+@@ -2,7 +2,7 @@ page_title: Hello world example
|
|
|
+ page_description: A simple hello world example with Docker
|
|
|
+ page_keywords: docker, example, hello world
|
|
|
+
|
|
|
+-# Check your Docker installation
|
|
|
++# Check your Docker install
|
|
|
+
|
|
|
+ This guide assumes you have a working installation of Docker. To check
|
|
|
+ your Docker install, run the following command:
|
|
|
+@@ -18,7 +18,7 @@ privileges to access docker on your machine.
|
|
|
+ Please refer to [*Installation*](../../installation/#installation-list)
|
|
|
+ for installation instructions.
|
|
|
+
|
|
|
+-## Hello World
|
|
|
++# Hello World
|
|
|
+
|
|
|
+ Note
|
|
|
+
|
|
|
+@@ -27,6 +27,8 @@ Note
|
|
|
+ install*](#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ This is the most basic example available for using Docker.
|
|
|
+
|
|
|
+@@ -59,7 +61,9 @@ standard out.
|
|
|
+
|
|
|
+ See the example in action
|
|
|
+
|
|
|
+-## Hello World Daemon
|
|
|
++* * * * *
|
|
|
++
|
|
|
++# Hello World Daemon
|
|
|
+
|
|
|
+ Note
|
|
|
+
|
|
|
+@@ -68,6 +72,8 @@ Note
|
|
|
+ install*](#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ And now for the most boring daemon ever written!
|
|
|
+
|
|
|
+@@ -77,7 +83,7 @@ continue to do this until we stop it.
|
|
|
+
|
|
|
+ **Steps:**
|
|
|
+
|
|
|
+- CONTAINER_ID=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done")
|
|
|
++ container_id=$(sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done")
|
|
|
+
|
|
|
+ We are going to run a simple hello world daemon in a new container made
|
|
|
+ from the `ubuntu` image.
|
|
|
+@@ -89,31 +95,31 @@ from the `ubuntu` image.
|
|
|
+ - **“while true; do echo hello world; sleep 1; done”** is the mini
|
|
|
+ script we want to run, that will just print hello world once a
|
|
|
+ second until we stop it.
|
|
|
+-- **\$CONTAINER\_ID** the output of the run command will return a
|
|
|
++- **\$container\_id** the output of the run command will return a
|
|
|
+ container id, we can use in future commands to see what is going on
|
|
|
+ with this process.
|
|
|
+
|
|
|
+ <!-- -->
|
|
|
+
|
|
|
+- sudo docker logs $CONTAINER_ID
|
|
|
++ sudo docker logs $container_id
|
|
|
+
|
|
|
+ Check the logs make sure it is working correctly.
|
|
|
+
|
|
|
+ - **“docker logs**” This will return the logs for a container
|
|
|
+-- **\$CONTAINER\_ID** The Id of the container we want the logs for.
|
|
|
++- **\$container\_id** The Id of the container we want the logs for.
|
|
|
+
|
|
|
+ <!-- -->
|
|
|
+
|
|
|
+- sudo docker attach -sig-proxy=false $CONTAINER_ID
|
|
|
++ sudo docker attach --sig-proxy=false $container_id
|
|
|
+
|
|
|
+ Attach to the container to see the results in real-time.
|
|
|
+
|
|
|
+ - **“docker attach**” This will allow us to attach to a background
|
|
|
+ process to see what is going on.
|
|
|
+-- **“-sig-proxy=false”** Do not forward signals to the container;
|
|
|
++- **“–sig-proxy=false”** Do not forward signals to the container;
|
|
|
+ allows us to exit the attachment using Control-C without stopping
|
|
|
+ the container.
|
|
|
+-- **\$CONTAINER\_ID** The Id of the container we want to attach too.
|
|
|
++- **\$container\_id** The Id of the container we want to attach too.
|
|
|
+
|
|
|
+ Exit from the container attachment by pressing Control-C.
|
|
|
+
|
|
|
+@@ -125,12 +131,12 @@ Check the process list to make sure it is running.
|
|
|
+
|
|
|
+ <!-- -->
|
|
|
+
|
|
|
+- sudo docker stop $CONTAINER_ID
|
|
|
++ sudo docker stop $container_id
|
|
|
+
|
|
|
+ Stop the container, since we don’t need it anymore.
|
|
|
+
|
|
|
+ - **“docker stop”** This stops a container
|
|
|
+-- **\$CONTAINER\_ID** The Id of the container we want to stop.
|
|
|
++- **\$container\_id** The Id of the container we want to stop.
|
|
|
+
|
|
|
+ <!-- -->
|
|
|
+
|
|
|
+diff --git a/docs/sources/examples/mongodb.md b/docs/sources/examples/mongodb.md
|
|
|
+index 6612bf3..3708c18 100644
|
|
|
+--- a/docs/sources/examples/mongodb.md
|
|
|
++++ b/docs/sources/examples/mongodb.md
|
|
|
+@@ -11,6 +11,8 @@ Note
|
|
|
+ install*](../hello_world/#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ The goal of this example is to show how you can build your own Docker
|
|
|
+ images with MongoDB pre-installed. We will do that by constructing a
|
|
|
+@@ -43,7 +45,7 @@ we’ll divert `/sbin/initctl` to
|
|
|
+
|
|
|
+ # Hack for initctl not being available in Ubuntu
|
|
|
+ RUN dpkg-divert --local --rename --add /sbin/initctl
|
|
|
+- RUN ln -s /bin/true /sbin/initctl
|
|
|
++ RUN ln -sf /bin/true /sbin/initctl
|
|
|
+
|
|
|
+ Afterwards we’ll be able to update our apt repositories and install
|
|
|
+ MongoDB
|
|
|
+@@ -75,10 +77,10 @@ Now you should be able to run `mongod` as a daemon
|
|
|
+ and be able to connect on the local port!
|
|
|
+
|
|
|
+ # Regular style
|
|
|
+- MONGO_ID=$(sudo docker run -d <yourname>/mongodb)
|
|
|
++ MONGO_ID=$(sudo docker run -P -d <yourname>/mongodb)
|
|
|
+
|
|
|
+ # Lean and mean
|
|
|
+- MONGO_ID=$(sudo docker run -d <yourname>/mongodb --noprealloc --smallfiles)
|
|
|
++ MONGO_ID=$(sudo docker run -P -d <yourname>/mongodb --noprealloc --smallfiles)
|
|
|
+
|
|
|
+ # Check the logs out
|
|
|
+ sudo docker logs $MONGO_ID
|
|
|
+diff --git a/docs/sources/examples/nodejs_web_app.md b/docs/sources/examples/nodejs_web_app.md
|
|
|
+index 8d692d8..59e6c77 100644
|
|
|
+--- a/docs/sources/examples/nodejs_web_app.md
|
|
|
++++ b/docs/sources/examples/nodejs_web_app.md
|
|
|
+@@ -11,6 +11,8 @@ Note
|
|
|
+ install*](../hello_world/#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ The goal of this example is to show you how you can build your own
|
|
|
+ Docker images from a parent image using a `Dockerfile`{.docutils
|
|
|
+@@ -82,7 +84,7 @@ CentOS, we’ll use the instructions from the [Node.js
|
|
|
+ wiki](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#rhelcentosscientific-linux-6):
|
|
|
+
|
|
|
+ # Enable EPEL for Node.js
|
|
|
+- RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
|
|
|
++ RUN rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
|
|
|
+ # Install Node.js and npm
|
|
|
+ RUN yum install -y npm
|
|
|
+
|
|
|
+diff --git a/docs/sources/examples/postgresql_service.md b/docs/sources/examples/postgresql_service.md
|
|
|
+index 211dcb2..b87d121 100644
|
|
|
+--- a/docs/sources/examples/postgresql_service.md
|
|
|
++++ b/docs/sources/examples/postgresql_service.md
|
|
|
+@@ -11,6 +11,8 @@ Note
|
|
|
+ install*](../hello_world/#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ ## Installing PostgreSQL on Docker
|
|
|
+
|
|
|
+@@ -34,7 +36,7 @@ suitably secure.
|
|
|
+
|
|
|
+ # Add the PostgreSQL PGP key to verify their Debian packages.
|
|
|
+ # It should be the same key as https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
|
|
+- RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
|
|
|
++ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
|
|
|
+
|
|
|
+ # Add PostgreSQL's repository. It contains the most recent stable release
|
|
|
+ # of PostgreSQL, ``9.3``.
|
|
|
+@@ -85,7 +87,7 @@ Build an image from the Dockerfile assign it a name.
|
|
|
+
|
|
|
+ And run the PostgreSQL server container (in the foreground):
|
|
|
+
|
|
|
+- $ sudo docker run -rm -P -name pg_test eg_postgresql
|
|
|
++ $ sudo docker run --rm -P --name pg_test eg_postgresql
|
|
|
+
|
|
|
+ There are 2 ways to connect to the PostgreSQL server. We can use [*Link
|
|
|
+ Containers*](../../use/working_with_links_names/#working-with-links-names),
|
|
|
+@@ -93,17 +95,17 @@ or we can access it from our host (or the network).
|
|
|
+
|
|
|
+ Note
|
|
|
+
|
|
|
+-The `-rm` removes the container and its image when
|
|
|
++The `--rm` removes the container and its image when
|
|
|
+ the container exists successfully.
|
|
|
+
|
|
|
+ ### Using container linking
|
|
|
+
|
|
|
+ Containers can be linked to another container’s ports directly using
|
|
|
+-`-link remote_name:local_alias` in the client’s
|
|
|
++`--link remote_name:local_alias` in the client’s
|
|
|
+ `docker run`. This will set a number of environment
|
|
|
+ variables that can then be used to connect:
|
|
|
+
|
|
|
+- $ sudo docker run -rm -t -i -link pg_test:pg eg_postgresql bash
|
|
|
++ $ sudo docker run --rm -t -i --link pg_test:pg eg_postgresql bash
|
|
|
+
|
|
|
+ postgres@7ef98b1b7243:/$ psql -h $PG_PORT_5432_TCP_ADDR -p $PG_PORT_5432_TCP_PORT -d docker -U docker --password
|
|
|
+
|
|
|
+@@ -145,7 +147,7 @@ prompt, you can create a table and populate it.
|
|
|
+ You can use the defined volumes to inspect the PostgreSQL log files and
|
|
|
+ to backup your configuration and data:
|
|
|
+
|
|
|
+- docker run -rm --volumes-from pg_test -t -i busybox sh
|
|
|
++ docker run --rm --volumes-from pg_test -t -i busybox sh
|
|
|
+
|
|
|
+ / # ls
|
|
|
+ bin etc lib linuxrc mnt proc run sys usr
|
|
|
+diff --git a/docs/sources/examples/python_web_app.md b/docs/sources/examples/python_web_app.md
|
|
|
+index b5854a4..8c0d783 100644
|
|
|
+--- a/docs/sources/examples/python_web_app.md
|
|
|
++++ b/docs/sources/examples/python_web_app.md
|
|
|
+@@ -11,6 +11,8 @@ Note
|
|
|
+ install*](../hello_world/#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ While using Dockerfiles is the preferred way to create maintainable and
|
|
|
+ repeatable images, its useful to know how you can try things out and
|
|
|
+@@ -52,7 +54,7 @@ the `$URL` variable. The container is given a name
|
|
|
+ While this example is simple, you could run any number of interactive
|
|
|
+ commands, try things out, and then exit when you’re done.
|
|
|
+
|
|
|
+- $ sudo docker run -i -t -name pybuilder_run shykes/pybuilder bash
|
|
|
++ $ sudo docker run -i -t --name pybuilder_run shykes/pybuilder bash
|
|
|
+
|
|
|
+ $$ URL=http://github.com/shykes/helloflask/archive/master.tar.gz
|
|
|
+ $$ /usr/local/bin/buildapp $URL
|
|
|
+diff --git a/docs/sources/examples/running_redis_service.md b/docs/sources/examples/running_redis_service.md
|
|
|
+index 81114e6..c0511a9 100644
|
|
|
+--- a/docs/sources/examples/running_redis_service.md
|
|
|
++++ b/docs/sources/examples/running_redis_service.md
|
|
|
+@@ -11,6 +11,8 @@ Note
|
|
|
+ install*](../hello_world/#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ Very simple, no frills, Redis service attached to a web application
|
|
|
+ using a link.
|
|
|
+@@ -20,11 +22,11 @@ using a link.
|
|
|
+ Firstly, we create a `Dockerfile` for our new Redis
|
|
|
+ image.
|
|
|
+
|
|
|
+- FROM ubuntu:12.10
|
|
|
+- RUN apt-get update
|
|
|
+- RUN apt-get -y install redis-server
|
|
|
++ FROM debian:jessie
|
|
|
++ RUN apt-get update && apt-get install -y redis-server
|
|
|
+ EXPOSE 6379
|
|
|
+ ENTRYPOINT ["/usr/bin/redis-server"]
|
|
|
++ CMD ["--bind", "0.0.0.0"]
|
|
|
+
|
|
|
+ Next we build an image from our `Dockerfile`.
|
|
|
+ Replace `<your username>` with your own user name.
|
|
|
+@@ -48,7 +50,7 @@ database.
|
|
|
+ ## Create your web application container
|
|
|
+
|
|
|
+ Next we can create a container for our application. We’re going to use
|
|
|
+-the `-link` flag to create a link to the
|
|
|
++the `--link` flag to create a link to the
|
|
|
+ `redis` container we’ve just created with an alias
|
|
|
+ of `db`. This will create a secure tunnel to the
|
|
|
+ `redis` container and expose the Redis instance
|
|
|
+diff --git a/docs/sources/examples/running_riak_service.md b/docs/sources/examples/running_riak_service.md
|
|
|
+index e7171d8..c1b95e7 100644
|
|
|
+--- a/docs/sources/examples/running_riak_service.md
|
|
|
++++ b/docs/sources/examples/running_riak_service.md
|
|
|
+@@ -11,6 +11,8 @@ Note
|
|
|
+ install*](../hello_world/#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ The goal of this example is to show you how to build a Docker image with
|
|
|
+ Riak pre-installed.
|
|
|
+@@ -85,7 +87,7 @@ Almost there. Next, we add a hack to get us by the lack of
|
|
|
+ # Hack for initctl
|
|
|
+ # See: https://github.com/dotcloud/docker/issues/1024
|
|
|
+ RUN dpkg-divert --local --rename --add /sbin/initctl
|
|
|
+- RUN ln -s /bin/true /sbin/initctl
|
|
|
++ RUN ln -sf /bin/true /sbin/initctl
|
|
|
+
|
|
|
+ Then, we expose the Riak Protocol Buffers and HTTP interfaces, along
|
|
|
+ with SSH:
|
|
|
+diff --git a/docs/sources/examples/running_ssh_service.md b/docs/sources/examples/running_ssh_service.md
|
|
|
+index 112b9fa..2a0acfa 100644
|
|
|
+--- a/docs/sources/examples/running_ssh_service.md
|
|
|
++++ b/docs/sources/examples/running_ssh_service.md
|
|
|
+@@ -4,12 +4,15 @@ page_keywords: docker, example, package installation, networking
|
|
|
+
|
|
|
+ # SSH Daemon Service
|
|
|
+
|
|
|
+-> **Note:**
|
|
|
+-> - This example assumes you have Docker running in daemon mode. For
|
|
|
+-> more information please see [*Check your Docker
|
|
|
+-> install*](../hello_world/#running-examples).
|
|
|
+-> - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+-> access*](../../installation/binaries/#dockergroup)
|
|
|
++Note
|
|
|
++
|
|
|
++- This example assumes you have Docker running in daemon mode. For
|
|
|
++ more information please see [*Check your Docker
|
|
|
++ install*](../hello_world/#running-examples).
|
|
|
++- **If you don’t like sudo** then see [*Giving non-root
|
|
|
++ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ The following Dockerfile sets up an sshd service in a container that you
|
|
|
+ can use to connect to and inspect other container’s volumes, or to get
|
|
|
+@@ -35,12 +38,12 @@ quick access to a test container.
|
|
|
+
|
|
|
+ Build the image using:
|
|
|
+
|
|
|
+- $ sudo docker build -rm -t eg_sshd .
|
|
|
++ $ sudo docker build -t eg_sshd .
|
|
|
+
|
|
|
+ Then run it. You can then use `docker port` to find
|
|
|
+ out what host port the container’s port 22 is mapped to:
|
|
|
+
|
|
|
+- $ sudo docker run -d -P -name test_sshd eg_sshd
|
|
|
++ $ sudo docker run -d -P --name test_sshd eg_sshd
|
|
|
+ $ sudo docker port test_sshd 22
|
|
|
+ 0.0.0.0:49154
|
|
|
+
|
|
|
+diff --git a/docs/sources/examples/using_supervisord.md b/docs/sources/examples/using_supervisord.md
|
|
|
+index d64b300..8d6e796 100644
|
|
|
+--- a/docs/sources/examples/using_supervisord.md
|
|
|
++++ b/docs/sources/examples/using_supervisord.md
|
|
|
+@@ -11,6 +11,8 @@ Note
|
|
|
+ install*](../hello_world/#running-examples).
|
|
|
+ - **If you don’t like sudo** then see [*Giving non-root
|
|
|
+ access*](../../installation/binaries/#dockergroup)
|
|
|
++- **If you’re using OS X or docker via TCP** then you shouldn’t use
|
|
|
++ sudo
|
|
|
+
|
|
|
+ Traditionally a Docker container runs a single process when it is
|
|
|
+ launched, for example an Apache daemon or a SSH server daemon. Often
|
|
|
+diff --git a/docs/sources/faq.md b/docs/sources/faq.md
|
|
|
+index 06da238..4977f73 100644
|
|
|
+--- a/docs/sources/faq.md
|
|
|
++++ b/docs/sources/faq.md
|
|
|
+@@ -1,122 +1,128 @@
|
|
|
++page_title: FAQ
|
|
|
++page_description: Most frequently asked questions.
|
|
|
++page_keywords: faq, questions, documentation, docker
|
|
|
++
|
|
|
+ # FAQ
|
|
|
+
|
|
|
+ ## Most frequently asked questions.
|
|
|
+
|
|
|
+ ### How much does Docker cost?
|
|
|
+
|
|
|
+-Docker is 100% free, it is open source, so you can use it without
|
|
|
+-paying.
|
|
|
++> Docker is 100% free, it is open source, so you can use it without
|
|
|
++> paying.
|
|
|
+
|
|
|
+ ### What open source license are you using?
|
|
|
+
|
|
|
+-We are using the Apache License Version 2.0.
|
|
|
+-You can see it [here](https://github.com/dotcloud/docker/blob/master/LICENSE).
|
|
|
++> We are using the Apache License Version 2.0, see it here:
|
|
|
++> [https://github.com/dotcloud/docker/blob/master/LICENSE](https://github.com/dotcloud/docker/blob/master/LICENSE)
|
|
|
+
|
|
|
+ ### Does Docker run on Mac OS X or Windows?
|
|
|
+
|
|
|
+-Not at this time, Docker currently only runs on Linux, but you can use
|
|
|
+-VirtualBox to run Docker in a virtual machine on your box, and get the
|
|
|
+-best of both worlds. Check out the [*Mac OSX*](../installation/mac/#macosx) and
|
|
|
+-[*Windows*](../installation/windows/#windows) installation guides. The
|
|
|
+-small Linux distribution *boot2docker* can be run inside virtual
|
|
|
+-machines on these two operating systems.
|
|
|
++> Not at this time, Docker currently only runs on Linux, but you can use
|
|
|
++> VirtualBox to run Docker in a virtual machine on your box, and get the
|
|
|
++> best of both worlds. Check out the [*Mac OS
|
|
|
++> X*](../installation/mac/#macosx) and [*Microsoft
|
|
|
++> Windows*](../installation/windows/#windows) installation guides. The
|
|
|
++> small Linux distribution boot2docker can be run inside virtual
|
|
|
++> machines on these two operating systems.
|
|
|
+
|
|
|
+ ### How do containers compare to virtual machines?
|
|
|
+
|
|
|
+-They are complementary. VMs are best used to allocate chunks of
|
|
|
+-hardware resources. Containers operate at the process level, which
|
|
|
+-makes them very lightweight and perfect as a unit of software
|
|
|
+-delivery.
|
|
|
++> They are complementary. VMs are best used to allocate chunks of
|
|
|
++> hardware resources. Containers operate at the process level, which
|
|
|
++> makes them very lightweight and perfect as a unit of software
|
|
|
++> delivery.
|
|
|
+
|
|
|
+ ### What does Docker add to just plain LXC?
|
|
|
+
|
|
|
+-Docker is not a replacement for LXC. “LXC” refers to capabilities of
|
|
|
+-the Linux kernel (specifically namespaces and control groups) which
|
|
|
+-allow sandboxing processes from one another, and controlling their
|
|
|
+-resource allocations. On top of this low-level foundation of kernel
|
|
|
+-features, Docker offers a high-level tool with several powerful
|
|
|
+-functionalities:
|
|
|
+-
|
|
|
+- - **Portable deployment across machines:**
|
|
|
+- Docker defines a format for bundling an application and all
|
|
|
+- its dependencies into a single object which can be transferred
|
|
|
+- to any Docker-enabled machine, and executed there with the
|
|
|
+- guarantee that the execution environment exposed to the
|
|
|
+- application will be the same. LXC implements process
|
|
|
+- sandboxing, which is an important pre-requisite for portable
|
|
|
+- deployment, but that alone is not enough for portable
|
|
|
+- deployment. If you sent me a copy of your application
|
|
|
+- installed in a custom LXC configuration, it would almost
|
|
|
+- certainly not run on my machine the way it does on yours,
|
|
|
+- because it is tied to your machine’s specific configuration:
|
|
|
+- networking, storage, logging, distro, etc. Docker defines an
|
|
|
+- abstraction for these machine-specific settings, so that the
|
|
|
+- exact same Docker container can run - unchanged - on many
|
|
|
+- different machines, with many different configurations.
|
|
|
+-
|
|
|
+- - **Application-centric:**
|
|
|
+- Docker is optimized for the deployment of applications, as
|
|
|
+- opposed to machines. This is reflected in its API, user
|
|
|
+- interface, design philosophy and documentation. By contrast,
|
|
|
+- the `lxc` helper scripts focus on
|
|
|
+- containers as lightweight machines - basically servers that
|
|
|
+- boot faster and need less RAM. We think there’s more to
|
|
|
+- containers than just that.
|
|
|
+-
|
|
|
+- - **Automatic build:**
|
|
|
+- Docker includes [*a tool for developers to automatically
|
|
|
+- assemble a container from their source
|
|
|
+- code*](../reference/builder/#dockerbuilder), with full control
|
|
|
+- over application dependencies, build tools, packaging etc.
|
|
|
+- They are free to use
|
|
|
+- `make, maven, chef, puppet, salt,` Debian
|
|
|
+- packages, RPMs, source tarballs, or any combination of the
|
|
|
+- above, regardless of the configuration of the machines.
|
|
|
+-
|
|
|
+- - **Versioning:**
|
|
|
+- Docker includes git-like capabilities for tracking successive
|
|
|
+- versions of a container, inspecting the diff between versions,
|
|
|
+- committing new versions, rolling back etc. The history also
|
|
|
+- includes how a container was assembled and by whom, so you get
|
|
|
+- full traceability from the production server all the way back
|
|
|
+- to the upstream developer. Docker also implements incremental
|
|
|
+- uploads and downloads, similar to `git pull`{.docutils
|
|
|
+- .literal}, so new versions of a container can be transferred
|
|
|
+- by only sending diffs.
|
|
|
+-
|
|
|
+- - **Component re-use:**
|
|
|
+- Any container can be used as a [*“base
|
|
|
+- image”*](../terms/image/#base-image-def) to create more
|
|
|
+- specialized components. This can be done manually or as part
|
|
|
+- of an automated build. For example you can prepare the ideal
|
|
|
+- Python environment, and use it as a base for 10 different
|
|
|
+- applications. Your ideal Postgresql setup can be re-used for
|
|
|
+- all your future projects. And so on.
|
|
|
+-
|
|
|
+- - **Sharing:**
|
|
|
+- Docker has access to a [public registry](http://index.docker.io)
|
|
|
+- where thousands of people have uploaded useful containers: anything
|
|
|
+- from Redis, CouchDB, Postgres to IRC bouncers to Rails app servers to
|
|
|
+- Hadoop to base images for various Linux distros. The
|
|
|
+- [*registry*](../reference/api/registry_index_spec/#registryindexspec)
|
|
|
+- also includes an official “standard library” of useful
|
|
|
+- containers maintained by the Docker team. The registry itself
|
|
|
+- is open-source, so anyone can deploy their own registry to
|
|
|
+- store and transfer private containers, for internal server
|
|
|
+- deployments for example.
|
|
|
+-
|
|
|
+- - **Tool ecosystem:**
|
|
|
+- Docker defines an API for automating and customizing the
|
|
|
+- creation and deployment of containers. There are a huge number
|
|
|
+- of tools integrating with Docker to extend its capabilities.
|
|
|
+- PaaS-like deployment (Dokku, Deis, Flynn), multi-node
|
|
|
+- orchestration (Maestro, Salt, Mesos, Openstack Nova),
|
|
|
+- management dashboards (docker-ui, Openstack Horizon,
|
|
|
+- Shipyard), configuration management (Chef, Puppet), continuous
|
|
|
+- integration (Jenkins, Strider, Travis), etc. Docker is rapidly
|
|
|
+- establishing itself as the standard for container-based
|
|
|
+- tooling.
|
|
|
+-
|
|
|
++> Docker is not a replacement for LXC. “LXC” refers to capabilities of
|
|
|
++> the Linux kernel (specifically namespaces and control groups) which
|
|
|
++> allow sandboxing processes from one another, and controlling their
|
|
|
++> resource allocations. On top of this low-level foundation of kernel
|
|
|
++> features, Docker offers a high-level tool with several powerful
|
|
|
++> functionalities:
|
|
|
++>
|
|
|
++> - *Portable deployment across machines.*
|
|
|
++> : Docker defines a format for bundling an application and all
|
|
|
++> its dependencies into a single object which can be transferred
|
|
|
++> to any Docker-enabled machine, and executed there with the
|
|
|
++> guarantee that the execution environment exposed to the
|
|
|
++> application will be the same. LXC implements process
|
|
|
++> sandboxing, which is an important pre-requisite for portable
|
|
|
++> deployment, but that alone is not enough for portable
|
|
|
++> deployment. If you sent me a copy of your application
|
|
|
++> installed in a custom LXC configuration, it would almost
|
|
|
++> certainly not run on my machine the way it does on yours,
|
|
|
++> because it is tied to your machine’s specific configuration:
|
|
|
++> networking, storage, logging, distro, etc. Docker defines an
|
|
|
++> abstraction for these machine-specific settings, so that the
|
|
|
++> exact same Docker container can run - unchanged - on many
|
|
|
++> different machines, with many different configurations.
|
|
|
++>
|
|
|
++> - *Application-centric.*
|
|
|
++> : Docker is optimized for the deployment of applications, as
|
|
|
++> opposed to machines. This is reflected in its API, user
|
|
|
++> interface, design philosophy and documentation. By contrast,
|
|
|
++> the `lxc` helper scripts focus on
|
|
|
++> containers as lightweight machines - basically servers that
|
|
|
++> boot faster and need less RAM. We think there’s more to
|
|
|
++> containers than just that.
|
|
|
++>
|
|
|
++> - *Automatic build.*
|
|
|
++> : Docker includes [*a tool for developers to automatically
|
|
|
++> assemble a container from their source
|
|
|
++> code*](../reference/builder/#dockerbuilder), with full control
|
|
|
++> over application dependencies, build tools, packaging etc.
|
|
|
++> They are free to use
|
|
|
++> `make, maven, chef, puppet, salt,` Debian
|
|
|
++> packages, RPMs, source tarballs, or any combination of the
|
|
|
++> above, regardless of the configuration of the machines.
|
|
|
++>
|
|
|
++> - *Versioning.*
|
|
|
++> : Docker includes git-like capabilities for tracking successive
|
|
|
++> versions of a container, inspecting the diff between versions,
|
|
|
++> committing new versions, rolling back etc. The history also
|
|
|
++> includes how a container was assembled and by whom, so you get
|
|
|
++> full traceability from the production server all the way back
|
|
|
++> to the upstream developer. Docker also implements incremental
|
|
|
++> uploads and downloads, similar to `git pull`{.docutils
|
|
|
++> .literal}, so new versions of a container can be transferred
|
|
|
++> by only sending diffs.
|
|
|
++>
|
|
|
++> - *Component re-use.*
|
|
|
++> : Any container can be used as a [*“base
|
|
|
++> image”*](../terms/image/#base-image-def) to create more
|
|
|
++> specialized components. This can be done manually or as part
|
|
|
++> of an automated build. For example you can prepare the ideal
|
|
|
++> Python environment, and use it as a base for 10 different
|
|
|
++> applications. Your ideal Postgresql setup can be re-used for
|
|
|
++> all your future projects. And so on.
|
|
|
++>
|
|
|
++> - *Sharing.*
|
|
|
++> : Docker has access to a [public
|
|
|
++> registry](http://index.docker.io) where thousands of people
|
|
|
++> have uploaded useful containers: anything from Redis, CouchDB,
|
|
|
++> Postgres to IRC bouncers to Rails app servers to Hadoop to
|
|
|
++> base images for various Linux distros. The
|
|
|
++> [*registry*](../reference/api/registry_index_spec/#registryindexspec)
|
|
|
++> also includes an official “standard library” of useful
|
|
|
++> containers maintained by the Docker team. The registry itself
|
|
|
++> is open-source, so anyone can deploy their own registry to
|
|
|
++> store and transfer private containers, for internal server
|
|
|
++> deployments for example.
|
|
|
++>
|
|
|
++> - *Tool ecosystem.*
|
|
|
++> : Docker defines an API for automating and customizing the
|
|
|
++> creation and deployment of containers. There are a huge number
|
|
|
++> of tools integrating with Docker to extend its capabilities.
|
|
|
++> PaaS-like deployment (Dokku, Deis, Flynn), multi-node
|
|
|
++> orchestration (Maestro, Salt, Mesos, Openstack Nova),
|
|
|
++> management dashboards (docker-ui, Openstack Horizon,
|
|
|
++> Shipyard), configuration management (Chef, Puppet), continuous
|
|
|
++> integration (Jenkins, Strider, Travis), etc. Docker is rapidly
|
|
|
++> establishing itself as the standard for container-based
|
|
|
++> tooling.
|
|
|
++>
|
|
|
+ ### What is different between a Docker container and a VM?
|
|
|
+
|
|
|
+ There’s a great StackOverflow answer [showing the
|
|
|
+@@ -159,22 +165,22 @@ here](http://docs.docker.io/en/latest/examples/using_supervisord/).
|
|
|
+
|
|
|
+ ### What platforms does Docker run on?
|
|
|
+
|
|
|
+-**Linux:**
|
|
|
++Linux:
|
|
|
+
|
|
|
+-- Ubuntu 12.04, 13.04 et al
|
|
|
+-- Fedora 19/20+
|
|
|
+-- RHEL 6.5+
|
|
|
+-- Centos 6+
|
|
|
+-- Gentoo
|
|
|
+-- ArchLinux
|
|
|
+-- openSUSE 12.3+
|
|
|
+-- CRUX 3.0+
|
|
|
++- Ubuntu 12.04, 13.04 et al
|
|
|
++- Fedora 19/20+
|
|
|
++- RHEL 6.5+
|
|
|
++- Centos 6+
|
|
|
++- Gentoo
|
|
|
++- ArchLinux
|
|
|
++- openSUSE 12.3+
|
|
|
++- CRUX 3.0+
|
|
|
+
|
|
|
+-**Cloud:**
|
|
|
++Cloud:
|
|
|
+
|
|
|
+-- Amazon EC2
|
|
|
+-- Google Compute Engine
|
|
|
+-- Rackspace
|
|
|
++- Amazon EC2
|
|
|
++- Google Compute Engine
|
|
|
++- Rackspace
|
|
|
+
|
|
|
+ ### How do I report a security issue with Docker?
|
|
|
+
|
|
|
+@@ -196,14 +202,17 @@ sources.
|
|
|
+
|
|
|
+ ### Where can I find more answers?
|
|
|
+
|
|
|
+-You can find more answers on:
|
|
|
+-
|
|
|
+-- [Docker user mailinglist](https://groups.google.com/d/forum/docker-user)
|
|
|
+-- [Docker developer mailinglist](https://groups.google.com/d/forum/docker-dev)
|
|
|
+-- [IRC, docker on freenode](irc://chat.freenode.net#docker)
|
|
|
+-- [GitHub](http://www.github.com/dotcloud/docker)
|
|
|
+-- [Ask questions on Stackoverflow](http://stackoverflow.com/search?q=docker)
|
|
|
+-- [Join the conversation on Twitter](http://twitter.com/docker)
|
|
|
++> You can find more answers on:
|
|
|
++>
|
|
|
++> - [Docker user
|
|
|
++> mailinglist](https://groups.google.com/d/forum/docker-user)
|
|
|
++> - [Docker developer
|
|
|
++> mailinglist](https://groups.google.com/d/forum/docker-dev)
|
|
|
++> - [IRC, docker on freenode](irc://chat.freenode.net#docker)
|
|
|
++> - [GitHub](http://www.github.com/dotcloud/docker)
|
|
|
++> - [Ask questions on
|
|
|
++> Stackoverflow](http://stackoverflow.com/search?q=docker)
|
|
|
++> - [Join the conversation on Twitter](http://twitter.com/docker)
|
|
|
+
|
|
|
+ Looking for something else to read? Checkout the [*Hello
|
|
|
+ World*](../examples/hello_world/#hello-world) example.
|
|
|
+diff --git a/docs/sources/genindex.md b/docs/sources/genindex.md
|
|
|
+index 8b013d6..e9bcd34 100644
|
|
|
+--- a/docs/sources/genindex.md
|
|
|
++++ b/docs/sources/genindex.md
|
|
|
+@@ -1 +1,2 @@
|
|
|
++
|
|
|
+ # Index
|
|
|
+diff --git a/docs/sources/http-routingtable.md b/docs/sources/http-routingtable.md
|
|
|
+index 2a06fdb..4ca4116 100644
|
|
|
+--- a/docs/sources/http-routingtable.md
|
|
|
++++ b/docs/sources/http-routingtable.md
|
|
|
+@@ -1,3 +1,4 @@
|
|
|
++
|
|
|
+ # HTTP Routing Table
|
|
|
+
|
|
|
+ [**/api**](#cap-/api) | [**/auth**](#cap-/auth) |
|
|
|
+diff --git a/docs/sources/index.md b/docs/sources/index.md
|
|
|
+index c5a5b6f..dd9e272 100644
|
|
|
+--- a/docs/sources/index.md
|
|
|
++++ b/docs/sources/index.md
|
|
|
+@@ -1,3 +1 @@
|
|
|
+-# Docker Documentation
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+\ No newline at end of file
|
|
|
++# Docker documentation
|
|
|
+diff --git a/docs/sources/installation.md b/docs/sources/installation.md
|
|
|
+index 0ee7b2f..4fdd102 100644
|
|
|
+--- a/docs/sources/installation.md
|
|
|
++++ b/docs/sources/installation.md
|
|
|
+@@ -1,25 +1,26 @@
|
|
|
+-# Installation
|
|
|
+
|
|
|
+-## Introduction
|
|
|
++# Installation
|
|
|
+
|
|
|
+ There are a number of ways to install Docker, depending on where you
|
|
|
+ want to run the daemon. The [*Ubuntu*](ubuntulinux/#ubuntu-linux)
|
|
|
+ installation is the officially-tested version. The community adds more
|
|
|
+ techniques for installing Docker all the time.
|
|
|
+
|
|
|
+-## Contents:
|
|
|
++Contents:
|
|
|
++
|
|
|
++- [Ubuntu](ubuntulinux/)
|
|
|
++- [Red Hat Enterprise Linux](rhel/)
|
|
|
++- [Fedora](fedora/)
|
|
|
++- [Arch Linux](archlinux/)
|
|
|
++- [CRUX Linux](cruxlinux/)
|
|
|
++- [Gentoo](gentoolinux/)
|
|
|
++- [openSUSE](openSUSE/)
|
|
|
++- [FrugalWare](frugalware/)
|
|
|
++- [Mac OS X](mac/)
|
|
|
++- [Microsoft Windows](windows/)
|
|
|
++- [Amazon EC2](amazon/)
|
|
|
++- [Rackspace Cloud](rackspace/)
|
|
|
++- [Google Cloud Platform](google/)
|
|
|
++- [IBM SoftLayer](softlayer/)
|
|
|
++- [Binaries](binaries/)
|
|
|
+
|
|
|
+-- [Ubuntu](ubuntulinux/)
|
|
|
+-- [Red Hat Enterprise Linux](rhel/)
|
|
|
+-- [Fedora](fedora/)
|
|
|
+-- [Arch Linux](archlinux/)
|
|
|
+-- [CRUX Linux](cruxlinux/)
|
|
|
+-- [Gentoo](gentoolinux/)
|
|
|
+-- [openSUSE](openSUSE/)
|
|
|
+-- [FrugalWare](frugalware/)
|
|
|
+-- [Mac OS X](mac/)
|
|
|
+-- [Windows](windows/)
|
|
|
+-- [Amazon EC2](amazon/)
|
|
|
+-- [Rackspace Cloud](rackspace/)
|
|
|
+-- [Google Cloud Platform](google/)
|
|
|
+-- [Binaries](binaries/)
|
|
|
+\ No newline at end of file
|
|
|
+diff --git a/docs/sources/installation/binaries.md b/docs/sources/installation/binaries.md
|
|
|
+index 5d761de..0aa22ca 100644
|
|
|
+--- a/docs/sources/installation/binaries.md
|
|
|
++++ b/docs/sources/installation/binaries.md
|
|
|
+@@ -23,14 +23,15 @@ packages for many distributions, and more keep showing up all the time!
|
|
|
+ To run properly, docker needs the following software to be installed at
|
|
|
+ runtime:
|
|
|
+
|
|
|
+-- iproute2 version 3.5 or later (build after 2012-05-21), and
|
|
|
+- specifically the “ip” utility
|
|
|
+ - iptables version 1.4 or later
|
|
|
+-- The LXC utility scripts
|
|
|
+- ([http://lxc.sourceforge.net](http://lxc.sourceforge.net)) version
|
|
|
+- 0.8 or later
|
|
|
+ - Git version 1.7 or later
|
|
|
+ - XZ Utils 4.9 or later
|
|
|
++- a [properly
|
|
|
++ mounted](https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount)
|
|
|
++ cgroupfs hierarchy (having a single, all-encompassing “cgroup” mount
|
|
|
++ point [is](https://github.com/dotcloud/docker/issues/2683)
|
|
|
++ [not](https://github.com/dotcloud/docker/issues/3485)
|
|
|
++ [sufficient](https://github.com/dotcloud/docker/issues/4568))
|
|
|
+
|
|
|
+ ## Check kernel dependencies
|
|
|
+
|
|
|
+@@ -38,7 +39,7 @@ Docker in daemon mode has specific kernel requirements. For details,
|
|
|
+ check your distribution in [*Installation*](../#installation-list).
|
|
|
+
|
|
|
+ Note that Docker also has a client mode, which can run on virtually any
|
|
|
+-linux kernel (it even builds on OSX!).
|
|
|
++Linux kernel (it even builds on OSX!).
|
|
|
+
|
|
|
+ ## Get the docker binary:
|
|
|
+
|
|
|
+@@ -69,7 +70,9 @@ all the client commands.
|
|
|
+
|
|
|
+ Warning
|
|
|
+
|
|
|
+-The *docker* group is root-equivalent.
|
|
|
++The *docker* group (or the group specified with `-G`{.docutils
|
|
|
++.literal}) is root-equivalent; see [*Docker Daemon Attack
|
|
|
++Surface*](../../articles/security/#dockersecurity-daemon) details.
|
|
|
+
|
|
|
+ ## Upgrades
|
|
|
+
|
|
|
+diff --git a/docs/sources/installation/fedora.md b/docs/sources/installation/fedora.md
|
|
|
+index 545e523..32f4fd2 100644
|
|
|
+--- a/docs/sources/installation/fedora.md
|
|
|
++++ b/docs/sources/installation/fedora.md
|
|
|
+@@ -31,13 +31,14 @@ installed already, it will conflict with `docker-io`{.docutils
|
|
|
+ .literal}. There’s a [bug
|
|
|
+ report](https://bugzilla.redhat.com/show_bug.cgi?id=1043676) filed for
|
|
|
+ it. To proceed with `docker-io` installation on
|
|
|
+-Fedora 19, please remove `docker` first.
|
|
|
++Fedora 19 or Fedora 20, please remove `docker`
|
|
|
++first.
|
|
|
+
|
|
|
+ sudo yum -y remove docker
|
|
|
+
|
|
|
+-For Fedora 20 and later, the `wmdocker` package will
|
|
|
+-provide the same functionality as `docker` and will
|
|
|
+-also not conflict with `docker-io`.
|
|
|
++For Fedora 21 and later, the `wmdocker` package will
|
|
|
++provide the same functionality as the old `docker`
|
|
|
++and will also not conflict with `docker-io`.
|
|
|
+
|
|
|
+ sudo yum -y install wmdocker
|
|
|
+ sudo yum -y remove docker
|
|
|
+diff --git a/docs/sources/installation/ubuntulinux.md b/docs/sources/installation/ubuntulinux.md
|
|
|
+index 8c83e87..b6e9889 100644
|
|
|
+--- a/docs/sources/installation/ubuntulinux.md
|
|
|
++++ b/docs/sources/installation/ubuntulinux.md
|
|
|
+@@ -56,13 +56,13 @@ These instructions have changed for 0.6. If you are upgrading from an
|
|
|
+ earlier version, you will need to follow them again.
|
|
|
+
|
|
|
+ Docker is available as a Debian package, which makes installation easy.
|
|
|
+-**See the :ref:\`installmirrors\` section below if you are not in the
|
|
|
+-United States.** Other sources of the Debian packages may be faster for
|
|
|
+-you to install.
|
|
|
++**See the** [*Docker and local DNS server warnings*](#installmirrors)
|
|
|
++**section below if you are not in the United States.** Other sources of
|
|
|
++the Debian packages may be faster for you to install.
|
|
|
+
|
|
|
+ First add the Docker repository key to your local keychain.
|
|
|
+
|
|
|
+- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
|
|
|
++ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
|
|
|
+
|
|
|
+ Add the Docker repository to your apt sources list, update and install
|
|
|
+ the `lxc-docker` package.
|
|
|
+@@ -121,7 +121,7 @@ upgrading from an earlier version, you will need to follow them again.
|
|
|
+
|
|
|
+ First add the Docker repository key to your local keychain.
|
|
|
+
|
|
|
+- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
|
|
|
++ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
|
|
|
+
|
|
|
+ Add the Docker repository to your apt sources list, update and install
|
|
|
+ the `lxc-docker` package.
|
|
|
+@@ -156,11 +156,15 @@ socket read/writable by the *docker* group when the daemon starts. The
|
|
|
+ `docker` daemon must always run as the root user,
|
|
|
+ but if you run the `docker` client as a user in the
|
|
|
+ *docker* group then you don’t need to add `sudo` to
|
|
|
+-all the client commands.
|
|
|
++all the client commands. As of 0.9.0, you can specify that a group other
|
|
|
++than `docker` should own the Unix socket with the
|
|
|
++`-G` option.
|
|
|
+
|
|
|
+ Warning
|
|
|
+
|
|
|
+-The *docker* group is root-equivalent.
|
|
|
++The *docker* group (or the group specified with `-G`{.docutils
|
|
|
++.literal}) is root-equivalent; see [*Docker Daemon Attack
|
|
|
++Surface*](../../articles/security/#dockersecurity-daemon) details.
|
|
|
+
|
|
|
+ **Example:**
|
|
|
+
|
|
|
+@@ -259,9 +263,9 @@ Docker daemon for the containers:
|
|
|
+ sudo nano /etc/default/docker
|
|
|
+ ---
|
|
|
+ # Add:
|
|
|
+- DOCKER_OPTS="-dns 8.8.8.8"
|
|
|
++ DOCKER_OPTS="--dns 8.8.8.8"
|
|
|
+ # 8.8.8.8 could be replaced with a local DNS server, such as 192.168.1.1
|
|
|
+- # multiple DNS servers can be specified: -dns 8.8.8.8 -dns 192.168.1.1
|
|
|
++ # multiple DNS servers can be specified: --dns 8.8.8.8 --dns 192.168.1.1
|
|
|
+
|
|
|
+ The Docker daemon has to be restarted:
|
|
|
+
|
|
|
+diff --git a/docs/sources/installation/windows.md b/docs/sources/installation/windows.md
|
|
|
+index ec3e706..ad367d9 100644
|
|
|
+--- a/docs/sources/installation/windows.md
|
|
|
++++ b/docs/sources/installation/windows.md
|
|
|
+@@ -2,7 +2,7 @@ page_title: Installation on Windows
|
|
|
+ page_description: Please note this project is currently under heavy development. It should not be used in production.
|
|
|
+ page_keywords: Docker, Docker documentation, Windows, requirements, virtualbox, boot2docker
|
|
|
+
|
|
|
+-# Windows
|
|
|
++# Microsoft Windows
|
|
|
+
|
|
|
+ Docker can run on Windows using a virtualization platform like
|
|
|
+ VirtualBox. A Linux distribution is run inside a virtual machine and
|
|
|
+@@ -17,7 +17,7 @@ production yet, but we’re getting closer with each release. Please see
|
|
|
+ our blog post, [“Getting to Docker
|
|
|
+ 1.0”](http://blog.docker.io/2013/08/getting-to-docker-1-0/)
|
|
|
+
|
|
|
+-1. Install virtualbox from
|
|
|
++1. Install VirtualBox from
|
|
|
+ [https://www.virtualbox.org](https://www.virtualbox.org) - or follow
|
|
|
+ this
|
|
|
+ [tutorial](http://www.slideshare.net/julienbarbier42/install-virtualbox-on-windows-7).
|
|
|
+diff --git a/docs/sources/reference.md b/docs/sources/reference.md
|
|
|
+index 3cd720c..1c4022e 100644
|
|
|
+--- a/docs/sources/reference.md
|
|
|
++++ b/docs/sources/reference.md
|
|
|
+@@ -1,9 +1,10 @@
|
|
|
++
|
|
|
+ # Reference Manual
|
|
|
+
|
|
|
+-## Contents:
|
|
|
++Contents:
|
|
|
+
|
|
|
+-- [Commands](commandline/)
|
|
|
+-- [Dockerfile Reference](builder/)
|
|
|
+-- [Docker Run Reference](run/)
|
|
|
+-- [APIs](api/)
|
|
|
++- [Commands](commandline/)
|
|
|
++- [Dockerfile Reference](builder/)
|
|
|
++- [Docker Run Reference](run/)
|
|
|
++- [APIs](api/)
|
|
|
+
|
|
|
+diff --git a/docs/sources/reference/api.md b/docs/sources/reference/api.md
|
|
|
+index ae55e6a..ce571bc 100644
|
|
|
+--- a/docs/sources/reference/api.md
|
|
|
++++ b/docs/sources/reference/api.md
|
|
|
+@@ -1,3 +1,4 @@
|
|
|
++
|
|
|
+ # APIs
|
|
|
+
|
|
|
+ Your programs and scripts can access Docker’s functionality via these
|
|
|
+@@ -8,34 +9,28 @@ interfaces:
|
|
|
+ - [1.1 Index](registry_index_spec/#index)
|
|
|
+ - [1.2 Registry](registry_index_spec/#registry)
|
|
|
+ - [1.3 Docker](registry_index_spec/#docker)
|
|
|
+-
|
|
|
+ - [2. Workflow](registry_index_spec/#workflow)
|
|
|
+ - [2.1 Pull](registry_index_spec/#pull)
|
|
|
+ - [2.2 Push](registry_index_spec/#push)
|
|
|
+ - [2.3 Delete](registry_index_spec/#delete)
|
|
|
+-
|
|
|
+ - [3. How to use the Registry in standalone
|
|
|
+ mode](registry_index_spec/#how-to-use-the-registry-in-standalone-mode)
|
|
|
+ - [3.1 Without an
|
|
|
+ Index](registry_index_spec/#without-an-index)
|
|
|
+ - [3.2 With an Index](registry_index_spec/#with-an-index)
|
|
|
+-
|
|
|
+ - [4. The API](registry_index_spec/#the-api)
|
|
|
+ - [4.1 Images](registry_index_spec/#images)
|
|
|
+ - [4.2 Users](registry_index_spec/#users)
|
|
|
+ - [4.3 Tags (Registry)](registry_index_spec/#tags-registry)
|
|
|
+ - [4.4 Images (Index)](registry_index_spec/#images-index)
|
|
|
+ - [4.5 Repositories](registry_index_spec/#repositories)
|
|
|
+-
|
|
|
+ - [5. Chaining
|
|
|
+ Registries](registry_index_spec/#chaining-registries)
|
|
|
+ - [6. Authentication &
|
|
|
+ Authorization](registry_index_spec/#authentication-authorization)
|
|
|
+ - [6.1 On the Index](registry_index_spec/#on-the-index)
|
|
|
+ - [6.2 On the Registry](registry_index_spec/#on-the-registry)
|
|
|
+-
|
|
|
+ - [7 Document Version](registry_index_spec/#document-version)
|
|
|
+-
|
|
|
+ - [Docker Registry API](registry_api/)
|
|
|
+ - [1. Brief introduction](registry_api/#brief-introduction)
|
|
|
+ - [2. Endpoints](registry_api/#endpoints)
|
|
|
+@@ -43,16 +38,13 @@ interfaces:
|
|
|
+ - [2.2 Tags](registry_api/#tags)
|
|
|
+ - [2.3 Repositories](registry_api/#repositories)
|
|
|
+ - [2.4 Status](registry_api/#status)
|
|
|
+-
|
|
|
+ - [3 Authorization](registry_api/#authorization)
|
|
|
+-
|
|
|
+ - [Docker Index API](index_api/)
|
|
|
+ - [1. Brief introduction](index_api/#brief-introduction)
|
|
|
+ - [2. Endpoints](index_api/#endpoints)
|
|
|
+ - [2.1 Repository](index_api/#repository)
|
|
|
+ - [2.2 Users](index_api/#users)
|
|
|
+ - [2.3 Search](index_api/#search)
|
|
|
+-
|
|
|
+ - [Docker Remote API](docker_remote_api/)
|
|
|
+ - [1. Brief introduction](docker_remote_api/#brief-introduction)
|
|
|
+ - [2. Versions](docker_remote_api/#versions)
|
|
|
+@@ -67,7 +59,6 @@ interfaces:
|
|
|
+ - [v1.2](docker_remote_api/#v1-2)
|
|
|
+ - [v1.1](docker_remote_api/#v1-1)
|
|
|
+ - [v1.0](docker_remote_api/#v1-0)
|
|
|
+-
|
|
|
+ - [Docker Remote API Client Libraries](remote_api_client_libraries/)
|
|
|
+ - [docker.io OAuth API](docker_io_oauth_api/)
|
|
|
+ - [1. Brief introduction](docker_io_oauth_api/#brief-introduction)
|
|
|
+@@ -79,10 +70,8 @@ interfaces:
|
|
|
+ - [3.2 Get an Access
|
|
|
+ Token](docker_io_oauth_api/#get-an-access-token)
|
|
|
+ - [3.3 Refresh a Token](docker_io_oauth_api/#refresh-a-token)
|
|
|
+-
|
|
|
+ - [4. Use an Access Token with the
|
|
|
+ API](docker_io_oauth_api/#use-an-access-token-with-the-api)
|
|
|
+-
|
|
|
+ - [docker.io Accounts API](docker_io_accounts_api/)
|
|
|
+ - [1. Endpoints](docker_io_accounts_api/#endpoints)
|
|
|
+ - [1.1 Get a single
|
|
|
+@@ -96,4 +85,5 @@ interfaces:
|
|
|
+ - [1.5 Update an email address for a
|
|
|
+ user](docker_io_accounts_api/#update-an-email-address-for-a-user)
|
|
|
+ - [1.6 Delete email address for a
|
|
|
+- user](docker_io_accounts_api/#delete-email-address-for-a-user)
|
|
|
+\ No newline at end of file
|
|
|
++ user](docker_io_accounts_api/#delete-email-address-for-a-user)
|
|
|
++
|
|
|
+diff --git a/docs/sources/reference/api/docker_io_accounts_api.md b/docs/sources/reference/api/docker_io_accounts_api.md
|
|
|
+index 6ad5361..dc78076 100644
|
|
|
+--- a/docs/sources/reference/api/docker_io_accounts_api.md
|
|
|
++++ b/docs/sources/reference/api/docker_io_accounts_api.md
|
|
|
+@@ -2,35 +2,50 @@ page_title: docker.io Accounts API
|
|
|
+ page_description: API Documentation for docker.io accounts.
|
|
|
+ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+
|
|
|
+-# Docker IO Accounts API
|
|
|
++# [docker.io Accounts API](#id1)
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++Table of Contents
|
|
|
+
|
|
|
+-### Get A Single User
|
|
|
++- [docker.io Accounts API](#docker-io-accounts-api)
|
|
|
++ - [1. Endpoints](#endpoints)
|
|
|
++ - [1.1 Get a single user](#get-a-single-user)
|
|
|
++ - [1.2 Update a single user](#update-a-single-user)
|
|
|
++ - [1.3 List email addresses for a
|
|
|
++ user](#list-email-addresses-for-a-user)
|
|
|
++ - [1.4 Add email address for a
|
|
|
++ user](#add-email-address-for-a-user)
|
|
|
++ - [1.5 Update an email address for a
|
|
|
++ user](#update-an-email-address-for-a-user)
|
|
|
++ - [1.6 Delete email address for a
|
|
|
++ user](#delete-email-address-for-a-user)
|
|
|
++
|
|
|
++## [1. Endpoints](#id2)
|
|
|
++
|
|
|
++### [1.1 Get a single user](#id3)
|
|
|
+
|
|
|
+ `GET `{.descname}`/api/v1.1/users/:username/`{.descname}
|
|
|
+ : Get profile info for the specified user.
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **username** – username of the user whose profile info is being
|
|
|
++ - **username** – username of the user whose profile info is being
|
|
|
+ requested.
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Authorization** – required authentication credentials of
|
|
|
++ - **Authorization** – required authentication credentials of
|
|
|
+ either type HTTP Basic or OAuth Bearer Token.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – success, user data returned.
|
|
|
+- - **401** – authentication error.
|
|
|
+- - **403** – permission error, authenticated user must be the user
|
|
|
++ - **200** – success, user data returned.
|
|
|
++ - **401** – authentication error.
|
|
|
++ - **403** – permission error, authenticated user must be the user
|
|
|
+ whose data is being requested, OAuth access tokens must have
|
|
|
+ `profile_read` scope.
|
|
|
+- - **404** – the specified username does not exist.
|
|
|
++ - **404** – the specified username does not exist.
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+
|
|
|
+@@ -59,45 +74,45 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+ "is_active": true
|
|
|
+ }
|
|
|
+
|
|
|
+-### Update A Single User
|
|
|
++### [1.2 Update a single user](#id4)
|
|
|
+
|
|
|
+ `PATCH `{.descname}`/api/v1.1/users/:username/`{.descname}
|
|
|
+ : Update profile info for the specified user.
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **username** – username of the user whose profile info is being
|
|
|
++ - **username** – username of the user whose profile info is being
|
|
|
+ updated.
|
|
|
+
|
|
|
+ Json Parameters:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **full\_name** (*string*) – (optional) the new name of the user.
|
|
|
+- - **location** (*string*) – (optional) the new location.
|
|
|
+- - **company** (*string*) – (optional) the new company of the user.
|
|
|
+- - **profile\_url** (*string*) – (optional) the new profile url.
|
|
|
+- - **gravatar\_email** (*string*) – (optional) the new Gravatar
|
|
|
++ - **full\_name** (*string*) – (optional) the new name of the user.
|
|
|
++ - **location** (*string*) – (optional) the new location.
|
|
|
++ - **company** (*string*) – (optional) the new company of the user.
|
|
|
++ - **profile\_url** (*string*) – (optional) the new profile url.
|
|
|
++ - **gravatar\_email** (*string*) – (optional) the new Gravatar
|
|
|
+ email address.
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Authorization** – required authentication credentials of
|
|
|
++ - **Authorization** – required authentication credentials of
|
|
|
+ either type HTTP Basic or OAuth Bearer Token.
|
|
|
+- - **Content-Type** – MIME Type of post data. JSON, url-encoded
|
|
|
++ - **Content-Type** – MIME Type of post data. JSON, url-encoded
|
|
|
+ form data, etc.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – success, user data updated.
|
|
|
+- - **400** – post data validation error.
|
|
|
+- - **401** – authentication error.
|
|
|
+- - **403** – permission error, authenticated user must be the user
|
|
|
++ - **200** – success, user data updated.
|
|
|
++ - **400** – post data validation error.
|
|
|
++ - **401** – authentication error.
|
|
|
++ - **403** – permission error, authenticated user must be the user
|
|
|
+ whose data is being updated, OAuth access tokens must have
|
|
|
+ `profile_write` scope.
|
|
|
+- - **404** – the specified username does not exist.
|
|
|
++ - **404** – the specified username does not exist.
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+
|
|
|
+@@ -132,31 +147,31 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+ "is_active": true
|
|
|
+ }
|
|
|
+
|
|
|
+-### List Email Addresses For A User
|
|
|
++### [1.3 List email addresses for a user](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/api/v1.1/users/:username/emails/`{.descname}
|
|
|
+ : List email info for the specified user.
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **username** – username of the user whose profile info is being
|
|
|
++ - **username** – username of the user whose profile info is being
|
|
|
+ updated.
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Authorization** – required authentication credentials of
|
|
|
++ - **Authorization** – required authentication credentials of
|
|
|
+ either type HTTP Basic or OAuth Bearer Token
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – success, user data updated.
|
|
|
+- - **401** – authentication error.
|
|
|
+- - **403** – permission error, authenticated user must be the user
|
|
|
++ - **200** – success, user data updated.
|
|
|
++ - **401** – authentication error.
|
|
|
++ - **403** – permission error, authenticated user must be the user
|
|
|
+ whose data is being requested, OAuth access tokens must have
|
|
|
+ `email_read` scope.
|
|
|
+- - **404** – the specified username does not exist.
|
|
|
++ - **404** – the specified username does not exist.
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+
|
|
|
+@@ -170,7 +185,7 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+ HTTP/1.1 200 OK
|
|
|
+ Content-Type: application/json
|
|
|
+
|
|
|
+-
|
|
|
++ [
|
|
|
+ {
|
|
|
+ "email": "jane.doe@example.com",
|
|
|
+ "verified": true,
|
|
|
+@@ -178,7 +193,7 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+-### Add Email Address For A User
|
|
|
++### [1.4 Add email address for a user](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/api/v1.1/users/:username/emails/`{.descname}
|
|
|
+ : Add a new email address to the specified user’s account. The email
|
|
|
+@@ -189,26 +204,26 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **email** (*string*) – email address to be added.
|
|
|
++ - **email** (*string*) – email address to be added.
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Authorization** – required authentication credentials of
|
|
|
++ - **Authorization** – required authentication credentials of
|
|
|
+ either type HTTP Basic or OAuth Bearer Token.
|
|
|
+- - **Content-Type** – MIME Type of post data. JSON, url-encoded
|
|
|
++ - **Content-Type** – MIME Type of post data. JSON, url-encoded
|
|
|
+ form data, etc.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – success, new email added.
|
|
|
+- - **400** – data validation error.
|
|
|
+- - **401** – authentication error.
|
|
|
+- - **403** – permission error, authenticated user must be the user
|
|
|
++ - **201** – success, new email added.
|
|
|
++ - **400** – data validation error.
|
|
|
++ - **401** – authentication error.
|
|
|
++ - **403** – permission error, authenticated user must be the user
|
|
|
+ whose data is being requested, OAuth access tokens must have
|
|
|
+ `email_write` scope.
|
|
|
+- - **404** – the specified username does not exist.
|
|
|
++ - **404** – the specified username does not exist.
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+
|
|
|
+@@ -233,7 +248,7 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+ "primary": false
|
|
|
+ }
|
|
|
+
|
|
|
+-### Update An Email Address For A User
|
|
|
++### [1.5 Update an email address for a user](#id7)
|
|
|
+
|
|
|
+ `PATCH `{.descname}`/api/v1.1/users/:username/emails/`{.descname}
|
|
|
+ : Update an email address for the specified user to either verify an
|
|
|
+@@ -244,17 +259,17 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **username** – username of the user whose email info is being
|
|
|
++ - **username** – username of the user whose email info is being
|
|
|
+ updated.
|
|
|
+
|
|
|
+ Json Parameters:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **email** (*string*) – the email address to be updated.
|
|
|
+- - **verified** (*boolean*) – (optional) whether the email address
|
|
|
++ - **email** (*string*) – the email address to be updated.
|
|
|
++ - **verified** (*boolean*) – (optional) whether the email address
|
|
|
+ is verified, must be `true` or absent.
|
|
|
+- - **primary** (*boolean*) – (optional) whether to set the email
|
|
|
++ - **primary** (*boolean*) – (optional) whether to set the email
|
|
|
+ address as the primary email, must be `true`
|
|
|
+ or absent.
|
|
|
+
|
|
|
+@@ -262,20 +277,20 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Authorization** – required authentication credentials of
|
|
|
++ - **Authorization** – required authentication credentials of
|
|
|
+ either type HTTP Basic or OAuth Bearer Token.
|
|
|
+- - **Content-Type** – MIME Type of post data. JSON, url-encoded
|
|
|
++ - **Content-Type** – MIME Type of post data. JSON, url-encoded
|
|
|
+ form data, etc.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – success, user’s email updated.
|
|
|
+- - **400** – data validation error.
|
|
|
+- - **401** – authentication error.
|
|
|
+- - **403** – permission error, authenticated user must be the user
|
|
|
++ - **200** – success, user’s email updated.
|
|
|
++ - **400** – data validation error.
|
|
|
++ - **401** – authentication error.
|
|
|
++ - **403** – permission error, authenticated user must be the user
|
|
|
+ whose data is being updated, OAuth access tokens must have
|
|
|
+ `email_write` scope.
|
|
|
+- - **404** – the specified username or email address does not
|
|
|
++ - **404** – the specified username or email address does not
|
|
|
+ exist.
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+@@ -303,7 +318,7 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+ "primary": false
|
|
|
+ }
|
|
|
+
|
|
|
+-### Delete Email Address For A User
|
|
|
++### [1.6 Delete email address for a user](#id8)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/api/v1.1/users/:username/emails/`{.descname}
|
|
|
+ : Delete an email address from the specified user’s account. You
|
|
|
+@@ -313,26 +328,26 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **email** (*string*) – email address to be deleted.
|
|
|
++ - **email** (*string*) – email address to be deleted.
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Authorization** – required authentication credentials of
|
|
|
++ - **Authorization** – required authentication credentials of
|
|
|
+ either type HTTP Basic or OAuth Bearer Token.
|
|
|
+- - **Content-Type** – MIME Type of post data. JSON, url-encoded
|
|
|
++ - **Content-Type** – MIME Type of post data. JSON, url-encoded
|
|
|
+ form data, etc.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – success, email address removed.
|
|
|
+- - **400** – validation error.
|
|
|
+- - **401** – authentication error.
|
|
|
+- - **403** – permission error, authenticated user must be the user
|
|
|
++ - **204** – success, email address removed.
|
|
|
++ - **400** – validation error.
|
|
|
++ - **401** – authentication error.
|
|
|
++ - **403** – permission error, authenticated user must be the user
|
|
|
+ whose data is being requested, OAuth access tokens must have
|
|
|
+ `email_write` scope.
|
|
|
+- - **404** – the specified username or email address does not
|
|
|
++ - **404** – the specified username or email address does not
|
|
|
+ exist.
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+@@ -350,4 +365,6 @@ page_keywords: API, Docker, accounts, REST, documentation
|
|
|
+ **Example response**:
|
|
|
+
|
|
|
+ HTTP/1.1 204 NO CONTENT
|
|
|
+- Content-Length: 0
|
|
|
+\ No newline at end of file
|
|
|
++ Content-Length: 0
|
|
|
++
|
|
|
++
|
|
|
+diff --git a/docs/sources/reference/api/docker_io_oauth_api.md b/docs/sources/reference/api/docker_io_oauth_api.md
|
|
|
+index 85f3a22..c39ab56 100644
|
|
|
+--- a/docs/sources/reference/api/docker_io_oauth_api.md
|
|
|
++++ b/docs/sources/reference/api/docker_io_oauth_api.md
|
|
|
+@@ -2,9 +2,21 @@ page_title: docker.io OAuth API
|
|
|
+ page_description: API Documentation for docker.io's OAuth flow.
|
|
|
+ page_keywords: API, Docker, oauth, REST, documentation
|
|
|
+
|
|
|
+-# Docker IO OAuth API
|
|
|
++# [docker.io OAuth API](#id1)
|
|
|
+
|
|
|
+-## Introduction
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [docker.io OAuth API](#docker-io-oauth-api)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Register Your Application](#register-your-application)
|
|
|
++ - [3. Endpoints](#endpoints)
|
|
|
++ - [3.1 Get an Authorization Code](#get-an-authorization-code)
|
|
|
++ - [3.2 Get an Access Token](#get-an-access-token)
|
|
|
++ - [3.3 Refresh a Token](#refresh-a-token)
|
|
|
++ - [4. Use an Access Token with the
|
|
|
++ API](#use-an-access-token-with-the-api)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
+
|
|
|
+ Some docker.io API requests will require an access token to
|
|
|
+ authenticate. To get an access token for a user, that user must first
|
|
|
+@@ -12,13 +24,13 @@ grant your application access to their docker.io account. In order for
|
|
|
+ them to grant your application access you must first register your
|
|
|
+ application.
|
|
|
+
|
|
|
+-Before continuing, we encourage you to familiarize yourself with The
|
|
|
+-OAuth 2.0 Authorization Framework](http://tools.ietf.org/c6749).
|
|
|
++Before continuing, we encourage you to familiarize yourself with [The
|
|
|
++OAuth 2.0 Authorization Framework](http://tools.ietf.org/html/rfc6749).
|
|
|
+
|
|
|
+ *Also note that all OAuth interactions must take place over https
|
|
|
+ connections*
|
|
|
+
|
|
|
+-## Registering Your Application
|
|
|
++## [2. Register Your Application](#id3)
|
|
|
+
|
|
|
+ You will need to register your application with docker.io before users
|
|
|
+ will be able to grant your application access to their account
|
|
|
+@@ -27,10 +39,10 @@ request registration of your application send an email to
|
|
|
+ [support-accounts@docker.com](mailto:support-accounts%40docker.com) with
|
|
|
+ the following information:
|
|
|
+
|
|
|
+-- The name of your application
|
|
|
+-- A description of your application and the service it will provide to
|
|
|
++- The name of your application
|
|
|
++- A description of your application and the service it will provide to
|
|
|
+ docker.io users.
|
|
|
+-- A callback URI that we will use for redirecting authorization
|
|
|
++- A callback URI that we will use for redirecting authorization
|
|
|
+ requests to your application. These are used in the step of getting
|
|
|
+ an Authorization Code. The domain name of the callback URI will be
|
|
|
+ visible to the user when they are requested to authorize your
|
|
|
+@@ -41,9 +53,9 @@ docker.io team with your `client_id` and
|
|
|
+ `client_secret` which your application will use in
|
|
|
+ the steps of getting an Authorization Code and getting an Access Token.
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [3. Endpoints](#id4)
|
|
|
+
|
|
|
+-### Get an Authorization Code
|
|
|
++### [3.1 Get an Authorization Code](#id5)
|
|
|
+
|
|
|
+ Once You have registered you are ready to start integrating docker.io
|
|
|
+ accounts into your application! The process is usually started by a user
|
|
|
+@@ -61,24 +73,24 @@ following a link in your application to an OAuth Authorization endpoint.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **client\_id** – The `client_id` given to
|
|
|
++ - **client\_id** – The `client_id` given to
|
|
|
+ your application at registration.
|
|
|
+- - **response\_type** – MUST be set to `code`.
|
|
|
++ - **response\_type** – MUST be set to `code`.
|
|
|
+ This specifies that you would like an Authorization Code
|
|
|
+ returned.
|
|
|
+- - **redirect\_uri** – The URI to redirect back to after the user
|
|
|
++ - **redirect\_uri** – The URI to redirect back to after the user
|
|
|
+ has authorized your application. If omitted, the first of your
|
|
|
+ registered `response_uris` is used. If
|
|
|
+ included, it must be one of the URIs which were submitted when
|
|
|
+ registering your application.
|
|
|
+- - **scope** – The extent of access permissions you are requesting.
|
|
|
++ - **scope** – The extent of access permissions you are requesting.
|
|
|
+ Currently, the scope options are `profile_read`{.docutils
|
|
|
+ .literal}, `profile_write`,
|
|
|
+ `email_read`, and `email_write`{.docutils
|
|
|
+ .literal}. Scopes must be separated by a space. If omitted, the
|
|
|
+ default scopes `profile_read email_read` are
|
|
|
+ used.
|
|
|
+- - **state** – (Recommended) Used by your application to maintain
|
|
|
++ - **state** – (Recommended) Used by your application to maintain
|
|
|
+ state between the authorization request and callback to protect
|
|
|
+ against CSRF attacks.
|
|
|
+
|
|
|
+@@ -115,7 +127,7 @@ following a link in your application to an OAuth Authorization endpoint.
|
|
|
+ : An error message in the event of the user denying the
|
|
|
+ authorization or some other kind of error with the request.
|
|
|
+
|
|
|
+-### Get an Access Token
|
|
|
++### [3.2 Get an Access Token](#id6)
|
|
|
+
|
|
|
+ Once the user has authorized your application, a request will be made to
|
|
|
+ your application’s specified `redirect_uri` which
|
|
|
+@@ -131,7 +143,7 @@ to get an Access Token.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Authorization** – HTTP basic authentication using your
|
|
|
++ - **Authorization** – HTTP basic authentication using your
|
|
|
+ application’s `client_id` and
|
|
|
+ `client_secret`
|
|
|
+
|
|
|
+@@ -139,11 +151,11 @@ to get an Access Token.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **grant\_type** – MUST be set to `authorization_code`{.docutils
|
|
|
++ - **grant\_type** – MUST be set to `authorization_code`{.docutils
|
|
|
+ .literal}
|
|
|
+- - **code** – The authorization code received from the user’s
|
|
|
++ - **code** – The authorization code received from the user’s
|
|
|
+ redirect request.
|
|
|
+- - **redirect\_uri** – The same `redirect_uri`
|
|
|
++ - **redirect\_uri** – The same `redirect_uri`
|
|
|
+ used in the authentication request.
|
|
|
+
|
|
|
+ **Example Request**
|
|
|
+@@ -180,7 +192,7 @@ to get an Access Token.
|
|
|
+ In the case of an error, there will be a non-200 HTTP Status and and
|
|
|
+ data detailing the error.
|
|
|
+
|
|
|
+-### Refresh a Token
|
|
|
++### [3.3 Refresh a Token](#id7)
|
|
|
+
|
|
|
+ Once the Access Token expires you can use your `refresh_token`{.docutils
|
|
|
+ .literal} to have docker.io issue your application a new Access Token,
|
|
|
+@@ -195,7 +207,7 @@ if the user has not revoked access from your application.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Authorization** – HTTP basic authentication using your
|
|
|
++ - **Authorization** – HTTP basic authentication using your
|
|
|
+ application’s `client_id` and
|
|
|
+ `client_secret`
|
|
|
+
|
|
|
+@@ -203,11 +215,11 @@ if the user has not revoked access from your application.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **grant\_type** – MUST be set to `refresh_token`{.docutils
|
|
|
++ - **grant\_type** – MUST be set to `refresh_token`{.docutils
|
|
|
+ .literal}
|
|
|
+- - **refresh\_token** – The `refresh_token`
|
|
|
++ - **refresh\_token** – The `refresh_token`
|
|
|
+ which was issued to your application.
|
|
|
+- - **scope** – (optional) The scope of the access token to be
|
|
|
++ - **scope** – (optional) The scope of the access token to be
|
|
|
+ returned. Must not include any scope not originally granted by
|
|
|
+ the user and if omitted is treated as equal to the scope
|
|
|
+ originally granted.
|
|
|
+@@ -245,7 +257,7 @@ if the user has not revoked access from your application.
|
|
|
+ In the case of an error, there will be a non-200 HTTP Status and and
|
|
|
+ data detailing the error.
|
|
|
+
|
|
|
+-## Use an Access Token with the API
|
|
|
++## [4. Use an Access Token with the API](#id8)
|
|
|
+
|
|
|
+ Many of the docker.io API requests will require a Authorization request
|
|
|
+ header field. Simply ensure you add this header with “Bearer
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api.md b/docs/sources/reference/api/docker_remote_api.md
|
|
|
+index 35dd858..8a2e456 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api.md
|
|
|
+@@ -4,21 +4,21 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ # Docker Remote API
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API is replacing rcli
|
|
|
+-- By default the Docker daemon listens on unix:///var/run/docker.sock
|
|
|
+- and the client must have root access to interact with the daemon
|
|
|
+-- If a group named *docker* exists on your system, docker will apply
|
|
|
+- ownership of the socket to the group
|
|
|
+-- 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`.
|
|
|
+-
|
|
|
+-## Docker Remote API Versions
|
|
|
++## 1. Brief introduction
|
|
|
++
|
|
|
++- The Remote API is replacing rcli
|
|
|
++- By default the Docker daemon listens on unix:///var/run/docker.sock
|
|
|
++ and the client must have root access to interact with the daemon
|
|
|
++- If a group named *docker* exists on your system, docker will apply
|
|
|
++ ownership of the socket to the group
|
|
|
++- 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 version of the API is 1.10
|
|
|
+
|
|
|
+@@ -28,25 +28,31 @@ Calling /images/\<name\>/insert is the same as calling
|
|
|
+ You can still call an old version of the api using
|
|
|
+ /v1.0/images/\<name\>/insert
|
|
|
+
|
|
|
+-## Docker Remote API v1.10
|
|
|
++### v1.10
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.10*](../docker_remote_api_v1.10/)
|
|
|
+
|
|
|
+-### What’s new
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : **New!** You can now use the force parameter to force delete of an
|
|
|
+- image, even if it’s tagged in multiple repositories.
|
|
|
++ image, even if it’s tagged in multiple repositories. **New!** You
|
|
|
++ can now use the noprune parameter to prevent the deletion of parent
|
|
|
++ images
|
|
|
+
|
|
|
+-## Docker Remote API v1.9
|
|
|
++ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
++: **New!** You can now use the force paramter to force delete a
|
|
|
++ container, even if it is currently running
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++### v1.9
|
|
|
++
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.9*](../docker_remote_api_v1.9/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : **New!** This endpoint now takes a serialized ConfigFile which it
|
|
|
+@@ -54,13 +60,13 @@ You can still call an old version of the api using
|
|
|
+ base image. Clients which previously implemented the version
|
|
|
+ accepting an AuthConfig object must be updated.
|
|
|
+
|
|
|
+-## Docker Remote API v1.8
|
|
|
++### v1.8
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.8*](../docker_remote_api_v1.8/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : **New!** This endpoint now returns build status as json stream. In
|
|
|
+@@ -82,13 +88,13 @@ You can still call an old version of the api using
|
|
|
+ possible to get the current value and the total of the progress
|
|
|
+ without having to parse the string.
|
|
|
+
|
|
|
+-## Docker Remote API v1.7
|
|
|
++### v1.7
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.7*](../docker_remote_api_v1.7/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/json`{.descname}
|
|
|
+ : The format of the json returned from this uri changed. Instead of an
|
|
|
+@@ -175,17 +181,17 @@ You can still call an old version of the api using
|
|
|
+ ]
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/viz`{.descname}
|
|
|
+-: This URI no longer exists. The `images -viz`
|
|
|
++: This URI no longer exists. The `images --viz`
|
|
|
+ output is now generated in the client, using the
|
|
|
+ `/images/json` data.
|
|
|
+
|
|
|
+-## Docker Remote API v1.6
|
|
|
++### v1.6
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.6*](../docker_remote_api_v1.6/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : **New!** You can now split stderr from stdout. This is done by
|
|
|
+@@ -195,13 +201,13 @@ You can still call an old version of the api using
|
|
|
+ The WebSocket attach is unchanged. Note that attach calls on the
|
|
|
+ previous API version didn’t change. Stdout and stderr are merged.
|
|
|
+
|
|
|
+-## Docker Remote API v1.5
|
|
|
++### v1.5
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.5*](../docker_remote_api_v1.5/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : **New!** You can now pass registry credentials (via an AuthConfig
|
|
|
+@@ -216,13 +222,13 @@ You can still call an old version of the api using
|
|
|
+ dicts each containing PublicPort, PrivatePort and Type describing a
|
|
|
+ port mapping.
|
|
|
+
|
|
|
+-## Docker Remote API v1.4
|
|
|
++### v1.4
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.4*](../docker_remote_api_v1.4/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : **New!** When pulling a repo, all images are now downloaded in
|
|
|
+@@ -235,16 +241,16 @@ You can still call an old version of the api using
|
|
|
+ `GET `{.descname}`/events:`{.descname}
|
|
|
+ : **New!** Image’s name added in the events
|
|
|
+
|
|
|
+-## Docker Remote API v1.3
|
|
|
++### v1.3
|
|
|
+
|
|
|
+ docker v0.5.0
|
|
|
+ [51f6c4a](https://github.com/dotcloud/docker/commit/51f6c4a7372450d164c61e0054daf0223ddbd909)
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.3*](../docker_remote_api_v1.3/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List the processes running inside a container.
|
|
|
+@@ -254,10 +260,10 @@ docker v0.5.0
|
|
|
+
|
|
|
+ Builder (/build):
|
|
|
+
|
|
|
+-- Simplify the upload of the build context
|
|
|
+-- Simply stream a tarball instead of multipart upload with 4
|
|
|
+- intermediary buffers
|
|
|
+-- Simpler, less memory usage, less disk usage and faster
|
|
|
++- Simplify the upload of the build context
|
|
|
++- Simply stream a tarball instead of multipart upload with 4
|
|
|
++ intermediary buffers
|
|
|
++- Simpler, less memory usage, less disk usage and faster
|
|
|
+
|
|
|
+ Warning
|
|
|
+
|
|
|
+@@ -266,23 +272,23 @@ break on /build.
|
|
|
+
|
|
|
+ List containers (/containers/json):
|
|
|
+
|
|
|
+-- You can use size=1 to get the size of the containers
|
|
|
++- You can use size=1 to get the size of the containers
|
|
|
+
|
|
|
+ Start containers (/containers/\<id\>/start):
|
|
|
+
|
|
|
+-- You can now pass host-specific configuration (e.g. bind mounts) in
|
|
|
+- the POST body for start calls
|
|
|
++- You can now pass host-specific configuration (e.g. bind mounts) in
|
|
|
++ the POST body for start calls
|
|
|
+
|
|
|
+-## Docker Remote API v1.2
|
|
|
++### v1.2
|
|
|
+
|
|
|
+ docker v0.4.2
|
|
|
+ [2e7649b](https://github.com/dotcloud/docker/commit/2e7649beda7c820793bd46766cbc2cfeace7b168)
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.2*](../docker_remote_api_v1.2/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ The auth configuration is now handled by the client.
|
|
|
+
|
|
|
+@@ -302,16 +308,16 @@ The client should send it’s authConfig as POST on each call of
|
|
|
+ : Now returns a JSON structure with the list of images
|
|
|
+ deleted/untagged.
|
|
|
+
|
|
|
+-## Docker Remote API v1.1
|
|
|
++### v1.1
|
|
|
+
|
|
|
+ docker v0.4.0
|
|
|
+ [a8ae398](https://github.com/dotcloud/docker/commit/a8ae398bf52e97148ee7bd0d5868de2e15bd297f)
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.1*](../docker_remote_api_v1.1/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ :
|
|
|
+@@ -330,15 +336,15 @@ docker v0.4.0
|
|
|
+ > {"error":"Invalid..."}
|
|
|
+ > ...
|
|
|
+
|
|
|
+-## Docker Remote API v1.0
|
|
|
++### v1.0
|
|
|
+
|
|
|
+ docker v0.3.4
|
|
|
+ [8d73740](https://github.com/dotcloud/docker/commit/8d73740343778651c09160cde9661f5f387b36f4)
|
|
|
+
|
|
|
+-### Full Documentation
|
|
|
++#### Full Documentation
|
|
|
+
|
|
|
+ [*Docker Remote API v1.0*](../docker_remote_api_v1.0/)
|
|
|
+
|
|
|
+-### What’s New
|
|
|
++#### What’s new
|
|
|
+
|
|
|
+ Initial version
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.0.md b/docs/sources/reference/api/docker_remote_api_v1.0.md
|
|
|
+index 6bb0fcb..30b1718 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.0.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.0.md
|
|
|
+@@ -2,21 +2,70 @@ page_title: Remote API v1.0
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.0
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API is replacing rcli
|
|
|
+-- Default port in the docker daemon is 4243
|
|
|
+-- The API tends to be REST, but for some complex commands, like attach
|
|
|
++# [Docker Remote API v1.0](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.0](#docker-remote-api-v1-0)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Get default username and
|
|
|
++ email](#get-default-username-and-email)
|
|
|
++ - [Check auth configuration and store
|
|
|
++ it](#check-auth-configuration-and-store-it)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API is replacing rcli
|
|
|
++- Default port in the docker daemon 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
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -65,22 +114,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -126,16 +175,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -198,11 +247,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:]
|
|
|
++#### [Inspect changes on a container’s filesystem](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -233,11 +282,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -255,11 +304,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id10)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -274,11 +323,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -295,15 +344,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -320,15 +369,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -343,11 +392,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -367,25 +416,25 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -404,11 +453,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id16)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -425,19 +474,19 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id17)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id18)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*format*)
|
|
|
+ : List images `format` could be json or viz (json
|
|
|
+@@ -498,16 +547,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id19)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -528,18 +577,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id20)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -557,10 +606,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id21)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -603,11 +652,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id22)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -636,11 +685,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id23)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -660,15 +709,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id24)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -685,17 +734,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id25)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -710,11 +759,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id26)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index
|
|
|
+@@ -747,9 +796,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ :statuscode 200: no error
|
|
|
+ :statuscode 500: server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id27)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id28)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -770,15 +819,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name to be applied to the resulting image in
|
|
|
++ - **t** – repository name to be applied to the resulting image in
|
|
|
+ case of success
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-#### [Get default username and email
|
|
|
++#### [Get default username and email](#id29)
|
|
|
+
|
|
|
+ `GET `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -799,10 +848,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration: and store it
|
|
|
++#### [Check auth configuration and store it](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -824,11 +873,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id31)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -854,10 +903,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -879,10 +928,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id33)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -908,41 +957,41 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id34)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id35)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id36)
|
|
|
+
|
|
|
+ In this first version of the API, some of the endpoints, like /attach,
|
|
|
+ /pull or /push uses hijacking to transport stdin, stdout and stderr on
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.1.md b/docs/sources/reference/api/docker_remote_api_v1.1.md
|
|
|
+index 476b942..2d510f4 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.1.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.1.md
|
|
|
+@@ -2,21 +2,70 @@ page_title: Remote API v1.1
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.1
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API is replacing rcli
|
|
|
+-- Default port in the docker daemon is 4243
|
|
|
+-- The API tends to be REST, but for some complex commands, like attach
|
|
|
++# [Docker Remote API v1.1](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.1](#docker-remote-api-v1-1)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Get default username and
|
|
|
++ email](#get-default-username-and-email)
|
|
|
++ - [Check auth configuration and store
|
|
|
++ it](#check-auth-configuration-and-store-it)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API is replacing rcli
|
|
|
++- Default port in the docker daemon 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
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -65,22 +114,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -126,16 +175,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -198,11 +247,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:]
|
|
|
++#### [Inspect changes on a container’s filesystem](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -233,11 +282,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -255,11 +304,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id10)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -274,11 +323,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -295,15 +344,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -320,15 +369,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -343,11 +392,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -367,25 +416,25 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -404,11 +453,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id16)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -425,19 +474,19 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id17)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id18)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*format*)
|
|
|
+ : List images `format` could be json or viz (json
|
|
|
+@@ -498,16 +547,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id19)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -531,18 +580,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id20)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -564,10 +613,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id21)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -610,11 +659,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id22)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -643,11 +692,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id23)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -670,15 +719,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id24)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -695,18 +744,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id25)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -721,11 +770,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id26)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index
|
|
|
+@@ -758,9 +807,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ :statuscode 200: no error
|
|
|
+ :statuscode 500: server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id27)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id28)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -781,15 +830,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – tag to be applied to the resulting image in case of
|
|
|
++ - **t** – tag to be applied to the resulting image in case of
|
|
|
+ success
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-#### [Get default username and email
|
|
|
++#### [Get default username and email](#id29)
|
|
|
+
|
|
|
+ `GET `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -810,10 +859,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration: and store it
|
|
|
++#### [Check auth configuration and store it](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -835,11 +884,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id31)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -865,10 +914,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -890,10 +939,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id33)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -919,41 +968,41 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id34)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id35)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id36)
|
|
|
+
|
|
|
+ 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.
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.10.md b/docs/sources/reference/api/docker_remote_api_v1.10.md
|
|
|
+index b6aa5bc..2a99f72 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.10.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.10.md
|
|
|
+@@ -2,24 +2,80 @@ page_title: Remote API v1.10
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.10
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API has replaced rcli
|
|
|
+-- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
++# [Docker Remote API v1.10](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.10](#docker-remote-api-v1-10)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [List processes running inside a
|
|
|
++ container](#list-processes-running-inside-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [Copy files or folders from a
|
|
|
++ container](#copy-files-or-folders-from-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
++ - [Get a tarball containing all images and tags in a
|
|
|
++ repository](#get-a-tarball-containing-all-images-and-tags-in-a-repository)
|
|
|
++ - [Load a tarball with a set of images and tags into
|
|
|
++ docker](#load-a-tarball-with-a-set-of-images-and-tags-into-docker)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API has replaced rcli
|
|
|
++- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
+ .literal}, but you can [*Bind Docker to another host/port or a Unix
|
|
|
+ socket*](../../../use/basics/#bind-docker).
|
|
|
+-- The API tends to be REST, but for some complex commands, like
|
|
|
++- The API tends to be REST, but for some complex commands, like
|
|
|
+ `attach` or `pull`{.docutils .literal}, the HTTP
|
|
|
+ connection is hijacked to transport `stdout, stdin`{.docutils
|
|
|
+ .literal} and `stderr`
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -80,24 +136,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
++ - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
+ sizes
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -130,6 +186,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ },
|
|
|
+ "VolumesFrom":"",
|
|
|
+ "WorkingDir":"",
|
|
|
++ "DisableNetwork": false,
|
|
|
+ "ExposedPorts":{
|
|
|
+ "22/tcp": {}
|
|
|
+ }
|
|
|
+@@ -149,23 +206,23 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Query Parameters:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **name** – Assign the specified name to the container. Must
|
|
|
++ - **name** – Assign the specified name to the container. Must
|
|
|
+ match `/?[a-zA-Z0-9_-]+`.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -246,11 +303,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### List processes running inside a container:
|
|
|
++#### [List processes running inside a container](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List processes running inside the container `id`
|
|
|
+@@ -288,15 +345,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
++ - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:
|
|
|
++#### [Inspect changes on a container’s filesystem](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -327,11 +384,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id10)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -349,11 +406,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -380,15 +437,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **hostConfig** – the container’s host configuration (optional)
|
|
|
++ - **hostConfig** – the container’s host configuration (optional)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -405,15 +462,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -430,15 +487,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -453,11 +510,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -477,23 +534,23 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+ **Stream details**:
|
|
|
+
|
|
|
+@@ -518,9 +575,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ `STREAM_TYPE` can be:
|
|
|
+
|
|
|
+- - 0: stdin (will be writen on stdout)
|
|
|
+- - 1: stdout
|
|
|
+- - 2: stderr
|
|
|
++ - 0: stdin (will be writen on stdout)
|
|
|
++ - 1: stdout
|
|
|
++ - 2: stderr
|
|
|
+
|
|
|
+ `SIZE1, SIZE2, SIZE3, SIZE4` are the 4 bytes of
|
|
|
+ the uint32 size encoded as big endian.
|
|
|
+@@ -539,7 +596,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ 4. Read the extracted size and output it on the correct output
|
|
|
+ 5. Goto 1)
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id16)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -558,11 +615,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id17)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -579,17 +636,19 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
++ - **force** – 1/True/true or 0/False/false, Removes the container
|
|
|
++ even if it was running. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Copy files or folders from a container:
|
|
|
++#### [Copy files or folders from a container](#id18)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/copy`{.descname}
|
|
|
+ : Copy files or folders of container `id`
|
|
|
+@@ -612,13 +671,13 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id19)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id20)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/json`{.descname}
|
|
|
+ : **Example request**:
|
|
|
+@@ -655,7 +714,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id21)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -683,24 +742,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
++ - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id22)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -722,10 +781,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id23)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -770,11 +829,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id24)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -803,11 +862,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id25)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -830,22 +889,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **X-Registry-Auth** – include a base64-encoded AuthConfig
|
|
|
++ - **X-Registry-Auth** – include a base64-encoded AuthConfig
|
|
|
+ object.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id26)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -862,18 +921,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id27)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -897,16 +956,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **noprune** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id28)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index.
|
|
|
+@@ -954,16 +1014,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **term** – term to search
|
|
|
++ - **term** – term to search
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id29)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -995,25 +1055,25 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name (and optionally a tag) to be applied to
|
|
|
++ - **t** – repository name (and optionally a tag) to be applied to
|
|
|
+ the resulting image in case of success
|
|
|
+- - **q** – suppress verbose build output
|
|
|
+- - **nocache** – do not use the cache when building the image
|
|
|
++ - **q** – suppress verbose build output
|
|
|
++ - **nocache** – do not use the cache when building the image
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Content-type** – should be set to
|
|
|
++ - **Content-type** – should be set to
|
|
|
+ `"application/tar"`.
|
|
|
+- - **X-Registry-Config** – base64-encoded ConfigFile object
|
|
|
++ - **X-Registry-Config** – base64-encoded ConfigFile object
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id31)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -1036,11 +1096,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -1067,10 +1127,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id33)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -1092,10 +1152,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id34)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -1115,22 +1175,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+- - **run** – config automatically applied when the image is run.
|
|
|
++ - **run** – config automatically applied when the image is run.
|
|
|
+ (ex: {“Cmd”: [“cat”, “/world”], “PortSpecs”:[“22”]})
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Monitor Docker’s events:
|
|
|
++#### [Monitor Docker’s events](#id35)
|
|
|
+
|
|
|
+ `GET `{.descname}`/events`{.descname}
|
|
|
+ : Get events from docker, either in real time via streaming, or via
|
|
|
+@@ -1154,14 +1214,14 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **since** – timestamp used for polling
|
|
|
++ - **since** – timestamp used for polling
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get a tarball containing all images and tags in a repository:
|
|
|
++#### [Get a tarball containing all images and tags in a repository](#id36)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/get`{.descname}
|
|
|
+ : Get a tarball containing all images and metadata for the repository
|
|
|
+@@ -1180,10 +1240,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Load a tarball with a set of images and tags into docker:
|
|
|
++#### [Load a tarball with a set of images and tags into docker](#id37)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/load`{.descname}
|
|
|
+ : Load a set of images and tags into the docker repository.
|
|
|
+@@ -1200,38 +1260,38 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id38)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id39)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id40)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id41)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+- docker -d -H="192.168.1.9:4243" -api-enable-cors
|
|
|
++ docker -d -H="192.168.1.9:4243" --api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.2.md b/docs/sources/reference/api/docker_remote_api_v1.2.md
|
|
|
+index 5a70c94..b11bce6 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.2.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.2.md
|
|
|
+@@ -2,21 +2,68 @@ page_title: Remote API v1.2
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.2
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API is replacing rcli
|
|
|
+-- Default port in the docker daemon is 4243
|
|
|
+-- The API tends to be REST, but for some complex commands, like attach
|
|
|
++# [Docker Remote API v1.2](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.2](#docker-remote-api-v1-2)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API is replacing rcli
|
|
|
++- Default port in the docker daemon 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
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -77,22 +124,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -138,16 +185,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -210,11 +257,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:]
|
|
|
++#### [Inspect changes on a container’s filesystem](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -245,11 +292,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -267,11 +314,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id10)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -286,11 +333,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -307,15 +354,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -332,15 +379,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -355,11 +402,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -379,25 +426,25 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -416,11 +463,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id16)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -437,19 +484,19 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id17)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id18)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*format*)
|
|
|
+ : List images `format` could be json or viz (json
|
|
|
+@@ -514,16 +561,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id19)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -547,18 +594,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id20)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -580,10 +627,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id21)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -627,11 +674,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id22)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -661,11 +708,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id23)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -689,15 +736,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id24)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -714,18 +761,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id25)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -747,12 +794,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id26)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index
|
|
|
+@@ -785,9 +832,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ :statuscode 200: no error
|
|
|
+ :statuscode 500: server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id27)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id28)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile
|
|
|
+@@ -808,19 +855,19 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name to be applied to the resulting image in
|
|
|
++ - **t** – repository name to be applied to the resulting image in
|
|
|
+ case of success
|
|
|
+- - **remote** – resource to fetch, as URI
|
|
|
++ - **remote** – resource to fetch, as URI
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+ {{ STREAM }} is the raw text output of the build command. It uses the
|
|
|
+ HTTP Hijack method in order to stream.
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id29)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -847,13 +894,13 @@ HTTP Hijack method in order to stream.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **401** – unauthorized
|
|
|
+- - **403** – forbidden
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **401** – unauthorized
|
|
|
++ - **403** – forbidden
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id30)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -879,10 +926,10 @@ HTTP Hijack method in order to stream.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id31)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -904,10 +951,10 @@ HTTP Hijack method in order to stream.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id32)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -933,49 +980,49 @@ HTTP Hijack method in order to stream.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id33)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id34)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id35)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id36)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+ > docker -d -H=”[tcp://192.168.1.9:4243](tcp://192.168.1.9:4243)”
|
|
|
+-> -api-enable-cors
|
|
|
++> –api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.3.md b/docs/sources/reference/api/docker_remote_api_v1.3.md
|
|
|
+index 7e0e6bd..4203699 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.3.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.3.md
|
|
|
+@@ -2,74 +2,71 @@ page_title: Remote API v1.3
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.3
|
|
|
++# [Docker Remote API v1.3](#id1)
|
|
|
+
|
|
|
+ Table of Contents
|
|
|
+
|
|
|
+-- [Docker Remote API v1.3](#docker-remote-api-v1-3)
|
|
|
+- - [1. Brief introduction](#brief-introduction)
|
|
|
+- - [2. Endpoints](#endpoints)
|
|
|
+- - [2.1 Containers](#containers)
|
|
|
+- - [List containers](#list-containers)
|
|
|
+- - [Create a container](#create-a-container)
|
|
|
+- - [Inspect a container](#inspect-a-container)
|
|
|
+- - [List processes running inside a
|
|
|
++- [Docker Remote API v1.3](#docker-remote-api-v1-3)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [List processes running inside a
|
|
|
+ container](#list-processes-running-inside-a-container)
|
|
|
+- - [Inspect changes on a container’s
|
|
|
++ - [Inspect changes on a container’s
|
|
|
+ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
+- - [Export a container](#export-a-container)
|
|
|
+- - [Start a container](#start-a-container)
|
|
|
+- - [Stop a container](#stop-a-container)
|
|
|
+- - [Restart a container](#restart-a-container)
|
|
|
+- - [Kill a container](#kill-a-container)
|
|
|
+- - [Attach to a container](#attach-to-a-container)
|
|
|
+- - [Wait a container](#wait-a-container)
|
|
|
+- - [Remove a container](#remove-a-container)
|
|
|
+-
|
|
|
+- - [2.2 Images](#images)
|
|
|
+- - [List Images](#list-images)
|
|
|
+- - [Create an image](#create-an-image)
|
|
|
+- - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
+- - [Inspect an image](#inspect-an-image)
|
|
|
+- - [Get the history of an
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
+ image](#get-the-history-of-an-image)
|
|
|
+- - [Push an image on the
|
|
|
++ - [Push an image on the
|
|
|
+ registry](#push-an-image-on-the-registry)
|
|
|
+- - [Tag an image into a
|
|
|
++ - [Tag an image into a
|
|
|
+ repository](#tag-an-image-into-a-repository)
|
|
|
+- - [Remove an image](#remove-an-image)
|
|
|
+- - [Search images](#search-images)
|
|
|
+-
|
|
|
+- - [2.3 Misc](#misc)
|
|
|
+- - [Build an image from Dockerfile via
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
+ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
+- - [Check auth configuration](#check-auth-configuration)
|
|
|
+- - [Display system-wide
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
+ information](#display-system-wide-information)
|
|
|
+- - [Show the docker version
|
|
|
++ - [Show the docker version
|
|
|
+ information](#show-the-docker-version-information)
|
|
|
+- - [Create a new image from a container’s
|
|
|
++ - [Create a new image from a container’s
|
|
|
+ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
+- - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
+-
|
|
|
+- - [3. Going further](#going-further)
|
|
|
+- - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
+- - [3.2 Hijacking](#hijacking)
|
|
|
+- - [3.3 CORS Requests](#cors-requests)
|
|
|
++ - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
+
|
|
|
+-## Introduction
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
+
|
|
|
+-- The Remote API is replacing rcli
|
|
|
+-- Default port in the docker daemon is 4243
|
|
|
+-- The API tends to be REST, but for some complex commands, like attach
|
|
|
++- The Remote API is replacing rcli
|
|
|
++- Default port in the docker daemon 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
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -130,24 +127,24 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
++ - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
+ sizes
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -193,16 +190,16 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -265,11 +262,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### List processes running inside a container:
|
|
|
++#### [List processes running inside a container](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List processes running inside the container `id`
|
|
|
+@@ -300,11 +297,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:
|
|
|
++#### [Inspect changes on a container’s filesystem](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -335,11 +332,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id10)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -357,11 +354,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -384,15 +381,15 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **hostConfig** – the container’s host configuration (optional)
|
|
|
++ - **hostConfig** – the container’s host configuration (optional)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -409,15 +406,15 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -434,15 +431,15 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -457,11 +454,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -481,25 +478,25 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id16)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -518,11 +515,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id17)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -539,19 +536,19 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id18)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id19)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*format*)
|
|
|
+ : List images `format` could be json or viz (json
|
|
|
+@@ -616,16 +613,16 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id20)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -649,18 +646,18 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id21)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -682,10 +679,10 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id22)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -729,11 +726,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id23)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -762,11 +759,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id24)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -790,15 +787,15 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id25)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -815,18 +812,18 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id26)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -848,12 +845,12 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id27)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index
|
|
|
+@@ -886,9 +883,9 @@ Table of Contents
|
|
|
+ :statuscode 200: no error
|
|
|
+ :statuscode 500: server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id28)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id29)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -917,16 +914,16 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name (and optionally a tag) to be applied to
|
|
|
++ - **t** – repository name (and optionally a tag) to be applied to
|
|
|
+ the resulting image in case of success
|
|
|
+- - **q** – suppress verbose build output
|
|
|
++ - **q** – suppress verbose build output
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -948,11 +945,11 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id31)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -981,10 +978,10 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -1006,10 +1003,10 @@ Table of Contents
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id33)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -1035,20 +1032,20 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Monitor Docker’s events:
|
|
|
++#### [Monitor Docker’s events](#id34)
|
|
|
+
|
|
|
+ `GET `{.descname}`/events`{.descname}
|
|
|
+ : Get events from docker, either in real time via streaming, or via
|
|
|
+@@ -1072,42 +1069,42 @@ Table of Contents
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **since** – timestamp used for polling
|
|
|
++ - **since** – timestamp used for polling
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id35)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id36)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id37)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id38)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+-> docker -d -H=”192.168.1.9:4243” -api-enable-cors
|
|
|
++> docker -d -H=”192.168.1.9:4243” –api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.4.md b/docs/sources/reference/api/docker_remote_api_v1.4.md
|
|
|
+index f665b1e..4eca2a6 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.4.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.4.md
|
|
|
+@@ -2,21 +2,73 @@ page_title: Remote API v1.4
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.4
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API is replacing rcli
|
|
|
+-- Default port in the docker daemon is 4243
|
|
|
+-- The API tends to be REST, but for some complex commands, like attach
|
|
|
++# [Docker Remote API v1.4](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.4](#docker-remote-api-v1-4)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [List processes running inside a
|
|
|
++ container](#list-processes-running-inside-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [Copy files or folders from a
|
|
|
++ container](#copy-files-or-folders-from-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API is replacing rcli
|
|
|
++- Default port in the docker daemon 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
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -77,24 +129,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
++ - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
+ sizes
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -143,16 +195,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -217,12 +269,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **409** – conflict between containers and images
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **409** – conflict between containers and images
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### List processes running inside a container:
|
|
|
++#### [List processes running inside a container](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List processes running inside the container `id`
|
|
|
+@@ -260,15 +312,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
++ - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:
|
|
|
++#### [Inspect changes on a container’s filesystem](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -299,11 +351,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id10)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -321,11 +373,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -349,15 +401,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **hostConfig** – the container’s host configuration (optional)
|
|
|
++ - **hostConfig** – the container’s host configuration (optional)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -374,15 +426,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -399,15 +451,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -422,11 +474,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -446,25 +498,25 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id16)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -483,11 +535,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id17)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -504,17 +556,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Copy files or folders from a container:
|
|
|
++#### [Copy files or folders from a container](#id18)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/copy`{.descname}
|
|
|
+ : Copy files or folders of container `id`
|
|
|
+@@ -537,13 +589,13 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id19)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id20)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*format*)
|
|
|
+ : List images `format` could be json or viz (json
|
|
|
+@@ -608,16 +660,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id21)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -641,18 +693,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id22)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -674,10 +726,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id23)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -722,12 +774,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict between containers and images
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict between containers and images
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id24)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -756,11 +808,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id25)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -782,14 +834,14 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error :statuscode 404: no such image :statuscode
|
|
|
++ - **200** – no error :statuscode 404: no such image :statuscode
|
|
|
+ 500: server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id26)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -806,18 +858,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id27)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -839,12 +891,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id28)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index
|
|
|
+@@ -877,9 +929,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ :statuscode 200: no error
|
|
|
+ :statuscode 500: server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id29)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -908,17 +960,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name (and optionally a tag) to be applied to
|
|
|
++ - **t** – repository name (and optionally a tag) to be applied to
|
|
|
+ the resulting image in case of success
|
|
|
+- - **q** – suppress verbose build output
|
|
|
+- - **nocache** – do not use the cache when building the image
|
|
|
++ - **q** – suppress verbose build output
|
|
|
++ - **nocache** – do not use the cache when building the image
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id31)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -941,11 +993,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -972,10 +1024,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id33)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -997,10 +1049,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id34)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -1026,20 +1078,20 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Monitor Docker’s events:
|
|
|
++#### [Monitor Docker’s events](#id35)
|
|
|
+
|
|
|
+ `GET `{.descname}`/events`{.descname}
|
|
|
+ : Get events from docker, either in real time via streaming, or via
|
|
|
+@@ -1063,42 +1115,42 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **since** – timestamp used for polling
|
|
|
++ - **since** – timestamp used for polling
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id36)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id37)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id38)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id39)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+- docker -d -H="192.168.1.9:4243" -api-enable-cors
|
|
|
++ docker -d -H="192.168.1.9:4243" --api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.5.md b/docs/sources/reference/api/docker_remote_api_v1.5.md
|
|
|
+index d9c3542..ff11cd1 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.5.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.5.md
|
|
|
+@@ -2,21 +2,73 @@ page_title: Remote API v1.5
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.5
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API is replacing rcli
|
|
|
+-- Default port in the docker daemon is 4243
|
|
|
+-- The API tends to be REST, but for some complex commands, like attach
|
|
|
++# [Docker Remote API v1.5](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.5](#docker-remote-api-v1-5)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [List processes running inside a
|
|
|
++ container](#list-processes-running-inside-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [Copy files or folders from a
|
|
|
++ container](#copy-files-or-folders-from-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API is replacing rcli
|
|
|
++- Default port in the docker daemon 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
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -77,24 +129,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
++ - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
+ sizes
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -142,16 +194,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -215,11 +267,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### List processes running inside a container:
|
|
|
++#### [List processes running inside a container](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List processes running inside the container `id`
|
|
|
+@@ -257,15 +309,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
++ - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:
|
|
|
++#### [Inspect changes on a container’s filesystem](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -296,11 +348,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id10)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -318,11 +370,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -346,15 +398,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **hostConfig** – the container’s host configuration (optional)
|
|
|
++ - **hostConfig** – the container’s host configuration (optional)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -371,15 +423,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -396,15 +448,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -419,11 +471,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -443,25 +495,25 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id16)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -480,11 +532,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id17)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -501,17 +553,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Copy files or folders from a container:
|
|
|
++#### [Copy files or folders from a container](#id18)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/copy`{.descname}
|
|
|
+ : Copy files or folders of container `id`
|
|
|
+@@ -534,13 +586,13 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id19)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id20)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*format*)
|
|
|
+ : List images `format` could be json or viz (json
|
|
|
+@@ -605,16 +657,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id21)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -642,18 +694,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id22)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -675,10 +727,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id23)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -723,11 +775,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id24)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -756,11 +808,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id25)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -786,15 +838,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id26)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -811,18 +863,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id27)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -844,12 +896,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id28)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index
|
|
|
+@@ -882,16 +934,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **term** – term to search
|
|
|
++ - **term** – term to search
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id29)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -920,18 +972,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name (and optionally a tag) to be applied to
|
|
|
++ - **t** – repository name (and optionally a tag) to be applied to
|
|
|
+ the resulting image in case of success
|
|
|
+- - **q** – suppress verbose build output
|
|
|
+- - **nocache** – do not use the cache when building the image
|
|
|
+- - **rm** – remove intermediate containers after a successful build
|
|
|
++ - **q** – suppress verbose build output
|
|
|
++ - **nocache** – do not use the cache when building the image
|
|
|
++ - **rm** – remove intermediate containers after a successful build
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id31)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -954,11 +1006,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -985,10 +1037,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id33)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -1010,10 +1062,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id34)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -1039,20 +1091,20 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Monitor Docker’s events:
|
|
|
++#### [Monitor Docker’s events](#id35)
|
|
|
+
|
|
|
+ `GET `{.descname}`/events`{.descname}
|
|
|
+ : Get events from docker, either in real time via streaming, or via
|
|
|
+@@ -1076,37 +1128,37 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **since** – timestamp used for polling
|
|
|
++ - **since** – timestamp used for polling
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id36)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id37)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
+-- If the status code is 404, it means the image doesn’t exists: \* Try
|
|
|
++- Create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists: \* Try
|
|
|
+ to pull it \* Then retry to create the container
|
|
|
+-- Start the container
|
|
|
+-- If you are not in detached mode: \* Attach to the container, using
|
|
|
++- 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
|
|
|
++- If in detached mode or only stdin is attached: \* Display the
|
|
|
+ container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id38)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id39)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+- docker -d -H="192.168.1.9:4243" -api-enable-cors
|
|
|
++ docker -d -H="192.168.1.9:4243" --api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.6.md b/docs/sources/reference/api/docker_remote_api_v1.6.md
|
|
|
+index 4455608..fd6a650 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.6.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.6.md
|
|
|
+@@ -2,24 +2,76 @@ page_title: Remote API v1.6
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.6
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API has replaced rcli
|
|
|
+-- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
++# [Docker Remote API v1.6](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.6](#docker-remote-api-v1-6)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [List processes running inside a
|
|
|
++ container](#list-processes-running-inside-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [Copy files or folders from a
|
|
|
++ container](#copy-files-or-folders-from-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API has replaced rcli
|
|
|
++- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
+ .literal}, but you can [*Bind Docker to another host/port or a Unix
|
|
|
+ socket*](../../../use/basics/#bind-docker).
|
|
|
+-- The API tends to be REST, but for some complex commands, like
|
|
|
++- The API tends to be REST, but for some complex commands, like
|
|
|
+ `attach` or `pull`{.docutils .literal}, the HTTP
|
|
|
+ connection is hijacked to transport `stdout, stdin`{.docutils
|
|
|
+ .literal} and `stderr`
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -80,24 +132,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
++ - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
+ sizes
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -144,20 +196,20 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Query Parameters:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **name** – container name to use
|
|
|
++ - **name** – container name to use
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+ **More Complex Example request, in 2 steps.** **First, use create to
|
|
|
+ expose a Private Port, which can be bound back to a Public Port at
|
|
|
+@@ -202,7 +254,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ **Now you can ssh into your new container on port 11022.**
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -267,11 +319,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### List processes running inside a container:
|
|
|
++#### [List processes running inside a container](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List processes running inside the container `id`
|
|
|
+@@ -309,15 +361,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
++ - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:
|
|
|
++#### [Inspect changes on a container’s filesystem](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -348,11 +400,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id10)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -370,11 +422,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -403,15 +455,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **hostConfig** – the container’s host configuration (optional)
|
|
|
++ - **hostConfig** – the container’s host configuration (optional)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -428,15 +480,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -453,15 +505,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -478,17 +530,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **signal** – Signal to send to the container (integer). When not
|
|
|
++ - **signal** – Signal to send to the container (integer). When not
|
|
|
+ set, SIGKILL is assumed and the call will waits for the
|
|
|
+ container to exit.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -508,23 +560,23 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+ **Stream details**:
|
|
|
+
|
|
|
+@@ -549,9 +601,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ `STREAM_TYPE` can be:
|
|
|
+
|
|
|
+- - 0: stdin (will be writen on stdout)
|
|
|
+- - 1: stdout
|
|
|
+- - 2: stderr
|
|
|
++ - 0: stdin (will be writen on stdout)
|
|
|
++ - 1: stdout
|
|
|
++ - 2: stderr
|
|
|
+
|
|
|
+ `SIZE1, SIZE2, SIZE3, SIZE4` are the 4 bytes of
|
|
|
+ the uint32 size encoded as big endian.
|
|
|
+@@ -570,7 +622,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ 4. Read the extracted size and output it on the correct output
|
|
|
+ 5. Goto 1)
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id16)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -589,11 +641,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id17)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -610,17 +662,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Copy files or folders from a container:
|
|
|
++#### [Copy files or folders from a container](#id18)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/copy`{.descname}
|
|
|
+ : Copy files or folders of container `id`
|
|
|
+@@ -643,13 +695,13 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id19)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id20)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*format*)
|
|
|
+ : List images `format` could be json or viz (json
|
|
|
+@@ -714,16 +766,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id21)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -751,18 +803,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id22)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -784,10 +836,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id23)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -832,11 +884,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id24)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -865,11 +917,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id25)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -893,14 +945,14 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error :statuscode 404: no such image :statuscode
|
|
|
++ - **200** – no error :statuscode 404: no such image :statuscode
|
|
|
+ 500: server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id26)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -917,18 +969,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id27)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -950,12 +1002,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id28)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index
|
|
|
+@@ -988,9 +1040,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ :statuscode 200: no error
|
|
|
+ :statuscode 500: server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id29)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -1019,17 +1071,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name (and optionally a tag) to be applied to
|
|
|
++ - **t** – repository name (and optionally a tag) to be applied to
|
|
|
+ the resulting image in case of success
|
|
|
+- - **q** – suppress verbose build output
|
|
|
+- - **nocache** – do not use the cache when building the image
|
|
|
++ - **q** – suppress verbose build output
|
|
|
++ - **nocache** – do not use the cache when building the image
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id31)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -1052,11 +1104,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -1083,10 +1135,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id33)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -1108,10 +1160,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id34)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -1137,20 +1189,20 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Monitor Docker’s events:
|
|
|
++#### [Monitor Docker’s events](#id35)
|
|
|
+
|
|
|
+ `GET `{.descname}`/events`{.descname}
|
|
|
+ : Get events from docker, either in real time via streaming, or via
|
|
|
+@@ -1174,42 +1226,42 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **since** – timestamp used for polling
|
|
|
++ - **since** – timestamp used for polling
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id36)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id37)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id38)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id39)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+- docker -d -H="192.168.1.9:4243" -api-enable-cors
|
|
|
++ docker -d -H="192.168.1.9:4243" --api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.7.md b/docs/sources/reference/api/docker_remote_api_v1.7.md
|
|
|
+index 1d1bd27..0c8c962 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.7.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.7.md
|
|
|
+@@ -2,24 +2,80 @@ page_title: Remote API v1.7
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.7
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API has replaced rcli
|
|
|
+-- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
++# [Docker Remote API v1.7](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.7](#docker-remote-api-v1-7)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [List processes running inside a
|
|
|
++ container](#list-processes-running-inside-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [Copy files or folders from a
|
|
|
++ container](#copy-files-or-folders-from-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
++ - [Get a tarball containing all images and tags in a
|
|
|
++ repository](#get-a-tarball-containing-all-images-and-tags-in-a-repository)
|
|
|
++ - [Load a tarball with a set of images and tags into
|
|
|
++ docker](#load-a-tarball-with-a-set-of-images-and-tags-into-docker)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API has replaced rcli
|
|
|
++- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
+ .literal}, but you can [*Bind Docker to another host/port or a Unix
|
|
|
+ socket*](../../../use/basics/#bind-docker).
|
|
|
+-- The API tends to be REST, but for some complex commands, like
|
|
|
++- The API tends to be REST, but for some complex commands, like
|
|
|
+ `attach` or `pull`{.docutils .literal}, the HTTP
|
|
|
+ connection is hijacked to transport `stdout, stdin`{.docutils
|
|
|
+ .literal} and `stderr`
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## [2. Endpoints](#id3)
|
|
|
+
|
|
|
+-### Containers
|
|
|
++### [2.1 Containers](#id4)
|
|
|
+
|
|
|
+-### List containers:
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -80,24 +136,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
++ - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
+ sizes
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -149,16 +205,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **config** – the container’s configuration
|
|
|
++ - **config** – the container’s configuration
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -223,11 +279,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### List processes running inside a container:
|
|
|
++#### [List processes running inside a container](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List processes running inside the container `id`
|
|
|
+@@ -265,15 +321,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
++ - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:
|
|
|
++#### [Inspect changes on a container’s filesystem](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -304,11 +360,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id10)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -326,11 +382,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -360,15 +416,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **hostConfig** – the container’s host configuration (optional)
|
|
|
++ - **hostConfig** – the container’s host configuration (optional)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -385,15 +441,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -410,15 +466,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -433,11 +489,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -457,23 +513,23 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+ **Stream details**:
|
|
|
+
|
|
|
+@@ -498,9 +554,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ `STREAM_TYPE` can be:
|
|
|
+
|
|
|
+- - 0: stdin (will be writen on stdout)
|
|
|
+- - 1: stdout
|
|
|
+- - 2: stderr
|
|
|
++ - 0: stdin (will be writen on stdout)
|
|
|
++ - 1: stdout
|
|
|
++ - 2: stderr
|
|
|
+
|
|
|
+ `SIZE1, SIZE2, SIZE3, SIZE4` are the 4 bytes of
|
|
|
+ the uint32 size encoded as big endian.
|
|
|
+@@ -519,7 +575,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ 4. Read the extracted size and output it on the correct output
|
|
|
+ 5. Goto 1)
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id16)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -538,11 +594,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id17)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -559,17 +615,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Copy files or folders from a container:
|
|
|
++#### [Copy files or folders from a container](#id18)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/copy`{.descname}
|
|
|
+ : Copy files or folders of container `id`
|
|
|
+@@ -592,13 +648,13 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id19)
|
|
|
+
|
|
|
+-### List images:
|
|
|
++#### [List Images](#id20)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/json`{.descname}
|
|
|
+ : **Example request**:
|
|
|
+@@ -635,7 +691,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id21)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -663,24 +719,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
++ - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id22)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -702,10 +758,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id23)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -750,11 +806,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id24)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -783,11 +839,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id25)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -810,22 +866,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **X-Registry-Auth** – include a base64-encoded AuthConfig
|
|
|
++ - **X-Registry-Auth** – include a base64-encoded AuthConfig
|
|
|
+ object.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id26)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -842,18 +898,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id27)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -875,12 +931,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id28)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index.
|
|
|
+@@ -928,16 +984,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **term** – term to search
|
|
|
++ - **term** – term to search
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id29)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -967,24 +1023,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name (and optionally a tag) to be applied to
|
|
|
++ - **t** – repository name (and optionally a tag) to be applied to
|
|
|
+ the resulting image in case of success
|
|
|
+- - **q** – suppress verbose build output
|
|
|
+- - **nocache** – do not use the cache when building the image
|
|
|
++ - **q** – suppress verbose build output
|
|
|
++ - **nocache** – do not use the cache when building the image
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Content-type** – should be set to
|
|
|
++ - **Content-type** – should be set to
|
|
|
+ `"application/tar"`.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id31)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -1007,11 +1063,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -1038,10 +1094,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id33)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -1063,10 +1119,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id34)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -1086,22 +1142,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+- - **run** – config automatically applied when the image is run.
|
|
|
++ - **run** – config automatically applied when the image is run.
|
|
|
+ (ex: {“Cmd”: [“cat”, “/world”], “PortSpecs”:[“22”]})
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Monitor Docker’s events:
|
|
|
++#### [Monitor Docker’s events](#id35)
|
|
|
+
|
|
|
+ `GET `{.descname}`/events`{.descname}
|
|
|
+ : Get events from docker, either in real time via streaming, or via
|
|
|
+@@ -1125,14 +1181,14 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **since** – timestamp used for polling
|
|
|
++ - **since** – timestamp used for polling
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get a tarball containing all images and tags in a repository:
|
|
|
++#### [Get a tarball containing all images and tags in a repository](#id36)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/get`{.descname}
|
|
|
+ : Get a tarball containing all images and metadata for the repository
|
|
|
+@@ -1153,7 +1209,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ :statuscode 200: no error
|
|
|
+ :statuscode 500: server error
|
|
|
+
|
|
|
+-### Load a tarball with a set of images and tags into docker:
|
|
|
++#### [Load a tarball with a set of images and tags into docker](#id37)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/load`{.descname}
|
|
|
+ : Load a set of images and tags into the docker repository.
|
|
|
+@@ -1173,35 +1229,35 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ :statuscode 200: no error
|
|
|
+ :statuscode 500: server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id38)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id39)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id40)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id41)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+- docker -d -H="192.168.1.9:4243" -api-enable-cors
|
|
|
++ docker -d -H="192.168.1.9:4243" --api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.8.md b/docs/sources/reference/api/docker_remote_api_v1.8.md
|
|
|
+index 49c8fb6..115cabc 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.8.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.8.md
|
|
|
+@@ -2,24 +2,80 @@ page_title: Remote API v1.8
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.8
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API has replaced rcli
|
|
|
+-- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
+- .literal}, but you can [*Bind Docker to another host/port or a Unix
|
|
|
+- socket*](../../../use/basics/#bind-docker).
|
|
|
+-- The API tends to be REST, but for some complex commands, like
|
|
|
+- `attach` or `pull`{.docutils .literal}, the HTTP
|
|
|
+- connection is hijacked to transport `stdout, stdin`{.docutils
|
|
|
+- .literal} and `stderr`
|
|
|
+-
|
|
|
+-## Endpoints
|
|
|
+-
|
|
|
+-### Containers
|
|
|
+-
|
|
|
+-### List containers:
|
|
|
++# [Docker Remote API v1.8](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.8](#docker-remote-api-v1-8)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [List processes running inside a
|
|
|
++ container](#list-processes-running-inside-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [Copy files or folders from a
|
|
|
++ container](#copy-files-or-folders-from-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from Dockerfile via
|
|
|
++ stdin](#build-an-image-from-dockerfile-via-stdin)
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
++ - [Get a tarball containing all images and tags in a
|
|
|
++ repository](#get-a-tarball-containing-all-images-and-tags-in-a-repository)
|
|
|
++ - [Load a tarball with a set of images and tags into
|
|
|
++ docker](#load-a-tarball-with-a-set-of-images-and-tags-into-docker)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API has replaced rcli
|
|
|
++- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
++ .literal}, but you can [*Bind Docker to another host/port or a Unix
|
|
|
++ socket*](../../../use/basics/#bind-docker).
|
|
|
++- The API tends to be REST, but for some complex commands, like
|
|
|
++ `attach` or `pull`{.docutils .literal}, the HTTP
|
|
|
++ connection is hijacked to transport `stdout, stdin`{.docutils
|
|
|
++ .literal} and `stderr`
|
|
|
++
|
|
|
++## [2. Endpoints](#id3)
|
|
|
++
|
|
|
++### [2.1 Containers](#id4)
|
|
|
++
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -80,24 +136,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
++ - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
+ sizes
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -150,36 +206,36 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Hostname** – Container host name
|
|
|
+- - **User** – Username or UID
|
|
|
+- - **Memory** – Memory Limit in bytes
|
|
|
+- - **CpuShares** – CPU shares (relative weight
|
|
|
+- - **AttachStdin** – 1/True/true or 0/False/false, attach to
|
|
|
++ - **Hostname** – Container host name
|
|
|
++ - **User** – Username or UID
|
|
|
++ - **Memory** – Memory Limit in bytes
|
|
|
++ - **CpuShares** – CPU shares (relative weight)
|
|
|
++ - **AttachStdin** – 1/True/true or 0/False/false, attach to
|
|
|
+ standard input. Default false
|
|
|
+- - **AttachStdout** – 1/True/true or 0/False/false, attach to
|
|
|
++ - **AttachStdout** – 1/True/true or 0/False/false, attach to
|
|
|
+ standard output. Default false
|
|
|
+- - **AttachStderr** – 1/True/true or 0/False/false, attach to
|
|
|
++ - **AttachStderr** – 1/True/true or 0/False/false, attach to
|
|
|
+ standard error. Default false
|
|
|
+- - **Tty** – 1/True/true or 0/False/false, allocate a pseudo-tty.
|
|
|
++ - **Tty** – 1/True/true or 0/False/false, allocate a pseudo-tty.
|
|
|
+ Default false
|
|
|
+- - **OpenStdin** – 1/True/true or 0/False/false, keep stdin open
|
|
|
++ - **OpenStdin** – 1/True/true or 0/False/false, keep stdin open
|
|
|
+ even if not attached. Default false
|
|
|
+
|
|
|
+ Query Parameters:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **name** – Assign the specified name to the container. Must
|
|
|
++ - **name** – Assign the specified name to the container. Must
|
|
|
+ match `/?[a-zA-Z0-9_-]+`.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -260,11 +316,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### List processes running inside a container:
|
|
|
++#### [List processes running inside a container](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List processes running inside the container `id`
|
|
|
+@@ -302,15 +358,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **ps\_args** – ps arguments to use (eg. aux
|
|
|
++ - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:
|
|
|
++#### [Inspect changes on a container’s filesystem](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -341,11 +397,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Export a container:
|
|
|
++#### [Export a container](#id10)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -363,11 +419,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Start a container:
|
|
|
++#### [Start a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -394,24 +450,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Binds** – Create a bind mount to a directory or file with
|
|
|
++ - **Binds** – Create a bind mount to a directory or file with
|
|
|
+ [host-path]:[container-path]:[rw|ro]. If a directory
|
|
|
+ “container-path” is missing, then docker creates a new volume.
|
|
|
+- - **LxcConf** – Map of custom lxc options
|
|
|
+- - **PortBindings** – Expose ports from the container, optionally
|
|
|
++ - **LxcConf** – Map of custom lxc options
|
|
|
++ - **PortBindings** – Expose ports from the container, optionally
|
|
|
+ publishing them via the HostPort flag
|
|
|
+- - **PublishAllPorts** – 1/True/true or 0/False/false, publish all
|
|
|
++ - **PublishAllPorts** – 1/True/true or 0/False/false, publish all
|
|
|
+ exposed ports to the host interfaces. Default false
|
|
|
+- - **Privileged** – 1/True/true or 0/False/false, give extended
|
|
|
++ - **Privileged** – 1/True/true or 0/False/false, give extended
|
|
|
+ privileges to this container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Stop a container:
|
|
|
++#### [Stop a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -428,15 +484,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Restart a container:
|
|
|
++#### [Restart a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -453,15 +509,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Kill a container:
|
|
|
++#### [Kill a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -476,11 +532,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Attach to a container:
|
|
|
++#### [Attach to a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -500,23 +556,23 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+ **Stream details**:
|
|
|
+
|
|
|
+@@ -541,9 +597,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ `STREAM_TYPE` can be:
|
|
|
+
|
|
|
+- - 0: stdin (will be writen on stdout
|
|
|
+- - 1: stdout
|
|
|
+- - 2: stderr
|
|
|
++ - 0: stdin (will be writen on stdout)
|
|
|
++ - 1: stdout
|
|
|
++ - 2: stderr
|
|
|
+
|
|
|
+ `SIZE1, SIZE2, SIZE3, SIZE4` are the 4 bytes of
|
|
|
+ the uint32 size encoded as big endian.
|
|
|
+@@ -560,9 +616,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ 2. chose stdout or stderr depending on the first byte
|
|
|
+ 3. Extract the frame size from the last 4 byets
|
|
|
+ 4. Read the extracted size and output it on the correct output
|
|
|
+- 5. Goto 1
|
|
|
++ 5. Goto 1)
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id16)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -581,13 +637,13 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id17)
|
|
|
+
|
|
|
+- `DELETE `{.descname}`/containers/`{.descname}(*id*
|
|
|
++ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+@@ -602,17 +658,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Copy files or folders from a container:
|
|
|
++#### [Copy files or folders from a container](#id18)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/copy`{.descname}
|
|
|
+ : Copy files or folders of container `id`
|
|
|
+@@ -635,13 +691,13 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Images
|
|
|
++### [2.2 Images](#id19)
|
|
|
+
|
|
|
+-### List Images:
|
|
|
++#### [List Images](#id20)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/json`{.descname}
|
|
|
+ : **Example request**:
|
|
|
+@@ -678,7 +734,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id21)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -706,24 +762,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
++ - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Insert a file in an image:
|
|
|
++#### [Insert a file in an image](#id22)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -745,10 +801,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id23)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -793,11 +849,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id24)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -826,11 +882,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Push an image on the registry:
|
|
|
++#### [Push an image on the registry](#id25)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -853,22 +909,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **X-Registry-Auth** – include a base64-encoded AuthConfig
|
|
|
++ - **X-Registry-Auth** – include a base64-encoded AuthConfig
|
|
|
+ object.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id26)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -885,20 +941,20 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id27)
|
|
|
+
|
|
|
+- `DELETE `{.descname}`/images/`{.descname}(*name*
|
|
|
++ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+@@ -918,12 +974,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id28)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index.
|
|
|
+@@ -971,16 +1027,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **term** – term to search
|
|
|
++ - **term** – term to search
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Misc
|
|
|
++### [2.3 Misc](#id29)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile via stdin:
|
|
|
++#### [Build an image from Dockerfile via stdin](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile via stdin
|
|
|
+@@ -1012,25 +1068,25 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name (and optionally a tag) to be applied to
|
|
|
++ - **t** – repository name (and optionally a tag) to be applied to
|
|
|
+ the resulting image in case of success
|
|
|
+- - **q** – suppress verbose build output
|
|
|
+- - **nocache** – do not use the cache when building the image
|
|
|
++ - **q** – suppress verbose build output
|
|
|
++ - **nocache** – do not use the cache when building the image
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Content-type** – should be set to
|
|
|
++ - **Content-type** – should be set to
|
|
|
+ `"application/tar"`.
|
|
|
+- - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
++ - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id31)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -1053,11 +1109,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -1084,10 +1140,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id33)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -1109,10 +1165,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id34)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -1132,26 +1188,26 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
+- \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”
|
|
|
+- - **run** – config automatically applied when the image is run.
|
|
|
+- (ex: {“Cmd”: [“cat”, “/world”], “PortSpecs”:[“22”]}
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
++ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
++ - **run** – config automatically applied when the image is run.
|
|
|
++ (ex: {“Cmd”: [“cat”, “/world”], “PortSpecs”:[“22”]})
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Monitor Docker’s events:
|
|
|
++#### [Monitor Docker’s events](#id35)
|
|
|
+
|
|
|
+ `GET `{.descname}`/events`{.descname}
|
|
|
+ : Get events from docker, either in real time via streaming, or via
|
|
|
+- polling (using since
|
|
|
++ polling (using since)
|
|
|
+
|
|
|
+ **Example request**:
|
|
|
+
|
|
|
+@@ -1171,14 +1227,14 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **since** – timestamp used for polling
|
|
|
++ - **since** – timestamp used for polling
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get a tarball containing all images and tags in a repository:
|
|
|
++#### [Get a tarball containing all images and tags in a repository](#id36)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/get`{.descname}
|
|
|
+ : Get a tarball containing all images and metadata for the repository
|
|
|
+@@ -1197,10 +1253,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Load a tarball with a set of images and tags into docker:
|
|
|
++#### [Load a tarball with a set of images and tags into docker](#id37)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/load`{.descname}
|
|
|
+ : Load a set of images and tags into the docker repository.
|
|
|
+@@ -1217,38 +1273,38 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id38)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id39)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id40)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id41)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+- docker -d -H="192.168.1.9:4243" -api-enable-cors
|
|
|
++ docker -d -H="192.168.1.9:4243" --api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/docker_remote_api_v1.9.md b/docs/sources/reference/api/docker_remote_api_v1.9.md
|
|
|
+index 658835c..c25f837 100644
|
|
|
+--- a/docs/sources/reference/api/docker_remote_api_v1.9.md
|
|
|
++++ b/docs/sources/reference/api/docker_remote_api_v1.9.md
|
|
|
+@@ -2,24 +2,80 @@ page_title: Remote API v1.9
|
|
|
+ page_description: API Documentation for Docker
|
|
|
+ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+-# Docker Remote API v1.9
|
|
|
+-
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+-- The Remote API has replaced rcli
|
|
|
+-- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
+- .literal}, but you can [*Bind Docker to another host/port or a Unix
|
|
|
+- socket*](../../../use/basics/#bind-docker).
|
|
|
+-- The API tends to be REST, but for some complex commands, like
|
|
|
+- `attach` or `pull`{.docutils .literal}, the HTTP
|
|
|
+- connection is hijacked to transport `stdout, stdin`{.docutils
|
|
|
+- .literal} and `stderr`
|
|
|
+-
|
|
|
+-## Endpoints
|
|
|
+-
|
|
|
+-## Containers
|
|
|
+-
|
|
|
+-### List containers:
|
|
|
++# [Docker Remote API v1.9](#id1)
|
|
|
++
|
|
|
++Table of Contents
|
|
|
++
|
|
|
++- [Docker Remote API v1.9](#docker-remote-api-v1-9)
|
|
|
++ - [1. Brief introduction](#brief-introduction)
|
|
|
++ - [2. Endpoints](#endpoints)
|
|
|
++ - [2.1 Containers](#containers)
|
|
|
++ - [List containers](#list-containers)
|
|
|
++ - [Create a container](#create-a-container)
|
|
|
++ - [Inspect a container](#inspect-a-container)
|
|
|
++ - [List processes running inside a
|
|
|
++ container](#list-processes-running-inside-a-container)
|
|
|
++ - [Inspect changes on a container’s
|
|
|
++ filesystem](#inspect-changes-on-a-container-s-filesystem)
|
|
|
++ - [Export a container](#export-a-container)
|
|
|
++ - [Start a container](#start-a-container)
|
|
|
++ - [Stop a container](#stop-a-container)
|
|
|
++ - [Restart a container](#restart-a-container)
|
|
|
++ - [Kill a container](#kill-a-container)
|
|
|
++ - [Attach to a container](#attach-to-a-container)
|
|
|
++ - [Wait a container](#wait-a-container)
|
|
|
++ - [Remove a container](#remove-a-container)
|
|
|
++ - [Copy files or folders from a
|
|
|
++ container](#copy-files-or-folders-from-a-container)
|
|
|
++ - [2.2 Images](#images)
|
|
|
++ - [List Images](#list-images)
|
|
|
++ - [Create an image](#create-an-image)
|
|
|
++ - [Insert a file in an image](#insert-a-file-in-an-image)
|
|
|
++ - [Inspect an image](#inspect-an-image)
|
|
|
++ - [Get the history of an
|
|
|
++ image](#get-the-history-of-an-image)
|
|
|
++ - [Push an image on the
|
|
|
++ registry](#push-an-image-on-the-registry)
|
|
|
++ - [Tag an image into a
|
|
|
++ repository](#tag-an-image-into-a-repository)
|
|
|
++ - [Remove an image](#remove-an-image)
|
|
|
++ - [Search images](#search-images)
|
|
|
++ - [2.3 Misc](#misc)
|
|
|
++ - [Build an image from
|
|
|
++ Dockerfile](#build-an-image-from-dockerfile)
|
|
|
++ - [Check auth configuration](#check-auth-configuration)
|
|
|
++ - [Display system-wide
|
|
|
++ information](#display-system-wide-information)
|
|
|
++ - [Show the docker version
|
|
|
++ information](#show-the-docker-version-information)
|
|
|
++ - [Create a new image from a container’s
|
|
|
++ changes](#create-a-new-image-from-a-container-s-changes)
|
|
|
++ - [Monitor Docker’s events](#monitor-docker-s-events)
|
|
|
++ - [Get a tarball containing all images and tags in a
|
|
|
++ repository](#get-a-tarball-containing-all-images-and-tags-in-a-repository)
|
|
|
++ - [Load a tarball with a set of images and tags into
|
|
|
++ docker](#load-a-tarball-with-a-set-of-images-and-tags-into-docker)
|
|
|
++ - [3. Going further](#going-further)
|
|
|
++ - [3.1 Inside ‘docker run’](#inside-docker-run)
|
|
|
++ - [3.2 Hijacking](#hijacking)
|
|
|
++ - [3.3 CORS Requests](#cors-requests)
|
|
|
++
|
|
|
++## [1. Brief introduction](#id2)
|
|
|
++
|
|
|
++- The Remote API has replaced rcli
|
|
|
++- The daemon listens on `unix:///var/run/docker.sock`{.docutils
|
|
|
++ .literal}, but you can [*Bind Docker to another host/port or a Unix
|
|
|
++ socket*](../../../use/basics/#bind-docker).
|
|
|
++- The API tends to be REST, but for some complex commands, like
|
|
|
++ `attach` or `pull`{.docutils .literal}, the HTTP
|
|
|
++ connection is hijacked to transport `stdout, stdin`{.docutils
|
|
|
++ .literal} and `stderr`
|
|
|
++
|
|
|
++## [2. Endpoints](#id3)
|
|
|
++
|
|
|
++### [2.1 Containers](#id4)
|
|
|
++
|
|
|
++#### [List containers](#id5)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/json`{.descname}
|
|
|
+ : List containers
|
|
|
+@@ -80,24 +136,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
++ - **all** – 1/True/true or 0/False/false, Show all containers.
|
|
|
+ Only running containers are shown by default
|
|
|
+- - **limit** – Show `limit` last created
|
|
|
++ - **limit** – Show `limit` last created
|
|
|
+ containers, include non-running ones.
|
|
|
+- - **since** – Show only containers created since Id, include
|
|
|
++ - **since** – Show only containers created since Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **before** – Show only containers created before Id, include
|
|
|
++ - **before** – Show only containers created before Id, include
|
|
|
+ non-running ones.
|
|
|
+- - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
++ - **size** – 1/True/true or 0/False/false, Show the containers
|
|
|
+ sizes
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a container:
|
|
|
++#### [Create a container](#id6)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/create`{.descname}
|
|
|
+ : Create a container
|
|
|
+@@ -150,36 +206,36 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Hostname** – Container host name
|
|
|
+- - **User** – Username or UID
|
|
|
+- - **Memory** – Memory Limit in bytes
|
|
|
+- - **CpuShares** – CPU shares (relative weight)
|
|
|
+- - **AttachStdin** – 1/True/true or 0/False/false, attach to
|
|
|
++ - **Hostname** – Container host name
|
|
|
++ - **User** – Username or UID
|
|
|
++ - **Memory** – Memory Limit in bytes
|
|
|
++ - **CpuShares** – CPU shares (relative weight)
|
|
|
++ - **AttachStdin** – 1/True/true or 0/False/false, attach to
|
|
|
+ standard input. Default false
|
|
|
+- - **AttachStdout** – 1/True/true or 0/False/false, attach to
|
|
|
++ - **AttachStdout** – 1/True/true or 0/False/false, attach to
|
|
|
+ standard output. Default false
|
|
|
+- - **AttachStderr** – 1/True/true or 0/False/false, attach to
|
|
|
++ - **AttachStderr** – 1/True/true or 0/False/false, attach to
|
|
|
+ standard error. Default false
|
|
|
+- - **Tty** – 1/True/true or 0/False/false, allocate a pseudo-tty.
|
|
|
++ - **Tty** – 1/True/true or 0/False/false, allocate a pseudo-tty.
|
|
|
+ Default false
|
|
|
+- - **OpenStdin** – 1/True/true or 0/False/false, keep stdin open
|
|
|
++ - **OpenStdin** – 1/True/true or 0/False/false, keep stdin open
|
|
|
+ even if not attached. Default false
|
|
|
+
|
|
|
+ Query Parameters:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **name** – Assign the specified name to the container. Must
|
|
|
++ - **name** – Assign the specified name to the container. Must
|
|
|
+ match `/?[a-zA-Z0-9_-]+`.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **406** – impossible to attach (container not running)
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **406** – impossible to attach (container not running)
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect a container:
|
|
|
++#### [Inspect a container](#id7)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/json`{.descname}
|
|
|
+ : Return low-level information on the container `id`{.docutils
|
|
|
+@@ -260,11 +316,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### List processes running inside a container:
|
|
|
++#### [List processes running inside a container](#id8)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/top`{.descname}
|
|
|
+ : List processes running inside the container `id`
|
|
|
+@@ -302,15 +358,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
++ - **ps\_args** – ps arguments to use (eg. aux)
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect changes on a container’s filesystem:
|
|
|
++#### [Inspect changes on a container’s filesystem](#id9)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/changes`{.descname}
|
|
|
+ : Inspect changes on container `id` ‘s filesystem
|
|
|
+@@ -341,12 +397,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
+-
|
|
|
+-### Export a container:
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
++#### [Export a container](#id10)
|
|
|
+
|
|
|
+ `GET `{.descname}`/containers/`{.descname}(*id*)`/export`{.descname}
|
|
|
+ : Export the contents of container `id`
|
|
|
+@@ -364,12 +419,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
+-
|
|
|
+-### Start a container:
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
++#### [Start a container](#id11)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/start`{.descname}
|
|
|
+ : Start the container `id`
|
|
|
+@@ -396,25 +450,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Binds** – Create a bind mount to a directory or file with
|
|
|
++ - **Binds** – Create a bind mount to a directory or file with
|
|
|
+ [host-path]:[container-path]:[rw|ro]. If a directory
|
|
|
+ “container-path” is missing, then docker creates a new volume.
|
|
|
+- - **LxcConf** – Map of custom lxc options
|
|
|
+- - **PortBindings** – Expose ports from the container, optionally
|
|
|
++ - **LxcConf** – Map of custom lxc options
|
|
|
++ - **PortBindings** – Expose ports from the container, optionally
|
|
|
+ publishing them via the HostPort flag
|
|
|
+- - **PublishAllPorts** – 1/True/true or 0/False/false, publish all
|
|
|
++ - **PublishAllPorts** – 1/True/true or 0/False/false, publish all
|
|
|
+ exposed ports to the host interfaces. Default false
|
|
|
+- - **Privileged** – 1/True/true or 0/False/false, give extended
|
|
|
++ - **Privileged** – 1/True/true or 0/False/false, give extended
|
|
|
+ privileges to this container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
+-
|
|
|
+-### Stop a container:
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
++#### [Stop a container](#id12)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/stop`{.descname}
|
|
|
+ : Stop the container `id`
|
|
|
+@@ -431,16 +484,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
+-
|
|
|
+-### Restart a container:
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
++#### [Restart a container](#id13)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/restart`{.descname}
|
|
|
+ : Restart the container `id`
|
|
|
+@@ -457,16 +509,15 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – number of seconds to wait before killing the container
|
|
|
++ - **t** – number of seconds to wait before killing the container
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
+-
|
|
|
+-### Kill a container:
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
++#### [Kill a container](#id14)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/kill`{.descname}
|
|
|
+ : Kill the container `id`
|
|
|
+@@ -481,12 +532,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
+-
|
|
|
+-### Attach to a container:
|
|
|
++ - **204** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
++#### [Attach to a container](#id15)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/attach`{.descname}
|
|
|
+ : Attach to the container `id`
|
|
|
+@@ -506,23 +556,23 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
++ - **logs** – 1/True/true or 0/False/false, return logs. Default
|
|
|
+ false
|
|
|
+- - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
++ - **stream** – 1/True/true or 0/False/false, return stream.
|
|
|
+ Default false
|
|
|
+- - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
++ - **stdin** – 1/True/true or 0/False/false, if stream=true, attach
|
|
|
+ to stdin. Default false
|
|
|
+- - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stdout** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stdout log, if stream=true, attach to stdout. Default false
|
|
|
+- - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
++ - **stderr** – 1/True/true or 0/False/false, if logs=true, return
|
|
|
+ stderr log, if stream=true, attach to stderr. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+ **Stream details**:
|
|
|
+
|
|
|
+@@ -547,9 +597,9 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ `STREAM_TYPE` can be:
|
|
|
+
|
|
|
+- - 0: stdin (will be writen on stdout)
|
|
|
+- - 1: stdout
|
|
|
+- - 2: stderr
|
|
|
++ - 0: stdin (will be writen on stdout)
|
|
|
++ - 1: stdout
|
|
|
++ - 2: stderr
|
|
|
+
|
|
|
+ `SIZE1, SIZE2, SIZE3, SIZE4` are the 4 bytes of
|
|
|
+ the uint32 size encoded as big endian.
|
|
|
+@@ -568,7 +618,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ 4. Read the extracted size and output it on the correct output
|
|
|
+ 5. Goto 1)
|
|
|
+
|
|
|
+-### Wait a container:
|
|
|
++#### [Wait a container](#id16)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/wait`{.descname}
|
|
|
+ : Block until container `id` stops, then returns
|
|
|
+@@ -587,11 +637,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove a container:
|
|
|
++#### [Remove a container](#id17)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/containers/`{.descname}(*id*)
|
|
|
+ : Remove the container `id` from the filesystem
|
|
|
+@@ -608,17 +658,17 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
++ - **v** – 1/True/true or 0/False/false, Remove the volumes
|
|
|
+ associated to the container. Default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **204** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Copy files or folders from a container:
|
|
|
++#### [Copy files or folders from a container](#id18)
|
|
|
+
|
|
|
+ `POST `{.descname}`/containers/`{.descname}(*id*)`/copy`{.descname}
|
|
|
+ : Copy files or folders of container `id`
|
|
|
+@@ -641,13 +691,13 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Images
|
|
|
++### [2.2 Images](#id19)
|
|
|
+
|
|
|
+-### List Images:
|
|
|
++#### [List Images](#id20)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/json`{.descname}
|
|
|
+ : **Example request**:
|
|
|
+@@ -684,7 +734,7 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+ }
|
|
|
+ ]
|
|
|
+
|
|
|
+-### Create an image:
|
|
|
++#### [Create an image](#id21)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/create`{.descname}
|
|
|
+ : Create an image, either by pull it from the registry or by importing
|
|
|
+@@ -712,25 +762,24 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **fromImage** – name of the image to pull
|
|
|
+- - **fromSrc** – source to import, - means stdin
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **registry** – the registry to pull from
|
|
|
++ - **fromImage** – name of the image to pull
|
|
|
++ - **fromSrc** – source to import, - means stdin
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **registry** – the registry to pull from
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
++ - **X-Registry-Auth** – base64-encoded AuthConfig object
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
+-
|
|
|
+-### Insert a file in an image:
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
++#### [Insert a file in an image](#id22)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/insert`{.descname}
|
|
|
+ : Insert a file from `url` in the image
|
|
|
+@@ -752,10 +801,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Inspect an image:
|
|
|
++#### [Inspect an image](#id23)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/json`{.descname}
|
|
|
+ : Return low-level information on the image `name`
|
|
|
+@@ -800,11 +849,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get the history of an image:
|
|
|
++#### [Get the history of an image](#id24)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/history`{.descname}
|
|
|
+ : Return the history of the image `name`
|
|
|
+@@ -833,12 +882,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
+-
|
|
|
+-### Push an image on the registry:
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
++#### [Push an image on the registry](#id25)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/push`{.descname}
|
|
|
+ : Push the image `name` on the registry
|
|
|
+@@ -861,22 +909,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **registry** – the registry you wan to push, optional
|
|
|
++ - **registry** – the registry you wan to push, optional
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **X-Registry-Auth** – include a base64-encoded AuthConfig
|
|
|
++ - **X-Registry-Auth** – include a base64-encoded AuthConfig
|
|
|
+ object.
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Tag an image into a repository:
|
|
|
++#### [Tag an image into a repository](#id26)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/`{.descname}(*name*)`/tag`{.descname}
|
|
|
+ : Tag the image `name` into a repository
|
|
|
+@@ -893,18 +941,18 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **repo** – The repository to tag in
|
|
|
+- - **force** – 1/True/true or 0/False/false, default false
|
|
|
++ - **repo** – The repository to tag in
|
|
|
++ - **force** – 1/True/true or 0/False/false, default false
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **400** – bad parameter
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **400** – bad parameter
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Remove an image:
|
|
|
++#### [Remove an image](#id27)
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/images/`{.descname}(*name*)
|
|
|
+ : Remove the image `name` from the filesystem
|
|
|
+@@ -926,12 +974,12 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **404** – no such image
|
|
|
+- - **409** – conflict
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **404** – no such image
|
|
|
++ - **409** – conflict
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Search images:
|
|
|
++#### [Search images](#id28)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/search`{.descname}
|
|
|
+ : Search for an image in the docker index.
|
|
|
+@@ -979,16 +1027,16 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **term** – term to search
|
|
|
++ - **term** – term to search
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Misc
|
|
|
++### [2.3 Misc](#id29)
|
|
|
+
|
|
|
+-### Build an image from Dockerfile:
|
|
|
++#### [Build an image from Dockerfile](#id30)
|
|
|
+
|
|
|
+ `POST `{.descname}`/build`{.descname}
|
|
|
+ : Build an image from Dockerfile using a POST body.
|
|
|
+@@ -1020,26 +1068,26 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **t** – repository name (and optionally a tag) to be applied to
|
|
|
++ - **t** – repository name (and optionally a tag) to be applied to
|
|
|
+ the resulting image in case of success
|
|
|
+- - **q** – suppress verbose build output
|
|
|
+- - **nocache** – do not use the cache when building the image
|
|
|
+- - **rm** – Remove intermediate containers after a successful build
|
|
|
++ - **q** – suppress verbose build output
|
|
|
++ - **nocache** – do not use the cache when building the image
|
|
|
++ - **rm** – Remove intermediate containers after a successful build
|
|
|
+
|
|
|
+ Request Headers:
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **Content-type** – should be set to
|
|
|
++ - **Content-type** – should be set to
|
|
|
+ `"application/tar"`.
|
|
|
+- - **X-Registry-Config** – base64-encoded ConfigFile object
|
|
|
++ - **X-Registry-Config** – base64-encoded ConfigFile object
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Check auth configuration:
|
|
|
++#### [Check auth configuration](#id31)
|
|
|
+
|
|
|
+ `POST `{.descname}`/auth`{.descname}
|
|
|
+ : Get the default username and email
|
|
|
+@@ -1062,11 +1110,11 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **204** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **204** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Display system-wide information:
|
|
|
++#### [Display system-wide information](#id32)
|
|
|
+
|
|
|
+ `GET `{.descname}`/info`{.descname}
|
|
|
+ : Display system-wide information
|
|
|
+@@ -1093,10 +1141,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Show the docker version information:
|
|
|
++#### [Show the docker version information](#id33)
|
|
|
+
|
|
|
+ `GET `{.descname}`/version`{.descname}
|
|
|
+ : Show the docker version information
|
|
|
+@@ -1118,10 +1166,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Create a new image from a container’s changes:
|
|
|
++#### [Create a new image from a container’s changes](#id34)
|
|
|
+
|
|
|
+ `POST `{.descname}`/commit`{.descname}
|
|
|
+ : Create a new image from a container’s changes
|
|
|
+@@ -1141,22 +1189,22 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **container** – source container
|
|
|
+- - **repo** – repository
|
|
|
+- - **tag** – tag
|
|
|
+- - **m** – commit message
|
|
|
+- - **author** – author (eg. “John Hannibal Smith
|
|
|
++ - **container** – source container
|
|
|
++ - **repo** – repository
|
|
|
++ - **tag** – tag
|
|
|
++ - **m** – commit message
|
|
|
++ - **author** – author (eg. “John Hannibal Smith
|
|
|
+ \<[hannibal@a-team.com](mailto:hannibal%40a-team.com)\>”)
|
|
|
+- - **run** – config automatically applied when the image is run.
|
|
|
++ - **run** – config automatically applied when the image is run.
|
|
|
+ (ex: {“Cmd”: [“cat”, “/world”], “PortSpecs”:[“22”]})
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – no error
|
|
|
+- - **404** – no such container
|
|
|
+- - **500** – server error
|
|
|
++ - **201** – no error
|
|
|
++ - **404** – no such container
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Monitor Docker’s events:
|
|
|
++#### [Monitor Docker’s events](#id35)
|
|
|
+
|
|
|
+ `GET `{.descname}`/events`{.descname}
|
|
|
+ : Get events from docker, either in real time via streaming, or via
|
|
|
+@@ -1180,14 +1228,14 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **since** – timestamp used for polling
|
|
|
++ - **since** – timestamp used for polling
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Get a tarball containing all images and tags in a repository:
|
|
|
++#### [Get a tarball containing all images and tags in a repository](#id36)
|
|
|
+
|
|
|
+ `GET `{.descname}`/images/`{.descname}(*name*)`/get`{.descname}
|
|
|
+ : Get a tarball containing all images and metadata for the repository
|
|
|
+@@ -1206,10 +1254,10 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-### Load a tarball with a set of images and tags into docker:
|
|
|
++#### [Load a tarball with a set of images and tags into docker](#id37)
|
|
|
+
|
|
|
+ `POST `{.descname}`/images/load`{.descname}
|
|
|
+ : Load a set of images and tags into the docker repository.
|
|
|
+@@ -1226,38 +1274,38 @@ page_keywords: API, Docker, rcli, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+-## Going Further
|
|
|
++## [3. Going further](#id38)
|
|
|
+
|
|
|
+-### Inside ‘docker run’
|
|
|
++### [3.1 Inside ‘docker run’](#id39)
|
|
|
+
|
|
|
+ Here are the steps of ‘docker run’ :
|
|
|
+
|
|
|
+-- Create the container
|
|
|
++- Create the container
|
|
|
+
|
|
|
+-- If the status code is 404, it means the image doesn’t exists:
|
|
|
+- : - Try to pull it
|
|
|
+- - Then retry to create the container
|
|
|
++- If the status code is 404, it means the image doesn’t exists:
|
|
|
++ : - Try to pull it
|
|
|
++ - Then retry to create the container
|
|
|
+
|
|
|
+-- Start the container
|
|
|
++- Start the container
|
|
|
+
|
|
|
+-- If you are not in detached mode:
|
|
|
+- : - Attach to the container, using logs=1 (to have stdout and
|
|
|
++- 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 id
|
|
|
++- If in detached mode or only stdin is attached:
|
|
|
++ : - Display the container’s id
|
|
|
+
|
|
|
+-### Hijacking
|
|
|
++### [3.2 Hijacking](#id40)
|
|
|
+
|
|
|
+ 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.
|
|
|
+
|
|
|
+-### CORS Requests
|
|
|
++### [3.3 CORS Requests](#id41)
|
|
|
+
|
|
|
+ To enable cross origin requests to the remote api add the flag
|
|
|
+-“-api-enable-cors” when running docker in daemon mode.
|
|
|
++“–api-enable-cors” when running docker in daemon mode.
|
|
|
+
|
|
|
+- docker -d -H="192.168.1.9:4243" -api-enable-cors
|
|
|
++ docker -d -H="192.168.1.9:4243" --api-enable-cors
|
|
|
+diff --git a/docs/sources/reference/api/index_api.md b/docs/sources/reference/api/index_api.md
|
|
|
+index 83cf36b..e9bcc2b 100644
|
|
|
+--- a/docs/sources/reference/api/index_api.md
|
|
|
++++ b/docs/sources/reference/api/index_api.md
|
|
|
+@@ -4,17 +4,19 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ # Docker Index API
|
|
|
+
|
|
|
+-## Introduction
|
|
|
++## 1. Brief introduction
|
|
|
+
|
|
|
+-- This is the REST API for the Docker index
|
|
|
+-- Authorization is done with basic auth over SSL
|
|
|
+-- Not all commands require authentication, only those noted as such.
|
|
|
++- This is the REST API for the Docker index
|
|
|
++- Authorization is done with basic auth over SSL
|
|
|
++- Not all commands require authentication, only those noted as such.
|
|
|
+
|
|
|
+-## Repository
|
|
|
++## 2. Endpoints
|
|
|
+
|
|
|
+-### Repositories
|
|
|
++### 2.1 Repository
|
|
|
+
|
|
|
+-### User Repo
|
|
|
++#### Repositories
|
|
|
++
|
|
|
++##### User Repo
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repo\_name*)`/`{.descname}
|
|
|
+ : Create a user repository with the given `namespace`{.docutils
|
|
|
+@@ -33,8 +35,8 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – the namespace for the repo
|
|
|
+- - **repo\_name** – the name for the repo
|
|
|
++ - **namespace** – the namespace for the repo
|
|
|
++ - **repo\_name** – the name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -49,10 +51,10 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – Created
|
|
|
+- - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
+- - **401** – Unauthorized
|
|
|
+- - **403** – Account is not Active
|
|
|
++ - **200** – Created
|
|
|
++ - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
++ - **401** – Unauthorized
|
|
|
++ - **403** – Account is not Active
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repo\_name*)`/`{.descname}
|
|
|
+ : Delete a user repository with the given `namespace`{.docutils
|
|
|
+@@ -71,8 +73,8 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – the namespace for the repo
|
|
|
+- - **repo\_name** – the name for the repo
|
|
|
++ - **namespace** – the namespace for the repo
|
|
|
++ - **repo\_name** – the name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -87,13 +89,13 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – Deleted
|
|
|
+- - **202** – Accepted
|
|
|
+- - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
+- - **401** – Unauthorized
|
|
|
+- - **403** – Account is not Active
|
|
|
++ - **200** – Deleted
|
|
|
++ - **202** – Accepted
|
|
|
++ - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
++ - **401** – Unauthorized
|
|
|
++ - **403** – Account is not Active
|
|
|
+
|
|
|
+-### Library Repo
|
|
|
++##### Library Repo
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/repositories/`{.descname}(*repo\_name*)`/`{.descname}
|
|
|
+ : Create a library repository with the given `repo_name`{.docutils
|
|
|
+@@ -116,7 +118,7 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **repo\_name** – the library name for the repo
|
|
|
++ - **repo\_name** – the library name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -131,10 +133,10 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – Created
|
|
|
+- - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
+- - **401** – Unauthorized
|
|
|
+- - **403** – Account is not Active
|
|
|
++ - **200** – Created
|
|
|
++ - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
++ - **401** – Unauthorized
|
|
|
++ - **403** – Account is not Active
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/v1/repositories/`{.descname}(*repo\_name*)`/`{.descname}
|
|
|
+ : Delete a library repository with the given `repo_name`{.docutils
|
|
|
+@@ -157,7 +159,7 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **repo\_name** – the library name for the repo
|
|
|
++ - **repo\_name** – the library name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -172,15 +174,15 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – Deleted
|
|
|
+- - **202** – Accepted
|
|
|
+- - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
+- - **401** – Unauthorized
|
|
|
+- - **403** – Account is not Active
|
|
|
++ - **200** – Deleted
|
|
|
++ - **202** – Accepted
|
|
|
++ - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
++ - **401** – Unauthorized
|
|
|
++ - **403** – Account is not Active
|
|
|
+
|
|
|
+-### Repository Images
|
|
|
++#### Repository Images
|
|
|
+
|
|
|
+-### User Repo Images
|
|
|
++##### User Repo Images
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repo\_name*)`/images`{.descname}
|
|
|
+ : Update the images for a user repo.
|
|
|
+@@ -198,8 +200,8 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – the namespace for the repo
|
|
|
+- - **repo\_name** – the name for the repo
|
|
|
++ - **namespace** – the namespace for the repo
|
|
|
++ - **repo\_name** – the name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -211,10 +213,10 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – Created
|
|
|
+- - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
+- - **401** – Unauthorized
|
|
|
+- - **403** – Account is not Active or permission denied
|
|
|
++ - **204** – Created
|
|
|
++ - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
++ - **401** – Unauthorized
|
|
|
++ - **403** – Account is not Active or permission denied
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repo\_name*)`/images`{.descname}
|
|
|
+ : get the images for a user repo.
|
|
|
+@@ -227,8 +229,8 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – the namespace for the repo
|
|
|
+- - **repo\_name** – the name for the repo
|
|
|
++ - **namespace** – the namespace for the repo
|
|
|
++ - **repo\_name** – the name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -243,10 +245,10 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **404** – Not found
|
|
|
++ - **200** – OK
|
|
|
++ - **404** – Not found
|
|
|
+
|
|
|
+-### Library Repo Images
|
|
|
++##### Library Repo Images
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/repositories/`{.descname}(*repo\_name*)`/images`{.descname}
|
|
|
+ : Update the images for a library repo.
|
|
|
+@@ -264,7 +266,7 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **repo\_name** – the library name for the repo
|
|
|
++ - **repo\_name** – the library name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -276,10 +278,10 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – Created
|
|
|
+- - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
+- - **401** – Unauthorized
|
|
|
+- - **403** – Account is not Active or permission denied
|
|
|
++ - **204** – Created
|
|
|
++ - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
++ - **401** – Unauthorized
|
|
|
++ - **403** – Account is not Active or permission denied
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/repositories/`{.descname}(*repo\_name*)`/images`{.descname}
|
|
|
+ : get the images for a library repo.
|
|
|
+@@ -292,7 +294,7 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **repo\_name** – the library name for the repo
|
|
|
++ - **repo\_name** – the library name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -307,12 +309,12 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **404** – Not found
|
|
|
++ - **200** – OK
|
|
|
++ - **404** – Not found
|
|
|
+
|
|
|
+-### Repository Authorization
|
|
|
++#### Repository Authorization
|
|
|
+
|
|
|
+-### Library Repo
|
|
|
++##### Library Repo
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/repositories/`{.descname}(*repo\_name*)`/auth`{.descname}
|
|
|
+ : authorize a token for a library repo
|
|
|
+@@ -326,7 +328,7 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **repo\_name** – the library name for the repo
|
|
|
++ - **repo\_name** – the library name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -338,11 +340,11 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **403** – Permission denied
|
|
|
+- - **404** – Not found
|
|
|
++ - **200** – OK
|
|
|
++ - **403** – Permission denied
|
|
|
++ - **404** – Not found
|
|
|
+
|
|
|
+-### User Repo
|
|
|
++##### User Repo
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repo\_name*)`/auth`{.descname}
|
|
|
+ : authorize a token for a user repo
|
|
|
+@@ -356,8 +358,8 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – the namespace for the repo
|
|
|
+- - **repo\_name** – the name for the repo
|
|
|
++ - **namespace** – the namespace for the repo
|
|
|
++ - **repo\_name** – the name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -369,13 +371,13 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **403** – Permission denied
|
|
|
+- - **404** – Not found
|
|
|
++ - **200** – OK
|
|
|
++ - **403** – Permission denied
|
|
|
++ - **404** – Not found
|
|
|
+
|
|
|
+-### Users
|
|
|
++### 2.2 Users
|
|
|
+
|
|
|
+-### User Login
|
|
|
++#### User Login
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/users`{.descname}
|
|
|
+ : If you want to check your login, you can try this endpoint
|
|
|
+@@ -397,11 +399,11 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **401** – Unauthorized
|
|
|
+- - **403** – Account is not Active
|
|
|
++ - **200** – no error
|
|
|
++ - **401** – Unauthorized
|
|
|
++ - **403** – Account is not Active
|
|
|
+
|
|
|
+-### User Register
|
|
|
++#### User Register
|
|
|
+
|
|
|
+ `POST `{.descname}`/v1/users`{.descname}
|
|
|
+ : Registering a new account.
|
|
|
+@@ -421,10 +423,10 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+- - **email** – valid email address, that needs to be confirmed
|
|
|
+- - **username** – min 4 character, max 30 characters, must match
|
|
|
++ - **email** – valid email address, that needs to be confirmed
|
|
|
++ - **username** – min 4 character, max 30 characters, must match
|
|
|
+ the regular expression [a-z0-9\_].
|
|
|
+- - **password** – min 5 characters
|
|
|
++ - **password** – min 5 characters
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -436,10 +438,10 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **201** – User Created
|
|
|
+- - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
++ - **201** – User Created
|
|
|
++ - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
+
|
|
|
+-### Update User
|
|
|
++#### Update User
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/users/`{.descname}(*username*)`/`{.descname}
|
|
|
+ : Change a password or email address for given user. If you pass in an
|
|
|
+@@ -463,7 +465,7 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **username** – username for the person you want to update
|
|
|
++ - **username** – username for the person you want to update
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -475,17 +477,17 @@ page_keywords: API, Docker, index, REST, documentation
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **204** – User Updated
|
|
|
+- - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
+- - **401** – Unauthorized
|
|
|
+- - **403** – Account is not Active
|
|
|
+- - **404** – User not found
|
|
|
++ - **204** – User Updated
|
|
|
++ - **400** – Errors (invalid json, missing or invalid fields, etc)
|
|
|
++ - **401** – Unauthorized
|
|
|
++ - **403** – Account is not Active
|
|
|
++ - **404** – User not found
|
|
|
+
|
|
|
+-## Search
|
|
|
++### 2.3 Search
|
|
|
+
|
|
|
+ If you need to search the index, this is the endpoint you would use.
|
|
|
+
|
|
|
+-### Search
|
|
|
++#### Search
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/search`{.descname}
|
|
|
+ : Search the Index given a search term. It accepts
|
|
|
+@@ -515,11 +517,13 @@ If you need to search the index, this is the endpoint you would use.
|
|
|
+
|
|
|
+ Query Parameters:
|
|
|
+
|
|
|
+- - **q** – what you want to search for
|
|
|
++
|
|
|
++
|
|
|
++ - **q** – what you want to search for
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – no error
|
|
|
+- - **500** – server error
|
|
|
++ - **200** – no error
|
|
|
++ - **500** – server error
|
|
|
+
|
|
|
+
|
|
|
+diff --git a/docs/sources/reference/api/registry_api.md b/docs/sources/reference/api/registry_api.md
|
|
|
+index e067586..f251169 100644
|
|
|
+--- a/docs/sources/reference/api/registry_api.md
|
|
|
++++ b/docs/sources/reference/api/registry_api.md
|
|
|
+@@ -4,34 +4,34 @@ page_keywords: API, Docker, index, registry, REST, documentation
|
|
|
+
|
|
|
+ # Docker Registry API
|
|
|
+
|
|
|
+-## Introduction
|
|
|
++## 1. Brief introduction
|
|
|
+
|
|
|
+-- This is the REST API for the Docker Registry
|
|
|
+-- It stores the images and the graph for a set of repositories
|
|
|
+-- It does not have user accounts data
|
|
|
+-- It has no notion of user accounts or authorization
|
|
|
+-- It delegates authentication and authorization to the Index Auth
|
|
|
++- This is the REST API for the Docker Registry
|
|
|
++- It stores the images and the graph for a set of repositories
|
|
|
++- It does not have user accounts data
|
|
|
++- It has no notion of user accounts or authorization
|
|
|
++- It delegates authentication and authorization to the Index Auth
|
|
|
+ service using tokens
|
|
|
+-- It supports different storage backends (S3, cloud files, local FS)
|
|
|
+-- It doesn’t have a local database
|
|
|
+-- It will be open-sourced at some point
|
|
|
++- It supports different storage backends (S3, cloud files, local FS)
|
|
|
++- It doesn’t have a local database
|
|
|
++- It will be open-sourced at some point
|
|
|
+
|
|
|
+ We expect that there will be multiple registries out there. To help to
|
|
|
+ grasp the context, here are some examples of registries:
|
|
|
+
|
|
|
+-- **sponsor registry**: such a registry is provided by a third-party
|
|
|
++- **sponsor registry**: such a registry is provided by a third-party
|
|
|
+ hosting infrastructure as a convenience for their customers and the
|
|
|
+ docker community as a whole. Its costs are supported by the third
|
|
|
+ party, but the management and operation of the registry are
|
|
|
+ supported by dotCloud. It features read/write access, and delegates
|
|
|
+ authentication and authorization to the Index.
|
|
|
+-- **mirror registry**: such a registry is provided by a third-party
|
|
|
++- **mirror registry**: such a registry is provided by a third-party
|
|
|
+ hosting infrastructure but is targeted at their customers only. Some
|
|
|
+ mechanism (unspecified to date) ensures that public images are
|
|
|
+ pulled from a sponsor registry to the mirror registry, to make sure
|
|
|
+ that the customers of the third-party provider can “docker pull”
|
|
|
+ those images locally.
|
|
|
+-- **vendor registry**: such a registry is provided by a software
|
|
|
++- **vendor registry**: such a registry is provided by a software
|
|
|
+ vendor, who wants to distribute docker images. It would be operated
|
|
|
+ and managed by the vendor. Only users authorized by the vendor would
|
|
|
+ be able to get write access. Some images would be public (accessible
|
|
|
+@@ -41,7 +41,7 @@ grasp the context, here are some examples of registries:
|
|
|
+ basho/riak1.3” and automatically push from the vendor registry
|
|
|
+ (instead of a sponsor registry); i.e. get all the convenience of a
|
|
|
+ sponsor registry, while retaining control on the asset distribution.
|
|
|
+-- **private registry**: such a registry is located behind a firewall,
|
|
|
++- **private registry**: such a registry is located behind a firewall,
|
|
|
+ or protected by an additional security layer (HTTP authorization,
|
|
|
+ SSL client-side certificates, IP address authorization...). The
|
|
|
+ registry is operated by a private entity, outside of dotCloud’s
|
|
|
+@@ -58,9 +58,9 @@ can be powered by a simple static HTTP server.
|
|
|
+ Note
|
|
|
+
|
|
|
+ The latter implies that while HTTP is the protocol of choice for a registry, multiple schemes are possible (and in some cases, trivial):
|
|
|
+-: - HTTP with GET (and PUT for read-write registries);
|
|
|
+- - local mount point;
|
|
|
+- - remote docker addressed through SSH.
|
|
|
++: - HTTP with GET (and PUT for read-write registries);
|
|
|
++ - local mount point;
|
|
|
++ - remote docker addressed through SSH.
|
|
|
+
|
|
|
+ The latter would only require two new commands in docker, e.g.
|
|
|
+ `registryget` and `registryput`{.docutils .literal},
|
|
|
+@@ -68,11 +68,11 @@ wrapping access to the local filesystem (and optionally doing
|
|
|
+ consistency checks). Authentication and authorization are then delegated
|
|
|
+ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+-## Endpoints
|
|
|
++## 2. Endpoints
|
|
|
+
|
|
|
+-### Images
|
|
|
++### 2.1 Images
|
|
|
+
|
|
|
+-### Layer
|
|
|
++#### Layer
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/images/`{.descname}(*image\_id*)`/layer`{.descname}
|
|
|
+ : get image layer for a given `image_id`
|
|
|
+@@ -87,7 +87,7 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **image\_id** – the id for the layer you want to get
|
|
|
++ - **image\_id** – the id for the layer you want to get
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -100,9 +100,9 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Image not found
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Image not found
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/images/`{.descname}(*image\_id*)`/layer`{.descname}
|
|
|
+ : put image layer for a given `image_id`
|
|
|
+@@ -118,7 +118,7 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **image\_id** – the id for the layer you want to get
|
|
|
++ - **image\_id** – the id for the layer you want to get
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -131,11 +131,11 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Image not found
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Image not found
|
|
|
+
|
|
|
+-### Image
|
|
|
++#### Image
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/images/`{.descname}(*image\_id*)`/json`{.descname}
|
|
|
+ : put image for a given `image_id`
|
|
|
+@@ -181,7 +181,7 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **image\_id** – the id for the layer you want to get
|
|
|
++ - **image\_id** – the id for the layer you want to get
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -194,8 +194,8 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/images/`{.descname}(*image\_id*)`/json`{.descname}
|
|
|
+ : get image for a given `image_id`
|
|
|
+@@ -210,7 +210,7 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **image\_id** – the id for the layer you want to get
|
|
|
++ - **image\_id** – the id for the layer you want to get
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -254,11 +254,11 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Image not found
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Image not found
|
|
|
+
|
|
|
+-### Ancestry
|
|
|
++#### Ancestry
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/images/`{.descname}(*image\_id*)`/ancestry`{.descname}
|
|
|
+ : get ancestry for an image given an `image_id`
|
|
|
+@@ -273,7 +273,7 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **image\_id** – the id for the layer you want to get
|
|
|
++ - **image\_id** – the id for the layer you want to get
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -289,11 +289,11 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Image not found
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Image not found
|
|
|
+
|
|
|
+-### Tags
|
|
|
++### 2.2 Tags
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repository*)`/tags`{.descname}
|
|
|
+ : get all of the tags for the given repo.
|
|
|
+@@ -309,8 +309,8 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – namespace for the repo
|
|
|
+- - **repository** – name for the repo
|
|
|
++ - **namespace** – namespace for the repo
|
|
|
++ - **repository** – name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -326,9 +326,9 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Repository not found
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Repository not found
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repository*)`/tags/`{.descname}(*tag*)
|
|
|
+ : get a tag for the given repo.
|
|
|
+@@ -344,9 +344,9 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – namespace for the repo
|
|
|
+- - **repository** – name for the repo
|
|
|
+- - **tag** – name of tag you want to get
|
|
|
++ - **namespace** – namespace for the repo
|
|
|
++ - **repository** – name for the repo
|
|
|
++ - **tag** – name of tag you want to get
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -359,9 +359,9 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Tag not found
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Tag not found
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repository*)`/tags/`{.descname}(*tag*)
|
|
|
+ : delete the tag for the repo
|
|
|
+@@ -376,9 +376,9 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – namespace for the repo
|
|
|
+- - **repository** – name for the repo
|
|
|
+- - **tag** – name of tag you want to delete
|
|
|
++ - **namespace** – namespace for the repo
|
|
|
++ - **repository** – name for the repo
|
|
|
++ - **tag** – name of tag you want to delete
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -391,9 +391,9 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Tag not found
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Tag not found
|
|
|
+
|
|
|
+ `PUT `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repository*)`/tags/`{.descname}(*tag*)
|
|
|
+ : put a tag for the given repo.
|
|
|
+@@ -410,9 +410,9 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – namespace for the repo
|
|
|
+- - **repository** – name for the repo
|
|
|
+- - **tag** – name of tag you want to add
|
|
|
++ - **namespace** – namespace for the repo
|
|
|
++ - **repository** – name for the repo
|
|
|
++ - **tag** – name of tag you want to add
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -425,12 +425,12 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **400** – Invalid data
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Image not found
|
|
|
++ - **200** – OK
|
|
|
++ - **400** – Invalid data
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Image not found
|
|
|
+
|
|
|
+-### Repositories
|
|
|
++### 2.3 Repositories
|
|
|
+
|
|
|
+ `DELETE `{.descname}`/v1/repositories/`{.descname}(*namespace*)`/`{.descname}(*repository*)`/`{.descname}
|
|
|
+ : delete a repository
|
|
|
+@@ -447,8 +447,8 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Parameters:
|
|
|
+
|
|
|
+- - **namespace** – namespace for the repo
|
|
|
+- - **repository** – name for the repo
|
|
|
++ - **namespace** – namespace for the repo
|
|
|
++ - **repository** – name for the repo
|
|
|
+
|
|
|
+ **Example Response**:
|
|
|
+
|
|
|
+@@ -461,11 +461,11 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
+- - **401** – Requires authorization
|
|
|
+- - **404** – Repository not found
|
|
|
++ - **200** – OK
|
|
|
++ - **401** – Requires authorization
|
|
|
++ - **404** – Repository not found
|
|
|
+
|
|
|
+-### Status
|
|
|
++### 2.4 Status
|
|
|
+
|
|
|
+ `GET `{.descname}`/v1/_ping`{.descname}
|
|
|
+ : Check status of the registry. This endpoint is also used to
|
|
|
+@@ -491,9 +491,9 @@ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+ Status Codes:
|
|
|
+
|
|
|
+- - **200** – OK
|
|
|
++ - **200** – OK
|
|
|
+
|
|
|
+-## Authorization
|
|
|
++## 3 Authorization
|
|
|
+
|
|
|
+ This is where we describe the authorization process, including the
|
|
|
+ tokens and cookies.
|
|
|
+diff --git a/docs/sources/reference/api/registry_index_spec.md b/docs/sources/reference/api/registry_index_spec.md
|
|
|
+index dc0dd80..281fe07 100644
|
|
|
+--- a/docs/sources/reference/api/registry_index_spec.md
|
|
|
++++ b/docs/sources/reference/api/registry_index_spec.md
|
|
|
+@@ -4,55 +4,55 @@ page_keywords: docker, registry, api, index
|
|
|
+
|
|
|
+ # Registry & Index Spec
|
|
|
+
|
|
|
+-## The 3 roles
|
|
|
++## 1. The 3 roles
|
|
|
+
|
|
|
+-### Index
|
|
|
++### 1.1 Index
|
|
|
+
|
|
|
+ The Index is responsible for centralizing information about:
|
|
|
+
|
|
|
+-- User accounts
|
|
|
+-- Checksums of the images
|
|
|
+-- Public namespaces
|
|
|
++- User accounts
|
|
|
++- Checksums of the images
|
|
|
++- Public namespaces
|
|
|
+
|
|
|
+ The Index has different components:
|
|
|
+
|
|
|
+-- Web UI
|
|
|
+-- Meta-data store (comments, stars, list public repositories)
|
|
|
+-- Authentication service
|
|
|
+-- Tokenization
|
|
|
++- Web UI
|
|
|
++- Meta-data store (comments, stars, list public repositories)
|
|
|
++- Authentication service
|
|
|
++- Tokenization
|
|
|
+
|
|
|
+ The index is authoritative for those information.
|
|
|
+
|
|
|
+ We expect that there will be only one instance of the index, run and
|
|
|
+ managed by Docker Inc.
|
|
|
+
|
|
|
+-### Registry
|
|
|
++### 1.2 Registry
|
|
|
+
|
|
|
+-- It stores the images and the graph for a set of repositories
|
|
|
+-- It does not have user accounts data
|
|
|
+-- It has no notion of user accounts or authorization
|
|
|
+-- It delegates authentication and authorization to the Index Auth
|
|
|
++- It stores the images and the graph for a set of repositories
|
|
|
++- It does not have user accounts data
|
|
|
++- It has no notion of user accounts or authorization
|
|
|
++- It delegates authentication and authorization to the Index Auth
|
|
|
+ service using tokens
|
|
|
+-- It supports different storage backends (S3, cloud files, local FS)
|
|
|
+-- It doesn’t have a local database
|
|
|
+-- [Source Code](https://github.com/dotcloud/docker-registry)
|
|
|
++- It supports different storage backends (S3, cloud files, local FS)
|
|
|
++- It doesn’t have a local database
|
|
|
++- [Source Code](https://github.com/dotcloud/docker-registry)
|
|
|
+
|
|
|
+ We expect that there will be multiple registries out there. To help to
|
|
|
+ grasp the context, here are some examples of registries:
|
|
|
+
|
|
|
+-- **sponsor registry**: such a registry is provided by a third-party
|
|
|
++- **sponsor registry**: such a registry is provided by a third-party
|
|
|
+ hosting infrastructure as a convenience for their customers and the
|
|
|
+ docker community as a whole. Its costs are supported by the third
|
|
|
+ party, but the management and operation of the registry are
|
|
|
+ supported by dotCloud. It features read/write access, and delegates
|
|
|
+ authentication and authorization to the Index.
|
|
|
+-- **mirror registry**: such a registry is provided by a third-party
|
|
|
++- **mirror registry**: such a registry is provided by a third-party
|
|
|
+ hosting infrastructure but is targeted at their customers only. Some
|
|
|
+ mechanism (unspecified to date) ensures that public images are
|
|
|
+ pulled from a sponsor registry to the mirror registry, to make sure
|
|
|
+ that the customers of the third-party provider can “docker pull”
|
|
|
+ those images locally.
|
|
|
+-- **vendor registry**: such a registry is provided by a software
|
|
|
++- **vendor registry**: such a registry is provided by a software
|
|
|
+ vendor, who wants to distribute docker images. It would be operated
|
|
|
+ and managed by the vendor. Only users authorized by the vendor would
|
|
|
+ be able to get write access. Some images would be public (accessible
|
|
|
+@@ -62,20 +62,19 @@ grasp the context, here are some examples of registries:
|
|
|
+ basho/riak1.3” and automatically push from the vendor registry
|
|
|
+ (instead of a sponsor registry); i.e. get all the convenience of a
|
|
|
+ sponsor registry, while retaining control on the asset distribution.
|
|
|
+-- **private registry**: such a registry is located behind a firewall,
|
|
|
++- **private registry**: such a registry is located behind a firewall,
|
|
|
+ or protected by an additional security layer (HTTP authorization,
|
|
|
+ SSL client-side certificates, IP address authorization...). The
|
|
|
+ registry is operated by a private entity, outside of dotCloud’s
|
|
|
+ control. It can optionally delegate additional authorization to the
|
|
|
+ Index, but it is not mandatory.
|
|
|
+
|
|
|
+-> **Note:** The latter implies that while HTTP is the protocol
|
|
|
+-> of choice for a registry, multiple schemes are possible (and
|
|
|
+-> in some cases, trivial):
|
|
|
+->
|
|
|
+-> - HTTP with GET (and PUT for read-write registries);
|
|
|
+-> - local mount point;
|
|
|
+-> - remote docker addressed through SSH.
|
|
|
++Note
|
|
|
++
|
|
|
++The latter implies that while HTTP is the protocol of choice for a registry, multiple schemes are possible (and in some cases, trivial):
|
|
|
++: - HTTP with GET (and PUT for read-write registries);
|
|
|
++ - local mount point;
|
|
|
++ - remote docker addressed through SSH.
|
|
|
+
|
|
|
+ The latter would only require two new commands in docker, e.g.
|
|
|
+ `registryget` and `registryput`{.docutils .literal},
|
|
|
+@@ -83,17 +82,17 @@ wrapping access to the local filesystem (and optionally doing
|
|
|
+ consistency checks). Authentication and authorization are then delegated
|
|
|
+ to SSH (e.g. with public keys).
|
|
|
+
|
|
|
+-### Docker
|
|
|
++### 1.3 Docker
|
|
|
+
|
|
|
+ On top of being a runtime for LXC, Docker is the Registry client. It
|
|
|
+ supports:
|
|
|
+
|
|
|
+-- Push / Pull on the registry
|
|
|
+-- Client authentication on the Index
|
|
|
++- Push / Pull on the registry
|
|
|
++- Client authentication on the Index
|
|
|
+
|
|
|
+-## Workflow
|
|
|
++## 2. Workflow
|
|
|
+
|
|
|
+-### Pull
|
|
|
++### 2.1 Pull
|
|
|
+
|
|
|
+ 
|
|
|
+
|
|
|
+@@ -147,9 +146,9 @@ and for an active account.
|
|
|
+ 2. (Index -\> Docker) HTTP 200 OK
|
|
|
+
|
|
|
+ > **Headers**:
|
|
|
+- > : - Authorization: Token
|
|
|
++ > : - Authorization: Token
|
|
|
+ > signature=123abc,repository=”foo/bar”,access=write
|
|
|
+- > - X-Docker-Endpoints: registry.docker.io [,
|
|
|
++ > - X-Docker-Endpoints: registry.docker.io [,
|
|
|
+ > registry2.docker.io]
|
|
|
+ >
|
|
|
+ > **Body**:
|
|
|
+@@ -188,7 +187,7 @@ Note
|
|
|
+ If someone makes a second request, then we will always give a new token,
|
|
|
+ never reuse tokens.
|
|
|
+
|
|
|
+-### Push
|
|
|
++### 2.2 Push
|
|
|
+
|
|
|
+ 
|
|
|
+
|
|
|
+@@ -204,15 +203,17 @@ never reuse tokens.
|
|
|
+ pushed by docker and store the repository (with its images)
|
|
|
+ 6. docker contacts the index to give checksums for upload images
|
|
|
+
|
|
|
+-> **Note:**
|
|
|
+-> **It’s possible not to use the Index at all!** In this case, a deployed
|
|
|
+-> version of the Registry is deployed to store and serve images. Those
|
|
|
+-> images are not authenticated and the security is not guaranteed.
|
|
|
++Note
|
|
|
++
|
|
|
++**It’s possible not to use the Index at all!** In this case, a deployed
|
|
|
++version of the Registry is deployed to store and serve images. Those
|
|
|
++images are not authenticated and the security is not guaranteed.
|
|
|
++
|
|
|
++Note
|
|
|
+
|
|
|
+-> **Note:**
|
|
|
+-> **Index can be replaced!** For a private Registry deployed, a custom
|
|
|
+-> Index can be used to serve and validate token according to different
|
|
|
+-> policies.
|
|
|
++**Index can be replaced!** For a private Registry deployed, a custom
|
|
|
++Index can be used to serve and validate token according to different
|
|
|
++policies.
|
|
|
+
|
|
|
+ Docker computes the checksums and submit them to the Index at the end of
|
|
|
+ the push. When a repository name does not have checksums on the Index,
|
|
|
+@@ -227,7 +228,7 @@ the end).
|
|
|
+ true
|
|
|
+
|
|
|
+ **Action**::
|
|
|
+- : - in index, we allocated a new repository, and set to
|
|
|
++ : - in index, we allocated a new repository, and set to
|
|
|
+ initialized
|
|
|
+
|
|
|
+ **Body**::
|
|
|
+@@ -239,9 +240,9 @@ the end).
|
|
|
+
|
|
|
+ 2. (Index -\> Docker) 200 Created
|
|
|
+ : **Headers**:
|
|
|
+- : - WWW-Authenticate: Token
|
|
|
++ : - WWW-Authenticate: Token
|
|
|
+ signature=123abc,repository=”foo/bar”,access=write
|
|
|
+- - X-Docker-Endpoints: registry.docker.io [,
|
|
|
++ - X-Docker-Endpoints: registry.docker.io [,
|
|
|
+ registry2.docker.io]
|
|
|
+
|
|
|
+ 3. (Docker -\> Registry) PUT /v1/images/98765432\_parent/json
|
|
|
+@@ -255,18 +256,18 @@ the end).
|
|
|
+ signature=123abc,repository=”foo/bar”,access=write
|
|
|
+
|
|
|
+ **Action**::
|
|
|
+- : - Index:
|
|
|
++ : - Index:
|
|
|
+ : will invalidate the token.
|
|
|
+
|
|
|
+- - Registry:
|
|
|
++ - Registry:
|
|
|
+ : grants a session (if token is approved) and fetches
|
|
|
+ the images id
|
|
|
+
|
|
|
+ 5. (Docker -\> Registry) PUT /v1/images/98765432\_parent/json
|
|
|
+ : **Headers**::
|
|
|
+- : - Authorization: Token
|
|
|
++ : - Authorization: Token
|
|
|
+ signature=123abc,repository=”foo/bar”,access=write
|
|
|
+- - Cookie: (Cookie provided by the Registry)
|
|
|
++ - Cookie: (Cookie provided by the Registry)
|
|
|
+
|
|
|
+ 6. (Docker -\> Registry) PUT /v1/images/98765432/json
|
|
|
+ : **Headers**:
|
|
|
+@@ -303,17 +304,19 @@ the end).
|
|
|
+
|
|
|
+ **Return** HTTP 204
|
|
|
+
|
|
|
+-> **Note:** If push fails and they need to start again, what happens in the index,
|
|
|
+-> there will already be a record for the namespace/name, but it will be
|
|
|
+-> initialized. Should we allow it, or mark as name already used? One edge
|
|
|
+-> case could be if someone pushes the same thing at the same time with two
|
|
|
+-> different shells.
|
|
|
++Note
|
|
|
++
|
|
|
++If push fails and they need to start again, what happens in the index,
|
|
|
++there will already be a record for the namespace/name, but it will be
|
|
|
++initialized. Should we allow it, or mark as name already used? One edge
|
|
|
++case could be if someone pushes the same thing at the same time with two
|
|
|
++different shells.
|
|
|
+
|
|
|
+ If it’s a retry on the Registry, Docker has a cookie (provided by the
|
|
|
+ registry after token validation). So the Index won’t have to provide a
|
|
|
+ new token.
|
|
|
+
|
|
|
+-### Delete
|
|
|
++### 2.3 Delete
|
|
|
+
|
|
|
+ If you need to delete something from the index or registry, we need a
|
|
|
+ nice clean way to do that. Here is the workflow.
|
|
|
+@@ -333,9 +336,11 @@ nice clean way to do that. Here is the workflow.
|
|
|
+ 6. docker contacts the index to let it know it was removed from the
|
|
|
+ registry, the index removes all records from the database.
|
|
|
+
|
|
|
+-> **Note:** The Docker client should present an “Are you sure?” prompt to confirm
|
|
|
+-> the deletion before starting the process. Once it starts it can’t be
|
|
|
+-> undone.
|
|
|
++Note
|
|
|
++
|
|
|
++The Docker client should present an “Are you sure?” prompt to confirm
|
|
|
++the deletion before starting the process. Once it starts it can’t be
|
|
|
++undone.
|
|
|
+
|
|
|
+ #### API (deleting repository foo/bar):
|
|
|
+
|
|
|
+@@ -345,7 +350,7 @@ nice clean way to do that. Here is the workflow.
|
|
|
+ true
|
|
|
+
|
|
|
+ **Action**::
|
|
|
+- : - in index, we make sure it is a valid repository, and set
|
|
|
++ : - in index, we make sure it is a valid repository, and set
|
|
|
+ to deleted (logically)
|
|
|
+
|
|
|
+ **Body**::
|
|
|
+@@ -353,9 +358,9 @@ nice clean way to do that. Here is the workflow.
|
|
|
+
|
|
|
+ 2. (Index -\> Docker) 202 Accepted
|
|
|
+ : **Headers**:
|
|
|
+- : - WWW-Authenticate: Token
|
|
|
++ : - WWW-Authenticate: Token
|
|
|
+ signature=123abc,repository=”foo/bar”,access=delete
|
|
|
+- - X-Docker-Endpoints: registry.docker.io [,
|
|
|
++ - X-Docker-Endpoints: registry.docker.io [,
|
|
|
+ registry2.docker.io] \# list of endpoints where this
|
|
|
+ repo lives.
|
|
|
+
|
|
|
+@@ -370,10 +375,10 @@ nice clean way to do that. Here is the workflow.
|
|
|
+ signature=123abc,repository=”foo/bar”,access=delete
|
|
|
+
|
|
|
+ **Action**::
|
|
|
+- : - Index:
|
|
|
++ : - Index:
|
|
|
+ : will invalidate the token.
|
|
|
+
|
|
|
+- - Registry:
|
|
|
++ - Registry:
|
|
|
+ : deletes the repository (if token is approved)
|
|
|
+
|
|
|
+ 5. (Registry -\> Docker) 200 OK
|
|
|
+@@ -391,20 +396,20 @@ nice clean way to do that. Here is the workflow.
|
|
|
+ >
|
|
|
+ > **Return** HTTP 200
|
|
|
+
|
|
|
+-## How to use the Registry in standalone mode
|
|
|
++## 3. How to use the Registry in standalone mode
|
|
|
+
|
|
|
+ The Index has two main purposes (along with its fancy social features):
|
|
|
+
|
|
|
+-- Resolve short names (to avoid passing absolute URLs all the time)
|
|
|
+- : - username/projectname -\>
|
|
|
++- Resolve short names (to avoid passing absolute URLs all the time)
|
|
|
++ : - username/projectname -\>
|
|
|
+ https://registry.docker.io/users/\<username\>/repositories/\<projectname\>/
|
|
|
+- - team/projectname -\>
|
|
|
++ - team/projectname -\>
|
|
|
+ https://registry.docker.io/team/\<team\>/repositories/\<projectname\>/
|
|
|
+
|
|
|
+-- Authenticate a user as a repos owner (for a central referenced
|
|
|
++- Authenticate a user as a repos owner (for a central referenced
|
|
|
+ repository)
|
|
|
+
|
|
|
+-### Without an Index
|
|
|
++### 3.1 Without an Index
|
|
|
+
|
|
|
+ Using the Registry without the Index can be useful to store the images
|
|
|
+ on a private network without having to rely on an external entity
|
|
|
+@@ -425,12 +430,12 @@ As hinted previously, a standalone registry can also be implemented by
|
|
|
+ any HTTP server handling GET/PUT requests (or even only GET requests if
|
|
|
+ no write access is necessary).
|
|
|
+
|
|
|
+-### With an Index
|
|
|
++### 3.2 With an Index
|
|
|
+
|
|
|
+ The Index data needed by the Registry are simple:
|
|
|
+
|
|
|
+-- Serve the checksums
|
|
|
+-- Provide and authorize a Token
|
|
|
++- Serve the checksums
|
|
|
++- Provide and authorize a Token
|
|
|
+
|
|
|
+ In the scenario of a Registry running on a private network with the need
|
|
|
+ of centralizing and authorizing, it’s easy to use a custom Index.
|
|
|
+@@ -441,12 +446,12 @@ specific Index, it’ll be the private entity responsibility (basically
|
|
|
+ the organization who uses Docker in a private environment) to maintain
|
|
|
+ the Index and the Docker’s configuration among its consumers.
|
|
|
+
|
|
|
+-## The API
|
|
|
++## 4. The API
|
|
|
+
|
|
|
+ The first version of the api is available here:
|
|
|
+ [https://github.com/jpetazzo/docker/blob/acd51ecea8f5d3c02b00a08176171c59442df8b3/docs/images-repositories-push-pull.md](https://github.com/jpetazzo/docker/blob/acd51ecea8f5d3c02b00a08176171c59442df8b3/docs/images-repositories-push-pull.md)
|
|
|
+
|
|
|
+-### Images
|
|
|
++### 4.1 Images
|
|
|
+
|
|
|
+ The format returned in the images is not defined here (for layer and
|
|
|
+ JSON), basically because Registry stores exactly the same kind of
|
|
|
+@@ -464,9 +469,9 @@ file is empty.
|
|
|
+ GET /v1/images/<image_id>/ancestry
|
|
|
+ PUT /v1/images/<image_id>/ancestry
|
|
|
+
|
|
|
+-### Users
|
|
|
++### 4.2 Users
|
|
|
+
|
|
|
+-### Create a user (Index)
|
|
|
++#### 4.2.1 Create a user (Index)
|
|
|
+
|
|
|
+ POST /v1/users
|
|
|
+
|
|
|
+@@ -474,9 +479,9 @@ POST /v1/users
|
|
|
+ : {“email”: “[sam@dotcloud.com](mailto:sam%40dotcloud.com)”,
|
|
|
+ “password”: “toto42”, “username”: “foobar”’}
|
|
|
+ **Validation**:
|
|
|
+-: - **username**: min 4 character, max 30 characters, must match the
|
|
|
++: - **username**: min 4 character, max 30 characters, must match the
|
|
|
+ regular expression [a-z0-9\_].
|
|
|
+- - **password**: min 5 characters
|
|
|
++ - **password**: min 5 characters
|
|
|
+
|
|
|
+ **Valid**: return HTTP 200
|
|
|
+
|
|
|
+@@ -489,7 +494,7 @@ Note
|
|
|
+ A user account will be valid only if the email has been validated (a
|
|
|
+ validation link is sent to the email address).
|
|
|
+
|
|
|
+-### Update a user (Index)
|
|
|
++#### 4.2.2 Update a user (Index)
|
|
|
+
|
|
|
+ PUT /v1/users/\<username\>
|
|
|
+
|
|
|
+@@ -501,7 +506,7 @@ Note
|
|
|
+ We can also update email address, if they do, they will need to reverify
|
|
|
+ their new email address.
|
|
|
+
|
|
|
+-### Login (Index)
|
|
|
++#### 4.2.3 Login (Index)
|
|
|
+
|
|
|
+ Does nothing else but asking for a user authentication. Can be used to
|
|
|
+ validate credentials. HTTP Basic Auth for now, maybe change in future.
|
|
|
+@@ -509,11 +514,11 @@ validate credentials. HTTP Basic Auth for now, maybe change in future.
|
|
|
+ GET /v1/users
|
|
|
+
|
|
|
+ **Return**:
|
|
|
+-: - Valid: HTTP 200
|
|
|
+- - Invalid login: HTTP 401
|
|
|
+- - Account inactive: HTTP 403 Account is not Active
|
|
|
++: - Valid: HTTP 200
|
|
|
++ - Invalid login: HTTP 401
|
|
|
++ - Account inactive: HTTP 403 Account is not Active
|
|
|
+
|
|
|
+-### Tags (Registry)
|
|
|
++### 4.3 Tags (Registry)
|
|
|
+
|
|
|
+ The Registry does not know anything about users. Even though
|
|
|
+ repositories are under usernames, it’s just a namespace for the
|
|
|
+@@ -522,11 +527,11 @@ per user later, without modifying the Registry’s API.
|
|
|
+
|
|
|
+ The following naming restrictions apply:
|
|
|
+
|
|
|
+-- Namespaces must match the same regular expression as usernames (See
|
|
|
++- Namespaces must match the same regular expression as usernames (See
|
|
|
+ 4.2.1.)
|
|
|
+-- Repository names must match the regular expression [a-zA-Z0-9-\_.]
|
|
|
++- Repository names must match the regular expression [a-zA-Z0-9-\_.]
|
|
|
+
|
|
|
+-### Get all tags:
|
|
|
++#### 4.3.1 Get all tags
|
|
|
+
|
|
|
+ GET /v1/repositories/\<namespace\>/\<repository\_name\>/tags
|
|
|
+
|
|
|
+@@ -536,25 +541,25 @@ GET /v1/repositories/\<namespace\>/\<repository\_name\>/tags
|
|
|
+ “0.1.1”:
|
|
|
+ “b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087” }
|
|
|
+
|
|
|
+-### Read the content of a tag (resolve the image id):
|
|
|
++#### 4.3.2 Read the content of a tag (resolve the image id)
|
|
|
+
|
|
|
+ GET /v1/repositories/\<namespace\>/\<repo\_name\>/tags/\<tag\>
|
|
|
+
|
|
|
+ **Return**:
|
|
|
+ : “9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f”
|
|
|
+
|
|
|
+-### Delete a tag (registry):
|
|
|
++#### 4.3.3 Delete a tag (registry)
|
|
|
+
|
|
|
+ DELETE /v1/repositories/\<namespace\>/\<repo\_name\>/tags/\<tag\>
|
|
|
+
|
|
|
+-## Images (Index)
|
|
|
++### 4.4 Images (Index)
|
|
|
+
|
|
|
+ For the Index to “resolve” the repository name to a Registry location,
|
|
|
+ it uses the X-Docker-Endpoints header. In other terms, this requests
|
|
|
+ always add a `X-Docker-Endpoints` to indicate the
|
|
|
+ location of the registry which hosts this repository.
|
|
|
+
|
|
|
+-### Get the images:
|
|
|
++#### 4.4.1 Get the images
|
|
|
+
|
|
|
+ GET /v1/repositories/\<namespace\>/\<repo\_name\>/images
|
|
|
+
|
|
|
+@@ -562,9 +567,9 @@ GET /v1/repositories/\<namespace\>/\<repo\_name\>/images
|
|
|
+ : [{“id”:
|
|
|
+ “9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f”,
|
|
|
+ “checksum”:
|
|
|
+- “[md5:b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087](md5:b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087)”}]
|
|
|
++ “<md5:b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087>”}]
|
|
|
+
|
|
|
+-### Add/update the images:
|
|
|
++#### 4.4.2 Add/update the images
|
|
|
+
|
|
|
+ You always add images, you never remove them.
|
|
|
+
|
|
|
+@@ -579,15 +584,15 @@ PUT /v1/repositories/\<namespace\>/\<repo\_name\>/images
|
|
|
+
|
|
|
+ **Return** 204
|
|
|
+
|
|
|
+-### Repositories
|
|
|
++### 4.5 Repositories
|
|
|
+
|
|
|
+-### Remove a Repository (Registry)
|
|
|
++#### 4.5.1 Remove a Repository (Registry)
|
|
|
+
|
|
|
+ DELETE /v1/repositories/\<namespace\>/\<repo\_name\>
|
|
|
+
|
|
|
+ Return 200 OK
|
|
|
+
|
|
|
+-### Remove a Repository (Index)
|
|
|
++#### 4.5.2 Remove a Repository (Index)
|
|
|
+
|
|
|
+ This starts the delete process. see 2.3 for more details.
|
|
|
+
|
|
|
+@@ -595,12 +600,12 @@ DELETE /v1/repositories/\<namespace\>/\<repo\_name\>
|
|
|
+
|
|
|
+ Return 202 OK
|
|
|
+
|
|
|
+-## Chaining Registries
|
|
|
++## 5. Chaining Registries
|
|
|
+
|
|
|
+ It’s possible to chain Registries server for several reasons:
|
|
|
+
|
|
|
+-- Load balancing
|
|
|
+-- Delegate the next request to another server
|
|
|
++- Load balancing
|
|
|
++- Delegate the next request to another server
|
|
|
+
|
|
|
+ When a Registry is a reference for a repository, it should host the
|
|
|
+ entire images chain in order to avoid breaking the chain during the
|
|
|
+@@ -618,9 +623,9 @@ On every request, a special header can be returned:
|
|
|
+ On the next request, the client will always pick a server from this
|
|
|
+ list.
|
|
|
+
|
|
|
+-## Authentication & Authorization
|
|
|
++## 6. Authentication & Authorization
|
|
|
+
|
|
|
+-### On the Index
|
|
|
++### 6.1 On the Index
|
|
|
+
|
|
|
+ The Index supports both “Basic” and “Token” challenges. Usually when
|
|
|
+ there is a `401 Unauthorized`, the Index replies
|
|
|
+@@ -634,16 +639,16 @@ You have 3 options:
|
|
|
+ 1. Provide user credentials and ask for a token
|
|
|
+
|
|
|
+ > **Header**:
|
|
|
+- > : - Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
|
|
|
+- > - X-Docker-Token: true
|
|
|
++ > : - Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
|
|
|
++ > - X-Docker-Token: true
|
|
|
+ >
|
|
|
+ > In this case, along with the 200 response, you’ll get a new token
|
|
|
+ > (if user auth is ok): If authorization isn’t correct you get a 401
|
|
|
+ > response. If account isn’t active you will get a 403 response.
|
|
|
+ >
|
|
|
+ > **Response**:
|
|
|
+- > : - 200 OK
|
|
|
+- > - X-Docker-Token: Token
|
|
|
++ > : - 200 OK
|
|
|
++ > - X-Docker-Token: Token
|
|
|
+ > signature=123abc,repository=”foo/bar”,access=read
|
|
|
+ >
|
|
|
+ 2. Provide user credentials only
|
|
|
+@@ -681,9 +686,9 @@ Next request:
|
|
|
+ GET /(...)
|
|
|
+ Cookie: session="wD/J7LqL5ctqw8haL10vgfhrb2Q=?foo=UydiYXInCnAxCi4=×tamp=RjEzNjYzMTQ5NDcuNDc0NjQzCi4="
|
|
|
+
|
|
|
+-## Document Version
|
|
|
++## 7 Document Version
|
|
|
+
|
|
|
+-- 1.0 : May 6th 2013 : initial release
|
|
|
+-- 1.1 : June 1st 2013 : Added Delete Repository and way to handle new
|
|
|
++- 1.0 : May 6th 2013 : initial release
|
|
|
++- 1.1 : June 1st 2013 : Added Delete Repository and way to handle new
|
|
|
+ source namespace.
|
|
|
+
|
|
|
+diff --git a/docs/sources/reference/api/remote_api_client_libraries.md b/docs/sources/reference/api/remote_api_client_libraries.md
|
|
|
+index 0392da3..4991924 100644
|
|
|
+--- a/docs/sources/reference/api/remote_api_client_libraries.md
|
|
|
++++ b/docs/sources/reference/api/remote_api_client_libraries.md
|
|
|
+@@ -4,115 +4,82 @@ page_keywords: API, Docker, index, registry, REST, documentation, clients, Pytho
|
|
|
+
|
|
|
+ # Docker Remote API Client Libraries
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ These libraries have not been 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
|
|
|
+-
|
|
|
+-Status
|
|
|
+-
|
|
|
+-Python
|
|
|
+-
|
|
|
+-docker-py
|
|
|
+-
|
|
|
+-[https://github.com/dotcloud/docker-py](https://github.com/dotcloud/docker-py)
|
|
|
+-
|
|
|
+-Active
|
|
|
+-
|
|
|
+-Ruby
|
|
|
+-
|
|
|
+-docker-client
|
|
|
+-
|
|
|
+-[https://github.com/geku/docker-client](https://github.com/geku/docker-client)
|
|
|
+-
|
|
|
+-Outdated
|
|
|
+-
|
|
|
+-Ruby
|
|
|
+-
|
|
|
+-docker-api
|
|
|
+-
|
|
|
+-[https://github.com/swipely/docker-api](https://github.com/swipely/docker-api)
|
|
|
+-
|
|
|
+-Active
|
|
|
+-
|
|
|
+-JavaScript (NodeJS)
|
|
|
+-
|
|
|
+-dockerode
|
|
|
+-
|
|
|
+-[https://github.com/apocas/dockerode](https://github.com/apocas/dockerode)
|
|
|
+-Install via NPM: npm install dockerode
|
|
|
+-
|
|
|
+-Active
|
|
|
+-
|
|
|
+-JavaScript (NodeJS)
|
|
|
+-
|
|
|
+-docker.io
|
|
|
+-
|
|
|
+-[https://github.com/appersonlabs/docker.io](https://github.com/appersonlabs/docker.io)
|
|
|
+-Install via NPM: npm install docker.io
|
|
|
+-
|
|
|
+-Active
|
|
|
+-
|
|
|
+-JavaScript
|
|
|
+-
|
|
|
+-docker-js
|
|
|
+-
|
|
|
+-[https://github.com/dgoujard/docker-js](https://github.com/dgoujard/docker-js)
|
|
|
+-
|
|
|
+-Active
|
|
|
+-
|
|
|
+-JavaScript (Angular) **WebUI**
|
|
|
+-
|
|
|
+-docker-cp
|
|
|
+-
|
|
|
+-[https://github.com/13W/docker-cp](https://github.com/13W/docker-cp)
|
|
|
+-
|
|
|
+-Active
|
|
|
+-
|
|
|
+-JavaScript (Angular) **WebUI**
|
|
|
+-
|
|
|
+-dockerui
|
|
|
+-
|
|
|
+-[https://github.com/crosbymichael/dockerui](https://github.com/crosbymichael/dockerui)
|
|
|
++ -------------------------------------------------------------------------
|
|
|
++ Language/Framewor Name Repository Status
|
|
|
++ k
|
|
|
++ ----------------- ------------ ---------------------------------- -------
|
|
|
++ Python docker-py [https://github.com/dotcloud/docke Active
|
|
|
++ r-py](https://github.com/dotcloud/
|
|
|
++ docker-py)
|
|
|
+
|
|
|
+-Active
|
|
|
++ Ruby docker-clien [https://github.com/geku/docker-cl Outdate
|
|
|
++ t ient](https://github.com/geku/dock d
|
|
|
++ er-client)
|
|
|
+
|
|
|
+-Java
|
|
|
++ Ruby docker-api [https://github.com/swipely/docker Active
|
|
|
++ -api](https://github.com/swipely/d
|
|
|
++ ocker-api)
|
|
|
+
|
|
|
+-docker-java
|
|
|
++ JavaScript dockerode [https://github.com/apocas/dockero Active
|
|
|
++ (NodeJS) de](https://github.com/apocas/dock
|
|
|
++ erode)
|
|
|
++ Install via NPM: npm install
|
|
|
++ dockerode
|
|
|
+
|
|
|
+-[https://github.com/kpelykh/docker-java](https://github.com/kpelykh/docker-java)
|
|
|
++ JavaScript docker.io [https://github.com/appersonlabs/d Active
|
|
|
++ (NodeJS) ocker.io](https://github.com/apper
|
|
|
++ sonlabs/docker.io)
|
|
|
++ Install via NPM: npm install
|
|
|
++ docker.io
|
|
|
+
|
|
|
+-Active
|
|
|
++ JavaScript docker-js [https://github.com/dgoujard/docke Outdate
|
|
|
++ r-js](https://github.com/dgoujard/ d
|
|
|
++ docker-js)
|
|
|
+
|
|
|
+-Erlang
|
|
|
++ JavaScript docker-cp [https://github.com/13W/docker-cp] Active
|
|
|
++ (Angular) (https://github.com/13W/docker-cp)
|
|
|
++ **WebUI**
|
|
|
+
|
|
|
+-erldocker
|
|
|
++ JavaScript dockerui [https://github.com/crosbymichael/ Active
|
|
|
++ (Angular) dockerui](https://github.com/crosb
|
|
|
++ **WebUI** ymichael/dockerui)
|
|
|
+
|
|
|
+-[https://github.com/proger/erldocker](https://github.com/proger/erldocker)
|
|
|
++ Java docker-java [https://github.com/kpelykh/docker Active
|
|
|
++ -java](https://github.com/kpelykh/
|
|
|
++ docker-java)
|
|
|
+
|
|
|
+-Active
|
|
|
++ Erlang erldocker [https://github.com/proger/erldock Active
|
|
|
++ er](https://github.com/proger/erld
|
|
|
++ ocker)
|
|
|
+
|
|
|
+-Go
|
|
|
++ Go go-dockercli [https://github.com/fsouza/go-dock Active
|
|
|
++ ent erclient](https://github.com/fsouz
|
|
|
++ a/go-dockerclient)
|
|
|
+
|
|
|
+-go-dockerclient
|
|
|
++ Go dockerclient [https://github.com/samalba/docker Active
|
|
|
++ client](https://github.com/samalba
|
|
|
++ /dockerclient)
|
|
|
+
|
|
|
+-[https://github.com/fsouza/go-dockerclient](https://github.com/fsouza/go-dockerclient)
|
|
|
++ PHP Alvine [http://pear.alvine.io/](http://pe Active
|
|
|
++ ar.alvine.io/)
|
|
|
++ (alpha)
|
|
|
+
|
|
|
+-Active
|
|
|
++ PHP Docker-PHP [http://stage1.github.io/docker-ph Active
|
|
|
++ p/](http://stage1.github.io/docker
|
|
|
++ -php/)
|
|
|
+
|
|
|
+-PHP
|
|
|
++ Perl Net::Docker [https://metacpan.org/pod/Net::Doc Active
|
|
|
++ ker](https://metacpan.org/pod/Net:
|
|
|
++ :Docker)
|
|
|
+
|
|
|
+-Alvine
|
|
|
++ Perl Eixo::Docker [https://github.com/alambike/eixo- Active
|
|
|
++ docker](https://github.com/alambik
|
|
|
++ e/eixo-docker)
|
|
|
++ -------------------------------------------------------------------------
|
|
|
+
|
|
|
+-[http://pear.alvine.io/](http://pear.alvine.io/) (alpha)
|
|
|
+
|
|
|
+-Active
|
|
|
+diff --git a/docs/sources/reference/commandline.md b/docs/sources/reference/commandline.md
|
|
|
+index 6f7a779..b2fb7e0 100644
|
|
|
+--- a/docs/sources/reference/commandline.md
|
|
|
++++ b/docs/sources/reference/commandline.md
|
|
|
+@@ -1,7 +1,7 @@
|
|
|
+
|
|
|
+ # Commands
|
|
|
+
|
|
|
+-## Contents:
|
|
|
++Contents:
|
|
|
+
|
|
|
+ - [Command Line Help](cli/)
|
|
|
+ - [Options](cli/#options)
|
|
|
+diff --git a/docs/sources/reference/run.md b/docs/sources/reference/run.md
|
|
|
+index 9d825ce..3deac40 100644
|
|
|
+--- a/docs/sources/reference/run.md
|
|
|
++++ b/docs/sources/reference/run.md
|
|
|
+@@ -2,7 +2,7 @@ page_title: Docker Run Reference
|
|
|
+ page_description: Configure containers at runtime
|
|
|
+ page_keywords: docker, run, configure, runtime
|
|
|
+
|
|
|
+-# Docker Run Reference
|
|
|
++# [Docker Run Reference](#id2)
|
|
|
+
|
|
|
+ **Docker runs processes in isolated containers**. When an operator
|
|
|
+ executes `docker run`, she starts a process with its
|
|
|
+@@ -25,7 +25,7 @@ Table of Contents
|
|
|
+ - [Overriding `Dockerfile` Image
|
|
|
+ Defaults](#overriding-dockerfile-image-defaults)
|
|
|
+
|
|
|
+-## General Form
|
|
|
++## [General Form](#id3)
|
|
|
+
|
|
|
+ As you’ve seen in the [*Examples*](../../examples/#example-list), the
|
|
|
+ basic run command takes this form:
|
|
|
+@@ -52,7 +52,7 @@ control over runtime behavior to the operator, allowing them to override
|
|
|
+ all defaults set by the developer during `docker build`{.docutils
|
|
|
+ .literal} and nearly all the defaults set by the Docker runtime itself.
|
|
|
+
|
|
|
+-## Operator Exclusive Options
|
|
|
++## [Operator Exclusive Options](#id4)
|
|
|
+
|
|
|
+ Only the operator (the person executing `docker run`{.docutils
|
|
|
+ .literal}) can set the following options.
|
|
|
+@@ -60,19 +60,17 @@ Only the operator (the person executing `docker run`{.docutils
|
|
|
+ - [Detached vs Foreground](#detached-vs-foreground)
|
|
|
+ - [Detached (-d)](#detached-d)
|
|
|
+ - [Foreground](#foreground)
|
|
|
+-
|
|
|
+ - [Container Identification](#container-identification)
|
|
|
+- - [Name (-name)](#name-name)
|
|
|
++ - [Name (–name)](#name-name)
|
|
|
+ - [PID Equivalent](#pid-equivalent)
|
|
|
+-
|
|
|
+ - [Network Settings](#network-settings)
|
|
|
+-- [Clean Up (-rm)](#clean-up-rm)
|
|
|
++- [Clean Up (–rm)](#clean-up-rm)
|
|
|
+ - [Runtime Constraints on CPU and
|
|
|
+ Memory](#runtime-constraints-on-cpu-and-memory)
|
|
|
+ - [Runtime Privilege and LXC
|
|
|
+ Configuration](#runtime-privilege-and-lxc-configuration)
|
|
|
+
|
|
|
+-### Detached vs Foreground
|
|
|
++### [Detached vs Foreground](#id6)
|
|
|
+
|
|
|
+ When starting a Docker container, you must first decide if you want to
|
|
|
+ run the container in the background in a “detached” mode or in the
|
|
|
+@@ -80,7 +78,7 @@ default foreground mode:
|
|
|
+
|
|
|
+ -d=false: Detached mode: Run container in the background, print new container id
|
|
|
+
|
|
|
+-**Detached (-d)**
|
|
|
++#### [Detached (-d)](#id7)
|
|
|
+
|
|
|
+ In detached mode (`-d=true` or just `-d`{.docutils
|
|
|
+ .literal}), all I/O should be done through network connections or shared
|
|
|
+@@ -88,10 +86,10 @@ volumes because the container is no longer listening to the commandline
|
|
|
+ where you executed `docker run`. You can reattach to
|
|
|
+ a detached container with `docker`
|
|
|
+ [*attach*](../commandline/cli/#cli-attach). If you choose to run a
|
|
|
+-container in the detached mode, then you cannot use the `-rm`{.docutils
|
|
|
++container in the detached mode, then you cannot use the `--rm`{.docutils
|
|
|
+ .literal} option.
|
|
|
+
|
|
|
+-**Foreground**
|
|
|
++#### [Foreground](#id8)
|
|
|
+
|
|
|
+ In foreground mode (the default when `-d` is not
|
|
|
+ specified), `docker run` can start the process in
|
|
|
+@@ -100,10 +98,10 @@ output, and standard error. It can even pretend to be a TTY (this is
|
|
|
+ what most commandline executables expect) and pass along signals. All of
|
|
|
+ that is configurable:
|
|
|
+
|
|
|
+- -a=[] : Attach to ``stdin``, ``stdout`` and/or ``stderr``
|
|
|
+- -t=false : Allocate a pseudo-tty
|
|
|
+- -sig-proxy=true: Proxify all received signal to the process (even in non-tty mode)
|
|
|
+- -i=false : Keep STDIN open even if not attached
|
|
|
++ -a=[] : Attach to ``stdin``, ``stdout`` and/or ``stderr``
|
|
|
++ -t=false : Allocate a pseudo-tty
|
|
|
++ --sig-proxy=true: Proxify all received signal to the process (even in non-tty mode)
|
|
|
++ -i=false : Keep STDIN open even if not attached
|
|
|
+
|
|
|
+ If you do not specify `-a` then Docker will [attach
|
|
|
+ everything
|
|
|
+@@ -119,9 +117,9 @@ as well as persistent standard input (`stdin`), so
|
|
|
+ you’ll use `-i -t` together in most interactive
|
|
|
+ cases.
|
|
|
+
|
|
|
+-### Container Identification
|
|
|
++### [Container Identification](#id9)
|
|
|
+
|
|
|
+-**Name (-name)**
|
|
|
++#### [Name (–name)](#id10)
|
|
|
+
|
|
|
+ The operator can identify a container in three ways:
|
|
|
+
|
|
|
+@@ -131,27 +129,27 @@ The operator can identify a container in three ways:
|
|
|
+ - Name (“evil\_ptolemy”)
|
|
|
+
|
|
|
+ The UUID identifiers come from the Docker daemon, and if you do not
|
|
|
+-assign a name to the container with `-name` then the
|
|
|
+-daemon will also generate a random string name too. The name can become
|
|
|
+-a handy way to add meaning to a container since you can use this name
|
|
|
+-when defining
|
|
|
++assign a name to the container with `--name` then
|
|
|
++the daemon will also generate a random string name too. The name can
|
|
|
++become a handy way to add meaning to a container since you can use this
|
|
|
++name when defining
|
|
|
+ [*links*](../../use/working_with_links_names/#working-with-links-names)
|
|
|
+ (or any other place you need to identify a container). This works for
|
|
|
+ both background and foreground Docker containers.
|
|
|
+
|
|
|
+-**PID Equivalent**
|
|
|
++#### [PID Equivalent](#id11)
|
|
|
+
|
|
|
+ And finally, to help with automation, you can have Docker write the
|
|
|
+ container ID out to a file of your choosing. This is similar to how some
|
|
|
+ programs might write out their process ID to a file (you’ve seen them as
|
|
|
+ PID files):
|
|
|
+
|
|
|
+- -cidfile="": Write the container ID to the file
|
|
|
++ --cidfile="": Write the container ID to the file
|
|
|
+
|
|
|
+-### Network Settings
|
|
|
++### [Network Settings](#id12)
|
|
|
+
|
|
|
+ -n=true : Enable networking for this container
|
|
|
+- -dns=[] : Set custom dns servers for the container
|
|
|
++ --dns=[] : Set custom dns servers for the container
|
|
|
+
|
|
|
+ By default, all containers have networking enabled and they can make any
|
|
|
+ outgoing connections. The operator can completely disable networking
|
|
|
+@@ -160,9 +158,9 @@ outgoing networking. In cases like this, you would perform I/O through
|
|
|
+ files or STDIN/STDOUT only.
|
|
|
+
|
|
|
+ Your container will use the same DNS servers as the host by default, but
|
|
|
+-you can override this with `-dns`.
|
|
|
++you can override this with `--dns`.
|
|
|
+
|
|
|
+-### Clean Up (-rm)
|
|
|
++### [Clean Up (–rm)](#id13)
|
|
|
+
|
|
|
+ By default a container’s file system persists even after the container
|
|
|
+ exits. This makes debugging a lot easier (since you can inspect the
|
|
|
+@@ -170,11 +168,11 @@ final state) and you retain all your data by default. But if you are
|
|
|
+ running short-term **foreground** processes, these container file
|
|
|
+ systems can really pile up. If instead you’d like Docker to
|
|
|
+ **automatically clean up the container and remove the file system when
|
|
|
+-the container exits**, you can add the `-rm` flag:
|
|
|
++the container exits**, you can add the `--rm` flag:
|
|
|
+
|
|
|
+- -rm=false: Automatically remove the container when it exits (incompatible with -d)
|
|
|
++ --rm=false: Automatically remove the container when it exits (incompatible with -d)
|
|
|
+
|
|
|
+-### Runtime Constraints on CPU and Memory
|
|
|
++### [Runtime Constraints on CPU and Memory](#id14)
|
|
|
+
|
|
|
+ The operator can also adjust the performance parameters of the
|
|
|
+ container:
|
|
|
+@@ -193,10 +191,10 @@ the same priority and get the same proportion of CPU cycles, but you can
|
|
|
+ tell the kernel to give more shares of CPU time to one or more
|
|
|
+ containers when you start them via Docker.
|
|
|
+
|
|
|
+-### Runtime Privilege and LXC Configuration
|
|
|
++### [Runtime Privilege and LXC Configuration](#id15)
|
|
|
+
|
|
|
+- -privileged=false: Give extended privileges to this container
|
|
|
+- -lxc-conf=[]: Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
|
|
|
++ --privileged=false: Give extended privileges to this container
|
|
|
++ --lxc-conf=[]: (lxc exec-driver only) Add custom lxc options --lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
|
|
|
+
|
|
|
+ By default, Docker containers are “unprivileged” and cannot, for
|
|
|
+ example, run a Docker daemon inside a Docker container. This is because
|
|
|
+@@ -206,23 +204,26 @@ by default a container is not allowed to access any devices, but a
|
|
|
+ and documentation on [cgroups
|
|
|
+ devices](https://www.kernel.org/doc/Documentation/cgroups/devices.txt)).
|
|
|
+
|
|
|
+-When the operator executes `docker run -privileged`,
|
|
|
+-Docker will enable to access to all devices on the host as well as set
|
|
|
+-some configuration in AppArmor to allow the container nearly all the
|
|
|
+-same access to the host as processes running outside containers on the
|
|
|
+-host. Additional information about running with `-privileged`{.docutils
|
|
|
+-.literal} is available on the [Docker
|
|
|
++When the operator executes `docker run --privileged`{.docutils
|
|
|
++.literal}, Docker will enable to access to all devices on the host as
|
|
|
++well as set some configuration in AppArmor to allow the container nearly
|
|
|
++all the same access to the host as processes running outside containers
|
|
|
++on the host. Additional information about running with
|
|
|
++`--privileged` is available on the [Docker
|
|
|
+ Blog](http://blog.docker.io/2013/09/docker-can-now-run-within-docker/).
|
|
|
+
|
|
|
+-An operator can also specify LXC options using one or more
|
|
|
+-`-lxc-conf` parameters. These can be new parameters
|
|
|
++If the Docker daemon was started using the `lxc`
|
|
|
++exec-driver (`docker -d --exec-driver=lxc`) then the
|
|
|
++operator can also specify LXC options using one or more
|
|
|
++`--lxc-conf` parameters. These can be new parameters
|
|
|
+ or override existing parameters from the
|
|
|
+ [lxc-template.go](https://github.com/dotcloud/docker/blob/master/execdriver/lxc/lxc_template.go).
|
|
|
+ Note that in the future, a given host’s Docker daemon may not use LXC,
|
|
|
+ so this is an implementation-specific configuration meant for operators
|
|
|
+ already familiar with using LXC directly.
|
|
|
+
|
|
|
+-## Overriding `Dockerfile` Image Defaults
|
|
|
++## [Overriding `Dockerfile` Image Defaults](#id5)
|
|
|
++
|
|
|
+ When a developer builds an image from a
|
|
|
+ [*Dockerfile*](../builder/#dockerbuilder) or when she commits it, the
|
|
|
+ developer can set a number of default parameters that take effect when
|
|
|
+@@ -244,7 +245,7 @@ how the operator can override that setting.
|
|
|
+ - [USER](#user)
|
|
|
+ - [WORKDIR](#workdir)
|
|
|
+
|
|
|
+-### CMD (Default Command or Options)
|
|
|
++### [CMD (Default Command or Options)](#id16)
|
|
|
+
|
|
|
+ Recall the optional `COMMAND` in the Docker
|
|
|
+ commandline:
|
|
|
+@@ -262,9 +263,9 @@ If the image also specifies an `ENTRYPOINT` then the
|
|
|
+ `CMD` or `COMMAND`{.docutils .literal} get appended
|
|
|
+ as arguments to the `ENTRYPOINT`.
|
|
|
+
|
|
|
+-### ENTRYPOINT (Default Command to Execute at Runtime
|
|
|
++### [ENTRYPOINT (Default Command to Execute at Runtime](#id17)
|
|
|
+
|
|
|
+- -entrypoint="": Overwrite the default entrypoint set by the image
|
|
|
++ --entrypoint="": Overwrite the default entrypoint set by the image
|
|
|
+
|
|
|
+ The ENTRYPOINT of an image is similar to a `COMMAND`
|
|
|
+ because it specifies what executable to run when the container starts,
|
|
|
+@@ -280,14 +281,14 @@ the new `ENTRYPOINT`. Here is an example of how to
|
|
|
+ run a shell in a container that has been set up to automatically run
|
|
|
+ something else (like `/usr/bin/redis-server`):
|
|
|
+
|
|
|
+- docker run -i -t -entrypoint /bin/bash example/redis
|
|
|
++ docker run -i -t --entrypoint /bin/bash example/redis
|
|
|
+
|
|
|
+ or two examples of how to pass more parameters to that ENTRYPOINT:
|
|
|
+
|
|
|
+- docker run -i -t -entrypoint /bin/bash example/redis -c ls -l
|
|
|
+- docker run -i -t -entrypoint /usr/bin/redis-cli example/redis --help
|
|
|
++ docker run -i -t --entrypoint /bin/bash example/redis -c ls -l
|
|
|
++ docker run -i -t --entrypoint /usr/bin/redis-cli example/redis --help
|
|
|
+
|
|
|
+-### EXPOSE (Incoming Ports)
|
|
|
++### [EXPOSE (Incoming Ports)](#id18)
|
|
|
+
|
|
|
+ The `Dockerfile` doesn’t give much control over
|
|
|
+ networking, only providing the `EXPOSE` instruction
|
|
|
+@@ -295,17 +296,17 @@ to give a hint to the operator about what incoming ports might provide
|
|
|
+ services. The following options work with or override the
|
|
|
+ `Dockerfile`‘s exposed defaults:
|
|
|
+
|
|
|
+- -expose=[]: Expose a port from the container
|
|
|
++ --expose=[]: Expose a port from the container
|
|
|
+ without publishing it to your host
|
|
|
+- -P=false : Publish all exposed ports to the host interfaces
|
|
|
+- -p=[] : Publish a container's port to the host (format:
|
|
|
+- ip:hostPort:containerPort | ip::containerPort |
|
|
|
+- hostPort:containerPort)
|
|
|
+- (use 'docker port' to see the actual mapping)
|
|
|
+- -link="" : Add link to another container (name:alias)
|
|
|
++ -P=false : Publish all exposed ports to the host interfaces
|
|
|
++ -p=[] : Publish a container's port to the host (format:
|
|
|
++ ip:hostPort:containerPort | ip::containerPort |
|
|
|
++ hostPort:containerPort)
|
|
|
++ (use 'docker port' to see the actual mapping)
|
|
|
++ --link="" : Add link to another container (name:alias)
|
|
|
+
|
|
|
+ As mentioned previously, `EXPOSE` (and
|
|
|
+-`-expose`) make a port available **in** a container
|
|
|
++`--expose`) make a port available **in** a container
|
|
|
+ for incoming connections. The port number on the inside of the container
|
|
|
+ (where the service listens) does not need to be the same number as the
|
|
|
+ port exposed on the outside of the container (where clients connect), so
|
|
|
+@@ -315,11 +316,11 @@ inside the container you might have an HTTP service listening on port 80
|
|
|
+ might be 42800.
|
|
|
+
|
|
|
+ To help a new client container reach the server container’s internal
|
|
|
+-port operator `-expose`‘d by the operator or
|
|
|
++port operator `--expose`‘d by the operator or
|
|
|
+ `EXPOSE`‘d by the developer, the operator has three
|
|
|
+ choices: start the server container with `-P` or
|
|
|
+ `-p,` or start the client container with
|
|
|
+-`-link`.
|
|
|
++`--link`.
|
|
|
+
|
|
|
+ If the operator uses `-P` or `-p`{.docutils
|
|
|
+ .literal} then Docker will make the exposed port accessible on the host
|
|
|
+@@ -327,20 +328,20 @@ and the ports will be available to any client that can reach the host.
|
|
|
+ To find the map between the host ports and the exposed ports, use
|
|
|
+ `docker port`)
|
|
|
+
|
|
|
+-If the operator uses `-link` when starting the new
|
|
|
++If the operator uses `--link` when starting the new
|
|
|
+ client container, then the client container can access the exposed port
|
|
|
+ via a private networking interface. Docker will set some environment
|
|
|
+ variables in the client container to help indicate which interface and
|
|
|
+ port to use.
|
|
|
+
|
|
|
+-### ENV (Environment Variables)
|
|
|
++### [ENV (Environment Variables)](#id19)
|
|
|
+
|
|
|
+ The operator can **set any environment variable** in the container by
|
|
|
+ using one or more `-e` flags, even overriding those
|
|
|
+ already defined by the developer with a Dockefile `ENV`{.docutils
|
|
|
+ .literal}:
|
|
|
+
|
|
|
+- $ docker run -e "deep=purple" -rm ubuntu /bin/bash -c export
|
|
|
++ $ docker run -e "deep=purple" --rm ubuntu /bin/bash -c export
|
|
|
+ declare -x HOME="/"
|
|
|
+ declare -x HOSTNAME="85bc26a0e200"
|
|
|
+ declare -x OLDPWD
|
|
|
+@@ -353,13 +354,13 @@ already defined by the developer with a Dockefile `ENV`{.docutils
|
|
|
+ Similarly the operator can set the **hostname** with `-h`{.docutils
|
|
|
+ .literal}.
|
|
|
+
|
|
|
+-`-link name:alias` also sets environment variables,
|
|
|
++`--link name:alias` also sets environment variables,
|
|
|
+ using the *alias* string to define environment variables within the
|
|
|
+ container that give the IP and PORT information for connecting to the
|
|
|
+ service container. Let’s imagine we have a container running Redis:
|
|
|
+
|
|
|
+ # Start the service container, named redis-name
|
|
|
+- $ docker run -d -name redis-name dockerfiles/redis
|
|
|
++ $ docker run -d --name redis-name dockerfiles/redis
|
|
|
+ 4241164edf6f5aca5b0e9e4c9eccd899b0b8080c64c0cd26efe02166c73208f3
|
|
|
+
|
|
|
+ # The redis-name container exposed port 6379
|
|
|
+@@ -372,10 +373,10 @@ service container. Let’s imagine we have a container running Redis:
|
|
|
+ 2014/01/25 00:55:38 Error: No public port '6379' published for 4241164edf6f
|
|
|
+
|
|
|
+ Yet we can get information about the Redis container’s exposed ports
|
|
|
+-with `-link`. Choose an alias that will form a valid
|
|
|
+-environment variable!
|
|
|
++with `--link`. Choose an alias that will form a
|
|
|
++valid environment variable!
|
|
|
+
|
|
|
+- $ docker run -rm -link redis-name:redis_alias -entrypoint /bin/bash dockerfiles/redis -c export
|
|
|
++ $ docker run --rm --link redis-name:redis_alias --entrypoint /bin/bash dockerfiles/redis -c export
|
|
|
+ declare -x HOME="/"
|
|
|
+ declare -x HOSTNAME="acda7f7b1cdc"
|
|
|
+ declare -x OLDPWD
|
|
|
+@@ -393,14 +394,14 @@ environment variable!
|
|
|
+ And we can use that information to connect from another container as a
|
|
|
+ client:
|
|
|
+
|
|
|
+- $ docker run -i -t -rm -link redis-name:redis_alias -entrypoint /bin/bash dockerfiles/redis -c '/redis-stable/src/redis-cli -h $REDIS_ALIAS_PORT_6379_TCP_ADDR -p $REDIS_ALIAS_PORT_6379_TCP_PORT'
|
|
|
++ $ docker run -i -t --rm --link redis-name:redis_alias --entrypoint /bin/bash dockerfiles/redis -c '/redis-stable/src/redis-cli -h $REDIS_ALIAS_PORT_6379_TCP_ADDR -p $REDIS_ALIAS_PORT_6379_TCP_PORT'
|
|
|
+ 172.17.0.32:6379>
|
|
|
+
|
|
|
+-### VOLUME (Shared Filesystems)
|
|
|
++### [VOLUME (Shared Filesystems)](#id20)
|
|
|
+
|
|
|
+ -v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro].
|
|
|
+ If "container-dir" is missing, then docker creates a new volume.
|
|
|
+- -volumes-from="": Mount all volumes from the given container(s)
|
|
|
++ --volumes-from="": Mount all volumes from the given container(s)
|
|
|
+
|
|
|
+ The volumes commands are complex enough to have their own documentation
|
|
|
+ in section [*Share Directories via
|
|
|
+@@ -409,7 +410,7 @@ define one or more `VOLUME`s associated with an
|
|
|
+ image, but only the operator can give access from one container to
|
|
|
+ another (or from a container to a volume mounted on the host).
|
|
|
+
|
|
|
+-### USER
|
|
|
++### [USER](#id21)
|
|
|
+
|
|
|
+ The default user within a container is `root` (id =
|
|
|
+ 0), but if the developer created additional users, those are accessible
|
|
|
+@@ -419,7 +420,7 @@ override it
|
|
|
+
|
|
|
+ -u="": Username or UID
|
|
|
+
|
|
|
+-### WORKDIR
|
|
|
++### [WORKDIR](#id22)
|
|
|
+
|
|
|
+ The default working directory for running binaries within a container is
|
|
|
+ the root directory (`/`), but the developer can set
|
|
|
+diff --git a/docs/sources/search.md b/docs/sources/search.md
|
|
|
+index 0e2e13f..0296d50 100644
|
|
|
+--- a/docs/sources/search.md
|
|
|
++++ b/docs/sources/search.md
|
|
|
+@@ -1,8 +1,7 @@
|
|
|
+-# Search
|
|
|
+
|
|
|
+-*Please activate JavaScript to enable the search functionality.*
|
|
|
++# Search {#search-documentation}
|
|
|
+
|
|
|
+-## How To Search
|
|
|
++Please activate JavaScript to enable the search functionality.
|
|
|
+
|
|
|
+ From here you can search these documents. Enter your search words into
|
|
|
+ the box below and click "search". Note that the search function will
|
|
|
+diff --git a/docs/sources/terms.md b/docs/sources/terms.md
|
|
|
+index 59579d9..5152876 100644
|
|
|
+--- a/docs/sources/terms.md
|
|
|
++++ b/docs/sources/terms.md
|
|
|
+@@ -1,13 +1,14 @@
|
|
|
++
|
|
|
+ # Glossary
|
|
|
+
|
|
|
+-*Definitions of terms used in Docker documentation.*
|
|
|
++Definitions of terms used in Docker documentation.
|
|
|
+
|
|
|
+-## Contents:
|
|
|
++Contents:
|
|
|
+
|
|
|
+-- [File System](filesystem/)
|
|
|
+-- [Layers](layer/)
|
|
|
+-- [Image](image/)
|
|
|
+-- [Container](container/)
|
|
|
+-- [Registry](registry/)
|
|
|
+-- [Repository](repository/)
|
|
|
++- [File System](filesystem/)
|
|
|
++- [Layers](layer/)
|
|
|
++- [Image](image/)
|
|
|
++- [Container](container/)
|
|
|
++- [Registry](registry/)
|
|
|
++- [Repository](repository/)
|
|
|
+
|
|
|
+diff --git a/docs/sources/terms/container.md b/docs/sources/terms/container.md
|
|
|
+index bc493d4..6fbf952 100644
|
|
|
+--- a/docs/sources/terms/container.md
|
|
|
++++ b/docs/sources/terms/container.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: containers, lxc, concepts, explanation, image, container
|
|
|
+
|
|
|
+ # Container
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ 
|
|
|
+
|
|
|
+ Once you start a process in Docker from an
|
|
|
+diff --git a/docs/sources/terms/filesystem.md b/docs/sources/terms/filesystem.md
|
|
|
+index 2038d00..8fbd977 100644
|
|
|
+--- a/docs/sources/terms/filesystem.md
|
|
|
++++ b/docs/sources/terms/filesystem.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: containers, files, linux
|
|
|
+
|
|
|
+ # File System
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ 
|
|
|
+
|
|
|
+ In order for a Linux system to run, it typically needs two [file
|
|
|
+diff --git a/docs/sources/terms/image.md b/docs/sources/terms/image.md
|
|
|
+index 721d4c9..98914dd 100644
|
|
|
+--- a/docs/sources/terms/image.md
|
|
|
++++ b/docs/sources/terms/image.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: containers, lxc, concepts, explanation, image, container
|
|
|
+
|
|
|
+ # Image
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ 
|
|
|
+
|
|
|
+ In Docker terminology, a read-only [*Layer*](../layer/#layer-def) is
|
|
|
+diff --git a/docs/sources/terms/layer.md b/docs/sources/terms/layer.md
|
|
|
+index 7665467..6949d5c 100644
|
|
|
+--- a/docs/sources/terms/layer.md
|
|
|
++++ b/docs/sources/terms/layer.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: containers, lxc, concepts, explanation, image, container
|
|
|
+
|
|
|
+ # Layers
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ In a traditional Linux boot, the kernel first mounts the root [*File
|
|
|
+ System*](../filesystem/#filesystem-def) as read-only, checks its
|
|
|
+ integrity, and then switches the whole rootfs volume to read-write mode.
|
|
|
+diff --git a/docs/sources/terms/registry.md b/docs/sources/terms/registry.md
|
|
|
+index 0d5af2c..53c0a24 100644
|
|
|
+--- a/docs/sources/terms/registry.md
|
|
|
++++ b/docs/sources/terms/registry.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: containers, lxc, concepts, explanation, image, repository, contai
|
|
|
+
|
|
|
+ # Registry
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ A Registry is a hosted service containing
|
|
|
+ [*repositories*](../repository/#repository-def) of
|
|
|
+ [*images*](../image/#image-def) which responds to the Registry API.
|
|
|
+@@ -14,7 +12,5 @@ The default registry can be accessed using a browser at
|
|
|
+ [http://images.docker.io](http://images.docker.io) or using the
|
|
|
+ `sudo docker search` command.
|
|
|
+
|
|
|
+-## Further Reading
|
|
|
+-
|
|
|
+ For more information see [*Working with
|
|
|
+ Repositories*](../../use/workingwithrepository/#working-with-the-repository)
|
|
|
+diff --git a/docs/sources/terms/repository.md b/docs/sources/terms/repository.md
|
|
|
+index e3332e4..8868440 100644
|
|
|
+--- a/docs/sources/terms/repository.md
|
|
|
++++ b/docs/sources/terms/repository.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: containers, lxc, concepts, explanation, image, repository, contai
|
|
|
+
|
|
|
+ # Repository
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ A repository is a set of images either on your local Docker server, or
|
|
|
+ shared, by pushing it to a [*Registry*](../registry/#registry-def)
|
|
|
+ server.
|
|
|
+diff --git a/docs/sources/toctree.md b/docs/sources/toctree.md
|
|
|
+index 259a231..b268e90 100644
|
|
|
+--- a/docs/sources/toctree.md
|
|
|
++++ b/docs/sources/toctree.md
|
|
|
+@@ -1,14 +1,18 @@
|
|
|
++page_title: Documentation
|
|
|
++page_description: -- todo: change me
|
|
|
++page_keywords: todo, docker, documentation, installation, usage, examples, contributing, faq, command line, concepts
|
|
|
++
|
|
|
+ # Documentation
|
|
|
+
|
|
|
+-## This documentation has the following resources:
|
|
|
+-
|
|
|
+-- [Introduction](../)
|
|
|
+-- [Installation](../installation/)
|
|
|
+-- [Use](../use/)
|
|
|
+-- [Examples](../examples/)
|
|
|
+-- [Reference Manual](../reference/)
|
|
|
+-- [Contributing](../contributing/)
|
|
|
+-- [Glossary](../terms/)
|
|
|
+-- [Articles](../articles/)
|
|
|
+-- [FAQ](../faq/)
|
|
|
++This documentation has the following resources:
|
|
|
++
|
|
|
++- [Introduction](../)
|
|
|
++- [Installation](../installation/)
|
|
|
++- [Use](../use/)
|
|
|
++- [Examples](../examples/)
|
|
|
++- [Reference Manual](../reference/)
|
|
|
++- [Contributing](../contributing/)
|
|
|
++- [Glossary](../terms/)
|
|
|
++- [Articles](../articles/)
|
|
|
++- [FAQ](../faq/)
|
|
|
+
|
|
|
+diff --git a/docs/sources/use.md b/docs/sources/use.md
|
|
|
+index ce4a510..00077a5 100644
|
|
|
+--- a/docs/sources/use.md
|
|
|
++++ b/docs/sources/use.md
|
|
|
+@@ -1,13 +1,16 @@
|
|
|
++
|
|
|
+ # Use
|
|
|
+
|
|
|
+-## Contents:
|
|
|
+-
|
|
|
+-- [First steps with Docker](basics/)
|
|
|
+-- [Share Images via Repositories](workingwithrepository/)
|
|
|
+-- [Redirect Ports](port_redirection/)
|
|
|
+-- [Configure Networking](networking/)
|
|
|
+-- [Automatically Start Containers](host_integration/)
|
|
|
+-- [Share Directories via Volumes](working_with_volumes/)
|
|
|
+-- [Link Containers](working_with_links_names/)
|
|
|
+-- [Link via an Ambassador Container](ambassador_pattern_linking/)
|
|
|
+-- [Using Puppet](puppet/)
|
|
|
+\ No newline at end of file
|
|
|
++Contents:
|
|
|
++
|
|
|
++- [First steps with Docker](basics/)
|
|
|
++- [Share Images via Repositories](workingwithrepository/)
|
|
|
++- [Redirect Ports](port_redirection/)
|
|
|
++- [Configure Networking](networking/)
|
|
|
++- [Automatically Start Containers](host_integration/)
|
|
|
++- [Share Directories via Volumes](working_with_volumes/)
|
|
|
++- [Link Containers](working_with_links_names/)
|
|
|
++- [Link via an Ambassador Container](ambassador_pattern_linking/)
|
|
|
++- [Using Chef](chef/)
|
|
|
++- [Using Puppet](puppet/)
|
|
|
++
|
|
|
+diff --git a/docs/sources/use/ambassador_pattern_linking.md b/docs/sources/use/ambassador_pattern_linking.md
|
|
|
+index b5df7f8..f7704a5 100644
|
|
|
+--- a/docs/sources/use/ambassador_pattern_linking.md
|
|
|
++++ b/docs/sources/use/ambassador_pattern_linking.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: Examples, Usage, links, docker, documentation, examples, names, n
|
|
|
+
|
|
|
+ # Link via an Ambassador Container
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ Rather than hardcoding network links between a service consumer and
|
|
|
+ provider, Docker encourages service portability.
|
|
|
+
|
|
|
+@@ -38,24 +36,24 @@ link wiring is controlled entirely from the `docker run`{.docutils
|
|
|
+
|
|
|
+ Start actual redis server on one Docker host
|
|
|
+
|
|
|
+- big-server $ docker run -d -name redis crosbymichael/redis
|
|
|
++ big-server $ docker run -d --name redis crosbymichael/redis
|
|
|
+
|
|
|
+ Then add an ambassador linked to the redis server, mapping a port to the
|
|
|
+ outside world
|
|
|
+
|
|
|
+- big-server $ docker run -d -link redis:redis -name redis_ambassador -p 6379:6379 svendowideit/ambassador
|
|
|
++ big-server $ docker run -d --link redis:redis --name redis_ambassador -p 6379:6379 svendowideit/ambassador
|
|
|
+
|
|
|
+ On the other host, you can set up another ambassador setting environment
|
|
|
+ variables for each remote port we want to proxy to the
|
|
|
+ `big-server`
|
|
|
+
|
|
|
+- client-server $ docker run -d -name redis_ambassador -expose 6379 -e REDIS_PORT_6379_TCP=tcp://192.168.1.52:6379 svendowideit/ambassador
|
|
|
++ client-server $ docker run -d --name redis_ambassador --expose 6379 -e REDIS_PORT_6379_TCP=tcp://192.168.1.52:6379 svendowideit/ambassador
|
|
|
+
|
|
|
+ Then on the `client-server` host, you can use a
|
|
|
+ redis client container to talk to the remote redis server, just by
|
|
|
+ linking to the local redis ambassador.
|
|
|
+
|
|
|
+- client-server $ docker run -i -t -rm -link redis_ambassador:redis relateiq/redis-cli
|
|
|
++ client-server $ docker run -i -t --rm --link redis_ambassador:redis relateiq/redis-cli
|
|
|
+ redis 172.17.0.160:6379> ping
|
|
|
+ PONG
|
|
|
+
|
|
|
+@@ -68,19 +66,19 @@ The following example shows what the `svendowideit/ambassador`{.docutils
|
|
|
+ On the docker host (192.168.1.52) that redis will run on:
|
|
|
+
|
|
|
+ # start actual redis server
|
|
|
+- $ docker run -d -name redis crosbymichael/redis
|
|
|
++ $ docker run -d --name redis crosbymichael/redis
|
|
|
+
|
|
|
+ # get a redis-cli container for connection testing
|
|
|
+ $ docker pull relateiq/redis-cli
|
|
|
+
|
|
|
+ # test the redis server by talking to it directly
|
|
|
+- $ docker run -t -i -rm -link redis:redis relateiq/redis-cli
|
|
|
++ $ docker run -t -i --rm --link redis:redis relateiq/redis-cli
|
|
|
+ redis 172.17.0.136:6379> ping
|
|
|
+ PONG
|
|
|
+ ^D
|
|
|
+
|
|
|
+ # add redis ambassador
|
|
|
+- $ docker run -t -i -link redis:redis -name redis_ambassador -p 6379:6379 busybox sh
|
|
|
++ $ docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 busybox sh
|
|
|
+
|
|
|
+ in the redis\_ambassador container, you can see the linked redis
|
|
|
+ containers’s env
|
|
|
+@@ -104,7 +102,7 @@ to the world (via the -p 6379:6379 port mapping)
|
|
|
+
|
|
|
+ $ docker rm redis_ambassador
|
|
|
+ $ sudo ./contrib/mkimage-unittest.sh
|
|
|
+- $ docker run -t -i -link redis:redis -name redis_ambassador -p 6379:6379 docker-ut sh
|
|
|
++ $ docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 docker-ut sh
|
|
|
+
|
|
|
+ $ socat TCP4-LISTEN:6379,fork,reuseaddr TCP4:172.17.0.136:6379
|
|
|
+
|
|
|
+@@ -113,14 +111,14 @@ then ping the redis server via the ambassador
|
|
|
+ Now goto a different server
|
|
|
+
|
|
|
+ $ sudo ./contrib/mkimage-unittest.sh
|
|
|
+- $ docker run -t -i -expose 6379 -name redis_ambassador docker-ut sh
|
|
|
++ $ docker run -t -i --expose 6379 --name redis_ambassador docker-ut sh
|
|
|
+
|
|
|
+ $ socat TCP4-LISTEN:6379,fork,reuseaddr TCP4:192.168.1.52:6379
|
|
|
+
|
|
|
+ and get the redis-cli image so we can talk over the ambassador bridge
|
|
|
+
|
|
|
+ $ docker pull relateiq/redis-cli
|
|
|
+- $ docker run -i -t -rm -link redis_ambassador:redis relateiq/redis-cli
|
|
|
++ $ docker run -i -t --rm --link redis_ambassador:redis relateiq/redis-cli
|
|
|
+ redis 172.17.0.160:6379> ping
|
|
|
+ PONG
|
|
|
+
|
|
|
+@@ -133,7 +131,7 @@ out the (possibly multiple) link environment variables to set up the
|
|
|
+ port forwarding. On the remote host, you need to set the variable using
|
|
|
+ the `-e` command line option.
|
|
|
+
|
|
|
+-`-expose 1234 -e REDIS_PORT_1234_TCP=tcp://192.168.1.52:6379`{.docutils
|
|
|
++`--expose 1234 -e REDIS_PORT_1234_TCP=tcp://192.168.1.52:6379`{.docutils
|
|
|
+ .literal} will forward the local `1234` port to the
|
|
|
+ remote IP and port - in this case `192.168.1.52:6379`{.docutils
|
|
|
+ .literal}.
|
|
|
+@@ -146,12 +144,12 @@ remote IP and port - in this case `192.168.1.52:6379`{.docutils
|
|
|
+ # docker build -t SvenDowideit/ambassador .
|
|
|
+ # docker tag SvenDowideit/ambassador ambassador
|
|
|
+ # then to run it (on the host that has the real backend on it)
|
|
|
+- # docker run -t -i -link redis:redis -name redis_ambassador -p 6379:6379 ambassador
|
|
|
++ # docker run -t -i --link redis:redis --name redis_ambassador -p 6379:6379 ambassador
|
|
|
+ # on the remote host, you can set up another ambassador
|
|
|
+- # docker run -t -i -name redis_ambassador -expose 6379 sh
|
|
|
++ # docker run -t -i --name redis_ambassador --expose 6379 sh
|
|
|
+
|
|
|
+ FROM docker-ut
|
|
|
+ MAINTAINER SvenDowideit@home.org.au
|
|
|
+
|
|
|
+
|
|
|
+- CMD env | grep _TCP= | sed 's/.*_PORT_\([0-9]*\)_TCP=tcp:\/\/\(.*\):\(.*\)/socat TCP4-LISTEN:\1,fork,reuseaddr TCP4:\2:\3 \&/' | sh && top
|
|
|
+\ No newline at end of file
|
|
|
++ CMD env | grep _TCP= | sed 's/.*_PORT_\([0-9]*\)_TCP=tcp:\/\/\(.*\):\(.*\)/socat TCP4-LISTEN:\1,fork,reuseaddr TCP4:\2:\3 \&/' | sh && top
|
|
|
+diff --git a/docs/sources/use/basics.md b/docs/sources/use/basics.md
|
|
|
+index 1b10335..0abc8e7 100644
|
|
|
+--- a/docs/sources/use/basics.md
|
|
|
++++ b/docs/sources/use/basics.md
|
|
|
+@@ -37,7 +37,10 @@ hash `539c0211cd76: Download complete` which is the
|
|
|
+ short form of the image ID. These short image IDs are the first 12
|
|
|
+ characters of the full image ID - which can be found using
|
|
|
+ `docker inspect` or
|
|
|
+-`docker images -notrunc=true`
|
|
|
++`docker images --no-trunc=true`
|
|
|
++
|
|
|
++**If you’re using OS X** then you shouldn’t use `sudo`{.docutils
|
|
|
++.literal}
|
|
|
+
|
|
|
+ ## Running an interactive shell
|
|
|
+
|
|
|
+diff --git a/docs/sources/use/host_integration.md b/docs/sources/use/host_integration.md
|
|
|
+index 50eae8b..a7dba9b 100644
|
|
|
+--- a/docs/sources/use/host_integration.md
|
|
|
++++ b/docs/sources/use/host_integration.md
|
|
|
+@@ -5,7 +5,8 @@ page_keywords: systemd, upstart, supervisor, docker, documentation, host integra
|
|
|
+ # Automatically Start Containers
|
|
|
+
|
|
|
+ You can use your Docker containers with process managers like
|
|
|
+-`upstart`, `systemd`{.docutils .literal} and `supervisor`.
|
|
|
++`upstart`, `systemd`{.docutils .literal} and
|
|
|
++`supervisor`.
|
|
|
+
|
|
|
+ ## Introduction
|
|
|
+
|
|
|
+@@ -15,21 +16,22 @@ docker will not automatically restart your containers when the host is
|
|
|
+ restarted.
|
|
|
+
|
|
|
+ When you have finished setting up your image and are happy with your
|
|
|
+-running container, you may want to use a process manager to manage it.
|
|
|
++running container, you can then attach a process manager to manage it.
|
|
|
+ When your run `docker start -a` docker will
|
|
|
+-automatically attach to the process and forward all signals so that the
|
|
|
+-process manager can detect when a container stops and correctly restart
|
|
|
+-it.
|
|
|
++automatically attach to the running container, or start it if needed and
|
|
|
++forward all signals so that the process manager can detect when a
|
|
|
++container stops and correctly restart it.
|
|
|
+
|
|
|
+ Here are a few sample scripts for systemd and upstart to integrate with
|
|
|
+ docker.
|
|
|
+
|
|
|
+ ## Sample Upstart Script
|
|
|
+
|
|
|
+-In this example we’ve already created a container to run Redis with an
|
|
|
+-id of 0a7e070b698b. To create an upstart script for our container, we
|
|
|
+-create a file named `/etc/init/redis.conf` and place
|
|
|
+-the following into it:
|
|
|
++In this example we’ve already created a container to run Redis with
|
|
|
++`--name redis_server`. To create an upstart script
|
|
|
++for our container, we create a file named
|
|
|
++`/etc/init/redis.conf` and place the following into
|
|
|
++it:
|
|
|
+
|
|
|
+ description "Redis container"
|
|
|
+ author "Me"
|
|
|
+@@ -42,7 +44,7 @@ the following into it:
|
|
|
+ while [ ! -e $FILE ] ; do
|
|
|
+ inotifywait -t 2 -e create $(dirname $FILE)
|
|
|
+ done
|
|
|
+- /usr/bin/docker start -a 0a7e070b698b
|
|
|
++ /usr/bin/docker start -a redis_server
|
|
|
+ end script
|
|
|
+
|
|
|
+ Next, we have to configure docker so that it’s run with the option
|
|
|
+@@ -59,8 +61,8 @@ Next, we have to configure docker so that it’s run with the option
|
|
|
+
|
|
|
+ [Service]
|
|
|
+ Restart=always
|
|
|
+- ExecStart=/usr/bin/docker start -a 0a7e070b698b
|
|
|
+- ExecStop=/usr/bin/docker stop -t 2 0a7e070b698b
|
|
|
++ ExecStart=/usr/bin/docker start -a redis_server
|
|
|
++ ExecStop=/usr/bin/docker stop -t 2 redis_server
|
|
|
+
|
|
|
+ [Install]
|
|
|
+ WantedBy=local.target
|
|
|
+diff --git a/docs/sources/use/networking.md b/docs/sources/use/networking.md
|
|
|
+index e4cc5c5..56a9885 100644
|
|
|
+--- a/docs/sources/use/networking.md
|
|
|
++++ b/docs/sources/use/networking.md
|
|
|
+@@ -4,16 +4,15 @@ page_keywords: network, networking, bridge, docker, documentation
|
|
|
+
|
|
|
+ # Configure Networking
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ Docker uses Linux bridge capabilities to provide network connectivity to
|
|
|
+ containers. The `docker0` bridge interface is
|
|
|
+ managed by Docker for this purpose. When the Docker daemon starts it :
|
|
|
+
|
|
|
+-- creates the `docker0` bridge if not present
|
|
|
+-- searches for an IP address range which doesn’t overlap with an existing route
|
|
|
+-- picks an IP in the selected range
|
|
|
+-- assigns this IP to the `docker0` bridge
|
|
|
++- creates the `docker0` bridge if not present
|
|
|
++- searches for an IP address range which doesn’t overlap with an
|
|
|
++ existing route
|
|
|
++- picks an IP in the selected range
|
|
|
++- assigns this IP to the `docker0` bridge
|
|
|
+
|
|
|
+ <!-- -->
|
|
|
+
|
|
|
+@@ -113,9 +112,9 @@ The value of the Docker daemon’s `icc` parameter
|
|
|
+ determines whether containers can communicate with each other over the
|
|
|
+ bridge network.
|
|
|
+
|
|
|
+-- The default, `-icc=true` allows containers to
|
|
|
++- The default, `--icc=true` allows containers to
|
|
|
+ communicate with each other.
|
|
|
+-- `-icc=false` means containers are isolated from
|
|
|
++- `--icc=false` means containers are isolated from
|
|
|
+ each other.
|
|
|
+
|
|
|
+ Docker uses `iptables` under the hood to either
|
|
|
+@@ -137,6 +136,6 @@ ip link command) and the namespaces infrastructure.
|
|
|
+
|
|
|
+ ## I want more
|
|
|
+
|
|
|
+-Jérôme Petazzoni has create `pipework` to connect
|
|
|
++Jérôme Petazzoni has created `pipework` to connect
|
|
|
+ together containers in arbitrarily complex scenarios :
|
|
|
+ [https://github.com/jpetazzo/pipework](https://github.com/jpetazzo/pipework)
|
|
|
+diff --git a/docs/sources/use/port_redirection.md b/docs/sources/use/port_redirection.md
|
|
|
+index 6970d0d..1c1b676 100644
|
|
|
+--- a/docs/sources/use/port_redirection.md
|
|
|
++++ b/docs/sources/use/port_redirection.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: Usage, basic port, docker, documentation, examples
|
|
|
+
|
|
|
+ # Redirect Ports
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ Interacting with a service is commonly done through a connection to a
|
|
|
+ port. When this service runs inside a container, one can connect to the
|
|
|
+ port after finding the IP address of the container as follows:
|
|
|
+@@ -74,7 +72,7 @@ port on the host machine bound to a given container port. It is useful
|
|
|
+ when using dynamically allocated ports:
|
|
|
+
|
|
|
+ # Bind to a dynamically allocated port
|
|
|
+- docker run -p 127.0.0.1::8080 -name dyn-bound <image> <cmd>
|
|
|
++ docker run -p 127.0.0.1::8080 --name dyn-bound <image> <cmd>
|
|
|
+
|
|
|
+ # Lookup the actual port
|
|
|
+ docker port dyn-bound 8080
|
|
|
+@@ -105,18 +103,18 @@ started.
|
|
|
+
|
|
|
+ Here is a full example. On `server`, the port of
|
|
|
+ interest is exposed. The exposure is done either through the
|
|
|
+-`-expose` parameter to the `docker run`{.docutils
|
|
|
++`--expose` parameter to the `docker run`{.docutils
|
|
|
+ .literal} command, or the `EXPOSE` build command in
|
|
|
+ a Dockerfile:
|
|
|
+
|
|
|
+ # Expose port 80
|
|
|
+- docker run -expose 80 -name server <image> <cmd>
|
|
|
++ docker run --expose 80 --name server <image> <cmd>
|
|
|
+
|
|
|
+ The `client` then links to the `server`{.docutils
|
|
|
+ .literal}:
|
|
|
+
|
|
|
+ # Link
|
|
|
+- docker run -name client -link server:linked-server <image> <cmd>
|
|
|
++ docker run --name client --link server:linked-server <image> <cmd>
|
|
|
+
|
|
|
+ `client` locally refers to `server`{.docutils
|
|
|
+ .literal} as `linked-server`. The following
|
|
|
+@@ -137,4 +135,4 @@ port 80 of `server` and that `server`{.docutils
|
|
|
+ .literal} is accessible at the IP address 172.17.0.8
|
|
|
+
|
|
|
+ Note: Using the `-p` parameter also exposes the
|
|
|
+-port..
|
|
|
++port.
|
|
|
+diff --git a/docs/sources/use/puppet.md b/docs/sources/use/puppet.md
|
|
|
+index 55f16dd..b00346c 100644
|
|
|
+--- a/docs/sources/use/puppet.md
|
|
|
++++ b/docs/sources/use/puppet.md
|
|
|
+@@ -4,10 +4,12 @@ page_keywords: puppet, installation, usage, docker, documentation
|
|
|
+
|
|
|
+ # Using Puppet
|
|
|
+
|
|
|
+-> *Note:* Please note this is a community contributed installation path. The only
|
|
|
+-> ‘official’ installation is using the
|
|
|
+-> [*Ubuntu*](../../installation/ubuntulinux/#ubuntu-linux) installation
|
|
|
+-> path. This version may sometimes be out of date.
|
|
|
++Note
|
|
|
++
|
|
|
++Please note this is a community contributed installation path. The only
|
|
|
++‘official’ installation is using the
|
|
|
++[*Ubuntu*](../../installation/ubuntulinux/#ubuntu-linux) installation
|
|
|
++path. This version may sometimes be out of date.
|
|
|
+
|
|
|
+ ## Requirements
|
|
|
+
|
|
|
+diff --git a/docs/sources/use/working_with_links_names.md b/docs/sources/use/working_with_links_names.md
|
|
|
+index 3a12284..b41be0d 100644
|
|
|
+--- a/docs/sources/use/working_with_links_names.md
|
|
|
++++ b/docs/sources/use/working_with_links_names.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: Examples, Usage, links, linking, docker, documentation, examples,
|
|
|
+
|
|
|
+ # Link Containers
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ From version 0.6.5 you are now able to `name` a
|
|
|
+ container and `link` it to another container by
|
|
|
+ referring to its name. This will create a parent -\> child relationship
|
|
|
+@@ -15,12 +13,13 @@ where the parent container can see selected information about its child.
|
|
|
+
|
|
|
+ New in version v0.6.5.
|
|
|
+
|
|
|
+-You can now name your container by using the `-name`
|
|
|
+-flag. If no name is provided, Docker will automatically generate a name.
|
|
|
+-You can see this name using the `docker ps` command.
|
|
|
++You can now name your container by using the `--name`{.docutils
|
|
|
++.literal} flag. If no name is provided, Docker will automatically
|
|
|
++generate a name. You can see this name using the `docker ps`{.docutils
|
|
|
++.literal} command.
|
|
|
+
|
|
|
+- # format is "sudo docker run -name <container_name> <image_name> <command>"
|
|
|
+- $ sudo docker run -name test ubuntu /bin/bash
|
|
|
++ # format is "sudo docker run --name <container_name> <image_name> <command>"
|
|
|
++ $ sudo docker run --name test ubuntu /bin/bash
|
|
|
+
|
|
|
+ # the flag "-a" Show all containers. Only running containers are shown by default.
|
|
|
+ $ sudo docker ps -a
|
|
|
+@@ -32,9 +31,9 @@ You can see this name using the `docker ps` command.
|
|
|
+ New in version v0.6.5.
|
|
|
+
|
|
|
+ Links allow containers to discover and securely communicate with each
|
|
|
+-other by using the flag `-link name:alias`.
|
|
|
++other by using the flag `--link name:alias`.
|
|
|
+ Inter-container communication can be disabled with the daemon flag
|
|
|
+-`-icc=false`. With this flag set to
|
|
|
++`--icc=false`. With this flag set to
|
|
|
+ `false`, Container A cannot access Container B
|
|
|
+ unless explicitly allowed via a link. This is a huge win for securing
|
|
|
+ your containers. When two containers are linked together Docker creates
|
|
|
+@@ -52,9 +51,9 @@ communication is set to false.
|
|
|
+ For example, there is an image called `crosbymichael/redis`{.docutils
|
|
|
+ .literal} that exposes the port 6379 and starts the Redis server. Let’s
|
|
|
+ name the container as `redis` based on that image
|
|
|
+-and run it as daemon.
|
|
|
++and run it as a daemon.
|
|
|
+
|
|
|
+- $ sudo docker run -d -name redis crosbymichael/redis
|
|
|
++ $ sudo docker run -d --name redis crosbymichael/redis
|
|
|
+
|
|
|
+ We can issue all the commands that you would expect using the name
|
|
|
+ `redis`; start, stop, attach, using the name for our
|
|
|
+@@ -67,9 +66,9 @@ our Redis server we did not use the `-p` flag to
|
|
|
+ publish the Redis port to the host system. Redis exposed port 6379 and
|
|
|
+ this is all we need to establish a link.
|
|
|
+
|
|
|
+- $ sudo docker run -t -i -link redis:db -name webapp ubuntu bash
|
|
|
++ $ sudo docker run -t -i --link redis:db --name webapp ubuntu bash
|
|
|
+
|
|
|
+-When you specified `-link redis:db` you are telling
|
|
|
++When you specified `--link redis:db` you are telling
|
|
|
+ Docker to link the container named `redis` into this
|
|
|
+ new container with the alias `db`. Environment
|
|
|
+ variables are prefixed with the alias so that the parent container can
|
|
|
+@@ -101,8 +100,18 @@ Accessing the network information along with the environment of the
|
|
|
+ child container allows us to easily connect to the Redis service on the
|
|
|
+ specific IP and port in the environment.
|
|
|
+
|
|
|
++Note
|
|
|
++
|
|
|
++These Environment variables are only set for the first process in the
|
|
|
++container. Similarly, some daemons (such as `sshd`)
|
|
|
++will scrub them when spawning shells for connection.
|
|
|
++
|
|
|
++You can work around this by storing the initial `env`{.docutils
|
|
|
++.literal} in a file, or looking at `/proc/1/environ`{.docutils
|
|
|
++.literal}.
|
|
|
++
|
|
|
+ Running `docker ps` shows the 2 containers, and the
|
|
|
+-`webapp/db` alias name for the redis container.
|
|
|
++`webapp/db` alias name for the Redis container.
|
|
|
+
|
|
|
+ $ docker ps
|
|
|
+ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
|
|
+diff --git a/docs/sources/use/working_with_volumes.md b/docs/sources/use/working_with_volumes.md
|
|
|
+index 6cf57ee..542c715 100644
|
|
|
+--- a/docs/sources/use/working_with_volumes.md
|
|
|
++++ b/docs/sources/use/working_with_volumes.md
|
|
|
+@@ -4,27 +4,24 @@ page_keywords: Examples, Usage, volume, docker, documentation, examples
|
|
|
+
|
|
|
+ # Share Directories via Volumes
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ A *data volume* is a specially-designated directory within one or more
|
|
|
+ containers that bypasses the [*Union File
|
|
|
+ System*](../../terms/layer/#ufs-def) to provide several useful features
|
|
|
+ for persistent or shared data:
|
|
|
+
|
|
|
+-- **Data volumes can be shared and reused between containers:**
|
|
|
+- This is the feature that makes data volumes so powerful. You can
|
|
|
+- use it for anything from hot database upgrades to custom backup or
|
|
|
+- replication tools. See the example below.
|
|
|
+-- **Changes to a data volume are made directly:**
|
|
|
+- Without the overhead of a copy-on-write mechanism. This is good for
|
|
|
+- very large files.
|
|
|
+-- **Changes to a data volume will not be included at the next commit:**
|
|
|
+- Because they are not recorded as regular filesystem changes in the
|
|
|
+- top layer of the [*Union File System*](../../terms/layer/#ufs-def)
|
|
|
+-- **Volumes persist until no containers use them:**
|
|
|
+- As they are a reference counted resource. The container does not need to be
|
|
|
+- running to share its volumes, but running it can help protect it
|
|
|
+- against accidental removal via `docker rm`.
|
|
|
++- **Data volumes can be shared and reused between containers.** This
|
|
|
++ is the feature that makes data volumes so powerful. You can use it
|
|
|
++ for anything from hot database upgrades to custom backup or
|
|
|
++ replication tools. See the example below.
|
|
|
++- **Changes to a data volume are made directly**, without the overhead
|
|
|
++ of a copy-on-write mechanism. This is good for very large files.
|
|
|
++- **Changes to a data volume will not be included at the next commit**
|
|
|
++ because they are not recorded as regular filesystem changes in the
|
|
|
++ top layer of the [*Union File System*](../../terms/layer/#ufs-def)
|
|
|
++- **Volumes persist until no containers use them** as they are a
|
|
|
++ reference counted resource. The container does not need to be
|
|
|
++ running to share its volumes, but running it can help protect it
|
|
|
++ against accidental removal via `docker rm`.
|
|
|
+
|
|
|
+ Each container can have zero or more data volumes.
|
|
|
+
|
|
|
+@@ -43,7 +40,7 @@ container with two new volumes:
|
|
|
+ This command will create the new container with two new volumes that
|
|
|
+ exits instantly (`true` is pretty much the smallest,
|
|
|
+ simplest program that you can run). Once created you can mount its
|
|
|
+-volumes in any other container using the `-volumes-from`{.docutils
|
|
|
++volumes in any other container using the `--volumes-from`{.docutils
|
|
|
+ .literal} option; irrespective of whether the container is running or
|
|
|
+ not.
|
|
|
+
|
|
|
+@@ -51,7 +48,7 @@ Or, you can use the VOLUME instruction in a Dockerfile to add one or
|
|
|
+ more new volumes to any container created from that image:
|
|
|
+
|
|
|
+ # BUILD-USING: docker build -t data .
|
|
|
+- # RUN-USING: docker run -name DATA data
|
|
|
++ # RUN-USING: docker run --name DATA data
|
|
|
+ FROM busybox
|
|
|
+ VOLUME ["/var/volume1", "/var/volume2"]
|
|
|
+ CMD ["/bin/true"]
|
|
|
+@@ -66,20 +63,20 @@ it.
|
|
|
+ Create a named container with volumes to share (`/var/volume1`{.docutils
|
|
|
+ .literal} and `/var/volume2`):
|
|
|
+
|
|
|
+- $ docker run -v /var/volume1 -v /var/volume2 -name DATA busybox true
|
|
|
++ $ docker run -v /var/volume1 -v /var/volume2 --name DATA busybox true
|
|
|
+
|
|
|
+ Then mount those data volumes into your application containers:
|
|
|
+
|
|
|
+- $ docker run -t -i -rm -volumes-from DATA -name client1 ubuntu bash
|
|
|
++ $ docker run -t -i --rm --volumes-from DATA --name client1 ubuntu bash
|
|
|
+
|
|
|
+-You can use multiple `-volumes-from` parameters to
|
|
|
++You can use multiple `--volumes-from` parameters to
|
|
|
+ bring together multiple data volumes from multiple containers.
|
|
|
+
|
|
|
+ Interestingly, you can mount the volumes that came from the
|
|
|
+ `DATA` container in yet another container via the
|
|
|
+ `client1` middleman container:
|
|
|
+
|
|
|
+- $ docker run -t -i -rm -volumes-from client1 -name client2 ubuntu bash
|
|
|
++ $ docker run -t -i --rm --volumes-from client1 --name client2 ubuntu bash
|
|
|
+
|
|
|
+ This allows you to abstract the actual data source from users of that
|
|
|
+ data, similar to
|
|
|
+@@ -136,9 +133,9 @@ because they are external to images. Instead you can use
|
|
|
+ `--volumes-from` to start a new container that can
|
|
|
+ access the data-container’s volume. For example:
|
|
|
+
|
|
|
+- $ sudo docker run -rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
|
|
|
++ $ sudo docker run --rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data
|
|
|
+
|
|
|
+-- `-rm` - remove the container when it exits
|
|
|
++- `--rm` - remove the container when it exits
|
|
|
+ - `--volumes-from DATA` - attach to the volumes
|
|
|
+ shared by the `DATA` container
|
|
|
+ - `-v $(pwd):/backup` - bind mount the current
|
|
|
+@@ -153,13 +150,13 @@ Then to restore to the same container, or another that you’ve made
|
|
|
+ elsewhere:
|
|
|
+
|
|
|
+ # create a new data container
|
|
|
+- $ sudo docker run -v /data -name DATA2 busybox true
|
|
|
++ $ sudo docker run -v /data --name DATA2 busybox true
|
|
|
+ # untar the backup files into the new container's data volume
|
|
|
+- $ sudo docker run -rm --volumes-from DATA2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
|
|
|
++ $ sudo docker run --rm --volumes-from DATA2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar
|
|
|
+ data/
|
|
|
+ data/sven.txt
|
|
|
+ # compare to the original container
|
|
|
+- $ sudo docker run -rm --volumes-from DATA -v `pwd`:/backup busybox ls /data
|
|
|
++ $ sudo docker run --rm --volumes-from DATA -v `pwd`:/backup busybox ls /data
|
|
|
+ sven.txt
|
|
|
+
|
|
|
+ You can use the basic techniques above to automate backup, migration and
|
|
|
+diff --git a/docs/sources/use/workingwithrepository.md b/docs/sources/use/workingwithrepository.md
|
|
|
+index bd0e274..1cfec63 100644
|
|
|
+--- a/docs/sources/use/workingwithrepository.md
|
|
|
++++ b/docs/sources/use/workingwithrepository.md
|
|
|
+@@ -4,8 +4,6 @@ page_keywords: repo, repositories, usage, pull image, push image, image, documen
|
|
|
+
|
|
|
+ # Share Images via Repositories
|
|
|
+
|
|
|
+-## Introduction
|
|
|
+-
|
|
|
+ A *repository* is a shareable collection of tagged
|
|
|
+ [*images*](../../terms/image/#image-def) that together create the file
|
|
|
+ systems for containers. The repository’s name is a label that indicates
|
|
|
+@@ -27,14 +25,12 @@ repositories. You can host your own Registry too! Docker acts as a
|
|
|
+ client for these services via `docker search, pull, login`{.docutils
|
|
|
+ .literal} and `push`.
|
|
|
+
|
|
|
+-## Repositories
|
|
|
+-
|
|
|
+-### Local Repositories
|
|
|
++## Local Repositories
|
|
|
+
|
|
|
+ Docker images which have been created and labeled on your local Docker
|
|
|
+ server need to be pushed to a Public or Private registry to be shared.
|
|
|
+
|
|
|
+-### Public Repositories
|
|
|
++## Public Repositories
|
|
|
+
|
|
|
+ There are two types of public repositories: *top-level* repositories
|
|
|
+ which are controlled by the Docker team, and *user* repositories created
|
|
|
+@@ -67,7 +63,7 @@ user name or description:
|
|
|
+
|
|
|
+ Search the docker index for images
|
|
|
+
|
|
|
+- -notrunc=false: Don't truncate output
|
|
|
++ --no-trunc=false: Don't truncate output
|
|
|
+ $ sudo docker search centos
|
|
|
+ Found 25 results matching your query ("centos")
|
|
|
+ NAME DESCRIPTION
|
|
|
+@@ -204,7 +200,7 @@ See also
|
|
|
+ [Docker Blog: How to use your own
|
|
|
+ registry](http://blog.docker.io/2013/07/how-to-use-your-own-registry/)
|
|
|
+
|
|
|
+-## Authentication File
|
|
|
++## Authentication file
|
|
|
+
|
|
|
+ The authentication is stored in a json file, `.dockercfg`{.docutils
|
|
|
+ .literal} located in your home directory. It supports multiple registry
|