Commit Graph

1310 Commits

Author SHA1 Message Date
Yong Tang 0f38669267 Use spf13/cobra for docker top
This fix is part of the effort to convert commands to spf13/cobra #23211.

Thif fix coverted command `docker top` to use spf13/cobra

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-06 06:38:43 -07:00
Yong Tang d5971c230d Use spf13/cobra for docker port
This fix is part of the effort to convert commands to spf13/cobra #23211.

Thif fix coverted command `docker port` to use spf13/cobra

Note: As part of this fix, a new function `RequiresMinMaxArgs(min int, max int)`
has been added in cli/required.go. This function restrict the args
to be at least min and at most max.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-06 05:32:34 -07:00
Yong Tang 82f84a67d6 Use spf13/cobra for docker wait
This fix is part of the effort to convert commands to spf13/cobra #23211.

Thif fix coverted command `docker wait` to use spf13/cobra

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-06 05:09:41 -07:00
Vincent Demeester 7878705dcc
Fix TestDiffEmptyArgClientError O:)
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-06 13:58:29 +02:00
Vincent Demeester 9d2e8abd30
Migrate import command to cobra
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-06 13:58:23 +02:00
Sebastiaan van Stijn 07a7c0632f Merge pull request #23210 from vdemeester/migrate-network-command-to-cobra
Use spf13/cobra for docker network and subcommands
2016-06-06 13:51:57 +02:00
Vincent Demeester 9d449d89f7 Merge pull request #23129 from WeiZhang555/print-detailed-error
Print original error for `start`
2016-06-06 13:43:52 +02:00
Vincent Demeester 4bd202b00f
Migrate network command to cobra
- Migrates network command and subcommands (connect, create, disconnect,
  inspect, list and remove) to spf13/cobra
- Create a RequiredExactArgs helper function for command that require an
  exact number of arguments.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-06 10:28:52 +02:00
Vincent Demeester 731bae6749 Merge pull request #23284 from yongtang/23211-spf13-cobra-logs
Use spf13/cobra for docker logs
2016-06-06 09:06:51 +02:00
Vincent Demeester 2becfab55f Merge pull request #23283 from yongtang/23211-spf13-cobra-diff
Use spf13/cobra for docker diff
2016-06-06 09:05:18 +02:00
Vincent Demeester c35d9f2611 Merge pull request #23268 from WeiZhang555/cobra-start
Migrate start command to cobra
2016-06-06 08:59:42 +02:00
Zhang Wei c498d4700d Bug fix: `docker run -i --restart always` hangs.
e.g.
```
$ docker run -i --restart always busybox sh
pwd
/
exit 11

<...hang...>
```

This is because Attach(daemon side) and Run(client side) both hangs on
WaitStop, if container is restarted too quickly, wait won't have chance
to get exit signal.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-06-06 10:16:07 +08:00
Zhang Wei b4740e3021 Log and print original error for `start`
Currently `start` will hide some errors and throw a consolidated error,
which will make it hard to debug because developer can't find the
original error.

This commit allow daemon to log original errors first.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-06-06 10:13:49 +08:00
Zhang Wei 4f3625a288 Migrate start command to cobra
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-06-06 09:53:18 +08:00
Yong Tang 8ea7733a63 Use spf13/cobra for docker unpause
This fix is part of the effort to convert commands to spf13/cobra #23211.

Thif fix coverted command `docker unpause` to use spf13/cobra

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-05 17:29:52 -07:00
Yong Tang 4f4b59cc43 Use spf13/cobra for docker logs
This fix is part of the effort to convert commands to spf13/cobra #23211.

Thif fix coverted command `docker logs` to use spf13/cobra

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-05 15:51:35 -07:00
Alexander Morozov e94be2f639 Merge pull request #23242 from vdemeester/migrate-rmi-to-cobra
Use spf13/cobra for docker rmi
2016-06-05 15:29:01 -07:00
Yong Tang 5899afae52 Use spf13/cobra for docker diff
This fix is part of the effort to convert commands to spf13/cobra #23211.

Thif fix coverted command `docker diff` to use spf13/cobra

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-05 15:13:55 -07:00
Vincent Demeester 60e48bd6bd
Use spf13/cobra for docker rmi
Moves image command rmi to `api/client/image/remove.go` and use cobra :)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-05 22:40:35 +02:00
Brian Goff 1a1083ae75 Merge pull request #23247 from thaJeztah/carry-22033-docker-ps-format-output
[Carry 22033] Add a check for size field in custom format string
2016-06-05 16:39:22 -04:00
Vincent Demeester b259558336 Merge pull request #23276 from yongtang/23211-spf13-cobra-stop
Use spf13/cobra for docker stop
2016-06-05 22:37:15 +02:00
Sebastiaan van Stijn c764234c3b Merge pull request #23267 from vdemeester/migrate-export-to-cobra
Use spf13/cobra for docker export
2016-06-05 20:05:51 +02:00
Yong Tang 63d66d2796 Use spf13/cobra for docker stop
This fix is part of the effort to convert commands to spf13/cobra #23211.

Thif fix coverted command `docker stop` to use spf13/cobra

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-05 10:25:21 -07:00
Vincent Demeester 372063ce1b
Deprecated the old 3-args form of `docker import`
It's been deprecated since November 2013 and v0.6.7. Removing the cli
side of it.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-05 18:07:34 +02:00
Vincent Demeester b25e64183c
Migrate export command to cobra
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-05 16:42:19 +02:00
Daniel Nephin 5ab2434225 Convert 'docker create' to use cobra and pflag
Return the correct status code on flag parsins errors.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-06-04 13:57:30 +02:00
Daniel Nephin a77f2450c7 Convert 'docker run' to a cobra command and to use pflags
Move container options into a struct so that tests should pass.
Remove unused FlagSet arg from Parse
Disable interspersed args on docker run

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-06-04 13:55:35 +02:00
Paulo Ribeiro 55cdb6dcd0
Add a check for size field in custom format string
This fix addresses an issue where including the `{{.Size}}` format
field in conjunction with `docker ps --format`, without the `--size`
flag, would not correctly display the size of containers.

This is done by doing a check on the custom format string, and setting
the size flag on the options struct if the field is found. This struct
gets passed to the engine API which then generates the correct query.

An integration test is included which runs `docker ps --format "table
{{.Size}}"` without `--size`, and checks that the returned output is
not `0 B`.

Fixes #21991

As suggested by @cpuguy83, a parser is implemented to process the format
string as a template, and then traverses the template tree to determine
if `.Size` was called.

This was then reworked by making use of template execution with a
pre-processor struct that will set the `--size` option if the template
calls for the field.

The pre-processor now also sets a boolean in the context passed to the
writer. There is an integration test for this that calls `docker ps
--size --format "{{.Size}}"` and then checks that `size: {{.Size}}` is
not appended, as it would with previous behavior.

Finally, a change was made to the formatter to not automatically
add a `{{.Size}}` if a custom format is provided.

