Commit Graph
4522 Commits
Author SHA1 Message Date
Sebastiaan van Stijn 90947b7653 Don't use AutoRemove on older daemons
Docker 1.13 moves the `--rm` flag to the daemon,
through an AutoRemove option in HostConfig.

When using API 1.24 and under, AutoRemove should not be
used, even if the daemon is version 1.13 or above and
"supports" this feature.

This patch fixes a situation where an 1.13 client,
talking to an 1.13 daemon, but using the 1.24 API
version, still set the AutoRemove property.

As a result, both the client _and_ the daemon
were attempting to remove the container, resulting
in an error:

    ERRO[0000] error removing container: Error response from daemon:
    removal of container ce0976ad22495c7cbe9487752ea32721a282164862db036b2f3377bd07461c3a
    is already in progress

In addition, the validation of conflicting options
is moved from `docker run` to `opts.parse()`, so
that conflicting options are also detected when
running `docker create` and `docker start` separately.

To resolve the issue, the `AutoRemove` option is now
always set to `false` both by the client and the
daemon, if API version 1.24 or under is used.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 36315fa14b
Component: cli
2017-01-15 01:59:57 +01:00
Sebastiaan van Stijn 79ea6e48d7 Don't use AutoRemove on older daemons
Docker 1.13 moves the `--rm` flag to the daemon,
through an AutoRemove option in HostConfig.

When using API 1.24 and under, AutoRemove should not be
used, even if the daemon is version 1.13 or above and
"supports" this feature.

This patch fixes a situation where an 1.13 client,
talking to an 1.13 daemon, but using the 1.24 API
version, still set the AutoRemove property.

As a result, both the client _and_ the daemon
were attempting to remove the container, resulting
in an error:

    ERRO[0000] error removing container: Error response from daemon:
    removal of container ce0976ad22495c7cbe9487752ea32721a282164862db036b2f3377bd07461c3a
    is already in progress

In addition, the validation of conflicting options
is moved from `docker run` to `opts.parse()`, so
that conflicting options are also detected when
running `docker create` and `docker start` separately.

To resolve the issue, the `AutoRemove` option is now
always set to `false` both by the client and the
daemon, if API version 1.24 or under is used.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 35de37289b
Component: cli
2017-01-15 01:59:57 +01:00
Brian Goff 5b7a6d1329 Merge pull request #29856 from Microsoft/jjh/warntoout
Windows to Linux build warning to stdout
Upstream-commit: b41c16fcae
Component: cli
2017-01-14 16:37:31 -05:00
Tony Abboud 152258c49f Add error checking for hostPort range
This fix catches the case where there is a single container port
and a dynamic host port and will fail out gracefully
Example docker-compose.yml snippet:
    port:
        ports:
            - "8091-8093:8091"
            - "80:8080"

Signed-off-by: Tony Abboud <tdabboud@hotmail.com>
Upstream-commit: 74c29fde04
Component: cli
2017-01-13 18:05:51 -05:00
Josh Hawn 755844d0cf Add SecretUpdate method to client
closes #28678

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Update cli/command/service/update_test.go

Fixes test build error:

  secretAPIClientMock does not implement "github.com/docker/docker/client".SecretAPIClient (missing SecretUpdate method)

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
Upstream-commit: 266db2ecda
Component: cli
2017-01-13 09:51:05 -08:00
Josh Hawn 4588b337cd Add SecretUpdate method to client
closes #28678

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Update cli/command/service/update_test.go

Fixes test build error:

  secretAPIClientMock does not implement "github.com/docker/docker/client".SecretAPIClient (missing SecretUpdate method)

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
Upstream-commit: acda56d47c
Component: cli
2017-01-13 09:51:05 -08:00
Daehyeok Mun df1baac4fc Refactoring ineffectual assignments
This patch fixed below 4 types of code line
1. Remove unnecessary variable assignment
2. Use variables declaration instead of explicit initial zero value
3. Change variable name to underbar when variable not used
4. Add erro check and return for ignored error

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
Upstream-commit: 266900235c
Component: cli
2017-01-13 00:27:01 -07:00
Kenfe-Mickael Laventure 5c20fde4a3 Fix ImageSummary.Size value
The prune PR changed the meaning of the file to mean "space on disk
only unique to this image", this PR revert this change.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
Upstream-commit: ce20950422
Component: cli
2017-01-12 07:49:22 -08:00
Daniel Nephin 711f69b565 Improve the error message for extends in stack deploy.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 384611596b
Component: cli
2017-01-11 11:57:24 -05:00
Yong Tang c4a2b1cead Allow swarm init with --availability=drain
This fix adds a new flag `--availability` to `swarm join`.

