Browse code

Add credential helper documentation

Signed-off-by: Jake Sanders <jsand@google.com>

Jake Sanders authored on 2016/12/03 09:03:16
Showing 2 changed files
... ...
@@ -142,6 +142,20 @@ property is not set, the client falls back to the default table
142 142
 format. For a list of supported formatting directives, see
143 143
 [**Formatting** section in the `docker stats` documentation](stats.md)
144 144
 
145
+The property `credsStore` specifies an external binary to serve as the default
146
+credential store. When this property is set, `docker login` will attempt to
147
+store credentials in the binary specified by `docker-credential-<value>` which
148
+is visible on `$PATH`. If this property is not set, credentials will be stored
149
+in the `auths` property of the config. For more information, see the
150
+[**Credentials store** section in the `docker login` documentation](login.md#credentials-store)
151
+
152
+The property `credHelpers` specifies a set of credential helpers to use
153
+preferentially over `credsStore` or `auths` when storing and retrieving
154
+credentials for specific registries. If this property is set, the binary
155
+`docker-credential-<value>` will be used when storing or retrieving credentials
156
+for a specific registry. For more information, see the
157
+[**Credential helpers** section in the `docker login` documentation](login.md#credential-helpers)
158
+
145 159
 Once attached to a container, users detach from it and leave it running using
146 160
 the using `CTRL-p CTRL-q` key sequence. This detach key sequence is customizable
147 161
 using the `detachKeys` property. Specify a `<sequence>` value for the
... ...
@@ -171,7 +185,12 @@ Following is a sample `config.json` file:
171 171
       "imagesFormat": "table {{.ID}}\\t{{.Repository}}\\t{{.Tag}}\\t{{.CreatedAt}}",
172 172
       "statsFormat": "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}",
173 173
       "serviceInspectFormat": "pretty",
174
-      "detachKeys": "ctrl-e,e"
174
+      "detachKeys": "ctrl-e,e",
175
+      "credsStore": "secretservice",
176
+      "credHelpers": {
177
+        "awesomereg.example.org": "hip-star",
178
+        "unicorn.example.com": "vcbait"
179
+      }
175 180
     }
176 181
     {% endraw %}
177 182
 
... ...
@@ -63,7 +63,9 @@ you can download them from:
63 63
 ### Usage
64 64
 
65 65
 You need to specify the credentials store in `$HOME/.docker/config.json`
66
-to tell the docker engine to use it:
66
+to tell the docker engine to use it. The value of the config property should be
67
+the suffix of the program to use (i.e. everything after `docker-credential-`).
68
+For example, to use `docker-credential-osxkeychain`:
67 69
 
68 70
 ```json
69 71
 {
... ...
@@ -120,3 +122,31 @@ an example of that payload: `https://index.docker.io/v1`.
120 120
 
121 121
 The `erase` command can write error messages to `STDOUT` that the docker engine
122 122
 will show if there was an issue.
123
+
124
+## Credential helpers
125
+
126
+Credential helpers are similar to the credential store above, but act as the
127
+designated programs to handle credentials for *specific registries*. The default
128
+credential store (`credsStore` or the config file itself) will not be used for
129
+operations concerning credentials of the specified registries.
130
+
131
+### Usage
132
+
133
+If you are currently logged in, run `docker logout` to remove
134
+the credentials from the default store.
135
+
136
+Credential helpers are specified in a similar way to `credsStore`, but
137
+allow for multiple helpers to be configured at a time. Keys specify the
138
+registry domain, and values specify the suffix of the program to use
139
+(i.e. everything after `docker-credential-`).
140
+For example:
141
+
142
+```json
143
+{
144
+  "credHelpers": {
145
+    "registry.example.com": "registryhelper",
146
+    "awesomereg.example.org": "hip-star",
147
+    "unicorn.example.io": "vcbait"
148
+  }
149
+}
150
+```