Commit Graph

38 Commits

Author SHA1 Message Date
8a7585ce8e Client credentials store.
This change implements communication with an external credentials store,
ala git-credential-helper. The client falls back the plain text store,
what we're currently using, if there is no remote store configured.

It shells out to helper program when a credential store is
configured. Those programs can be implemented with any language as long as they
follow the convention to pass arguments and information.

There is an implementation for the OS X keychain in https://github.com/calavera/docker-credential-helpers.
That package also provides basic structure to create other helpers.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: cf721c23e715e545eccf8484e145c2d18d6a6a23
Component: engine
2016-02-29 13:01:31 -05:00
32fac24f32 Apply context changes to the client.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: fe53be4e1785ab4d8cadf246e5f2de419f337adc
Component: engine
2016-02-04 13:59:57 -05:00
9ca2cca984 Introduce a client-side version of resolveAuthConfig
This is similar to the version in the registry package, but uses the
daemon's default index (as opposed to the default for the client's
platform) if using the "official index".

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: ff17cd0bf07fb8fbd811b3a1bf472d701405b1d1
Component: engine
2016-02-03 11:01:29 -08:00
4ce68d47a6 api: client: remove redunant function to encode auth
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
Upstream-commit: 505a56d6da69825e2ef1ebcf985a0a2e143d2966
Component: engine
2016-01-29 14:07:54 +01:00
5dc0139c60 Merge pull request #18840 from aaronlehmann/trust-messages
Send push information to trust code out-of-band
Upstream-commit: 2892de760f412360c5effef9cfc346f2d92eaa4c
Component: engine
2016-01-08 16:56:57 -08:00
d54e9ca21b Send push information to trust code out-of-band
The trust code used to parse the console output of `docker push` to
extract the digest, tag, and size information and determine what to
sign. This is fragile and might give an attacker control over what gets
signed if the attacker can find a way to influence what gets printed as
part of the push output.

This commit sends the push metadata out-of-band. It introduces an `Aux`
field in JSONMessage that can carry application-specific data alongside
progress updates. Instead of parsing formatted output, the client looks
in this field to get the digest, size, and tag from the push.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 65370be888d940899593a001024f53d6b83b4bb0
Component: engine
2016-01-08 10:57:50 -08:00
7467c1af44 Allow user to choose the IP address for the container
Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 2bb3fc1bc522059e9be5bd967b6a5c49917f5d0c
Component: engine
2016-01-08 10:09:16 -08:00
dbccbefa60 Make sure docker api client implements engine-api client.
- Use the master interface in the new repo.
- Use new structures for container create, update and network connect.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: e73ab750edc006324d1019b828c8ec9c551b9717
Component: engine
2016-01-07 21:02:19 -05:00
4ec2693c9e Modify import paths to point to the new engine-api package.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 907407d0b2e5863f0e1b40b93a356bbf03c7b9fb
Component: engine
2016-01-06 19:48:59 -05:00
c43ba74b61 Move the runconfig.Parse() function into the runconfig/opts package.
The parse.go file is used almost exclusively in the client. The few small
functions that are used outside of the client could easily be copied out
when the client is extracted, allowing this runconfig/opts package to
move to the client.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 2b7ad47bd2649c3f164e8b57b31fae313045c8f4
Component: engine
2016-01-04 12:06:29 -05:00
027f002cb3 Move Config and HostConfig from runconfig to types/container.
- Make the API client library completely standalone.
- Move windows partition isolation detection to the client, so the
  driver doesn't use external types.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 7ac4232e70fe7cf7318333cd0890db7f95663079