Related documentation has been updated.

An integration test has been added.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 3c47987838
Component: cli
2017-01-10 16:31:51 -08:00
Yong Tang 7d950520e5 Allow swarm join with --availability=drain
This fix tries to address the issue raised in 24596 where it was not
possible to join as manager only (`--availability=drain`).

This fix adds a new flag `--availability` to `swarm join`.

Related documentation has been updated.

An integration test has been added.

NOTE: Additional pull request for swarmkit and engine-api will
be created separately.

This fix fixes 24596.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: ab2635ead0
Component: cli
2017-01-10 16:31:51 -08:00
Vincent Demeester 4b2d2c595b Few stack deploy network fixes
- Make sure we use the correct network name for external ones.
- Make the default network overridable and only creates networks that
  are used by services — so that default network is only created if a
  service doesn't declare a network.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 70643ad005
Component: cli
2017-01-10 10:29:09 +01:00
Boaz Shuster 11ca819f5a Update docs and code to use application/x-tar in the build API
At the "Build image from Dockerfile" section in the API docs
the Content-Type header is missing.
In addition, some parts in the code are still setting the
Content-Type header to application/tar while it was changed
to application/x-tar since 16th September 2015.

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
Upstream-commit: 0247b1509c
Component: cli
2017-01-10 06:40:06 +02:00
Sebastiaan van Stijn 77a1550664 Merge pull request #30005 from dnephin/fix-stack-deploy-resources
Fix parsing resources from compose file for stack deploy.
Upstream-commit: 993bd37b40
Component: cli
2017-01-09 22:50:01 +01:00
Vincent Demeester 9c20659614 Merge pull request #29918 from dongluochen/service_inspect_pretty
add port PublishMode to service inspect --pretty output
Upstream-commit: f28fbb0b69
Component: cli
2017-01-09 22:43:41 +01:00
Sebastiaan van Stijn 231ca3ec32 Merge pull request #29802 from thaJeztah/fix-secret-rm-consistency
Update order of '--secret-rm' and '--secret-add'
Upstream-commit: 583d846c1d
Component: cli
2017-01-09 21:34:05 +01:00
Sebastiaan van Stijn eb0e6476ae Merge pull request #29143 from vdemeester/node-cli-unit-tests
Add some unit tests to the node and swarm cli code
Upstream-commit: 20f73b1c4e
Component: cli
2017-01-09 20:52:23 +01:00
Daniel Nephin 0f057e3c8d Fix parsing resources from compose file for stack deploy.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: c2f0402f4d
Component: cli
2017-01-09 14:22:02 -05:00
Dong Chen f3fc9391c5 add port PublishMode to service inspect --pretty output
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
Upstream-commit: e8ad538d90
Component: cli
2017-01-09 10:30:28 -08:00
Tibor Vass 12773ed0c0 Merge pull request #29955 from vieux/improve_secret_Create
remove -f on secret create and unify usage with other commands
Upstream-commit: fa1b74a77e
Component: cli
2017-01-09 10:22:39 -08:00
Vincent Demeester 99b5324db7 Add some unit tests to the node and swarm cli code
Start work on adding unit tests to our cli code in order to have to
write less costly integration test.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: ee8f9e084a
Component: cli
2017-01-09 18:30:15 +01:00
Sebastiaan van Stijn 2f558e3c01 Merge pull request #29226 from yongtang/28535-prune-until-follow-up
Add `--filter until=<timestamp>` for `docker container/image prune`
Upstream-commit: 047b90542b
Component: cli
2017-01-09 17:58:01 +01:00
Sebastiaan van Stijn 7a6a7e6b80 Merge pull request #29226 from yongtang/28535-prune-until-follow-up
Add `--filter until=<timestamp>` for `docker container/image prune`
Upstream-commit: 39c5af4a85
Component: cli
2017-01-09 17:58:01 +01:00
Brian Goff 058574859e Merge pull request #29688 from tronicum/since-flag
explain since format and give examples
Upstream-commit: 092eb696e9
Component: cli
2017-01-09 09:27:30 -05:00
ttronicum d499070791 explain since format and give examples
Signed-off-by: tronicum <tronicum@user.github.com>
Upstream-commit: 6081f43bd1
Component: cli
2017-01-08 05:27:54 +01:00
Stephen J Day ec2f9bcbe4 *: use opencontainers/go-digest package
The `digest` data type, used throughout docker for image verification
and identity, has been broken out into `opencontainers/go-digest`. This
PR updates the dependencies and moves uses over to the new type.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
Upstream-commit: 5d67ac20cb
Component: cli
2017-01-06 18:48:41 -08:00
Victor Vieux 57533e2335 remove -f on secret create and unify usage with other commands
Signed-off-by: Victor Vieux <vieux@docker.com>
Upstream-commit: 62cbb25a17
Component: cli
2017-01-06 14:07:48 -08:00
wefine 9009e924ca check both source_image_tag and target_image_tag for 'docker image tag'
Signed-off-by: wefine <wang.xiaoren@zte.com.cn>
Upstream-commit: b71687e054
Component: cli
2017-01-07 04:55:53 +08:00
Yong Tang ec49b3a694 Add .CreatedAt placeholder for docker network ls --format
This fix tries to add a placeholder `.CreatedAt` for Go
format template in `docker network ls --format`.

