Commit Graph

355 Commits

Author SHA1 Message Date
3cf7d71fdb Merge pull request #21641 from yongtang/21595-discrepancy-on-hostname-validation
API/CLI discrepancy on hostname validation (#21595).
Upstream-commit: 78eb8a5fb932c2b11df47e7a22c05fe485e03adb
Component: engine
2016-04-28 09:25:13 +02:00
87afb49f07 Add IO Resource Controls for Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: 8df2066341931d9b7ba552afa902e2ef12e5eed5
Component: engine
2016-04-25 13:07:29 -07:00
4e9b36b9f3 Merge pull request #20924 from Microsoft/10662-CPUResourceControls
Add CPU count and maximum resource controls for Windows
Upstream-commit: 172ca1ca8c4d5157789feb97a6424104b81a3479
Component: engine
2016-04-15 08:14:59 +02:00
22a06166b3 Add CPU count and maximum resource controls for Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: ea8c690886970b2929d52d8b61dcfb8becc24db9
Component: engine
2016-04-14 15:40:25 -07:00
3b52ebb9ff 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: 9caf7aeefd23263a209c26c8439d26c147972d81
Component: engine
2016-04-12 13:37:31 -04:00
37e6f95686 API/CLI discrepancy on hostname validation (#21595).
This fix tries to fix the discrepancy between API and CLI on hostname
validation. Previously, the hostname validation was handled at the
CLI interface in runconfig/opts/parse.go and return an error if the
hostname is invalid. However, if an end user use the remote API to
pass the hostname, the error will not be returned immediately.
Instead the error will only be thrown out when the container creation
fails. This creates behavior discrepancy between API and CLI.

In this fix, the hostname validation was moved to
verifyContainerSettings so the behavior will be the same for API and
CLI.

After the change, since CLI does not handle the hostname validation
any more, the previous unit tests about hostname validation on CLI
in runconfig/opts/parse_test.go has to be updated as well because
there is no validation at this stage. All those unit tests are moved
to integration test TestRunTooLongHostname so that the hostname
validation is still properly covered as before.

Note: Since the hostname validation moved to API, the error message
changes from `invalid hostname format for --hostname:` to
`invalid hostname format:` as well because `--hostname` is passed
to CLI only.

This fix fixes #21595.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: ee4bd806ba6ccac0013eb812e7f30bfcfe12d22a
Component: engine
2016-04-08 06:13:08 +00:00
476df032fb Merge pull request #21767 from allencloud/fix-typos
fix typos
Upstream-commit: 81b01b44c66203d6cb1d7b277a716593055523cb
Component: engine
2016-04-05 20:32:14 -07:00
a6d5134cf6 fix typos
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: 34700cc1f3cf663dc4eecacbb6f06240ad679919
Component: engine
2016-04-06 10:35:01 +08:00
933477cfba Improve performance/reduce allocs of bytespipe
Creates a `fixedBuffer` type that is used to encapsulate functionality
for reading/writing from the underlying byte slices.

Uses lazily-loaded set of sync.Pools for storing buffers that are no
longer needed so they can be re-used.

```
benchmark                     old ns/op     new ns/op     delta
BenchmarkBytesPipeWrite-8     138469        48985         -64.62%
BenchmarkBytesPipeRead-8      130922        56601         -56.77%

benchmark                     old allocs     new allocs     delta
BenchmarkBytesPipeWrite-8     18             8              -55.56%
BenchmarkBytesPipeRead-8      0              0              +0.00%

benchmark                     old bytes     new bytes     delta
BenchmarkBytesPipeWrite-8     66903         1649          -97.54%
BenchmarkBytesPipeRead-8      0             1             +Inf%
```

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 9a25b1d942da88439ec04797ff6f1c33c3b5562d
Component: engine
2016-04-05 13:06:04 -04:00
922dd0a9e8 Merge pull request #21586 from calavera/remove_runconfig_from_routes
Remove runconfig package dependency from the API.
Upstream-commit: 1da40fb4badd116a7591dd2c19009146770c9a89
Component: engine
2016-03-29 08:40:49 -07:00
56103ffaad Remove runconfig package dependency from image and container routers.
Use an interface to specify the behavior of a configuration decoder.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: f0d26e1665f7552972db5b041554cc7b45bc3060
Component: engine
2016-03-28 16:23:51 -04:00
9ab7e4327f CLI flag for docker create(run) to change block device size.
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
Upstream-commit: b16decfccfdb0749c490be9272cb7b4789be87b4
Component: engine
2016-03-28 10:05:18 -04:00
547c60d84c More descriptive error when running a container with a too long hostname (#21445)
This fix tries to fix issues encountered when running a container with a hostname
that is longer than HOST_NAME_MAX(64).

Previously, `could not synchronise with container process` was generated as the
length of the regex check was missing.

This fix covers the length check so that a hostname that is longer than
HOST_NAME_MAX(64) will be given a correct error message.

Several unit tests cases and additional integration test cases are added as well.

This fix closes #21445.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: fa44b4e81ee87f1c2b39ad335a22795415c8cdf2
Component: engine
2016-03-24 17:42:28 +00:00
5efc6535dd runconfig/opts: fix compilation issue
it was introduced with #20566 as a result of merge

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: 93f57705110e196dca1cf2b2ce7d261ee97b9e4e
Component: engine
2016-03-21 15:01:08 -07:00
63511e795d Merge pull request #20566 from AndrewGuenther/20371-validate-hostname
Ensure --hostname is valid
Upstream-commit: f9f8708dc661a5a433642fddcbde1d2eb5461893
Component: engine
2016-03-21 14:49:16 -07:00
cd3a202f52 Fix one-character directory issue in the volume option (#20122).
The issue comes from the implementation of volumeSplitN() where a
driver letter (`[a-zA-Z]:`) was assumed to follow either `:`, `/`,
or `\\`.

In Windows driver letter appears in two situations:
a. `^[a-zA-Z]:` (A colon followed  by `^[a-zA-Z]:` is OK as colon is
the separator in volume option)
b. A string in the format like `\\?\C:\Windows\...` (UNC).
Therefore, a driver letter can only follow either a `:` or `\\`

This PR removes the condition of `/` before the driver letter so
that options like `-v /tmp/q:/foo` could be handled correctly. A
couple of tests has also been added.

This PR fixes #20122.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 800a7d513d3b80478a7996cb2c357b72f65e0b09
Component: engine
2016-03-21 02:55:06 +00:00
ba41c51be4 Merge pull request #20662 from tonistiigi/containerd-integration
Containerd integration
Upstream-commit: e5a3f86e447dd659da3c2e759f3c088a0bfcfe3d
Component: engine
2016-03-18 17:21:18 -07:00
ef4d935247 Merge pull request #21232 from calavera/consolidate_security_opts_format
Consolidate security options to use `=` as separator.
Upstream-commit: 06e98f0a5cf59c040e9f753d60f33ba22256d55c
Component: engine
2016-03-18 16:02:38 -07:00
8ba16d91c8 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>
Upstream-commit: 9c4570a958df42d1ad19364b1a8da55b891d850a
Component: engine
2016-03-18 13:38:32 -07:00
cb854bf11c Consolidate security options to use = as separator.
All other options we have use `=` as separator, labels,
log configurations, graph configurations and so on.
We should be consistent and use `=` for the security
options too.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: cb9aeb0413ca75bb3af7fa723a1f2e6b2bdbcb0e
Component: engine
2016-03-17 13:34:42 -04:00
79cca462c9 Ensure --hostname is valid
Validates whether the given hostname is RFC 1123
(https://tools.ietf.org/html/rfc1123) compliant.

Fixes #20371

Signed-off-by: Andrew Guenther <guenther.andrew.j@gmail.com>
Upstream-commit: 3b6ffc8022c701f63fbdd603cae783ac1ed3c201
Component: engine
2016-03-17 00:23:23 -07:00
e7b1829114 Don't smoosh hostname and domainname in API
This allows users to provide a FQDN as hostname or to use distinct hostname and
domainname parts.  Depends on https://github.com/docker/libnetwork/pull/950

Signed-off-by: Tim Hockin <thockin@google.com>
Upstream-commit: 53c5de29217f9633117cb01ada180d1133d76737
Component: engine
2016-03-15 08:32:35 -07:00
6b75bb519f Merge pull request #20177 from jheiss/12076-net_hostname
Allow --hostname with --net=host
Upstream-commit: 21e531014db65422e1a3000fd3596459f55870c4
Component: engine
2016-03-15 08:17:25 -07:00
e578be78a3 Run privileged containers when userns are specified
Following #19995 and #17409 this PR enables skipping userns re-mapping
when creating a container (or when executing a command). Thus, enabling
privileged containers running side by side with userns remapped
containers.

The feature is enabled by specifying ```--userns:host```, which will not
remapped the user if userns are applied. If this flag is not specified,
the existing behavior (which blocks specific privileged operation)
remains.

Signed-off-by: Liron Levin <liron@twistlock.com>
Upstream-commit: 6993e891d10c760d22e0ea3d455f13858cd0de46
Component: engine
2016-03-14 17:09:25 +02:00
3dbccba8c4 Merge pull request #20478 from msabansal/HNSIntegration
Windows libnetwork integration
Upstream-commit: 2b8e7ad4609e668d2187e81055e1e76ed0c11552
Component: engine
2016-03-10 13:33:04 -08:00
23f9a9fa41 Windows libnetwork integration
Signed-off-by: msabansal <sabansal@microsoft.com>
Upstream-commit: e8026d8a98ef30ff0ada303404e02567caebb1b0
Component: engine
2016-03-09 20:33:21 -08:00
16d6520e91 fix some typos.
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: 34b82a69b94ef9c7913e2809ae918e6f4331201e
Component: engine
2016-03-10 10:09:27 +08:00
76a4963d49 Allow --hostname with --net=host
Docker creates a UTS namespace by default, even with --net=host, so it
is reasonable to let the user set the hostname. Note that --hostname is
forbidden if the user specifies --uts=host.

Closes #12076
Signed-off-by: Jason Heiss <jheiss@aput.net>
Upstream-commit: 3f445e63b4568845f439c5d30a99ba10603b1938
Component: engine
2016-03-09 20:40:12 -05:00
356157b64b Merge pull request #18697 from jfrazelle/pids-cgroup
Add PIDs cgroup support to Docker
Upstream-commit: dd32445ecc6b706e8681dcc9d80c42c9b6cbf6cd
Component: engine
2016-03-08 14:03:36 -08:00
de84e87a00 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>
Upstream-commit: 69cf03700fed7bf5eb7fe00c9214737e21478e49
Component: engine
2016-03-08 07:55:01 -08:00
3e9b68d581 Add support for NoNewPrivileges in docker
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>

Add tests for no-new-privileges

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>

Update documentation for no-new-privileges

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
Upstream-commit: 74bb1ce9e9dbfa9dd866e84f891e865fca906d9a
Component: engine
2016-03-07 09:47:02 -08:00
98394b0b6e Vendor engine-api to 70d266e96080e3c3d63c55a4d8659e00ac1f7e6c
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Upstream-commit: 53b0d62683ee798198c553353dc2106623a9259b
Component: engine
2016-02-29 19:28:37 +08:00
bc74abda34 runconfig: opts: parse: lowercase errors
also fix wrong function comment

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
Upstream-commit: d266142230bd041c8299eef329cf79a17f8f7478
Component: engine
2016-02-18 11:21:44 +01:00
663efc4f39 Inherit StopSignal from Dockerfile.
Make sure the image configuration is not overriden by the default
value in the `create` flag.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: a252516ec19c9c83055a882da894712f2e812ecc
Component: engine
2016-02-12 17:56:40 -05:00
f35a03ff6d Windows: Fix 'isolation'
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: d4b0732499feac87cf7c433b9490a4e21e94fb45
Component: engine
2016-02-10 13:19:19 -08:00
7f6eb0a2ca postImagesCreate: move auth config decode when it's needed
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
Upstream-commit: a7d1aeceec53cfefd72e5b2161c2c57eae20cf55
Component: engine
2016-01-29 14:07:54 +01:00
fa73e1295e Stop referring to requested IP address as "preferred",
since it is an error if that address is unavailable.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
Upstream-commit: 7126ecd0ad1f6188540949cbdbca20f4a75d1839
Component: engine
2016-01-26 15:13:26 +00:00
d88278ac45 Move ErrUnsupportedNetwork* checks to updateNetworkConfig() func
Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 3b0d36dbc16d820c08ff1a2793eda2ef7048547d
Component: engine
2016-01-21 10:56:01 -08:00
187ffe612a bugfix: prevent creating network 'default'
Default is predefined network and is reserved, so we should stop user
from creating network with name `default`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: 31dae442c8a640694209c7451d6e9bf644aa2743
Component: engine
2016-01-19 11:06:36 +08:00
8eb1087397 Network scoped alias support
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: dda513ef651b42fcb9625e651f664554161c0a6a
Component: engine
2016-01-14 08:44:41 -08:00
b2c9225704 Merge pull request #19229 from mavenugo/udlinks
Local alias support
Upstream-commit: 47d87d3b92e349608e080f15035d8485af7254c5
Component: engine
2016-01-12 16:47:32 -08:00
6c7b14647b 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>
Upstream-commit: e221b8a3d64c13178e156fc3ece5e9894dac1603
Component: engine
2016-01-12 13:38:48 -08:00
fb652937c3 read seccomp profile locally then pass to daemon
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
Upstream-commit: 062d0b3921316bc348c7930ce6599e1f8f297090
Component: engine
2016-01-12 13:12:29 -08:00
410757a181 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
Upstream-commit: f4a687334b1d026c84809fd005e1a82225d1c86f
Component: engine
2016-01-12 13:19:17 -05:00
7467c1af44 Allow user to choose the IP address for the container
Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 2bb3fc1bc522059e9be5bd967b6a5c49917f5d0c
Component: engine
2016-01-08 10:09:16 -08:00
68fdf5d8eb Merge pull request #19058 from dnephin/move_opts_to_runconfig_opts
Move some opts validators to runconfig/opts where they are used
Upstream-commit: 018081d5a9acadb218e1284b11b200418aef5e0f
Component: engine
2016-01-08 12:34:49 +01:00
4ec2693c9e Modify import paths to point to the new engine-api package.
Signed-off-by: David Calavera <david.calavera@gmail.com>
Upstream-commit: 907407d0b2e5863f0e1b40b93a356bbf03c7b9fb
Component: engine
2016-01-06 19:48:59 -05:00
d1e813dc31 Merge pull request #19092 from anusha-ragunathan/builder-rm-merge
Remove runconfig.Merge
Upstream-commit: df9a3d100574a7f6176b8ca544dad352493686b2
Component: engine
2016-01-05 15:21:24 -05:00
510a74def2 Remove runconfig.Merge
Merge was used by builder and daemon. With this commit, the builder
call has been inlined and the function moved to the daemon package,
which is the only other caller.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
Upstream-commit: eb4ae8e28aa0baf28d6cde1079a5f9c618d475b2
Component: engine
2016-01-05 11:28:55 -08:00
f688b73835 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>
Upstream-commit: 5190794f1d85d5406611eb69c270df62ac1cdc7f
Component: engine
2016-01-05 10:09:34 -08:00