Component: engine
2015-12-22 13:34:30 -05:00
31f577ea49 Clean up reference type switches
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: eeb2d4c1adbe4e00f9fbcdc70f9ac31997968e1d
Component: engine
2015-12-16 11:58:53 -08:00
020b74d545 Add own reference package wrapper
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 2655954c2dd9d92c2394b04e4262543174c4c038
Component: engine
2015-12-16 11:58:52 -08:00
af8924d4fb Implement docker pull with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: e78f02c4dbc3cada909c114fef6b6643969ab912
Component: engine
2015-12-09 12:05:00 -05:00
964dd12e59 Create interface that clients that talk to the api must fulfill.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 8b15839ee85b291266d07f97d9ad6ca0326d1339
Component: engine
2015-12-09 12:04:58 -05:00
f0680b3c8f Implement docker container create with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 136e8fef64d3dd0e7601ffdad8864b8e1af7c7e5
Component: engine
2015-12-09 12:04:53 -05:00
4c16000788 Implement docker image create with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 1698fe01f58e090e736c611bc8c21e67544251e9
Component: engine
2015-12-09 12:04:53 -05:00
e105a29374 Update daemon and docker core to use new content addressable storage
Add distribution package for managing pulls and pushes. This is based on
the old code in the graph package, with major changes to work with the
new image/layer model.

Add v1 migration code.

