1
0
mirror of https://github.com/docker/cli.git synced 2026-01-18 08:21:31 +03:00
Commit Graph

1362 Commits

Author SHA1 Message Date
Daniel Nephin
36751c1dc3 Use opts.MemBytes for flags.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 2a4ce79981
Component: cli
2017-05-15 11:57:21 +02:00
Daniel Nephin
95324d952c Add expanded mount syntax to Compose schema and types.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 5a39df474b
Component: cli
2017-05-15 11:57:21 +02:00
David Sheets
e6a6e884b0 Add 'consistent', 'cached', and 'delegated' mode flags
This adds 'consistency' mode flags to the mount command line argument.
Initially, the valid 'consistency' flags are 'consistent', 'cached',
'delegated', and 'default'.

Signed-off-by: David Sheets <dsheets@docker.com>
Signed-off-by: Jeremy Yallop <yallop@docker.com>
Upstream-commit: ce42bb22a3
Component: cli
2017-05-15 11:57:21 +02:00
Vincent Demeester
3fa476a5ea Make sure we validate simple syntax on service commands
We ignored errors for simple syntax in `PortOpt` (missed that in the
previous migration of this code). This make sure we don't ignore
`nat.Parse` errors.

Test has been migrate too (errors are not exactly the same as before
though -_-)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 7fa9161585
Component: cli
2017-05-15 11:57:21 +02:00
Yong Tang
b28053256b Update opts.MemBytes to disable default, and move docker run/create/build to use opts.MemBytes
This fix made several updates:
1. Update opts.MemBytes so that default value will not show up.
   The reason is that in case a default value is decided by daemon,
   instead of client, we actually want to not show default value.
2. Move `docker run/create/build` to use opts.MemBytes for `--shm-size`
   This is to bring consistency between daemon and docker run