While working on 29226, I noticed that it is not possible to
display network's creation time in `docker network ls`, with or
without `--format`.

We are able to find the timestamp through `docker network inspect` though.

However, as we allows networks to be pruned based on the timestamp
(see 29226), showing the timestamp in `docker network ls --format`
would be much useful now.

This fix adds the `.CreatedAt` placeholder for `docker network ls --format`.
The default output was not changed for `docker network ls --format`.

A test case for unit tests has been added.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 4e89a50a31
Component: cli
2017-01-04 15:18:44 -08:00
Yong Tang 27d4e010cc Add --filter until=<timestamp> for docker container/image prune
This fix is a follow up for comment
https://github.com/docker/docker/pull/28535#issuecomment-263215225

This fix provides `--filter until=<timestamp>` for `docker container/image prune`.

This fix adds `--filter until=<timestamp>` to `docker container/image prune`
so that it is possible to specify a timestamp and prune those containers/images
that are earlier than the timestamp.

Related docs has been updated

Several integration tests have been added to cover changes.

This fix fixes #28497.

This fix is related to #28535.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 337483496b
Component: cli
2017-01-04 14:16:42 -08:00
Yong Tang c902dd671a Add --filter until=<timestamp> for docker container/image prune
This fix is a follow up for comment
https://github.com/docker/docker/pull/28535#issuecomment-263215225

This fix provides `--filter until=<timestamp>` for `docker container/image prune`.

This fix adds `--filter until=<timestamp>` to `docker container/image prune`
so that it is possible to specify a timestamp and prune those containers/images
that are earlier than the timestamp.

Related docs has been updated

Several integration tests have been added to cover changes.

This fix fixes #28497.

This fix is related to #28535.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: e2416af013
Component: cli
2017-01-04 14:16:42 -08:00
yuexiao-wang a1174cb059 keep network option consistent between network connect and run
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
Upstream-commit: 567b554540
Component: cli
2017-01-04 19:54:03 +08:00
John Howard 2fcf755a19 Windows to Linux build warning to stdout
Signed-off-by: John Howard <jhoward@microsoft.com>