Update registry, api/*, and daemon packages to use the reference
package's types where applicable.

Update daemon package to use image/layer/tag stores instead of the graph
package

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 4352da7803d182a6013a5238ce20a7c749db979a
Component: engine
2015-11-24 09:40:25 -08:00
262c5c28a2 Use consistent command description
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: 2b0927c9ac23b66d8a05761801d1c5f882ba8dfb
Component: engine
2015-10-08 08:46:21 -04:00
c5a5900eb9 Documentation improvements and code cleanups for graph package
Expand the godoc documentation for the graph package.

Centralize DefaultTag in the graphs/tag package instead of defining it
twice.

Remove some unnecessary "config" structs that are only used to pass
a few parameters to a function.

Simplify the GetParentsSize function - there's no reason for it to take
an accumulator argument.

Unexport some functions that aren't needed outside the package.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: d4836cd7ec1c085c5a5caa7eb7f5eda4ace10eb6
Component: engine
2015-07-30 14:27:10 -07:00
7e6fe45a4f Use notary library for trusted image fetch and signing
Add a trusted flag to force the cli to resolve a tag into a digest via the notary trust library and pull by digest.
On push the flag the trust flag will indicate the digest and size of a manifest should be signed and push to a notary server.
If a tag is given, the cli will resolve the tag into a digest and pull by digest.
After pulling, if a tag is given the cli makes a request to tag the image.

Use certificate directory for notary requests

Read certificates using same logic used by daemon for registry requests.

Catch JSON syntax errors from Notary client

When an uncaught error occurs in Notary it may show up in Docker as a JSON syntax error, causing a confusing error message to the user.
Provide a generic error when a JSON syntax error occurs.

Catch expiration errors and wrap in additional context.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Upstream-commit: ed13c3abfb242905ec012e8255dc6f26dcf122f6
Component: engine
2015-07-24 14:08:20 -07:00
12234c67d4 cli: new daemon command and new cli package
This patch creates a new cli package that allows to combine both client
and daemon commands (there is only one daemon command: docker daemon).

The `-d` and `--daemon` top-level flags are deprecated and a special
message is added to prompt the user to use `docker daemon`.

Providing top-level daemon-specific flags for client commands result
in an error message prompting the user to use `docker daemon`.

This patch does not break any old but correct usages.

This also makes `-d` and `--daemon` flags, as well as the `daemon`
command illegal in client-only binaries.

Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 96ce3a194aab2807fdd638825b9ea7cb9ba55c36
Component: engine
2015-07-23 19:44:46 -04:00
c8344b3dc3 Windows: Remove meaningless warnings on docker info
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 615681f5177cef974d516d5814195c768e773dd2
Component: engine
2015-07-10 10:06:20 -07:00
a462e56268 api/client: close the returned io.ReadCloser
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
Upstream-commit: 91a496055c3e45ab3fba8e643475adb618581e1f
Component: engine
2015-07-08 10:06:25 +08:00
1e47c22f14 Windows: Security warning based on server OS
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 126529c6d0a20675de8f50939c57f23259d3e763
Component: engine
2015-06-26 10:33:45 -07:00
4cf65f9e74 Merge pull request #13869 from jlhawn/multi_line_help_usage
api/client: Allow for multi-line usage help
Upstream-commit: 86d6a5b11f74e7cc302dc8ccc7ec82119763cb5a
Component: engine
2015-06-15 14:50:17 -07:00
1f7c141bcf api/client: have cli.call() return headers
Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
Upstream-commit: 0cdc3b7539b618778becf233157604698b4e8281
Component: engine
2015-06-10 16:20:13 -07:00
8f5fcaf455 api/client: Allow for multi-line usage help
Subcommands can provide multiple usage synopses.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
Upstream-commit: 4cb0c93f9287d29934894c871d156801122516cd
Component: engine
2015-06-10 16:14:45 -07:00
843afe9ea1 adding nicer help when missing arguments (#11858)
Signed-off-by: Jason Shepherd <jason@jasonshepherd.net>
Upstream-commit: 48231d623fb08eff9da589d6690b10a464df4ec5
Component: engine
2015-05-19 12:02:13 +10:00
aaf186c8e8 Windows: Build load.go
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: aed8f9f76e16ed7acc49fbdef5f4563834ac5167
Component: engine
2015-05-12 14:26:57 -07:00
cad4e1508b Provide a struct to configure cli streaming
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
Upstream-commit: d9639409fd54ee6955793474fa9a5bac1e583c77
Component: engine
2015-05-01 20:23:44 +02:00
c8f1332dce Move CLI config processing out from under registry dir
No logic changes should be in here, just moving things around.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: bb9da6ba9294a8eab8f4dfaf7cf07c57959fe608
Component: engine
2015-04-23 10:18:38 -07:00
44c88b9112 Add .docker/config.json and support for HTTP Headers
This PR does the following:
- migrated ~/.dockerfg to ~/.docker/config.json. The data is migrated
  but the old file remains in case its needed
- moves the auth json in that fie into an "auth" property so we can add new
  top-level properties w/o messing with the auth stuff
- adds support for an HttpHeaders property in ~/.docker/config.json
  which adds these http headers to all msgs from the cli

In a follow-on PR I'll move the config file process out from under
"registry" since it not specific to that any more. I didn't do it here
because I wanted the diff to be smaller so people can make sure I didn't
break/miss any auth code during my edits.

Signed-off-by: Doug Davis <dug@us.ibm.com>
Upstream-commit: 18c9b6c6455f116ae59cde8544413b3d7d294a5e
Component: engine
2015-04-20 13:05:24 -07:00
0f80e9e5da Refactor utils/flags.go, fixes #11892
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
Upstream-commit: 5670c6c6954e08575a6c821137a7ea6d9084af93
Component: engine
2015-03-29 03:22:46 +02:00
0544f5e034 Fix error from daemon no such image even when the image exist
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: 013fb87543a47524efba3c371a1d22afe151287c
Component: engine
2015-03-28 09:07:20 +08:00
04f472f007 Fix for issue 9922: private registry search with auth returns 401
Signed-off-by: Don Kjer <don.kjer@gmail.com>
Upstream-commit: 6b2eeaf8965bac07022752c411b1f8a0f35f9571
Component: engine
2015-03-26 18:59:16 +00:00
ef0a4fa398 Add godoc-style docstrings to Cmd... methods
Signed-off-by: Peggy Li <peggyli.224@gmail.com>
Upstream-commit: b5d0380108dde9e96d51bb01821860a0799dee0d
Component: engine
2015-03-25 14:17:11 -07:00
ff6913868d api/client - The code for all cli commands are in one file #11610
Signed-off-by: Joey Gibson <joey@joeygibson.com>
Upstream-commit: 58690c9cca5995035b721ed6f1337b0ddb932d7a
Component: engine
2015-03-24 23:57:23 -04:00