Signed-off-by: Paulo Ribeiro <paigr.io@gmail.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-03 21:59:10 +02:00
Vincent Demeester a11ef10631
Use spf13/cobra for docker search
- Move image command search to `api/client/image/search.go`
- Use cobra :)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-03 19:50:01 +02:00
Yong Tang 92f10fe228 Add `--limit` option to `docker search`
This fix tries to address the issue raised in #23055.
Currently `docker search` result caps at 25 and there is
no way to allow getting more results (if exist).

This fix adds the flag `--limit` so that it is possible
to return more results from the `docker search`.

Related documentation has been updated.

Additional tests have been added to cover the changes.

This fix fixes #23055.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-02 19:12:20 -07:00
Sven Dowideit 98c245c9e6 Merge pull request #23193 from allencloud/fix-typos
use grep to find all a/an typos
2016-06-02 18:45:08 -07:00
Vincent Demeester 6b7f12650d
Update ContainerStart calls to use options now
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-06-02 16:56:13 +02:00
allencloud c1be45fa38 fix typos
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-06-02 17:17:22 +08:00
Alexander Morozov 28676fc04b Merge pull request #22769 from dnephin/integrate_cobra
Use spf13/cobra for the cli
2016-06-01 14:18:23 -07:00
Yong Tang 4455ec14b8 Remove deprecated -f flag on docker tag
The -f flag on docker tag has been deprecated in docker 1.10 and
is expected to be removed in docker 1.12.

This fix removed the -f flag on docker tag and also updated
deprecated.md.

NOTE: A separate pull request for engine-api has been opened to
cover the related changes.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-06-01 09:44:25 -07:00
Daniel Nephin fc5a4514fb Use Args in cobra.Command to validate args.
Also re-use context.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-05-31 15:43:16 -07:00
Daniel Nephin 667dcb0e8e Update usage and help to (almost) match the existing docker behaviour
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-05-31 14:41:37 -07:00
Daniel Nephin 69264beb40 Migrate volume commands to cobra.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-05-31 14:41:37 -07:00
Daniel Nephin 6bc3e23f65 Refactor cli inspector to support new inspects.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-05-31 14:41:37 -07:00
Vincent Demeester 34e0a01de2 Merge pull request #23091 from allencloud/print-network-name-when-rm
print network name when rm successfully
2016-05-30 13:33:29 +02:00
allencloud 27ebd79222 print network name when rm successfully
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-05-29 23:42:45 +08:00
Sebastiaan van Stijn 4a031f1f80 Merge pull request #22621 from yongtang/05092016-remove-deprecated-command-line-short-variant-options
Un-deprecated command line short variant options of `-c`
2016-05-27 23:12:08 +02:00
Vincent Demeester 24d2ee8c48 Merge pull request #22984 from Microsoft/jjh/ttymessage
Better error on attach no tty
2016-05-27 16:57:36 +02:00
Yong Tang fea7acf0e9 Un-deprecated command line short variant options of `-c`.
Since 1.9, the following short variant options have been
deprecated in favor of their long variants:
`docker run -c (--cpu-shares)`
`docker build -c (--cpu-shares)`
`docker create -c (--cpu-shares)`
`docker update -c (--cpu-shares)`

