Commit Graph

199 Commits

Author SHA1 Message Date
Cezar Sa Espinola 836b1a7d0a Add --health-* commands to service create and update
A HealthConfig entry was added to the ContainerSpec associated with the
service being created or updated.

Signed-off-by: Cezar Sa Espinola <cezarsa@gmail.com>
2017-06-02 00:10:30 +00:00
Steve Durrheimer da7306052f Add zsh completion for 'docker service create --env-file'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:30 +00:00
Ce Gao d398440f03 fixes #27643
Signed-off-by: Ce Gao <ce.gao@outlook.com>
2017-06-02 00:10:29 +00:00
Sebastiaan van Stijn 6fbb9227cb Remove --name flag from service update
The --name flag was inadvertently added to
docker service update, but is not supported,
as it has various side-effects (e.g., existing
tasks are not renamed).

This removes the flag from the service update
command.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-06-02 00:10:29 +00:00
Erik St. Martin 42ef78911e Implementing support for --cpu-rt-period and --cpu-rt-runtime so that
containers may specify these cgroup values at runtime. This will allow
processes to change their priority to real-time within the container
when CONFIG_RT_GROUP_SCHED is enabled in the kernel. See #22380.

Also added sanity checks for the new --cpu-rt-runtime and --cpu-rt-period
flags to ensure that that the kernel supports these features and that
runtime is not greater than period.

Daemon will support a --cpu-rt-runtime flag to initialize the parent
cgroup on startup, this prevents the administrator from alotting runtime
to docker after each restart.

There are additional checks that could be added but maybe too far? Check
parent cgroups to ensure values are <= parent, inspecting rtprio ulimit
and issuing a warning.

Signed-off-by: Erik St. Martin <alakriti@gmail.com>
2017-06-02 00:10:28 +00:00
Steve Durrheimer 85fb527cbf Add zsh completion for 'dockerd --experimental'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:28 +00:00
Steve Durrheimer 350b1a3f38 Add zsh completion for 'dockerd --shutdown-timeout'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:28 +00:00
Steve Durrheimer fa8f0cd060 Add zsh completion for 'docker {create,run} --stop-timeout'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:28 +00:00
Steve Durrheimer add78ffc8a Fix zsh completion for 'docker exec --env'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:28 +00:00
Aaron Lehmann 78c0d50c9f Add force option to service update
Currently, there's no way to restart the tasks of a service without
making an actual change to the service. This leads to us giving awkward
workarounds as in
https://github.com/docker/docker.github.io/pull/178/files, where we tell
people to scale a service up and down to restore balance, or make
unnecessary changes to trigger a restart.

This change adds a --force option to "docker service update", which
forces the service to be updated even if no changes require that.

Since rolling update parameters are respected, the user can use
"docker service --force" to do a rolling restart. For example, the
following is supported:

   docker service update --force --update-parallelism 2 \
   --update-delay 5s myservice

Since the default value of --update-parallelism is 1, the default
behavior is to restart the service one task at a time.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-06-02 00:10:27 +00:00
Jonh Wendell 73dd34b2b3 Exec: Add ability to set environment variables
Keeping the current behavior for exec, i.e., inheriting
variables from main process. New variables will be added
to current ones. If there's already a variable with that
name it will be overwritten.

Example of usage: docker exec -it -e TERM=vt100 <container> top

Closes #24355.

Signed-off-by: Jonh Wendell <jonh.wendell@redhat.com>
2017-06-02 00:10:25 +00:00
Vincent Bernat 38d93769fe zsh: fix completion when docker output only has the header line
Unfortunately, `(f)` aka `(ps:\n:)` flag will not create an array when
there is only one line. The subsequent use of indexes will then affect
the string. This leads to `docker rmi <tab>` to complete on the header
line instead of nothing.

Therefore, for each use of `(f)`, we ensure that we have an extra new
line to be sure we get an array.

Credit to @povesteam for the original report and fix in #27373.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2017-06-02 00:10:25 +00:00
Aaron Lehmann 8c03c1201b Service update failure thresholds and rollback
This adds support for two enhancements to swarm service rolling updates:

- Failure thresholds: In Docker 1.12, a service update could be set up
  to either pause or continue after a single failure occurs. This adds
  an --update-max-failure-ratio flag that controls how many tasks need to
  fail to update for the update as a whole to be considered a failure. A
  counterpart flag, --update-monitor, controls how long to monitor each
  task for a failure after starting it during the update.

- Rollback flag: service update --rollback reverts the service to its
  previous version. If a service update encounters task failures, or
  fails to function properly for some other reason, the user can roll back
  the update.

SwarmKit also has the ability to roll back updates automatically after
hitting the failure thresholds, but we've decided not to expose this in
the Docker API/CLI for now, favoring a workflow where the decision to
roll back is always made by an admin. Depending on user feedback, we may
add a "rollback" option to --update-failure-action in the future.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-06-02 00:10:25 +00:00
Carlos Alexandro Becker 83c7808f3a Added logentries dependency to vendor
Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
2017-06-02 00:10:24 +00:00
Wenzhi Liang 9ad418fe97 allow restarting stopped containers by id
Signed-off-by: Wenzhi Liang <wenzhi.liang@gmail.com>
2017-06-02 00:10:13 +00:00
Steve Durrheimer 9014b21a61 Add zsh completion for 'dockerd --init-path'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:12 +00:00
Paul Kehrer 9c85295b1c Add support for compressing build context during image build
When sending a build context to a remote server it may be
(significantly) advantageous to compress the build context. This commit
adds support for gz compression when constructing a build context
using a command like "docker build --compress ."

