+*Also note that all OAuth interactions must take place over https
+connections*
+
+## 2. Register Your Application
+
+You will need to register your application with docker.io before users
+will be able to grant your application access to their account
+information. We are currently only allowing applications selectively. To
+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
+ docker.io users.
+- 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
+ application.
+
+When your application is approved you will receive a response from the
+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.
+
+## 3. Endpoints
+
+### 3.1 Get an Authorization Code
+
+Once You have registered you are ready to start integrating docker.io
+accounts into your application! The process is usually started by a user
+following a link in your application to an OAuth Authorization endpoint.
+
+ `GET /api/v1.1/o/authorize/`
+: Request that a docker.io user authorize your application. If the
+ user is not already logged in, they will be prompted to login. The
+ user is then presented with a form to authorize your application for
+ the requested access scope. On submission, the user will be
+ redirected to the specified `redirect_uri` with
+ an Authorization Code.
+
+ Query Parameters:
+
+
+
+ - **client\_id** – The `client_id` given to
+ your application at registration.
+ - **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
+ 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.
+ Currently, the scope options are `profile_read`
+ .literal}, `profile_write`,
+ `email_read`, and `email_write`
+ .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 between the authorization request and callback to protect
+ against CSRF attacks.
+
+ **Example Request**
+
+ Asking the user for authorization.
+
+ GET /api/v1.1/o/authorize/?client_id=TestClientID&response_type=code&redirect_uri=https%3A//my.app/auth_complete/&scope=profile_read%20email_read&state=abc123 HTTP/1.1
+ Host: www.docker.io
+
+ **Authorization Page**
+
+ When the user follows a link, making the above GET request, they
+ will be asked to login to their docker.io account if they are not
+ already and then be presented with the following authorization
+ prompt which asks the user to authorize your application with a
+page_description: Docker's CLI command description and usage
+page_keywords: Docker, Docker documentation, CLI, command line
+
+# Command Line
+
+To list available commands, either run `docker` with
+no parameters or execute `docker help`:
+
+ $ sudo docker
+ Usage: docker [OPTIONS] COMMAND [arg...]
+ -H=[unix:///var/run/docker.sock]: tcp://[host]:port to bind/connect to or unix://[/path/to/socket] to use. When host=[127.0.0.1] is omitted for tcp or path=[/var/run/docker.sock] is omitted for unix sockets, default values are used.
+
+ A self-sufficient runtime for linux containers.
+
+ ...
+
+## Option types
+
+Single character commandline options can be combined, so rather than
+typing `docker run -t -i --name test busybox sh`,
+you can write `docker run -ti --name test busybox sh`
+.literal}.
+
+### Boolean
+
+Boolean options look like `-d=false`. The value you
+see is the default value which gets set if you do **not** use the
+boolean flag. If you do call `run -d`, that sets the
+opposite boolean value, so in this case, `true`, and
+so `docker run -d` **will** run in "detached" mode,
+in the background. Other boolean options are similar – specifying them
+will set the value to the opposite of the default value.
+
+### Multi
+
+Options like `-a=[]` indicate they can be specified
+multiple times:
+
+ docker run -a stdin -a stdout -a stderr -i -t ubuntu /bin/bash
+
+Sometimes this can use a more complex value string, as for
+`-v`:
+
+ docker run -v /host:/container example/mysql
+
+### Strings and Integers
+
+Options like `--name=""` expect a string, and they
+can only be specified once. Options like `-c=0`
+expect an integer, and they can only be specified once.
+
+## `daemon`
+
+ Usage of docker:
+ -D, --debug=false: Enable debug mode
+ -H, --host=[]: Multiple tcp://host:port or unix://path/to/socket to bind in daemon mode, single connection otherwise. systemd socket activation can be used with fd://[socketfd].
+ -G, --group="docker": Group to assign the unix socket specified by -H when running in daemon mode; use '' (the empty string) to disable setting of a group
+ --api-enable-cors=false: Enable CORS headers in the remote API
+ -b, --bridge="": Attach containers to a pre-existing network bridge; use 'none' to disable container networking
+ -bip="": Use this CIDR notation address for the network bridge's IP, not compatible with -b
+ -d, --daemon=false: Enable daemon mode
+ --dns=[]: Force docker to use specific DNS servers
+ --dns-search=[]: Force Docker to use specific DNS search domains
+ -g, --graph="/var/lib/docker": Path to use as the root of the docker runtime
+ --icc=true: Enable inter-container communication
+ --ip="0.0.0.0": Default IP address to use when binding container ports
+ --ip-forward=true: Enable net.ipv4.ip_forward
+ --iptables=true: Enable Docker's addition of iptables rules
+ -p, --pidfile="/var/run/docker.pid": Path to use for daemon PID file
+ Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
+
+ Run a command in a new container
+
+ -a, --attach=map[]: Attach to stdin, stdout or stderr
+ -c, --cpu-shares=0: CPU shares (relative weight)
+ --cidfile="": Write the container ID to the file
+ -d, --detach=false: Detached mode: Run container in the background, print new container id
+ -e, --env=[]: Set environment variables
+ --env-file="": Read in a line delimited file of ENV variables
+ -h, --hostname="": Container host name
+ -i, --interactive=false: Keep stdin open even if not attached
+ --privileged=false: Give extended privileges to this container
+ -m, --memory="": Memory limit (format: <number><optional unit>, where unit = b, k, m or g)
+ -n, --networking=true: Enable networking for this container
+ -p, --publish=[]: Map a network port to the container
+ --rm=false: Automatically remove the container when it exits (incompatible with -d)
+ -t, --tty=false: Allocate a pseudo-tty
+ -u, --user="": Username or UID
+ --dns=[]: Set custom dns servers for the container
+ --dns-search=[]: Set custom DNS search domains for the container
+ -v, --volume=[]: 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.
+ --volumes-from="": Mount all volumes from the given container(s)
+ --entrypoint="": Overwrite the default entrypoint set by the image
+ -w, --workdir="": Working directory inside the container