On this page
Docker Swarm API
The Docker Swarm API is mostly compatible with the Docker Remote API. This document is an overview of the differences between the Swarm API and the Docker Remote API.
Missing endpoints
Some endpoints have not yet been implemented and will return a 404 error.
POST "/images/create" : "docker import" flow not implement
Endpoints which behave differently
GET "/containers/{name:.*}/json"
: New fieldNode
added:
"Node": {
"Id": "ODAI:IC6Q:MSBL:TPB5:HIEE:6IKC:VCAM:QRNH:PRGX:ERZT:OK46:PMFX",
"Ip": "0.0.0.0",
"Addr": "http://0.0.0.0:4243",
"Name": "vagrant-ubuntu-saucy-64",
},
GET "/containers/{name:.*}/json"
:HostIP
replaced by the the actual Node’s IP ifHostIP
is0.0.0.0
GET "/containers/json"
: Node’s name prepended to the container name.GET "/containers/json"
:HostIP
replaced by the the actual Node’s IP ifHostIP
is0.0.0.0
GET "/containers/json"
: Containers started from theswarm
official image are hidden by default, useall=1
to display them.GET "/images/json"
: Use ‘--filter node=<Node name>’ to show images of the specific node.POST "/containers/create"
:CpuShares
inHostConfig
sets the number of CPU cores allocated to the container.
Registry Authentication
During container create calls, the swarm API will optionally accept a X-Registry-Config header. If provided, this header will be passed down to the engine if the image must be pulled to complete the create operation.
The following two examples demonstrate how to utilize this using the existing docker CLI
CLI usage example using username/password:
```bash
Calculate the header
REPO_USER=yourusername read -s PASSWORD HEADER=$(echo “{\“username\”:\“${REPO_USER}\“,\“password\”:\“${PASSWORD}\“}”|base64 -w 0 ) unset PASSWORD echo HEADER=$HEADER
Then add the following to your ~/.docker/config.json
“HttpHeaders”: { “X-Registry-Auth”: “
Now run a private image against swarm:
docker run --rm -it yourprivateimage:latest
* CLI usage example using registry tokens: (Requires engine 1.10 with new auth token support)
```bash
REPO=yourrepo/yourimage
REPO_USER=yourusername
read -s PASSWORD
AUTH_URL=https://auth.docker.io/token
TOKEN=$(curl -s -u "${REPO_USER}:${PASSWORD}" "${AUTH_URL}?scope=repository:${REPO}:pull&service=registry.docker.io" |
jq -r ".token")
HEADER=$(echo "{\"registrytoken\":\"${TOKEN}\"}"|base64 -w 0 )
echo HEADER=$HEADER
# Update the docker config as above, but the token will expire quickly...
Docker Swarm documentation index
© 2017 Docker, Inc.
Licensed under the Apache License, Version 2.0.
Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.
Docker, Inc. and other parties may also have trademark rights in other terms used herein.
https://docs.docker.com/v1.10/swarm/swarm-api/