Signed-off-by: Paul Kehrer <paul.l.kehrer@gmail.com>
2017-06-02 00:10:12 +00:00
Vincent Demeester cd547751df Add a new "is-task" ps filter
This makes it easier to list containers that are part of a task
(swarm mode) and those who are not.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2017-06-02 00:10:12 +00:00
Steve Durrheimer bed270a507 Add zsh completion for 'docker stats --format'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:11 +00:00
Steve Durrheimer 365e71d868 Add zsh completion for multi-nodes 'node ps'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:11 +00:00
allencloud 47e0458ffb support docker node ps multiNodes
Signed-off-by: allencloud <allen.sun@daocloud.io>
2017-06-02 00:10:11 +00:00
Akihiro Suda a64a1aa0ae fix the man page and zsh completion for `docker images`
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-06-02 00:10:11 +00:00
Akihiro Suda 71e220fc11 add `docker events --format`
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-06-02 00:10:10 +00:00
Denis Gladkikh db4e32d39e Splunk Logging Driver performance improvements
New driver options:

- `splunk-gzip` - gzip compress all requests to Splunk HEC
(enabled by default)
- `splunk-gzip-level` - change compression level.

Messages are sent in batches by 1000, with frequency of 5 seconds.
Maximum buffer is 10,000 events. If HEC will not be available, Splunk
Logging Driver will keep retrying while it can hold messages in buffer.

Added unit tests for driver.

Signed-off-by: Denis Gladkikh <denis@gladkikh.email>
2017-06-02 00:10:10 +00:00
Steve Durrheimer 05f167e92a Add zsh completion for 'service {create,update} --group-{add,rm}'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:09 +00:00
Harald Albers 894c3a5cbf Add completion for `docker events -f event=health_status`
Signed-off-by: Harald Albers <github@albersweb.de>
2017-06-02 00:10:08 +00:00
allencloud 4d1fc99027 make node ps default to self in swarm node
Signed-off-by: allencloud <allen.sun@daocloud.io>
2017-06-02 00:10:07 +00:00
Steve Durrheimer 1e95101ade Replace zsh completion for 'docker volume create --name' by 'docker volume create {name}'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:07 +00:00
Denis Gladkikh 7225cc5604 Splunk Logging Driver: formats and verifyconnection
`--log-opt splunk-format=inline|json|raw` allows to change how logging
driver sends data to Splunk, where

`inline` - default value, format used before, message is injected as a
line in JSON payload
`json` - driver will try to parse each line as a JSON object and embed it
inside of the JSON payload
`raw` - driver will send Raw payload instead of JSON, tag and attributes
will be prefixed before the message

`--log-opt splunk-verify-connection=true|false` - allows to skip
verification for Splunk Url

Signed-off-by: Denis Gladkikh <denis@gladkikh.email>
2017-06-02 00:10:06 +00:00
Yong Tang cebe3440af Update zsh and bash completion scripts.
This is to update the zsh and bash completion script for
23367.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2017-06-02 00:10:06 +00:00
timfeirg 280a6f9663 expose RemovalInProgress in StateString #25652
Signed-off-by: timfeirg <kkcocogogo@gmail.com>
2017-06-02 00:10:06 +00:00
Steve Durrheimer ab24559a62 Add zsh completion for 'docker {network,volume} ls --format'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:05 +00:00
Steve Durrheimer 1ccb0210f5 Add zsh completion for 'docker volume ls --filter label'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:05 +00:00
Josh Horwitz b5c313651f Add --no-trunc to service/node/stack ps output
Signed-off-by: Josh Horwitz <horwitzja@gmail.com>
2017-06-02 00:10:05 +00:00
Akihiro Suda 420b6a91af add `--format` flag to `docker info`
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-06-02 00:10:05 +00:00
Steve Durrheimer 202d38d017 Add zsh completion for 'docker node rm --force'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:04 +00:00
allencloud 0ab07d2bd7 update command description in CLI
Signed-off-by: allencloud <allen.sun@daocloud.io>
2017-06-02 00:10:03 +00:00
Steve Durrheimer f6aa2d75f0 Add zsh completion for 'docker service {create,update} --container-label{-add,-rm}'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:03 +00:00
Steve Durrheimer de93020c02 Remove zsh completion for 'docker swarm inspect'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:03 +00:00
Stephen J Day 9d114f0fae cli: `docker service|node|stack ps` instead of tasks
Rather than conflict with the unexposed task model, change the names of
the object-oriented task display to `docker <object> ps`. The command
works identically to `docker service tasks`. This change is superficial.

This provides a more sensical docker experience while not trampling on
the task model that may be introduced as a top-level command at a later
date.