3. docs updates.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 629abab4c0
Component: cli
2017-05-15 11:57:21 +02:00
Yong Tang
5375c51c00 Add daemon option --default-shm-size
This fix fixes issue raised in 29492 where it was not
possible to specify a default `--default-shm-size` in daemon
configuration for each `docker run``.

The flag `--default-shm-size` which is reloadable, has been
added to the daemon configuation.
Related docs has been updated.

This fix fixes 29492.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 5a9a1569b9
Component: cli
2017-05-15 11:57:21 +02:00
Sebastiaan van Stijn
ff407739d9 Add "src" alias for --secret
This patch adds a "src" alias for `--secret`
to be consistent with `--mount`.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: e7020eefd0
Component: cli
2017-05-15 11:57:21 +02:00
Tony Abboud
96bfe1f1e2 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: 438279688c
Component: cli
2017-05-15 11:57:21 +02:00
Daniel Nephin
209e223594 Trim quotes from TLS flags.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 52e9a69df9
Component: cli
2017-05-15 11:57:21 +02:00
Daniel Nephin
41104f7868 Add quoted string flag Value.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 8eeed60a68
Component: cli
2017-05-15 11:57:21 +02:00
Sebastiaan van Stijn
0d62ef5bf9 Improve usage output for docker run
Commit a77f2450c70312f8c26877a18bfe2baa44d4abb9 switched `docker run`
to use the `pflags` package. Due to this change, the usage output for
the `--blkio-weight-device` and `--device-*` flags changed and now
showed `weighted-device`, and `throttled-device` as value type. As a
result, the output of `docker run --help` became a lot wider.

This patch changes the output to show `list` instead, which is
consistent with other options that allow to be set multiple times.

Output before this change;

    Usage:	docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    Run a command in a new container

    Options:
          --blkio-weight uint16                   Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
          --blkio-weight-device weighted-device   Block IO weight (relative device weight) (default [])
          --device list                           Add a host device to the container (default [])
          --device-read-bps throttled-device      Limit read rate (bytes per second) from a device (default [])
          --device-read-iops throttled-device     Limit read rate (IO per second) from a device (default [])
          --device-write-bps throttled-device     Limit write rate (bytes per second) to a device (default [])
          --device-write-iops throttled-device    Limit write rate (IO per second) to a device (default [])
      -w, --workdir string                        Working directory inside the container

Output after this change;

    Usage:	docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    Run a command in a new container

    Options:
          --blkio-weight uint16         Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
          --blkio-weight-device list    Block IO weight (relative device weight) (default [])
          --device list                 Add a host device to the container (default [])
          --device-read-bps list        Limit read rate (bytes per second) from a device (default [])
          --device-read-iops list       Limit read rate (IO per second) from a device (default [])
          --device-write-bps list       Limit write rate (bytes per second) to a device (default [])
          --device-write-iops list      Limit write rate (IO per second) to a device (default [])
      -w, --workdir string              Working directory inside the container

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: ab92626619
Component: cli
2017-05-15 11:57:20 +02:00
yuexiao-wang
aa327d9859 Update docker daemon to dockerd
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
Upstream-commit: ad345939d1
Component: cli
2017-05-15 11:57:20 +02:00
Vincent Demeester
849a1bf0da Clean some stuff from runconfig that are cli only…
… or could be in `opts` package. Having `runconfig/opts` and `opts`
doesn't really make sense and make it difficult to know where to put
some code.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 8b725e10e7
Component: cli
2017-05-15 11:57:20 +02:00
yuexiao-wang
39709b6c3f Change tls to TLS
Signed-off-by: yuexiao-wang <wang.yuexiao@zte.com.cn>
Upstream-commit: a58827b0c2
Component: cli
2017-05-15 11:57:20 +02:00
Vincent Demeester
45ff71115e Make --publish-rm precedes --publish-add, so that add wins
`--publish-add 8081:81 --publish-add 8082:82 --publish-rm 80
--publish-rm 81/tcp --publish-rm 82/tcp` would thus result in 81 and
82 to be published.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 16bbd3441a
Component: cli
2017-05-15 11:57:20 +02:00
Vincent Demeester
2099b04c54 Remove --port and update --publish for services to support syntaxes
Add support for simple and complex syntax to `--publish` through the
use of `PortOpt`.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 016a56b064
Component: cli
2017-05-15 11:57:20 +02:00
Yong Tang
287100bb17 Return error for incorrect argument of service update --publish-rm <TargetPort>
Currently `--publish-rm` only accepts `<TargetPort>` or `<TargetPort>[/Protocol]`
though there are some confusions.

Since `--publish-add` accepts `<PublishedPort>:<TargetPort>[/Protocol]`, some user
may provide `--publish-rm 80:80`. However, there is no error checking so the incorrect
provided argument is ignored silently.

This fix adds the check to make sure `--publish-rm` only accepts `<TargetPort>[/Protocol]`
and returns error if the format is invalid.

The `--publish-rm` itself may needs to be revisited to have a better UI/UX experience,
see discussions on:
https://github.com/docker/swarmkit/issues/1396
https://github.com/docker/docker/issues/25200#issuecomment-236213242
https://github.com/docker/docker/issues/25338#issuecomment-240787002

This fix is short term measure so that end users are not misled by the silently ignored error
of `--publish-rm`.

This fix is related to (but is not a complete fix):
https://github.com/docker/swarmkit/issues/1396

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 1b400f6284
Component: cli
2017-05-15 11:57:20 +02:00
Victor Vieux
a3052deb52 fix a few golint errors
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
Upstream-commit: 4d5944cd51
Component: cli
2017-05-15 11:57:20 +02:00
wefine
8543a49ef3 fix t.Errorf to t.Error in serveral _test.go
Signed-off-by: wefine <wang.xiaoren@zte.com.cn>
Upstream-commit: 9806df060b
Component: cli
2017-05-15 11:57:20 +02:00
Jana Radhakrishnan
283b152e13 Add support for host port PublishMode in services
Add api/cli support for adding host port PublishMode in services.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
Upstream-commit: 7426b9d61b
Component: cli
2017-05-15 11:57:20 +02:00
Daniel Nephin
7f7816f275 Add swarmkit fields to stack service.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 18ad4598a8
Component: cli
2017-05-15 11:57:20 +02:00
Evan Hazlett
4f8d2f0ec7 SecretRequestOptions -> SecretRequestOption
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 9d3c317c95
Component: cli
2017-05-15 11:57:20 +02:00
Evan Hazlett
17050a7d9e secrets: support simple syntax --secret foo
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 7180c8afed
Component: cli
2017-05-15 11:57:19 +02:00
Evan Hazlett
8e84f86f88 move secretopt to opts pkg
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 20525b5695
Component: cli
2017-05-15 11:57:19 +02:00
Yong Tang
25d6f1620e Remove -ptr from the help output of service create
This fix is based on the comment:
https://github.com/docker/docker/pull/28147#discussion_r86996347

Previously the output string of the `DurationOpt` is `duration-ptr`
and `Uint64Opt` is `uint64-ptr`. While it is clear to developers,
for a normal user `-ptr` might not be very informative.

On the other hand, the default value of `DurationOpt` and `Uint64Opt`
has already been quite informative: `none`. That means if no flag
provided, the value will be treated as none.
(like a ptr with nil as the default)

For that reason this fix removes the `-ptr`.

Also, the output in the docs of `service create` has been quite
out-of-sync with the true output. So this fix updates the docs
to have the most up-to-date help output of `service create --help`.

This fix is related to #28147.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 583dd83727
Component: cli
2017-05-15 11:57:19 +02:00
Akihiro Suda
1a65247350 opts/mount: add tmpfs-specific options
added following options:

 * tmpfs-size
 * tmpfs-mode

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Upstream-commit: 547dc2052c
Component: cli
2017-05-15 11:57:19 +02:00
Yong Tang
bca6247652 Add --cpus flag to control cpu resources
This fix tries to address the proposal raised in 27921 and add
`--cpus` flag for `docker run/create`.

Basically, `--cpus` will allow user to specify a number (possibly partial)
about how many CPUs the container will use. For example, on a 2-CPU system
`--cpus 1.5` means the container will take 75% (1.5/2) of the CPU share.

This fix adds a `NanoCPUs` field to `HostConfig` since swarmkit alreay
have a concept of NanoCPUs for tasks. The `--cpus` flag will translate
the number into reused `NanoCPUs` to be consistent.

This fix adds integration tests to cover the changes.

Related docs (`docker run` and Remote APIs) have been updated.

This fix fixes 27921.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 17e9503bbb
Component: cli
2017-05-15 11:57:19 +02:00
Akihiro Suda
fc08f2c126 cli: add --mount to docker run
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Upstream-commit: 3375ba2acd
Component: cli
2017-05-15 11:57:19 +02:00
Michael Crosby
f8263c2df8 Add engine-api types to docker
This moves the types for the `engine-api` repo to the existing types
package.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: 11d7f42b49
Component: cli
2017-05-15 11:57:19 +02:00
allencloud
c2d278ab8c correct some nits in comment and test files
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: 6083de8891
Component: cli
2017-05-15 11:57:19 +02:00
Daniel Nephin
d94e1f7806 Convert dockerd to use cobra and pflag
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: ac76967dba
Component: cli
2017-05-15 11:57:19 +02:00
Tonis Tiigi
68e6f77ee4 Fix opts tests after default port fix
The code for default port was already there but
it didn’t work because split function errored out
before. This should be the desired behavior that
matches daemon listen address with swarm listen
address.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 63d756f347
Component: cli
2017-05-15 11:57:19 +02:00
Tonis Tiigi
3e6d08e7ea Unify swarm init and update options
Add api side validation and defaults for init and
join requests.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 881833232e
Component: cli
2017-05-15 11:57:19 +02:00
Tonis Tiigi
8c71d519a4 Add Swarm management backend
As described in our ROADMAP.md, introduce new Swarm management API
endpoints relying on swarmkit to deploy services. It currently vendors
docker/engine-api changes.

This PR is fully backward compatible (joining a Swarm is an optional
feature of the Engine, and existing commands are not impacted).

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Signed-off-by: Victor Vieux <vieux@docker.com>
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 4f87181ba9
Component: cli
2017-05-15 11:57:19 +02:00
allencloud
a3e334ca24 fix typos
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: 662b3de10a
Component: cli
2017-05-15 11:57:18 +02:00
Daniel Nephin
a81f1c609e Update usage and help to (almost) match the existing docker behaviour
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 17b3d05419
Component: cli
2017-05-15 11:57:18 +02:00
Daniel Nephin
b3d34e0946 Migrate volume commands to cobra.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: b9fe270259
Component: cli
2017-05-15 11:57:18 +02:00
Dan Walsh
f488d74f98 Add support for setting sysctls
This patch will allow users to specify namespace specific "kernel parameters"
for running inside of a container.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
Upstream-commit: 1419abf7b2
Component: cli
2017-05-15 11:57:18 +02:00
John Howard
64601c2a52 Windows: Remove TP4 support from main code
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 1688110fd6
Component: cli
2017-05-15 11:57:18 +02:00
allencloud
8bed41f5cf fix typos
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: a5f0686bf0
Component: cli
2017-05-15 11:57:18 +02:00
John Starks
323e48b77a Windows: Default to npipe transport
This changes the default transport for Windows from unencrypted TCP to
npipe. This is similar to how Linux runs with the unix socket transport by
default.

Signed-off-by: John Starks <jostarks@microsoft.com>
Upstream-commit: 6ad28f55d5
Component: cli
2017-05-15 11:57:18 +02:00
David Calavera
8d201cc78c Upgrade Go to 1.6.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 2b140819b3
Component: cli
2017-05-15 11:57:18 +02:00
John Starks
d3df82c920 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>
Upstream-commit: 5d648746e8
Component: cli
2017-05-15 11:57:17 +02:00
David Calavera
939dc7147c Allow to set daemon and server configurations in a file.
Read configuration after flags making this the priority:

1- Apply configuration from file.
2- Apply configuration from flags.

Reload configuration when a signal is received, USR2 in Linux:

- Reload router if the debug configuration changes.
- Reload daemon labels.
- Reload cluster discovery.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: d611dc46c0
Component: cli
2017-05-15 11:57:17 +02:00
Daniel Nephin
2e3f784e06 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>
Upstream-commit: e73db35cbf
Component: cli
2017-05-15 11:57:17 +02:00
Daniel Nephin
2e992ff0de Move ulimit options to runconfig opts
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: cef8b71ff4
Component: cli
2017-05-15 11:57:17 +02:00
Daniel Nephin
21a599d64a Move runconfig blkiodev options and parsing into runconfig/opts package.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 5d99388c23
Component: cli
2017-05-15 11:57:17 +02:00
David Calavera
32138ef056 Move blkiodev package to types.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 757d284759
Component: cli
2017-05-15 11:57:17 +02:00
Ma Shimiao
e11e267b2a Add support for blkio read/write iops device
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
Upstream-commit: 369f057818
Component: cli
2017-05-15 11:57:17 +02:00
Daniel Nephin
c8903ae701 Move ParseLink and validators into runconfig.parse where they are used.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 659fac261b
Component: cli
2017-05-15 11:57:16 +02:00