However, `-c` is still widely used and is considered as
a convenient option for swarm (see #16271).

This fix undeprecated the command line short
variant options of `-c` and updated the deprecated.md.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-05-26 08:22:27 -07:00
Sebastiaan van Stijn 75109b32db Merge pull request #22861 from vdemeester/daemon-images-search-refactoring
Daemon images search refactoring
2016-05-26 12:34:31 +02:00
John Howard f7541b00b0 Better error on attach no tty
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-05-25 13:32:48 -07:00
John Howard 541fba13fc Error login from non TTY
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-05-25 09:29:50 -07:00
Vincent Demeester 636c276f67
Add Unit test to daemon.SearchRegistryForImages…
… and refactor a little bit some daemon on the way.

- Move `SearchRegistryForImages` to a new file (`daemon/search.go`) as
  `daemon.go` is getting pretty big.
- `registry.Service` is now an interface (allowing us to decouple it a
  little bit and thus unit test easily).
- Add some unit test for `SearchRegistryForImages`.
- Use UniqueExactMatch for search filters
- And use empty restore id for now in client.ContainerStart.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-05-24 11:07:11 +02:00
Vincent Demeester 4c7f0d268f
Rework usage of context.Context in api/client
Make better default usage on context.Context on the `api/client` package
to share the context (it is useless if not shared, which was the case
for a lot of commands).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-05-21 15:57:57 +02:00
Fabrizio Soppelsa e009ebdf4c
Add a --filter option to `docker search`
The filtering is made server-side, and the following filters are
supported:

* is-official (boolean)
* is-automated (boolean)
* has-stars (integer)

Signed-off-by: Fabrizio Soppelsa <fsoppelsa@mirantis.com>
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-05-20 13:41:28 +02:00
Arnaud Porterie 28452ca783 Merge pull request #22356 from allencloud/close-http-response-body-when-attaching
close http response body when attaching
2016-05-11 12:44:35 -10:00
Yong Tang 1f0d5aba50 Remove deprecated Docker Content Trust ENV passphrase variables
Since 1.9, Docker Content Trust Offline key has been renamed to
Root key and the Tagging key has been renamed to Repository key.
The corresponding environment variables
`DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE`
`DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE`
have also been deprecated and renamed to
`DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE`
`DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE`

This fix removed the deprecated ENV passphrase variables for
1.12 and updated the docs.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-05-07 14:25:28 -07:00
Vincent Demeester 08ec3606f1 Merge pull request #21889 from cpuguy83/logscmd_add_attrs
Add support for reading logs extra attrs
2016-05-07 20:26:33 +02:00
Brian Goff bd9d14a07b Add support for reading logs extra attrs
The jsonlog logger currently allows specifying envs and labels that
should be propagated to the log message, however there has been no way
to read that back.

This adds a new API option to enable inserting these attrs back to the
log reader.

With timestamps, this looks like so:
```
92016-04-08T15:28:09.835913720Z foo=bar,hello=world hello
```

The extra attrs are comma separated before the log message but after
timestamps.

Without timestaps it looks like so:
```
foo=bar,hello=world hello
```

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-05-06 20:42:20 -04:00
cyli d869d2b0a0 Update trust.go to reflect NotaryRepository API changes:
- Update now returns only an error
 - NewNotaryRepository now takes a trustpinning configuration - we will provide an empty one for now.

Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-05-06 10:59:28 -07:00
allencloud 54d09c6c2d close http response body when attaching
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-05-06 16:58:22 +08:00
Mrunal Patel 97d95604e0 Update engine-api to 1fb8f09960cc32b9648495a422c960fb2a4f8a09
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2016-05-05 18:36:09 -04:00
Vincent Demeester 54ebe42de9
Fix #22240 do not pull all the tags implicitely
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-05-01 14:46:04 +02:00
David Calavera 90dfb3dacc Merge pull request #22372 from dnephin/cli_cleanup
Reorganize client and cli packages
2016-04-29 17:31:39 -07:00
Brian Goff 5c8950e84d Remove reflection on CLI init
before:
```
$ time docker --help
real  0m0.177s
user  0m0.000s
sys 0m0.040s
```

after:
```
$ time docker --help
real  0m0.010s
user  0m0.000s
sys 0m0.000s
```

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-04-29 11:57:46 -04:00
Daniel Nephin 30e3620eae Refactor cliconfig so that the default constructor can exist in the package.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-04-27 14:25:47 -04:00
Daniel Nephin 33c9edaf6c Cleanup the structure of the cli package.
Move all flags into cli/flags
Move usage help into cli/usage.go

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-04-27 14:25:47 -04:00
allencloud e78884dafd make Insecure registries uppercase like other keys in docker info
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-04-25 18:44:34 +08:00
Vincent Demeester 4e5ad97f5b Merge pull request #22138 from wenchma/deprecated_since_before
Deprecated of docker ps since and before options for v1.12
2016-04-24 11:23:21 +02:00
Vincent Demeester 7534f17261
Update code for latest engine-api
- Update CopyToContainer uses
- Use engine-api/types/versions instead of pkg/version

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-04-19 16:56:54 +02:00
Wen Cheng Ma 91b7157064 Deprecated of docker ps since and before options for v1.12
Deprecated note https://github.com/docker/docker/blob/master/docs/deprecated.md#docker-ps-before-and-since-options

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-04-19 18:13:55 +08:00
David Calavera 7fd53f7c71 Merge pull request #21657 from vdemeester/update-engine-api
Update engine api with required arguments
2016-04-18 19:47:22 -07:00
Vincent Demeester b9c94b70bf
Update client code with api changes
Using new methods from engine-api, that make it clearer which element is
required when consuming the API.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-04-15 12:48:01 +02:00
Brian Goff ff08036cc0 Do not remove containers from stats list on err
Before this patch, containers are silently removed from the stats list
on error. This patch instead will display `--` for all fields for the
container that had the error, allowing it to recover from errors.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-04-13 16:36:34 -04:00
Lei Jitang 96d7db665b Fix docker load progressbar, fixes #21957
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-04-12 22:45:42 -04:00
Yong Tang 0e3846e280 Change HumanSize to BytesSize for memory output in `docker stats`.
This fix tries to fix the discrepancy between `docker stats` and
`docker run` where `docker run` uses RAMInBytes for all memory
related inputs but `docker stats` uses HumanSize for all memory
related outputs.

To be consistent, `docker stats` needs to use BytesSize for all
memory related outputs to conform to RAMInBytes in `docker run`.

This fix addresses this issue. As BytesSize is used, the test
cases needs to be adjusted to match `KiB/MiB/GiB` instead of
`KB/MB/GB`.

The documentation has also been updated.

This fix fixes #21765.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-04-08 20:01:50 +00:00
Vincent Demeester 5709f8e422 Merge pull request #21092 from WeiZhang555/fix-21064-detach-keys
Client print error when specify wrong detach keys
2016-04-06 22:14:14 +02:00
Victor Vieux 68ade49ada do not trim one char from {{.Names}} each time it is used in --format
Signed-off-by: Victor Vieux <vieux@docker.com>
2016-04-06 11:04:13 -07:00
Zhang Wei 91e5bb9541 Let client print error when speicify wrong detach keys
Fix #21064

Let client print error message explicitly when user specifies wrong
detach keys.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-04-04 15:35:55 +08:00
Robin Naundorf 737219bbdb Fixing help text of "docker network --help" to be consistend
Changed from hashmap to multidimensional array as in "docker volume --help"
closes #21710

Signed-off-by: Robin Naundorf <r.naundorf@fh-muenster.de>
2016-04-01 14:14:09 +02:00
Sebastiaan van Stijn 4a7bd7eaef Merge pull request #20410 from tkopczynski/20236-info-insecure-registry
Add insecure registries to docker info
2016-03-31 16:39:25 -07:00
cyli df9cc3d922 Request pull credentials when using trusted reference
Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-03-31 10:56:19 -07:00
Tomasz Kopczynski 44a50abe7b Add insecure registries to docker info
Signed-off-by: Tomasz Kopczynski <tomek@kopczynski.net.pl>
2016-03-31 08:27:24 +02:00
allencloud 276a20dd42 upper case docker info details
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-28 18:47:04 +08:00
Vincent Demeester 8f4b7a3361 Removing DockerCli.pullImage as it's never used
This function is never used nor exported. It has been superseeded by
pullImageCustomOut.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-03-25 17:41:19 +01:00
Alexander Morozov 641bd7652f Merge pull request #20589 from coolljt0725/fix_restore_terminal
cli: move setRawTerminal and restoreTerminal to holdHijackedConnection
2016-03-24 22:42:24 -07:00
Lei Jitang 66d3dcc6f7 cli: move setRawTerminal and restoreTerminal to holdHijackedConnection
In this way, we can restore the Terminal as soon as possible once the hijacked
connection end. This not only fix weird output if cli enable -D, but also
remove duplicate code.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-03-24 21:25:50 -04:00
Lei Jitang cb5b8767b6 Cleanup: remove redundant period
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-03-24 08:26:04 -04:00
Tibor Vass 8b8fcb796f Merge pull request #21303 from riyazdf/notary-vendor-docker1.11
vendor notary for docker1.11
2016-03-22 17:57:17 -04:00
Tibor Vass 53d2e5e9d7 Merge pull request #21270 from ehazlett/resource-labels
Add Label support for Images (build), Networks and Volumes on Creation
2016-03-22 15:12:33 -04:00
Riyaz Faizullabhoy ab3772f72f vendor notary for docker1.11
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-22 11:28:19 -07:00
Evan Hazlett fc214b4408 add label support for build, networks and volumes
build: implement --label

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

network: allow adding labels on create

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

volume: allow adding labels on create

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

add tests for build, network, volume

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vendor: libnetwork and engine-api bump

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2016-03-22 11:49:06 -04:00
Vincent Demeester 666563b190 Merge pull request #21046 from cyli/use-notary-cli
Sign all first-level delegation roles when doing a trusted push
2016-03-22 07:42:21 +01:00
Aaron Lehmann c44e7a3e63 Pass upstream client's user agent through to registry on operations beyond pulls
This adds support for the passthrough on build, push, login, and search.

Revamp the integration test to cover these cases and make it more
robust.

Use backticks instead of quoted strings for backslash-heavy string
contstands.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-21 14:31:47 -07:00
Arnaud Porterie 278d3962a8 Merge pull request #21306 from mgoelzer/issue20001-nodeps
Pass upstream client's user agent through to registry on image pulls
2016-03-21 14:26:59 -07:00
cyli 623ccc2f31 Pull, Pull-A, and Build will only pull tags from the targets role or the targets/releases role.
It will ignore tags in all other delegation roles.

Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-03-21 10:56:49 -07:00
Riyaz Faizullabhoy ca57f4e6a8 Add test for targets/releases preference when pulling
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-21 10:56:42 -07:00
cyli 497a58e6e4 Trusted push now adds the tag to every first level delegation role for which we have keys
and for which the tag conforms to path restrictions.

Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-03-21 10:56:09 -07:00
Antonio Murdaca 5008a34072 Merge pull request #21333 from cpuguy83/sigpipe
Don't forward SIGPIPE from client to container
2016-03-21 15:09:13 +01:00
Doug Davis 7942160638 Add the name of the exe that's trying to be executed
so that the user knows what's not in the container but should be.
Its not always easy for the user to know what exact command is being run
when the 'docker run' is embedded deep in something else, like a Makefile.
Saw this while dealing with the containerd migration.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-03-20 18:15:46 -07:00
Mike Goelzer d1502afb63 Pass upstream client's user agent through to registry on image pulls
Changes how the Engine interacts with Registry servers on image pull.
Previously, Engine sent a User-Agent string to the Registry server
that included only the Engine's version information.  This commit
appends to that string the fields from the User-Agent sent by the
client (e.g., Compose) of the Engine.  This allows Registry server
operators to understand what tools are actually generating pulls on
their registries.

Signed-off-by: Mike Goelzer <mgoelzer@docker.com>
2016-03-20 04:30:09 -07:00
Brian Goff 81707de23f Don't forward SIGPIPE from client to container
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-18 16:50:18 -04:00
Tonis Tiigi 9c4570a958 Replace execdrivers with containerd implementation
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-03-18 13:38:32 -07:00
Kenfe-Mickael Laventure cb8cc56c22 Fix inspect to print bind mounts source path instead of an empty string
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-17 15:42:45 -07:00
Alexander Morozov 04c7d94c71 Merge pull request #21273 from jfrazelle/remove-dead-code
remove dead code
2016-03-17 09:16:02 -07:00
David Calavera b1e9a5eaf1 Merge pull request #21258 from runcom/res.body.leaks
*: fix response body leaks
2016-03-16 19:20:10 -07:00
Jessica Frazelle 8dd88afb5b
remove dead code
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-03-16 19:15:14 -07:00
Vincent Demeester 8567286ed6 Update api/client file to use context
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-03-16 20:25:09 +01:00
Antonio Murdaca f0d83c4cdb *: fix response body leaks
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-16 17:15:42 +01:00
David Calavera df20b5cfd3 Merge pull request #21002 from tonistiigi/fix-id-noprefix
Fix docker run for 64 byte hex ID
2016-03-14 10:17:38 -07:00
Vincent Demeester b9361f02da Merge pull request #20970 from dmcgowan/login-oauth
OAuth support for registries
2016-03-14 15:49:44 +01:00
Aleksa Sarai 084241a37b client: stats: fill in stats info on client
This code was lost in a rebase in the PIDs cgroup merge, fix it so that
`docker stats` actually shows statistics from the PIDs cgroup.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-03-12 14:45:30 +11:00
Tonis Tiigi 16e4c4e481 Fix docker run for 64 byte hex ID
Fixes #20972

Also makes sure there is no check to registry if
no image is found for the prefixed IDs.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-11 10:02:47 -08:00
Alexander Morozov 943ae26bc0 Merge pull request #20958 from calavera/basic_function_templates
Provide basic string manipulation functions for template executions.
2016-03-10 08:08:32 -08:00
David Calavera 8514880997 Provide basic string manupilation functions for template executions.
This change centralizes the template manipulation in a single package
and adds basic string functions to their execution.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-09 19:37:12 -05:00
Aaron Lehmann ba0aa5311a Add support for identity tokens in client credentials store
Update unit test and documentation to handle the new case where Username
is set to <token> to indicate an identity token is involved.

Change the "Password" field in communications with the credential helper
to "Secret" to make clear it has a more generic purpose.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-09 13:47:57 -08:00
Aaron Lehmann a6d0c66b4c Change Docker client to support OAuth-based flow for login
This mechanism exchanges basic auth credentials for an identity token.
The identity token is used going forward to request scoped-down tokens
to use for registry operations.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-09 13:47:57 -08:00
Derek McGowan e896d1d7c4 Add support for identity token with token handler
Use token handler options for initialization.
Update auth endpoint to set identity token in response.
Update credential store to match distribution interface changes.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2016-03-09 13:47:57 -08:00
Jessica Frazelle 69cf03700f
pids limit support
update bash commpletion for pids limit

update check config for kernel

add docs for pids limit

add pids stats

add stats to docker client

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-03-08 07:55:01 -08:00
Brian Goff 160abfbeea Merge pull request #20803 from WeiZhang555/empty-stats-no-stream
Bug fix: stats --no-stream always print zero values
2016-03-05 08:47:41 -05:00
Zhang Wei ea86c30a4a Bug fix: stats --no-stream always print zero values
`docker stats --no-stream` always print zero values.

```
$ docker stats --no-stream
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %
NET I/O             BLOCK I/O
7f4ef234ca8c        0.00%               0 B / 0 B           0.00%
0 B / 0 B           0 B / 0 B
f05bd18819aa        0.00%               0 B / 0 B           0.00%
0 B / 0 B           0 B / 0 B

```

This commit will let docker client wait until it gets correct stat
data before print it on screen.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-03-05 13:22:26 +08:00
Antonio Murdaca 44b56341d9 Merge pull request #20943 from vdemeester/20942-fix-containerPsContext
Fix #20942 TestContainerPsContext unit test
2016-03-04 16:49:47 +01:00
Vincent Demeester 2787072a65 Try to fix #20942 TestContainerPsContext unit test
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-03-04 14:20:41 +01:00
Arnaud Porterie 52d4fff0d7 Merge pull request #20890 from riyazdf/notary-snapshot-remote
Rotate snapshot key to server when initializing new notary repos
2016-03-03 08:45:06 -08:00
Sebastiaan van Stijn 15e68dc8ee Merge pull request #20863 from thaJeztah/add-kernel-memory-warning
Add KernelMemory to "info" and show warning
2016-03-03 13:14:51 +01:00
Riyaz Faizullabhoy f75622e52a Rotate snapshot key to server when initializing new notary repos
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-02 16:51:32 -08:00
David Calavera f4cb5f4a32 Merge pull request #20824 from runcom/fix-creds-store
cliconfig: credentials: support getting all auths
2016-03-02 16:37:57 -08:00
Sebastiaan van Stijn 747a486b4a Add KernelMemory to "info" and show warning
This change adds "KernelMemory" to the /info endpoint and
shows a warning if KernelMemory is not supported by the kernel.

This makes it more consistent with the other memory-limit
options.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-02 23:32:25 +01:00
Vincent Demeester 508a17baba Merge pull request #20388 from hqhq/hq_add_cgroup_driver_info
Add CgroupDriver to docker info
2016-03-02 23:17:27 +01:00
Antonio Murdaca 0eccc3838e api: client: fix login/logout with creds store
Make sure credentials are removed from the store at logout (not only
in the config file). Remove not needed error check and auth erasing
at login (auths aren't stored anywhere at that point).
Add regression test.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-02 17:51:50 +01:00
Antonio Murdaca 44152144ca cliconfig: credentials: support getting all auths
docker build is broken because it sends to the daemon the full
cliconfig file which has only Email(s). This patch retrieves all auth
configs from the credentials store.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-02 17:48:56 +01:00
Qiang Huang ca89c329b9 Add CgroupDriver to docker info
Fixes: #19539

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-03-02 20:07:06 +08:00
Alexander Morozov 0a352e1a90 Remove some unused structs and fields
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-01 09:59:29 -08:00
Aaron Lehmann 2453262e7b Merge pull request #20565 from kencochrane/remove_email_on_login
Remove email address field from login
2016-03-01 08:02:16 -08:00
Ken Cochrane aee260d4eb Remove email address field from login
This removes the email prompt when you use docker login, and also removes the ability to register via the docker cli. Docker login, will strictly be used for logging into a registry server.

Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
2016-02-29 17:53:27 -08:00
Arnaud Porterie 187a2fb403 Merge pull request #20792 from cpuguy83/more_stats_client_cleanup
Fixes issue with stats on start event
2016-02-29 17:33:37 -08:00
Brian Goff df95474885 Fixes issue with stats on start event
In situations where a client is called like `docker stats` with no
arguments or flags, if a container which was already created but not
started yet is then subsequently started it will not be added to the
stats list as expected.

Also splits some of the stats helpers to a separate file from the stats
CLI which is already quite long.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-29 16:34:42 -05:00
Sebastiaan van Stijn 29ce086e38 Merge pull request #20107 from calavera/client_auth_store
Client credentials store.
2016-02-29 22:31:34 +01:00
David Calavera 1ba0358a10 Merge pull request #20307 from HuKeping/trust
Refactor trust push
2016-02-29 11:12:09 -08:00
David Calavera cf721c23e7 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>
2016-02-29 13:01:31 -05:00
Arnaud Porterie 3041aa53ef Fix client-side race in `docker stats`
Subscribe to events and monitor for new containers before the initial
listing of currently running containers.

This fixes a race where a new container could appear between the first
list call but before the client was subscribed to events, leading to a
container never appearing in the output of `docker stats`.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-28 18:44:23 -08:00
HuKeping 1a68662736 Messaging both succeed and failure about the signing
It would be good to add a clearer failure or succeed message.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-27 15:46:41 +08:00
HuKeping 5dddf7e98e Refactor trust push
Unlike the untrusted push without an explicit tag will push all
tags for that repo, the trusted push would expect an explicit tag.

So that the code that attempts to do smart logic around signing multiple
tags should be removed.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-27 15:46:35 +08:00
David Calavera a793564b25 Remove static errors from errors package.
Moving all strings to the errors package wasn't a good idea after all.

Our custom implementation of Go errors predates everything that's nice
and good about working with errors in Go. Take as an example what we
have to do to get an error message:

```go
func GetErrorMessage(err error) string {
	switch err.(type) {
	case errcode.Error:
		e, _ := err.(errcode.Error)
		return e.Message

	case errcode.ErrorCode:
		ec, _ := err.(errcode.ErrorCode)
		return ec.Message()

	default:
		return err.Error()
	}
}
```

This goes against every good practice for Go development. The language already provides a simple, intuitive and standard way to get error messages, that is calling the `Error()` method from an error. Reinventing the error interface is a mistake.

Our custom implementation also makes very hard to reason about errors, another nice thing about Go. I found several (>10) error declarations that we don't use anywhere. This is a clear sign about how little we know about the errors we return. I also found several error usages where the number of arguments was different than the parameters declared in the error, another clear example of how difficult is to reason about errors.

Moreover, our custom implementation didn't really make easier for people to return custom HTTP status code depending on the errors. Again, it's hard to reason about when to set custom codes and how. Take an example what we have to do to extract the message and status code from an error before returning a response from the API:

```go
	switch err.(type) {
	case errcode.ErrorCode:
		daError, _ := err.(errcode.ErrorCode)
		statusCode = daError.Descriptor().HTTPStatusCode
		errMsg = daError.Message()

	case errcode.Error:
		// For reference, if you're looking for a particular error
		// then you can do something like :
		//   import ( derr "github.com/docker/docker/errors" )
		//   if daError.ErrorCode() == derr.ErrorCodeNoSuchContainer { ... }

		daError, _ := err.(errcode.Error)
		statusCode = daError.ErrorCode().Descriptor().HTTPStatusCode
		errMsg = daError.Message

	default:
		// This part of will be removed once we've
		// converted everything over to use the errcode package

		// FIXME: this is brittle and should not be necessary.
		// If we need to differentiate between different possible error types,
		// we should create appropriate error types with clearly defined meaning
		errStr := strings.ToLower(err.Error())
		for keyword, status := range map[string]int{
			"not found":             http.StatusNotFound,
			"no such":               http.StatusNotFound,
			"bad parameter":         http.StatusBadRequest,
			"conflict":              http.StatusConflict,
			"impossible":            http.StatusNotAcceptable,
			"wrong login/password":  http.StatusUnauthorized,
			"hasn't been activated": http.StatusForbidden,
		} {
			if strings.Contains(errStr, keyword) {
				statusCode = status
				break
			}
		}
	}
```

You can notice two things in that code:

1. We have to explain how errors work, because our implementation goes against how easy to use Go errors are.
2. At no moment we arrived to remove that `switch` statement that was the original reason to use our custom implementation.

This change removes all our status errors from the errors package and puts them back in their specific contexts.
IT puts the messages back with their contexts. That way, we know right away when errors used and how to generate their messages.
It uses custom interfaces to reason about errors. Errors that need to response with a custom status code MUST implementent this simple interface:

```go
type errorWithStatus interface {
	HTTPErrorStatusCode() int
}
```

This interface is very straightforward to implement. It also preserves Go errors real behavior, getting the message is as simple as using the `Error()` method.

I included helper functions to generate errors that use custom status code in `errors/errors.go`.

By doing this, we remove the hard dependency we have eeverywhere to our custom errors package. Yes, you can use it as a helper to generate error, but it's still very easy to generate errors without it.

Please, read this fantastic blog post about errors in Go: http://dave.cheney.net/2014/12/24/inspecting-errors

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-26 15:49:09 -05:00
Sebastiaan van Stijn 034a1a8dfd Merge pull request #20017 from calavera/expose_volumes_in_ps
Add mounts to docker ps.
2016-02-24 11:08:21 +01:00
David Calavera bd4fb00fb6 Add mounts to docker ps.
- Allow to filter containers by volume with `--filter volume=name` and `filter volume=/dest`.
- Show their names in the list with the custom format `{{ .Mounts }}`.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-23 12:10:24 -05:00
Zhang Wei ff3ea4c90f Update RestartPolicy of container
Add `--restart` flag for `update` command, so we can change restart
policy for a container no matter it's running or stopped.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-20 17:06:32 +08:00
Brian Goff 0e72550c5b Merge pull request #20383 from HackToday/addsort
Make network ls output order
2016-02-19 15:42:48 -05:00
Brian Goff 48701888c2 Merge pull request #20389 from HackToday/addvolumesupport
Make volume ls output order
2016-02-19 15:41:34 -05:00
David Calavera 2e6c841b82 Merge pull request #17513 from aidanhs/aphs-expose-ipv6-default-bridge
Expose bridge IPv6 setting to `docker network inspect`
2016-02-18 10:35:04 -08:00
Kai Qiang Wu(Kennan) 60ffd6c880 Make volume ls output order
Fixes: #20384
Add order support for volume ls to make it easy
to external users to consume.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-17 09:01:27 +00:00
Kai Qiang Wu(Kennan) 838ed1866b Make network ls output order
Fixes: #20328
We sort network ls output with incresing order,
it may make output more easy to consume for users.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-17 04:35:36 +00:00
HuKeping 6b8a2a0fe4 Bugfix: the actions when pull from notary should not contains `push`
Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-17 10:36:09 +08:00
David Calavera 80187df257 Merge pull request #19986 from vishh/expose-root-dir
Expose docker's root directory by default as part of `docker info`.
2016-02-16 12:57:57 -08:00
Vishnu kannan 6a3176d4fe Expose docker's root directory by default as part of `docker info`.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 10:40:15 -08:00
Aidan Hobson Sayers d736a9d2c3 Add docs for --ipv6 option, also add --internal as appropriate
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-02-12 01:42:15 +00:00
Victor Vieux 99a396902f fix common misspell
Signed-off-by: Victor Vieux <vieux@docker.com>
2016-02-11 15:49:36 -08:00
Aidan Hobson Sayers dfb00652aa Expose bridge IPv6 setting to `docker network inspect`
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-02-11 22:13:47 +00:00
Vincent Demeester 312f5e435b Move getContext… function to builder package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-11 20:59:59 +01:00
John Howard d4b0732499 Windows: Fix 'isolation'
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 13:19:19 -08:00
David Calavera e18eb6ef39 Merge pull request #20165 from vdemeester/move-validatecontextdirectory-to-builder
Move validateContextDirectory to builder package.
2016-02-10 08:35:25 -08:00
Antonio Murdaca c2ebdb3e57 Merge pull request #19835 from ncdc/resize-after-attach
Move resize after attaching
2016-02-10 15:32:51 +01:00
Vincent Demeester fc6122a947 Move validateContextDirectory to builder package.
This feels like it's where it belongs and it makes it exported
again (which is needed for libcompose that was using it before 1.10).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-09 22:19:09 +01:00
Lei Jitang fae09e2569 Add progress bar to docker load
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-05 02:24:23 -05:00
David Calavera fe53be4e17 Apply context changes to the client.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-04 13:59:57 -05:00
Arnaud Porterie 243d0d6bbe Remove unnecessary call to /info
Avoid using the `/info` endpoint in the `login` and `logout` workflows
when the Registry endpoint is overriden by the user through the command
line.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-03 13:10:25 -08:00
Tibor Vass 7e236e623b Merge pull request #19975 from aaronlehmann/resolve-auth-config
Introduce a client-side version of resolveAuthConfig
2016-02-03 15:57:29 -05:00
Aaron Lehmann ff17cd0bf0 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>
2016-02-03 11:01:29 -08:00
Arnaud Porterie 8ee7ad2209 Enable cross-platforms logout from Registry
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-03 10:32:22 -08:00
Zhang Wei 894266c1bb Remove redundant error message
Currently some commands including `kill`, `pause`, `restart`, `rm`,
`rmi`, `stop`, `unpause`, `udpate`, `wait` will print a lot of error
message on client side, with a lot of redundant messages, this commit is
trying to remove the unuseful and redundant information for user.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-03 15:45:20 +08:00
Alexander Morozov 1bc4c99372 Merge pull request #19761 from HackToday/enhancesortattr
Sort the attributes for events
2016-02-02 16:08:23 -08:00
Alexander Morozov 83ee24e52b Merge pull request #19911 from Microsoft/jstarks/npipe
Windows: Add support for named pipe protocol
2016-02-02 15:59:45 -08:00
David Calavera 9f315dd328 Add regression tests for client debug flag.
- Add client debug info to the `docker info` command.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-02 16:57:36 -05:00
John Starks 0906195fbb Windows: Add support for named pipe protocol
This adds an npipe protocol option for Windows hosts, akin to unix
sockets for Linux hosts. This should become the default transport
for Windows, but this change does not yet do that.

It also does not add support for the client side yet since that
code is in engine-api, which will have to be revendored separately.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-02-01 19:46:30 -08:00
Tibor Vass ec6bfebc0f Merge pull request #19907 from tiborvass/tty-debug
Prevent stdin from hanging
2016-02-01 21:57:32 -05:00
Brian Goff 3c0c115ec8 Merge pull request #19896 from calavera/same_rm_error_message
Make error message consistent when removing containers fail.
2016-02-01 21:19:42 -05:00
Tibor Vass 51795c0836 Skip Close()-ing stdin on Darwin. The Return.
This was accidentally removed in https://github.com/docker/docker/pull/16289
Now adding it back.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-01 20:38:01 -05:00
Tibor Vass 19eaa71e85 Merge pull request #19891 from icecrime/windows_login_issue
Enable cross-platforms login to Registry
2016-02-01 19:50:54 -05:00
David Calavera 245d6e83a9 Merge pull request #19416 from mlaventure/warn-on-rm-detach
Print an info message when detaching a container started with --rm
2016-02-01 13:17:23 -08:00
David Calavera 50de9fdff1 Make error message consistent when removing containers fail.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-01 15:32:50 -05:00
Arnaud Porterie 960710bd81 Enable cross-platforms login to Registry
Use a daemon-defined Registry URL for `docker login`. This allows a
Windows client interacting with a Linux daemon to properly use the
default Registry endpoint instead of the Windows specific one.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-01 11:18:54 -08:00
Kai Qiang Wu(Kennan) 746f6af9aa Sort the attributes for events
This is add support for #19559
We tried sort it in client side, and it sort follow go
sort : sorts a slice of strings in increasing order.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-01 00:18:33 +00:00
Brian Goff d695cf8de7 Merge pull request #19638 from runcom/remove-redunant-function
cleanup and move stuff where needed
2016-01-30 10:12:38 -05:00
Vincent Demeester 6b57380173 Merge pull request #19646 from nishanttotla/19277-CustomInfoField
Display SystemStatus field in docker info
2016-01-30 11:48:01 +01:00
Nishant Totla 6c5e8dd4c2 Adding SystemStatus field for /info endpoint
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
2016-01-29 16:26:43 -08:00
Kenfe-Mickael Laventure 1ebeb2c9b4 Print an info message when detaching a container started with --rm
Closes #17516

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-01-29 13:19:23 -08:00
Liu Hua 755df347fb forbid login of a null-string username
With this patch, the client blocks this type login, no sending
useless messages to daemon and registry. This saves lots of time.

Signed-off-by: Liu Hua <sdu.liu@huawei.com>
2016-01-29 22:39:22 +08:00
Antonio Murdaca 505a56d6da api: client: remove redunant function to encode auth
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-29 14:07:54 +01:00
Vincent Demeester 6c6729ef5b Merge pull request #19793 from calavera/full_login_prompt
Always prompt for a password when asking for credentials.
2016-01-29 12:39:57 +01:00
David Calavera 8ed06af044 Always prompt for a password when asking for credentials.
There is a weird behavior where we don't ask for a password
when the user you type in the prompt is the same you have configured
in the config file.

This is the source of many frustrations and also a bug.
If the authentication with a registry fails because the password
is incorrect, we won't ask for the password again with the current logic.

With this change, we also stop calling `CmdLogin` directly when
authentication fails. We don't need to parse flags from the cli or
setting up input destriptiors again, like the current behavior is doing.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-27 18:26:48 -05:00
Daehyeok Mun b78c736356 Remove output file when save/export fail
Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2016-01-26 22:12:31 -07:00
Aleksa Sarai 4357ed4a73 *: purge dockerinit from source code
dockerinit has been around for a very long time. It was originally used
as a way for us to do configuration for LXC containers once the
container had started. LXC is no longer supported, and /.dockerinit has
been dead code for quite a while. This removes all code and references
in code to dockerinit.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-01-26 23:47:02 +11:00
Tibor Vass 07e2dedecb Merge pull request #19057 from dnephin/remove_version_from_registry_pkg
Remove dockerversion from registry package
2016-01-25 22:45:06 -08:00
Andy Goldstein 7a948f6a96 Move resize after attaching
Resize by +1 when attaching to force redrawing.

Start monitoring window size after the attach begins instead of before. This way, you see the output
from the container without having to manually resize or hit enter. This makes attach consistent with
run and exec.

Signed-off-by: Andy Goldstein <agoldste@redhat.com>
2016-01-24 02:24:00 -05:00
Qiang Huang 603bc69b2c Fix comment about swap limit of docker update
The description "set `-1` to disable swap" is wrong, `build`,
`create` and `run` already fixed, we need to fix `update` as well.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-01-21 13:48:53 +08:00
Michael Crosby a1eb6029cc Move tty set and restore to caller
Fixes #19506

This fixes the issue of errors on create and the tty not being able to
be restored to its previous state because of a race where it was
in the hijack goroutine.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-01-20 13:32:19 -08:00
Antonio Murdaca 167cc42986 api: client: build: do not fall through if git isn't installed
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-19 16:50:14 +01:00
Antonio Murdaca a495c148a5 Merge pull request #19414 from anusha-ragunathan/postBuild
Make daemonbuilder.Docker leaner.
2016-01-18 21:46:49 +01:00
Anusha Ragunathan 14215ed5a1 Make daemonbuilder.Docker leaner.
Currently builder.Backend is implemented by daemonbuilder.Docker{} for
the daemon. This registration happens in the API/server code. However,
this is too implementation specific. Ideally we should be able to specify
that docker daemon (or any other) is implementing the Backend and abstract
the implementation details. So we should remove package daemonbuilder
dependency in build_routes.go

With this change, daemonbuilder.Docker is nothing more than the daemon.
A follow on change will remove the daemonbuilder package and move relevant
methods under daemon, so that API only knows about the backend.

Also cleanup code in api/client/build.go. docker cli always performs build
context tar download for remoteURLs and sends an empty remoteContext. So
remove relevant dead code.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-18 09:16:11 -08:00
Daniel Nephin 61a49bb6ba Remove the use of dockerversion from the registry package
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-15 12:43:54 -05:00
Jess Frazelle 4c89b1f72c Merge pull request #19355 from riyazdf/notary-revendor
notary revendor into docker
2016-01-15 01:02:35 -08:00
Riyaz Faizullabhoy dd7436c832 revendor notary and wrap friendlier error messages
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-14 20:35:59 -08:00
Arnaud Porterie 6add477c91 Merge pull request #19308 from estesp/better-warning-msg
Better warning message on OOM kill disable without mem limit
2016-01-14 16:49:38 -08:00
Tibor Vass e35f5a481a Merge pull request #17316 from rmb938/ipam_conf_options
Add IPAM Config Options to match libnetwork
2016-01-14 16:30:03 -05:00
Ryan Belgrave 662cac08ef Add IPAM Config Options to match libnetwork
Signed-off-by: Ryan Belgrave <rmb1993@gmail.com>
2016-01-14 14:32:25 -05:00
Madhu Venugopal dda513ef65 Network scoped alias support
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-14 08:44:41 -08:00
Madhu Venugopal b464f1d78c Forced endpoint cleanup
docker's network disconnect api now supports `Force` option which can be
used to force cleanup an endpoint from any host in the cluster.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-13 21:28:52 -08:00
David Calavera c8cc4fb8d9 Merge pull request #19283 from tonistiigi/fix-permission-build-stdin
Avoid extracting to temp directory on building from tar
2016-01-13 11:17:37 -08:00
Phil Estes 4983e5807e Better warning message on OOM kill disable without mem limit
Modify the warning to be more readable/understandable.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-13 10:40:49 -08:00
Chun Chen b70954e60a Add network interal mode
Signed-off-by: Chun Chen <ramichen@tencent.com>
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-13 11:30:36 -05:00
Antonio Murdaca a79f96828f Merge pull request #19249 from calavera/carry_17414
[Carry 17414] Added additional container information to "docker info".
2016-01-13 10:42:22 +01:00
Tonis Tiigi 42961a66a5 Avoid extracting to temp directory on building from tar
Fixes #15785

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-12 17:43:52 -08:00
Madhu Venugopal e221b8a3d6 Support `--link` for user-defined networks
This brings in the container-local alias functionality for containers
connected to u ser-defined networks.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-12 13:38:48 -08:00
Qiang Huang f4a687334b Change OomKillDisable to be pointer
It's like `MemorySwappiness`, the default value has specific
meaning (default false means enable oom kill).

We need to change it to pointer so we can update it after
container is created.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
(cherry picked from commit 9c2ea42329179c589f5a8991ccf0253eb10fc897)

Conflicts:
	vendor/src/github.com/docker/engine-api/types/container/host_config.go
2016-01-12 13:19:17 -05:00
David Calavera 0627bf1a83 Do not force network disconnection.
Let that for a future flag.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-12 13:19:17 -05:00
Kim Eik e732f4e649 Added additional container information to "docker info".
Instead of just showing the number of containers this patch will
show the number of running, paused and stopped containers as well.

Signed-off-by: Kim Eik <kim@heldig.org>
(cherry picked from commit a9804ab1cb117a132cbf460067d55f5146d50956)
2016-01-11 19:14:44 -05:00
Michael Crosby 2892de760f Merge pull request #18840 from aaronlehmann/trust-messages
Send push information to trust code out-of-band
2016-01-08 16:56:57 -08:00
Alexander Morozov 807d575b5e Merge pull request #19135 from Microsoft/jjh/securitywarning
Windows: Fix security warning regression
2016-01-08 13:55:41 -08:00
Arnaud Porterie 05de2aadff Merge pull request #19001 from aboch/pip
Allow user to choose the IP address for the container
2016-01-08 11:49:20 -08:00
Aaron Lehmann 65370be888 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>
2016-01-08 10:57:50 -08:00
Jess Frazelle 1c979f7587 Merge pull request #18887 from riyazdf/notary-delegations
notary delegation integration into docker
2016-01-08 10:37:55 -08:00
Alessandro Boch 2bb3fc1bc5 Allow user to choose the IP address for the container
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-08 10:09:16 -08:00
Riyaz Faizullabhoy 1c32a66877 update tests and error messages, revendor notary with tag
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-08 09:11:33 -08:00
Antonio Murdaca 018081d5a9 Merge pull request #19058 from dnephin/move_opts_to_runconfig_opts
Move some opts validators to runconfig/opts where they are used
2016-01-08 12:34:49 +01:00
cyli 1db0c7bb01 Add an integration test for docker being able to push to a repo with delegations.
Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-01-07 19:35:45 -08:00
Riyaz Faizullabhoy 1c125f50cf Notary delegation integration into docker
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-07 19:35:45 -08:00
David Calavera e73ab750ed 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>
2016-01-07 21:02:19 -05:00
Doug Davis ff3b551d2d Merge pull request #18768 from hqhq/hq_remove_dup_error
Remove redundant error messages
2016-01-07 14:13:50 -05:00
David Calavera c7d811c816 Remove types and lib packages from the engine.
They live in github.com/docker/engine-api now.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-06 19:49:00 -05:00
David Calavera 907407d0b2 Modify import paths to point to the new engine-api package.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-06 19:48:59 -05:00
John Howard ebf4c91717 Windows: Fix security warning regression
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-06 15:54:43 -08:00
Tibor Vass 7fab93175d Merge pull request #19099 from calavera/replace_docker_only_trust_enabled
Do not perform build context switch when content trust is not enabled.
2016-01-06 18:09:30 -05:00
David Calavera 18d15babef Do not perform build context switch when content trust is not enabled.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-05 19:23:20 -05:00
Brian Goff d3eca4451d Move responsibility of ls/inspect to volume driver
Makes `docker volume ls` and `docker volume inspect` ask the volume
drivers rather than only using what is cached locally.

Previously in order to use a volume from an external driver, one would
either have to use `docker volume create` or have a container that is
already using that volume for it to be visible to the other volume
API's.

For keeping uniqueness of volume names in the daemon, names are bound to
a driver on a first come first serve basis. If two drivers have a volume
with the same name, the first one is chosen, and a warning is logged
about the second one.

Adds 2 new methods to the plugin API, `List` and `Get`.
If a plugin does not implement these endpoints, a user will not be able
to find the specified volumes as well requests go through the drivers.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-05 16:28:38 -05:00
Anusha Ragunathan 5190794f1d Use ImageBuildOptions in builder.
dockerfile.Config is almost redundant with ImageBuildOptions.
Unify the two so that the latter can be removed. This also
helps build's API endpoint code to be less dependent on package
dockerfile.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-05 10:09:34 -08:00
David Calavera 723be0a332 Merge pull request #18888 from calavera/event_types
Event all the things!
2016-01-04 13:07:33 -08:00
David Calavera 851fe00c64 Add filter by event type and documentation.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-04 14:58:04 -05:00
Daniel Nephin 0007f5a859 Move some validators from opts to runconfig/opts.
These validators are only used by runconfig.Parse() or some other part of the
client, so move them into the client-side package.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-04 14:35:36 -05:00
David Calavera dc4ca0e897 Merge pull request #18941 from dnephin/runconfig_in_cli
Move runconfig/parse.go into the runconfig/opts package
2016-01-04 11:06:18 -08:00
David Calavera 9961816ade Remove version package from API types.
It's an internal type that only extends string.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-04 12:51:45 -05:00
Daniel Nephin 2b7ad47bd2 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>
2016-01-04 12:06:29 -05:00
Daniel Nephin 4c0d586bd3 Move ParseExec to the client where it is used.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-04 12:06:29 -05:00
Sebastiaan van Stijn db738dd77f Merge pull request #15666 from vdemeester/3519-configurable-escape
Implement configurable escape key for attach/exec
2016-01-04 00:49:07 +01:00
Vincent Demeester 15aa2a663b Implement configurable detach key
Implement configurable detach keys (for `attach`, exec`, `run` and
`start`) using the client-side configuration

- Adds a `--detach-keys` flag to `attach`, `exec`, `run` and `start`
  commands.
- Adds a new configuration field (in `~/.docker/config.json`) to
  configure the default escape keys for docker client.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-03 23:03:39 +01:00
Vincent Demeester 3544d48ca1 Merge pull request #19019 from duglin/constScratch
Use constant instead of "scratch"
2016-01-01 21:02:41 +01:00
Brian Goff e7e3e568d1 Merge pull request #18836 from vdemeester/18829-info-authz-plugins
Add authorization plugins to docker info
2015-12-31 09:47:59 -05:00
Doug Davis e6806223e8 Use constant instead of "scratch"
Move NoBaseImageSpecifier to a common spot and then use it instead of
"scratch" in a couple of places.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-12-31 06:21:56 -08:00
David Calavera 72f1881df1 Add event types.
- Stop serializing JSONMessage in favor of events.Message.
- Keep backwards compatibility with JSONMessage for container events.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-30 17:39:33 -05:00
Sebastiaan van Stijn 2c3d1a9b12 Merge pull request #18964 from hqhq/hq_fix_memory_swap_doc2
Fix docs for memory-swap
2015-12-30 21:01:48 +01:00
Qiang Huang c68a483e44 Fix docs for memory-swap
Fixes: #18894

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-30 09:23:35 +08:00
David Calavera 8e034802b7 Remove usage of pkg sockets and tlsconfig.
- Use the ones provided by docker/go-connections, they are a drop in replacement.
- Remove pkg/sockets from docker.
- Keep pkg/tlsconfig because libnetwork still needs it and there is a
  circular dependency issue.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-29 19:27:12 -05:00
Vincent Demeester 4a1eb3f3e2 Add authorization plugins to docker info
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-12-29 22:10:23 +01:00
Qiang Huang e0dc4f27f6 Remove redundant error messages
For operations on multi containers, we printed error for each
failed container, then printed an extra message for container
names, it seems redundant.

Addresses comments:
https://github.com/docker/docker/pull/15078#discussion_r47988449

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-29 22:03:39 +08:00
Vincent Demeester 6cd167386b Merge pull request #18835 from dnephin/move_validate_context_dir
Move utils.ValidateContextDirectory to the one package that uses it
2015-12-28 22:06:13 +01:00
Daniel Nephin 9e19b4839f Move ValidateContextDirectory to the one package that uses it.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-28 11:22:39 -05:00