The following is an example of the display using `docker service ps`
with a service named `condescending_cori`:

```
$ docker service ps condescending_cori
ID                         NAME                  SERVICE             IMAGE   LAST STATE              DESIRED STATE  NODE
e2cd9vqb62qjk38lw65uoffd2  condescending_cori.1  condescending_cori  alpine  Running 13 minutes ago  Running        6c6d232a5d0e
```

The following shows the output for the node on which the command is
running:

```console
$ docker node ps self
ID                         NAME                  SERVICE             IMAGE   LAST STATE              DESIRED STATE  NODE
b1tpbi43k1ibevg2e94bmqo0s  mad_kalam.1           mad_kalam           apline  Accepted 2 seconds ago  Accepted       6c6d232a5d0e
e2cd9vqb62qjk38lw65uoffd2  condescending_cori.1  condescending_cori  alpine  Running 12 minutes ago  Running        6c6d232a5d0e
4x609m5o0qyn0kgpzvf0ad8x5  furious_davinci.1     furious_davinci     redis   Running 32 minutes ago  Running        6c6d232a5d0e
```

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-06-02 00:10:03 +00:00
Aaron Lehmann b41c3dd208 Add failure action for rolling updates
This changes the default behavior so that rolling updates will not
proceed once an updated task fails to start, or stops running during the
update. Users can use docker service inspect --pretty servicename to see
the update status, and if it pauses due to a failure, it will explain
that the update is paused, and show the task ID that caused it to pause.
It also shows the time since the update started.

A new --update-on-failure=(pause|continue) flag selects the
behavior. Pause means the update stops once a task fails, continue means
the old behavior of continuing the update anyway.

In the future this will be extended with additional behaviors like
automatic rollback, and flags controlling parameters like how many tasks
need to fail for the update to stop proceeding. This is a minimal
solution for 1.12.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-06-02 00:10:02 +00:00
Steve Durrheimer fea5a343d5 Add zsh completion for 'docker swarm join-token' command
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:02 +00:00
Aaron Lehmann 18cd5ac352 Split advertised address from listen address
There are currently problems with "swarm init" and "swarm join" when an
explicit --listen-addr flag is not provided. swarmkit defaults to
finding the IP address associated with the default route, and in cloud
setups this is often the wrong choice.

Introduce a notion of "advertised address", with the client flag
--advertise-addr, and the daemon flag --swarm-default-advertise-addr to
provide a default. The default listening address is now 0.0.0.0, but a
valid advertised address must be detected or specified.

If no explicit advertised address is specified, error out if there is
more than one usable candidate IP address on the system. This requires a
user to explicitly choose instead of letting swarmkit make the wrong
choice. For the purposes of this autodetection, we ignore certain
interfaces that are unlikely to be relevant (currently docker*).

The user is also required to choose a listen address on swarm init if
they specify an explicit advertise address that is a hostname or an IP
address that's not local to the system. This is a requirement for
overlay networking.

Also support specifying interface names to --listen-addr,
--advertise-addr, and the daemon flag --swarm-default-advertise-addr.
This will fail if the interface has multiple IP addresses (unless it has
a single IPv4 address and a single IPv6 address - then we resolve the
tie in favor of IPv4).

This change also exposes the node's externally-reachable address in
docker info, as requested by #24017.

Make corresponding API and CLI docs changes.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-06-02 00:10:02 +00:00
Vincent Demeester 2f9e9bcbaa Append --registry-auth with with
`--with-registry-auth` is more explicit.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2017-06-02 00:10:02 +00:00
Sebastiaan van Stijn 6eef41333d remove "secrets" from completion scripts
Swarm join has been changed in f5e1f6f6880391a5a3399023cf93a3c48502e57d,
removing various options and the "node accept" command.

This removes the removed options from the completion
scripts.

NOTE: a new command ("docker swarm join-token") was
also added, but is not part of this commit.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-06-02 00:10:02 +00:00
Aaron Lehmann acf0bc4b9a Replace secrets with join tokens
Implement the proposal from
https://github.com/docker/docker/issues/24430#issuecomment-233100121

Removes acceptance policy and secret in favor of an automatically
generated join token that combines the secret, CA hash, and
manager/worker role into a single opaque string.

Adds a docker swarm join-token subcommand to inspect and rotate the
tokens.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-06-02 00:10:02 +00:00
Harald Albers 1f0b0b007c Update completions for syslog log driver options
Signed-off-by: Harald Albers <github@albersweb.de>
2017-06-02 00:10:01 +00:00
Steve Durrheimer f2e01edf57 Add zsh completion for 'docker node update --label-{add,rm}'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:01 +00:00
Steve Durrheimer ddd049d51a Add zsh completion for 'docker service {create,update} --log-{driver,opt}'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2017-06-02 00:10:01 +00:00
Sebastiaan van Stijn 77e4100d00 Improve flag help consistency, and update docs
This adds the `--live-restore` option to the documentation.

Also synched usage description in the documentation
with the actual description, and re-phrased some
flag descriptions to be a bit more consistent.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-06-02 00:07:51 +00:00