When building a Dockerfile from a Windows client on a Linux daemon, a
"security warning" is printed
on stderr. Having this warning printed on stderr makes it difficult to
distinguish a failed build from one that's succeeding, and the only way to
suppress the warning is through the -q option, which also suppresses every
output. This change prints the warning on stdout, instead of stderr, to
resolve this situation.
Upstream-commit: 9651fbd197
Component: cli
2017-01-03 14:07:50 -08:00
Daniel Nephin 27db371a92 Trim quotes from TLS flags.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: fe181a18d5
Component: cli
2017-01-03 15:58:41 -05:00
Sebastiaan van Stijn bdedcec96e Merge pull request #26830 from dnephin/man-desc-in-files
Move the command description to a markdown file for man pages
Upstream-commit: f2cac1b6e8
Component: cli
2017-01-03 17:47:49 +01:00
Daniel Nephin 875d2b1b22 Convert ContainerTopOKResponse from swagger spec.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 9eda7f4daf
Component: cli
2017-01-03 11:47:47 -05:00
Daniel Nephin b3c70d598c Generate ImageDeleteResponse from swagger spec.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: f7e58c8c9b
Component: cli
2017-01-03 11:47:47 -05:00
Daniel Nephin c5e636a36d Generate ImageHistory from swagger spec.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 09bd661979
Component: cli
2017-01-03 11:47:44 -05:00
Daniel Nephin bff364bed9 Generate ContainerChanges from swagger spec.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 0a623b251f
Component: cli
2017-01-03 09:35:40 -05:00
Vincent Demeester 2f77390655 Merge pull request #25234 from yongtang/25228-service-ps-multiple-ID
Support multiple service IDs on "docker service ps"
Upstream-commit: 636e546aa1
Component: cli
2017-01-03 12:40:24 +01:00
Vincent Demeester 9501bb1fc3 Merge pull request #29806 from albers/fix-plugin-inspect-usage
Fix usage message of `plugin inspect`
Upstream-commit: d3d8379a16
Component: cli
2017-01-02 19:30:24 +01:00
Vincent Demeester ce5e5fc46f Remove deadcode from service/opts.go, SecretOpt
`SecretOpt` is in the `opts` package, this one is never used, so it's
dead code, removing it 👼.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: b5bc69238c
Component: cli
2017-01-02 11:19:33 +01:00
Harald Albers 9b0127d167 Fix usage message of plugin inspect
Signed-off-by: Harald Albers <github@albersweb.de>
Upstream-commit: 87fea846fc
Component: cli
2016-12-31 09:55:04 -08:00
Sebastiaan van Stijn 238778432e Update order of '--secret-rm' and '--secret-add'
When using both `--secret-rm` and `--secret-add` on `docker service update`,
`--secret-rm` was always performed last. This made it impossible to update
a secret that was already in use on a service (for example, to change
it's permissions, or mount-location inside the container).

This patch changes the order in which `rm` and `add` are performed,
allowing updating a secret in a single `docker service update`.

Before this change, the `rm` was always performed "last", so the secret
was always removed:

    $ echo "foo" | docker secret create foo -f -
    foo

    $ docker service create --name myservice --secret foo nginx:alpine
    62xjcr9sr0c2hvepdzqrn3ssn

    $ docker service update --secret-rm foo --secret-add source=foo,target=foo2 myservice
    myservice

    $ docker service inspect --format '{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}' myservice | jq .
    null

After this change, the `rm` is performed _first_, allowing users to
update a secret without updating the service _twice_;

    $ echo "foo" | docker secret create foo -f -
    1bllmvw3a1yaq3eixqw3f7bjl

    $ docker service create --name myservice --secret foo nginx:alpine
    lr6s3uoggli1x0hab78glpcxo

    $ docker service update --secret-rm foo --secret-add source=foo,target=foo2 myservice
    myservice

    $ docker service inspect --format '{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}' myservice | jq .

    [
      {
        "File": {
          "Name": "foo2",
          "UID": "0",
          "GID": "0",
          "Mode": 292
        },
        "SecretID": "tn9qiblgnuuut11eufquw5dev",
        "SecretName": "foo"
      }
    ]

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: edeb5b6e0d
Component: cli
2016-12-31 14:55:29 +01:00
Tõnis Tiigi 24a5433e5f Merge pull request #29609 from dnephin/add-compose-file-package
Replace the vendored aanand/compose-file with a local copy
Upstream-commit: 1eedfcf0ce
Component: cli
2016-12-29 15:12:59 -08:00
Sebastiaan van Stijn 1f9f54deef Merge pull request #29683 from vdemeester/runconfig-clean
Clean some stuff from runconfig that are cli only…
Upstream-commit: 2e880dd199
Component: cli
2016-12-29 17:42:08 +01:00
Vincent Demeester c38ac069ca Merge pull request #29687 from thaJeztah/cleanup-cli-command-container
Minor cleanups in cli/command/container
Upstream-commit: 734f695b29
Component: cli
2016-12-29 09:31:46 +01:00
Xianglin Gao 800c425eab exit collect when we get EOF
Signed-off-by: Xianglin Gao <xlgao@zju.edu.cn>
Upstream-commit: 5860dd5f80
Component: cli
2016-12-29 13:38:30 +08:00
Daniel Nephin 275438c0f7 Read long description from a file.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 48930c8bbf
Component: cli
2016-12-28 16:08:23 -05:00
Alexander Morozov 14ba4f8fc3 Merge pull request #29313 from vdemeester/move-cli-config
Move package cliconfig to cli/config
Upstream-commit: 6b5ddb5cf8
Component: cli
2016-12-28 09:05:51 -08:00