Compare commits

...

3305 Commits

Author SHA1 Message Date
Tibor Vass
76d6bc9a9f Bump version to v1.9.0
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-11-03 12:21:26 -05:00
Mary Anthony
b9c3ba79a6 Moving project to docker/opensource
Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit e400125b66)
2015-11-03 12:14:28 -05:00
Madhu Venugopal
17fb8c3c5a Updating networking docs with technical information
- the /etc/hosts read caveat due to dynamic update
- information about docker_gwbridge
- Carries and closes #17654
- Updating with last change by Madhu
- Updating with the IPAM api 1.22

Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit 39dfc536d4)

Conflicts:
	docs/reference/api/docker_remote_api_v1.22.md
2015-11-03 12:01:52 -05:00
Mary Anthony
0849a71036 Nigel acknowledgement
Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit 7b978cc378)
2015-11-03 12:01:52 -05:00
Mary Anthony
b53c39f606 Fixing ZooKeeper and some other nits Nathan found
Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit 0f1083c8da)
2015-11-03 12:01:52 -05:00
Sebastiaan van Stijn
5d72b7a582 docs: update remote API responses and minor fixes
Add back the "old" networksettings fields that were removed,
but added back to maintain backward compatibility, in
https://github.com/docker/docker/pull/17538

Update network endpoint responses, with updated response
introduced in;
https://github.com/docker/docker/pull/17536

Added changes to v1.22 that were applied to the v1.21 / v1.20 docs
after the API bump(s);

https://github.com/docker/docker/pull/17085
https://github.com/docker/docker/pull/17127
https://github.com/docker/docker/pull/13707

Also fixed some mixed tab/spaces indentation
and Markdown formatting issues (causing code-blocks to
be rendered incorrectly)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 286fe69d53)

Conflicts:
	docs/reference/api/docker_remote_api_v1.22.md
2015-11-03 12:01:51 -05:00
Mary Anthony
c50bd847a7 Add special memory management file
updating after assignment for Nigel
Adding in some notes from Nigel work
Updating with the storage driver content Nigel added
Updating with Nigel's polishing tech
Adding in Nigel graphics
First pass of aufs material
Capturing Nigel's latest
Comments back to Nigel on devicemapper
Incorporating Nigel's comments v3
Converting images for dm
Entering comments into aufs page
Adding the btfs storage driver
Moving to userguide
Adding in two new driver articles from Nigel
Optimized images
Updating with comments

Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit 950fbf99b1)
2015-11-03 12:01:51 -05:00
Mary Anthony
fa2a6b3522 First pass at consolidating
Removing old networking.md
Updating dockernetworks.md with images
Adding information on network plugins
Adding blurb about links to docker networking
Updating the working documentation
Adding Overlay Getting Started
Downplaying links by removing refs/examples, adding refs/examples for network.
Updating getting started to reflect networks not links
Pulling out old network material
Updating per discussion with Madhu to add Default docs section
Updating with bridge default
Fix bad merge
Updating with new cluster-advertise behavior
Update working and NetworkSettings examples
Correcting example for default bridge discovery behavior
Entering comments
Fixing broken Markdown Syntax
Updating with comments
Updating all the links

Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit 9ef855f9e5)
2015-11-03 12:01:51 -05:00
Tibor Vass
f2d0d2e516 Do not stop daemon from booting if io.EOF on loading image
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 27c2368599)
2015-11-02 23:13:29 -05:00
Antonio Murdaca
7be73fe0cb graph: enhance err message on failed image restore
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
(cherry picked from commit f5fc832b6e)
2015-11-02 23:13:29 -05:00
Jana Radhakrishnan
75847fb840 Vendoring libnetwork
Vendoring libnetwork @ 05a5a1510f85977f374a9b9804a116391bab5089

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
(cherry picked from commit 10e1b9f02e)
2015-11-02 23:13:29 -05:00
Mary Anthony
dfad0c3da7 Fixing broken links
Fixing the weight

Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit 5ce093e945)

Conflicts:
	docs/reference/api/docker_remote_api.md
	docs/reference/api/docker_remote_api_v1.21.md
	docs/reference/api/docker_remote_api_v1.22.md
2015-11-02 23:13:29 -05:00
Tibor Vass
263604f570 fix coding style and have make validate pass
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-11-02 23:13:29 -05:00
Alessandro Boch
6cbcdc7a6d IT for daemon restarts when container connected to multiple networks
Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit e16e794805)
2015-10-30 21:18:08 -04:00
Madhu Venugopal
0d762ef9d2 fixing ungraceful daemon restart case where nw connect is not persisted
For graceful restart case it was done when the container was brought
down. But for ungraceful cases, the persistence is missing for nw
connect

Signed-off-by: Madhu Venugopal <madhu@docker.com>
(cherry picked from commit 401632c756)
2015-10-30 21:18:08 -04:00
Madhu Venugopal
9f7231816f Vendoring in libnetwork to fix an ungraceful restart case
Also picked up a minor typo fix

Signed-off-by: Madhu Venugopal <madhu@docker.com>
(cherry picked from commit 2361edbcea)
2015-10-30 21:18:08 -04:00
Donald Huang
0430024bad fix pre-1.21 docker stats
This fixes a bug introduced in #15786:

* if a pre-v1.20 client requested docker stats, the daemon
would return both an API-compatible JSON blob *and* an API-incompatible JSON
blob: see https://gist.github.com/donhcd/338a5b3681cd6a071629

Signed-off-by: Donald Huang <don.hcd@gmail.com>
(cherry picked from commit d2c04f844b)

The commit title wrongfully mentioned API v1.22, when it meant to mention v1.21.
2015-10-30 21:18:08 -04:00
Alessandro Boch
6fa9da0363 Modify IPAMConfig structure json tags
- So that it complies with docker convention for inspect

Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit d795bc7d53)
2015-10-30 21:18:08 -04:00
David Calavera
2ec7433aa4 Fix network inspect for default networks.
- Keep old fields in NetworkSetting to respect the deprecation policy.

Signed-off-by: David Calavera <david.calavera@gmail.com>
(cherry picked from commit f301c5765a)
2015-10-30 21:18:07 -04:00
Alessandro Boch
51e5073111 Modify Network structure json tags
- So that they comply with docker inspect convention
  Which is allowing camel case for json field names

Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit b2d0b75018)
2015-10-30 21:18:07 -04:00
Michael Crosby
c4f0a2aa00 Don't set mem soft limit if not specifiecd
You cannot do this for individual cgroups for all the containers.  Only
set the reservation if the user requested it.  The error you will
receive is an EINTVAL when you try to set a large limit like we were in
the memory limit.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
(cherry picked from commit ecb87ed0a5)
2015-10-30 21:18:07 -04:00
evalle
581f297644 Fix ubuntu installation instructions page
Signed-off-by: evalle <shmarnev@gmail.com>
(cherry picked from commit eb0a208f4b)
2015-10-30 21:18:07 -04:00
Madhu Venugopal
cff248b35f Fixes a case of dangling endpoint during ungraceful daemon restart
When a container restarts after a ungraceful daemon restart, first
cleanup any unclean sandbox before trying to allocate network resources.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
(cherry picked from commit 0c07096b7d)
2015-10-30 21:18:07 -04:00
Madhu Venugopal
12da51944a Vendoring libnetwork to solve an ungraceful restart condition
Signed-off-by: Madhu Venugopal <madhu@docker.com>
(cherry picked from commit ebf76171f6)
2015-10-30 21:18:07 -04:00
David Calavera
87417387c6 Let the api to choose the default network driver.
That way swarm can understand the user's intention.

Signed-off-by: David Calavera <david.calavera@gmail.com>
(cherry picked from commit 34668ad68b)
2015-10-30 21:18:07 -04:00
Alessandro Boch
b693a04658 Execute buildPortMapInfo after Endpoint.Join()
- As the retrieved info may not be available at
  Endpoint creation time for certain network drivers
- Also retrieve the MAC address from Endpoint.Info().Iface()

Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit e03daebb48)
2015-10-30 21:18:06 -04:00
Alessandro Boch
e50176876c Vendoring libnetwork 20351a84241aa1278493d74492db947336989be6
Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit 90744fe943)
2015-10-30 21:18:06 -04:00
Derek McGowan
22c2f04847 Fix rmi -f removing multiple tags
When an image has multiple tags and rmi is called with force on a tag, only the single tag should be removed.
The current behavior is broken and removes all tags and the image.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
(cherry picked from commit 48e7f7963e)
2015-10-30 21:18:06 -04:00
Eric Rosenberg
75f6674b11 Update kill.md
Added Note to show users that signals will not propagate to the container if the preferred exec form isn't used.

Signed-off-by: Eric Rosenberg <ehaydenr@gmail.com>
(cherry picked from commit c1a5ee53c1)
2015-10-30 20:27:45 -04:00
Tibor Vass
ea1862d346 docker-py: upgrade and fix test script
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8db141049f)
2015-10-30 20:27:44 -04:00
Lei Jitang
9335cf9d29 Fix docker inspect display odd gateway value for none network mode
Signed-off-by: Lei Jitang <leijitang@huawei.com>
(cherry picked from commit 7fa601adc7)
2015-10-30 20:27:44 -04:00
Madhu Venugopal
22cf3df4c0 Prevent user from deleting pre-defined networks
Signed-off-by: Madhu Venugopal <madhu@docker.com>
(cherry picked from commit ead62b5952)

Conflicts:
	integration-cli/docker_api_network_test.go
2015-10-30 20:27:44 -04:00
David Calavera
c57d1e026d Update inspect api examples with new network settings.
Signed-off-by: David Calavera <david.calavera@gmail.com>

Conflicts:
	docs/reference/api/docker_remote_api_v1.22.md
2015-10-27 20:11:08 -04:00
David Calavera
ce6e6b18ad Extract network settings types for inspect.
Keeping backwards compatibility.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>

Conflicts:
	integration-cli/docker_cli_links_test.go
2015-10-27 19:57:03 -04:00
Lei Jitang
a09d521221 Fix docker inspect container only reports last assigned information
Signed-off-by: Lei Jitang <leijitang@huawei.com>

Conflicts:
	integration-cli/docker_api_network_test.go
	integration-cli/docker_utils.go
2015-10-27 19:57:03 -04:00
Hugo Marisco
3648ffe722 update gpg add key command, without sudo it fails
Signed-off-by: Hugo Marisco <0x6875676f@gmail.com>
2015-10-27 19:57:03 -04:00
Madhu Venugopal
37e04b864e Enhancing --cluster-advertise to support <interface-name>
--cluster-advertise daemon option is enahanced to support <interface-name>
in addition to <ip-address> in order to amke it  automation friendly using
docker-machine.

Signed-off-by: Madhu Venugopal <madhu@docker.com>

Conflicts:
	integration-cli/docker_cli_info_test.go
2015-10-27 19:57:03 -04:00
Alessandro Boch
160f4e4a3b Do not update etc/hosts for every container
- Only user named containers will be published into
  other containers' etc/hosts file.
- Also block linking to containers which are not
  connected to the default network

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-27 19:57:02 -04:00
Santhosh Manohar
a76b5fd324 Add libnetwork call on daemon rename
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-10-27 19:57:02 -04:00
Madhu Venugopal
04cc66b08e integration-cli test for active container rename and reuse
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-10-27 19:57:02 -04:00
Santhosh Manohar
93f966cdc0 Vendor in libnetwork changes to support container rename
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-10-27 19:57:02 -04:00
Mary Anthony
6b779ead93 Updating network commands: adding man pages
Adding Related information blocks
Final first draft pass: ready for review
Review comments
Entering comments from the gang
Updating connect to include paused

Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-27 19:57:02 -04:00
Kun Zhang
7ac3502444 command missing 'daemon'
Signed-off-by: Kun Zhang <zkazure@gmail.com>

Conflicts:
	docs/reference/logging/splunk.md
2015-10-27 19:57:02 -04:00
Tonis Tiigi
963b4d0b22 Fix duplicate container names conflict
While creating multiple containers the second
container could remove the first one from graph
and not produce an error.

Fixes #15995

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-10-27 19:57:02 -04:00
Madhu Venugopal
2801a373a8 Vendoring in libnetwork with fixes for issues identified in RC1 & RC2
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-27 19:57:02 -04:00
Madhu Venugopal
c2c88fec85 Simple log to indicate the chosen IP Address for the default bridge
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-27 19:57:02 -04:00
Steve Durrheimer
7825b5a5cd Fix repeatable options in zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-27 19:57:02 -04:00
Alessandro Boch
3040ad3581 Disable built-in SD on docker0 network
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-27 19:57:01 -04:00
Vincent Demeester
84eaf42839 Update docker network inspect help syntax
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-27 19:57:01 -04:00
Harald Albers
581df6aaa1 bash completion for log driver options env and labels
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-27 19:57:01 -04:00
Aaron Lehmann
b8410cd2ae Add a buffered Writer between layer compression and layer upload
Without this buffering, the compressor was outputting 64 bytes at a
time to the HTTP stream, which was resulting in absurdly small chunk
sizes and a lot of extra overhead. The buffering restores the chunk size
to 32768 bytes, which matches the behavior with 1.8.2.

Times pushing to a local registry:

1.8.2: 0m18.934s
master: 0m20.564s
master+this commit: 0m17.593s

Fixes: #17038

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-10-27 19:57:01 -04:00
Sven Dowideit
cc1782b318 Two more links to fix
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-10-27 19:57:01 -04:00
Steve Durrheimer
f8c24afcb4 Zsh completion for 'docker network inspect' multiple networks
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-27 19:57:01 -04:00
Harald Albers
8b5c7d6a60 bash completion for docker network inspect supports multiple networks
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-27 19:57:01 -04:00
David Calavera
05e3f2f62f Fail when there is an error executing an inspect template.
- Do not execute the template directly in the cli outout, go is not atomic
in this operation and can send bytes before failing the execution.
- Fail after evaluating a raw interface if the typed execution also
failed, assuming there is a template parsing error.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-22 19:44:01 -04:00
Alessandro Boch
957fcb10bf Add integ-test for fixed--cidr == bridge network
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-22 17:36:30 -04:00
Madhu Venugopal
9c5885135f Vendoring in libkv to be aligned with libnetwork
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 17:36:30 -04:00
Madhu Venugopal
03d7cf1aef Vendoring in Libnetwork
This carries fixes for
- Internal racy /etc/hosts updates within container during SD
- Renable SD service record watch after cluster-store restarts
- Fix to allow remote IPAM driver to return no IP if the user prefers
- Fix to allow --fixed-cidr and --bip to be in same range

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 17:36:30 -04:00
Vincent Demeester
7ff56c563d Use RepoTags & RepoDigest in inspect
To be coherent with /images/json (images command)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-22 17:22:16 -04:00
Tonis Tiigi
e6ff99629b Show trust variable deprecation warning only if used
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-10-22 16:24:29 -04:00
Alessandro Boch
50a8ce2b28 Turn off service discovery when icc==false
- Turn off built-in service discovery on docker0 bridge
  when icc is false

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-22 16:16:53 -04:00
Alessandro Boch
dc5a0118a1 Vendoring in libnetwork for the anonymous endpoint
- commit f3c8ebf46b890d4612c5d98e792280d13abdb761

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-22 16:16:53 -04:00
Sven Dowideit
f2671e07b3 Fix some errant links
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-10-22 16:14:13 -04:00
Harald Albers
033ce66707 bash completion for docker cp supports copying both ways
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 16:14:13 -04:00
Aaron Lehmann
6a01c901d3 Fix layer compression regression
PR #15493 removed compression of layers when pushing them to a V2
registry. This this makes layer uploads larger than they should be.

This commit restores the compression. It uses an io.Pipe to turn the
gzip compressor output Writer into a Reader, so the ReadFrom method can
be used on the BlobWriter (which is very important for avoiding many
PATCH requests per layer).

Fixes #17209
Fixes #17038

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-10-22 16:14:13 -04:00
David Calavera
c75fd9b5da Do not fail when a container is being removed and we request its delete again.
Abort the process and return a success response, letting the original
request finish its job.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-22 16:14:13 -04:00
Tibor Vass
b83bbbe864 release: fix bash bug in script
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-22 16:14:12 -04:00
Antonio Murdaca
f110597a78 graph: ensure _tmp dir is always removed
Also remove unused func `newTempFile` and prevent a possible deadlock
between pull_v2 `attemptIDReuse` and graph `register`

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-22 16:14:12 -04:00
Antonio Murdaca
adfbdc361c daemon: faster image cache miss detection
Lookup the graph parent reference to detect a builder cache miss before
looping the whole graph image index to build a parent-children tree.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-22 16:14:12 -04:00
Antonio Murdaca
587a0ffa2d graph: add parent img refcount for faster rmi
also fix a typo in pkg/truncindex package comment

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-22 16:14:12 -04:00
Antonio Murdaca
7176e68625 integration-cli: docker_cli_build_test: check error before defer
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-22 16:14:12 -04:00
Daniel Hiltgen
98af0d7f3c Wire up libnetwork with TLS discovery options
This change exposes the TLS configuration settings to libnetwork so it can
communicate with a key/value store that has been set up with mutual TLS.

TLS options were introduced with https://github.com/docker/docker/pull/16644
Libnetwork support was introduced with https://github.com/docker/libnetwork/pull/602

Signed-off-by: Daniel Hiltgen <daniel.hiltgen@docker.com>
2015-10-22 16:14:12 -04:00
David Calavera
fd2633a451 Move volume name validation to the local driver.
Delegate validation tasks to the volume drivers. It's up to them
to decide whether a name is valid or not.
Restrict volume names for the local driver to prevent creating
mount points outside docker's volumes directory.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-22 16:14:11 -04:00
xlgao-zju
b576f54b73 validate the name of named volume
Signed-off-by: xlgao-zju <xlgao@zju.edu.cn>
2015-10-22 15:07:07 -04:00
Burke Libbey
d2e25ed81c Better error when --host=ipc but no /dev/mqueue
Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-10-22 15:07:07 -04:00
Burke Libbey
44c74f2109 Revert "Fix --ipc=host dependency on /dev/mqueue existing"
This reverts commit f624d6187a.

Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-10-22 15:07:07 -04:00
Burke Libbey
434221d0eb Fix --ipc=host dependency on /dev/mqueue existing
Since #15862, containers fail to start when started with --ipc=host if
/dev/mqueue is not present. This change causes docker to create
container-local mounts for --ipc=host containers as well as in the
default case.

Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-10-22 15:07:07 -04:00
Vincent Demeester
620817efba Add support for multiple network in inspect
To be consistent with other inspect command (on container and images),
add the possiblity to pass multiple network to the network inspect
commands.

`docker network inspect host bridge none` is possible now.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-22 15:07:07 -04:00
Lei Jitang
f4dc974b2a Make default tls host work
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-22 15:07:07 -04:00
Tonis Tiigi
42abfab3a7 Don’t overwrite layer checksum on push
After v1.8.3 layer checksum is used for image ID
validation. Rewriting the checksums on push would
mean that next pulls will get different image IDs
and pulls may fail if its detected that same
manifest digest can now point to new image ID.

Fixes #17178

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-10-22 15:07:06 -04:00
Tobias Gesellchen
b63c2ab3c1 rename POST /volumes to POST /volumes/create to be consistent with the other POST /.../create endpoints
see #17132

Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-10-22 15:07:06 -04:00
Madhu Venugopal
595fd5226b Integration test for default bridge init with invalid cluster config
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 15:07:06 -04:00
Madhu Venugopal
46b742dbb3 Vendoring in libnetwork to fix daemon bootup instabilities
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 15:07:06 -04:00
David Lawrence
cd8357e5a6 some bugfixes on getting tuf files, this is backed by a lot of new unit tests in gotuf
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-10-22 15:07:06 -04:00
Alessandro Boch
d6a407f9b2 Do not mask ipam driver if no ip config is passed
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-22 15:07:06 -04:00
Antonio Murdaca
392fe9e507 Return empty Config fields, now omitempty, for API < 1.21
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-22 15:07:05 -04:00
Harald Albers
2b4c34e756 bash completion for new docker network create options
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 15:07:05 -04:00
Steve Durrheimer
130f92a67f Add zsh completion for 'docker network create -o --opt'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-22 15:07:05 -04:00
Jessica Frazelle
d676ebc156 fix copy of multiple rpms
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-22 15:07:05 -04:00
Vivek Goyal
7e6a483578 devmapper: Drop devices lock before returning from function
cleanupDeleted() takes devices.Lock() but does not drop it if there are
no deleted devices. Hence docker deadlocks if one is using deferred
device deletion feature. (--storage-opt dm.use_deferred_deletion=true).

Fix it. Drop the lock before returning.

Also added a unit test case to make sure in future this can be easily
detected if somebody changes the function.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-22 15:07:05 -04:00
Jana Radhakrishnan
304a08ee91 Fix docker startup failure due to dangling endpoints
Fixes docker startup failure due to dangling endpoints
which makes docker to not come up.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-22 15:07:05 -04:00
Jana Radhakrishnan
38fb64bba3 Vendoring libnetwork
Vendoring libnetwork @ 05890386de89e01c73f8898c2941b020bbe57052

Has bug fixes for 1.9

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-22 15:07:04 -04:00
Hu Keping
69cfb521bb Docs: update docs for API stats
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-22 15:07:04 -04:00
Aidan Hobson Sayers
9d8bf95811 Remove references to the docker-ut image
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-10-22 15:07:04 -04:00
Aidan Hobson Sayers
10b594924a Update ambassador image, use the socat -t option
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-10-22 15:07:04 -04:00
Stefan J. Wernli
1b4f705a2b Fixing hang in archive.CopyWithTar with invalid dst
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-10-22 15:07:04 -04:00
Madhu Venugopal
737cddc85d Fail the container start if the network has been removed
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 15:07:04 -04:00
Harald Albers
1f209fffd0 Bash completion for restart policy unless-stopped
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 15:07:03 -04:00
Harald Albers
fb6ef9086d bash completion: support for dm.use_deferred_* options
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 15:07:03 -04:00
David Calavera
f2bbcab6c9 Return 404 for all network operations without network controller.
This will prevent the api from trying to serve network requests in
systems where libnetwork is not enabled, returning 404 responses in any
case.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-22 15:07:03 -04:00
Derek McGowan
292d3b2052 Increase ping timeout
Ensure v2 registries are given more than 5 seconds to return a ping and avoid an unnecessary fallback to v1.
Elevates log level about failed v2 ping to a warning to match the warning related to using v1 registries.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-10-22 15:07:03 -04:00
Christy Perez
f04a7bd388 Fix TestInspectInt64 for run scenarios that return warnings
Instead of returning only the container ID, starting a container may
also return a warning:

"WARNING: Your kernel does not support swap
limit capabilities, memory limited without
swap.\nff6ebd9f7a8d035d17bb9a61eb9d3f0a5d563160cc43471a9d7ac9f71945d061"

The test assumes that only the container ID is returned and uses the
entire message as the name for the inspect command. To avoid the need to
parse the container ID from the output after the run command, give the
container a name and use that instead.

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-10-22 15:07:03 -04:00
Tobias Gesellchen
08cec812cb docs: fix description of filters param for /volumes and /networks.
fixes #17091

Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-10-22 15:07:03 -04:00
ripcurld00d
34fdfc8f67 Update fedora doc
`service` is deprecated from Fedora v21.
It's important to enable and start the `docker` daemon using `systemctl`.

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
2015-10-22 15:07:02 -04:00
Sebastiaan van Stijn
1d5b8348ce docs: fix storage driver options list
This fixes the indentation of the storage driver
options list.

Also wraps/reformats some examples to prevent
horizontal scrollbars on the rendered HTML

Fixes #17140

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-22 15:07:02 -04:00
Vincent Demeester
c0705bc51d Deprecate -c cli short variant flag in docker cli
- build
- create

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-22 15:07:02 -04:00
Shijiang Wei
d88f6c33a3 make sure the value of the dangling filter is correct
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-22 15:07:02 -04:00
Madhu Venugopal
1361eaef7c Pass network driver option in docker network command
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 15:07:02 -04:00
Madhu Venugopal
cbec9c9a6b Vendoring libnetwork to Replace the label variable to DriverOpts
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 15:07:02 -04:00
Harald Albers
4a66841730 Add missing options to bash completion for docker import
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 15:07:01 -04:00
Harald Albers
f679c1a5ed bash completion: minor refactoring for consistency
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 15:07:01 -04:00
Harald Albers
69c0989dfb Add missing options to bash completion for docker build
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 15:07:01 -04:00
Steve Durrheimer
10f946d312 Zsh completion : all --<option>= flag values may be given in the next argument
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-22 15:07:01 -04:00
Steve Durrheimer
45cfeed39d Add zsh completion for 'docker import -m --message'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-22 15:07:01 -04:00
David Lawrence
417386caa6 updating notary and gotuf with latest bugfixes
Signed-off-by: David Lawrence <david.lawrence@docker.com>
2015-10-22 15:07:01 -04:00
Daniel Nephin
71f5c74a04 Correct API docs for /images/create
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-10-22 15:07:00 -04:00
Steve Durrheimer
daa20c724a Deprecate 'docker run -c' option in zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-22 15:07:00 -04:00
Steve Durrheimer
b4207be09d Add zsh completion for 'unless-stopped' restart policy
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-22 15:07:00 -04:00
Steve Durrheimer
02a8baf069 Add zsh completion for 'docker build --build-arg'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-22 15:07:00 -04:00
liaoqingwei
447c28b165 Use of checkers on docker_cli_network_unix_test.go.
Signed-off-by: liaoqingwei <liaoqingwei@huawei.com>
2015-10-22 15:07:00 -04:00
Mary Anthony
78afc5876a bad d
Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-22 15:07:00 -04:00
Mary Anthony
3748494073 Removing extra tic
Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-22 15:07:00 -04:00
Derek Ch
90d352e765 fix a race crash when building with "ADD some-broken.tar.xz ..."
The race is between pools.Put which calls buf.Reset and exec.Cmd
doing io.Copy from the buffer; it caused a runtime crash, as
described in #16924:

``` docker-daemon cat the-tarball.xz | xz -d -c -q | docker-untar /path/to/... (aufs ) ```

When docker-untar side fails (like try to set xattr on aufs, or a broken
tar), invokeUnpack will be responsible to exhaust all input, otherwise
`xz` will be write pending for ever.

this change add a receive only channel to cmdStream, and will close it
to notify it's now safe to close the input stream;

in CmdStream the change to use Stdin / Stdout / Stderr keeps the
code simple, os/exec.Cmd will spawn goroutines and call io.Copy automatically.

the CmdStream is actually called in the same file only, change it
lowercase to mark as private.

[...]
INFO[0000] Docker daemon                                 commit=0a8c2e3 execdriver=native-0.2 graphdriver=aufs version=1.8.2

DEBU[0006] Calling POST /build
INFO[0006] POST /v1.20/build?cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=gentoo-x32&ulimits=null
DEBU[0008] [BUILDER] Cache miss
DEBU[0009] Couldn't untar /home/lib-docker-v1.8.2-tmp/tmp/docker-build316710953/stage3-x32-20151004.tar.xz to /home/lib-docker-v1.8.2-tmp/aufs/mnt/d909abb87150463939c13e8a349b889a72d9b14f0cfcab42a8711979be285537: Untar re-exec error: exit status 1: output: operation not supported
DEBU[0009] CopyFileWithTar(/home/lib-docker-v1.8.2-tmp/tmp/docker-build316710953/stage3-x32-20151004.tar.xz, /home/lib-docker-v1.8.2-tmp/aufs/mnt/d909abb87150463939c13e8a349b889a72d9b14f0cfcab42a8711979be285537/)
panic: runtime error: slice bounds out of range

goroutine 42 [running]:
bufio.(*Reader).fill(0xc208187800)
    /usr/local/go/src/bufio/bufio.go:86 +0x2db
bufio.(*Reader).WriteTo(0xc208187800, 0x7ff39602d150, 0xc2083f11a0, 0x508000, 0x0, 0x0)
    /usr/local/go/src/bufio/bufio.go:449 +0x27e
io.Copy(0x7ff39602d150, 0xc2083f11a0, 0x7ff3960261f8, 0xc208187800, 0x0, 0x0, 0x0)
    /usr/local/go/src/io/io.go:354 +0xb2
github.com/docker/docker/pkg/archive.func·006()
    /go/src/github.com/docker/docker/pkg/archive/archive.go:817 +0x71
created by github.com/docker/docker/pkg/archive.CmdStream
    /go/src/github.com/docker/docker/pkg/archive/archive.go:819 +0x1ec

goroutine 1 [chan receive]:
main.(*DaemonCli).CmdDaemon(0xc20809da30, 0xc20800a020, 0xd, 0xd, 0x0, 0x0)
    /go/src/github.com/docker/docker/docker/daemon.go:289 +0x1781
reflect.callMethod(0xc208140090, 0xc20828fce0)
    /usr/local/go/src/reflect/value.go:605 +0x179
reflect.methodValueCall(0xc20800a020, 0xd, 0xd, 0x1, 0xc208140090, 0x0, 0x0, 0xc208140090, 0x0, 0x45343f, ...)
    /usr/local/go/src/reflect/asm_amd64.s:29 +0x36
github.com/docker/docker/cli.(*Cli).Run(0xc208129fb0, 0xc20800a010, 0xe, 0xe, 0x0, 0x0)
    /go/src/github.com/docker/docker/cli/cli.go:89 +0x38e
main.main()
    /go/src/github.com/docker/docker/docker/docker.go:69 +0x428

goroutine 5 [syscall]:
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:21 +0x1f
created by os/signal.init·1
    /usr/local/go/src/os/signal/signal_unix.go:27 +0x35

Signed-off-by: Derek Ch <denc716@gmail.com>
2015-10-22 15:06:59 -04:00
Steve Durrheimer
e51ffc7dd3 Remove '-n -l --latest' options from 'docker network ls' in zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-22 15:06:59 -04:00
Steve Durrheimer
bbd690e2e2 Add zsh completion for '--ipam-driver --subnet --ip-range --gateway --aux-address' for 'docker network create'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-22 15:06:59 -04:00
Madhu Venugopal
14897a0b47 Added network to docker --help and help cleanup
Fixes https://github.com/docker/docker/issues/16909

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 15:06:59 -04:00
Victor Vieux
ac4349bd30 use Server Version
Signed-off-by: Victor Vieux <vieux@docker.com>
2015-10-22 15:06:59 -04:00
Victor Vieux
fb525a33e1 only display 'Engine Version' when it's not empty
Signed-off-by: Victor Vieux <vieux@docker.com>
2015-10-22 15:06:59 -04:00
Sally O'Malley
17def9a2c6 add clarity to -p option
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-10-22 15:06:58 -04:00
Jian Zhang
d1e3a75934 Improve the way we deliver Examples in command line. (Add descriptive titles)
Signed-off-by: Jian Zhang <zhangjian.fnst@cn.fujitsu.com>
2015-10-22 15:06:58 -04:00
Harald Albers
38cd4eb1b2 Add bash completion for docker inspect --size
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 15:06:58 -04:00
Jessica Frazelle
fbe20aa393 update tests
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-22 15:06:58 -04:00
Antonio Murdaca
9b313adb51 daemon: execdriver: lxc: fix cgroup paths
When running LXC dind (outer docker is started with native driver)
cgroup paths point to `/docker/CID` inside `/proc/self/mountinfo` but
these paths aren't mounted (root is wrong). This fix just discard the
cgroup dir from mountinfo and set it to root `/`.
This patch fixes/skip OOM LXC tests that were failing.
Fix #16520

Signed-off-by: Antonio Murdaca <runcom@linux.com>
Signed-off-by: Antonio Murdaca <amurdaca@redhat.com>
2015-10-22 15:06:58 -04:00
Antonio Murdaca
9419eade34 daemon: execdriver: lxc: fix set memory swap
On LXC memory swap was only set to memory_limit*2 even if a value for
memory swap was provided. This patch fix this behavior to be the same
as the native driver and set correct memory swap in the template.
Also add a test specifically for LXC but w/o adding a new test
requirement.

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-10-22 15:06:58 -04:00
Michael Crosby
3ad9cc996a Merge pull request #16989 from tiborvass/bump-libcontainer-for-docker-1.9
Bump libcontainer to 6c198ae2d065c37f44316e0de3df7f3b88950923
2015-10-13 16:56:19 -07:00
Tibor Vass
9c94dcea3d Merge pull request #16863 from dhiltgen/bump_libkv
Bump to latest libkv + dependencies
2015-10-13 15:57:42 -07:00
Tibor Vass
a17e53038d Bump libcontainer to 6c198ae2d065c37f44316e0de3df7f3b88950923
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-13 15:48:13 -07:00
Michael Crosby
6ae6371d11 Merge pull request #16996 from jfrazelle/cleanup-no-reprepro
update release-deb from the reprepro stuff we don't use
2015-10-13 15:46:58 -07:00
Jessica Frazelle
3057f0f0a7 update release-deb from the reprepro stuff we don't use
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-13 15:42:39 -07:00
Tibor Vass
2465ab8814 Merge pull request #16991 from Microsoft/10662-fixuserns
Windows: [TP4] Fix AV due to userns
2015-10-13 15:16:36 -07:00
Daniel Hiltgen
7078e7ddf4 Bump to latest libkv/libnetwork + dependencies
The latest libkv uses a different etcd library.  Unfortunately
that library uses some funky import paths, so I've added a new cleanup
routine for our vendor scripts to be able to normalize the imports
to be consistent with how imports work in this tree.

Signed-off-by: Daniel Hiltgen <daniel.hiltgen@docker.com>
2015-10-13 14:41:43 -07:00
Alexandre Beslic
4ea3ff7061 Merge pull request #16910 from mavenugo/ipam
Vendoring libnetwork for the pluggable IPAM driver support
2015-10-13 14:41:19 -07:00
Vincent Demeester
ce607916e9 Merge pull request #15796 from azurezk/add-size-to-inspect
add container size info to inspect
2015-10-13 23:16:10 +02:00
John Howard
6d71f27760 Windows: Fix AV in build due to userns
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-13 14:02:25 -07:00
moxiegirl
9be87c9a96 Merge pull request #16965 from mikebrow/docs-improvement-for-expose-16634
updating docs for EXPOSE option on run command
2015-10-13 11:33:28 -07:00
Jess Frazelle
3fc75c9739 Merge pull request #16922 from albers/completion-network
[Fix #16919] Add bash completion for `docker network`
2015-10-13 11:25:54 -07:00
Sven Dowideit
dd43c23812 Merge pull request #16981 from sallyom/typos-man
various man page typos
2015-10-14 04:25:26 +10:00
Madhu Venugopal
cc6aece1fd IPAM API & UX
introduced --subnet, --ip-range and --gateway options in docker network
command. Also, user can allocate driver specific ip-address if any using
the --aux-address option.
Supports multiple subnets per network and also sharing ip range
across networks if the network-driver and ipam-driver supports it.
Example, Bridge driver doesnt support sharing same ip range across
networks.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-13 11:03:03 -07:00
Madhu Venugopal
0f351ce364 Docker side changes for the newly introduced IPAM driver
* Made use of IPAM driver primitives for legacy IP configurations
* Replaced custom Generics with backend labels

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-13 10:52:59 -07:00
Madhu Venugopal
2e3113aeef Vendoring in libnetwork ipam support
* Pluggable IPAM driver support
* Performance and Scalability enhancements
* Libkv fixes in multiple backend stores

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-13 10:52:49 -07:00
moxiegirl
9ead1663c3 Merge pull request #16946 from pwnall/cpu_quota_docs
Document CFS CPU period / quota support in the API
2015-10-13 10:51:48 -07:00
Brian Goff
b7d921e1b5 Merge pull request #16963 from Microsoft/10662-kill-partone
Windows: Enable kill (part one)
2015-10-13 13:02:58 -04:00
Sebastiaan van Stijn
e766a3505c Merge pull request #16985 from moxiegirl/carry-dup-text-16961
Centralize discussion of behavior label and env.
2015-10-13 09:48:44 -07:00
Mary Anthony
39a71acf7e Centralize discussion of behavior label and env.
Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-13 09:44:17 -07:00
Sebastiaan van Stijn
3856c5efa6 Merge pull request #16961 from vdemeester/pr-15975-carry-for-docs
Carry #15975 - Add extra fields based on label and env for gelf/fluentd/json-file/journald log drivers
2015-10-13 09:30:32 -07:00
Tibor Vass
0bc748bba3 Merge pull request #16956 from runcom/16665-fix-inspect-Config-api120
Return old Config fields for API < v1.20
2015-10-13 09:08:26 -07:00
Sally O'Malley
d79860af87 various man page typos
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-10-13 11:52:14 -04:00
Mike Brown
d955fdb9ac updating docs for EXPOSE option on run command; fixes #16634
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-10-13 10:43:27 -05:00
John Howard
2dca1bc633 Windows: Enable kill (part one)
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-13 08:42:47 -07:00
Vincent Demeester
5ecbc9747f Merge pull request #16303 from coolljt0725/add_docker_info_show_base_size
Add docker info show base filesystem size of container/image when use devicemapper
2015-10-13 14:43:52 +02:00
Antonio Murdaca
8c63ce4f6b Fix Config.Cpuset from API < 1.20
Signed-off-by: Antonio Murdaca <amurdaca@redhat.com>
2015-10-13 09:09:05 +02:00
Vincent Demeester
cd426ebed7 Add docs for label/env log-opts
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-13 08:39:47 +02:00
Tibor Vass
9a13c2dc79 Merge pull request #16958 from tonistiigi/digest-collision
Make sure tags and digests don’t collide
2015-10-12 15:45:34 -07:00
Tibor Vass
09ddb67dd4 Merge pull request #16962 from estesp/check-network-files-exist
Make sure network files exist before adding them to mounts
2015-10-12 15:38:51 -07:00
Jess Frazelle
df79536769 Merge pull request #16009 from azurezk/vol-create-conflict-option
volume create error on conflict option
2015-10-12 15:27:36 -07:00
Sebastiaan van Stijn
dc500630ec Merge pull request #16942 from physicalit/master
Add CMD and EXPOSE instruction example
2015-10-12 15:26:30 -07:00
moxiegirl
c59e24ff12 Merge pull request #16888 from dhiltgen/discovery_tls
Document updates for cluster-store-opt
2015-10-12 15:26:08 -07:00
Tonis Tiigi
d08ca5c2b6 Make sure tags and digests don’t collide
Tags and digests are kept in the same storage. We want to make sure that they are completely separated - tags are something users set and digests can only be set by pull-by-digest code path.

Reverts #14664

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-10-12 14:20:11 -07:00
Phil Estes
ed68486f68 Make sure network files exist before adding them to mounts
It is possible that network files do not exist, especially in the case
of `--net=host` where a host OS (like CoreOS) does not use certain
standard network files.  This patch verifies that the source file of a
network mount point exists before adding it to the list of mount points
for bind mounting from the container's metadata directory.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-12 17:18:34 -04:00
Arnaud Porterie
96965e2abd Merge pull request #16954 from jfrazelle/update-changelog-master
Update changelog master
2015-10-12 12:31:15 -07:00
Jess Frazelle
eebf88ffd3 Merge pull request #16953 from aaronlehmann/master-security
Add 1.8.3 security fixes to master
2015-10-12 12:20:49 -07:00
Daniel Dao
0083f6e984 add labels/env log option for jsonfile
this allows jsonfile logger to collect extra metadata from containers with
`--log-opt labels=label1,label2 --log-opt env=env1,env2`.

Extra attributes are saved into `attrs` attributes for each log data.

Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2015-10-12 21:12:46 +02:00
Daniel Dao
11a24f19c2 add labels/env log option for journald
this allows journald logger to collect extra metadata from containers with
`--log-opt labels=label1,label2 --log-opt env=env1,env2`

Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2015-10-12 21:12:46 +02:00
Daniel Dao
4cc8490283 add labels/env log option for fluentd
this allows fluentd logger to collect extra metadata from containers with
`--log-opt labels=label1,label2 --log-opt env=env1,env2`

Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2015-10-12 21:12:46 +02:00
Daniel Dao
5794a0190d add labels/env log option for gelf
this allows gelf logger to collect extra metadata from containers with
`--log-opt labels=label1,label2 --log-opt env=env1,env2`

Additional log field will be prefixed with `_` as per gelf protocol
https://www.graylog.org/resources/gelf/

Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2015-10-12 21:12:46 +02:00
Daniel Dao
656cdbb0e9 add env and labels to log context
Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2015-10-12 21:12:46 +02:00
Vincent Demeester
151564d39b Merge pull request #16904 from vikstrous/fish_completion_bug
fix fish completion wrong image names bug
2015-10-12 20:42:24 +02:00
Vincent Demeester
0b122dc55b Merge pull request #16914 from coolljt0725/add_userns_check
Add user namespace check to check-chonfig.sh
2015-10-12 20:39:46 +02:00
Jess Frazelle
6bacb32755 Merge pull request #16934 from sdurrheimer/zsh-completion-docker-network
Add zsh completion for 'docker network'
2015-10-12 11:29:57 -07:00
Jessica Frazelle
01ca4f621d bump version back to 1.9.0-dev
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-12 11:18:28 -07:00
Jessica Frazelle
ec97bc9394 bump version for v1.8.3
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
(cherry picked from commit f4bf5c7026)
2015-10-12 11:18:04 -07:00
Michael Crosby
8a71e005b4 Merge pull request #16951 from icecrime/maintainers_rm_fred
Remove fredlf from MAINTAINERS
2015-10-12 11:07:50 -07:00
Arnaud Porterie
c2d21fa9d3 Remove fredlf from MAINTAINERS
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-10-12 10:58:04 -07:00
Aaron Lehmann
cba4bbad4f Remove trust package
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-10-12 10:51:28 -07:00
Aaron Lehmann
011bfd666e Unmarshal signed payload when pulling by digest
Add a unit test for validateManifest which ensures extra data can't be
injected by adding data to the JSON object outside the payload area.

This also removes validation of legacy signatures at pull time. This
starts the path of deprecating legacy signatures, whose presence in the
very JSON document they attempt to sign is problematic.  These
signatures were only checked for official images, and since they only
caused a weakly-worded message to be printed, removing the verification
should not cause impact.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-10-12 10:51:28 -07:00
Tonis Tiigi
504e67b867 Calculate hash based image IDs on pull
Generate a hash chain involving the image configuration, layer digests,
and parent image hashes. Use the digests to compute IDs for each image
in a manifest, instead of using the remotely specified IDs.

To avoid breaking users' caches, check for images already in the graph
under old IDs, and avoid repulling an image if the version on disk under
the legacy ID ends up with the same digest that was computed from the
manifest for that image.

When a calculated ID already exists in the graph but can't be verified,
continue trying SHA256(digest) until a suitable ID is found.

"save" and "load" are not changed to use a similar scheme. "load" will
preserve the IDs present in the tar file.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-10-12 10:51:28 -07:00
Phil Estes
67034e5003 Merge pull request #16947 from Microsoft/jjh/daemon-broken-on-master
Windows: Daemon broken on master
2015-10-12 13:40:02 -04:00
Arnaud Porterie
b0cbc02283 Merge pull request #15503 from ibuildthecloud/revert-label
Revert "Container don't inherit from image labels"
2015-10-12 10:03:18 -07:00
Alexander Morozov
2d1414e8b0 Merge pull request #16945 from estesp/ocd-on-nonmatching-func-names
Correct mismatched function names (UID() and Gid())
2015-10-12 09:15:51 -07:00
John Howard
bfe252b781 Windows: Daemon broken on master
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-12 09:11:19 -07:00
Antonio Murdaca
d7177c1224 Merge pull request #16900 from ZJU-SEL/16756-update-pull-local
update pull-local#16756
2015-10-12 17:49:10 +02:00
Victor Costan
26bd356078 Document CFS CPU period / quota support in the API.
Docker 1.7 got support for specifying the CFS scheduler's CPU quota and
period. The work appears to have started around commit
dcc50e1d59. This change updates the API
documentation to reflect the existing support.

Signed-off-by: Victor Costan <costan@gmail.com>
2015-10-12 11:26:39 -04:00
Antonio Murdaca
08c5f52d70 Merge pull request #16928 from coolljt0725/fix_16927
Fix docker daemon exit immediately after starting without -H option closes #16927
2015-10-12 17:24:42 +02:00
Daniel Hiltgen
ab83cf37c9 Document updates for cluster-store-opt
This updates the docs for the daemon based on the new cluster-store-opt
for TLS support.

Signed-off-by: Daniel Hiltgen <daniel.hiltgen@docker.com>
2015-10-12 08:05:02 -07:00
Phil Estes
79240b9eaf Correct mismatched function names (UID() and Gid())
All the go-lint work forced any existing "Uid" -> "UID", but seems to
not have the same rules for Gid, so stat package has calls UID() and
Gid().

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-12 10:58:33 -04:00
Mihuleacc Sergiu
fad2cc6a18 Add CMD and EXPOSE instruction example
Signed-off-by: Mihuleacc Sergiu <mihuleac.sergiu@gmail.com>
2015-10-12 17:30:47 +03:00
Phil Estes
a9e5cb0efb Merge pull request #16933 from ZJU-SEL/update-save-load-test-16756
update test using c.Assert replace c.Fatal
2015-10-12 09:54:13 -04:00
Antonio Murdaca
56ed0a6e8c Merge pull request #16931 from SvenDowideit/minor-dind-error-msg-nit
Missing a single dash in error message
2015-10-12 15:18:45 +02:00
Hao Zhang
d5830d66e0 update test using c.Assert replace c.Fatal
Signed-off-by: Hao Zhang <21521210@zju.edu.cn>
2015-10-12 06:32:21 -04:00
Steve Durrheimer
24174e8a84 Add zsh completion for 'docker network'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-12 12:06:12 +02:00
Lei Jitang
e38767e197 Fix docker daemon exit immediately after starting without -H option closes #16927
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-12 04:49:25 -04:00
Sven Dowideit
4e899d64e0 Missing a single dash in error message
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-10-11 22:46:14 -07:00
Alexander Morozov
9273c53d83 Merge pull request #16929 from HuKeping/add-back
Comment: add some lines back
2015-10-11 22:12:21 -07:00
Hu Keping
a066b94ef0 Comment: add some lines back
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-12 19:34:58 +08:00
Arnaud Porterie
32c3b99663 Merge pull request #16930 from duglin/RemoveParam
Remove used param on ParseHost
2015-10-11 21:37:03 -07:00
Doug Davis
ba973f2d74 Remove used param on ParseHost
The first param on opts.ParseHost() wasn't being used for anything.

Once we get rid of that param we can then also clean-up some code
that calls ParseHost() because the param that was passed in wasn't
being used for anything else.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-10-11 20:45:17 -07:00
Kun Zhang
0ff3123eba volume create error on conflict option
Signed-off-by: Kun Zhang <zkazure@gmail.com>
2015-10-12 11:16:39 +08:00
Sebastiaan van Stijn
c45ad0b02d Merge pull request #15753 from SvenDowideit/make-windows-default-to-use-2376
Default the tcp port to 2376 if tls is on, and 2375 if not
2015-10-11 15:35:04 -07:00
Sebastiaan van Stijn
70edf41c06 Merge pull request #16764 from thaJeztah/follow-the-white-rabbit
Docs: add Docker version/API version matrix
2015-10-11 15:28:46 -07:00
Vincent Demeester
6e12d9fe62 Merge pull request #16865 from MHBauer/registry-service-refactor
refactor away direct references to daemon member
2015-10-11 21:47:58 +02:00
Sebastiaan van Stijn
3a24eb2de4 Merge pull request #16618 from abronan/fix_discovery_pkg_readme
Fix discovery package README with the right --cluster* flags
2015-10-11 12:05:07 -07:00
Harald Albers
68de2d4834 Bash completion for docker network
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-11 11:07:48 -07:00
Harald Albers
e4bf5cff49 Refactor bash completion: pull out subcommand parsing
`docker network` is the second command with subcommands.

This refactoring pulls out parsing and processing of subcommands
from `docker volume` completion and thus makes its logic available
for other commands.

Also enables `__docker_pos_first_nonflag` for subcommand completion.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-11 11:07:33 -07:00
Sven Dowideit
ad9706a7c5 Merge pull request #16915 from moxiegirl/testing-hugo-15
Enabled GitHub Flavored Markdown
2015-10-12 03:52:11 +10:00
Mary Anthony
8fee1c2020 Enabled GitHub Flavored Markdown
GitHub flavored markdown is now supported for links and images. Also, ran LinkChecker and FileResolver. Yay!
Fixes from Spider check
Output for docker/docker now goes into engine directory

Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-11 07:49:54 -07:00
Lei Jitang
d475c4ddc1 Add user namespace check to check-chonfig.sh
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-11 17:26:34 +08:00
Vincent Demeester
fb8217ee62 Merge pull request #16889 from cxxly/16756-refactor-docker_cli_wait_test
use of checkers on Integration test
2015-10-11 10:12:42 +02:00
Xiaoxu Chen
19c30447b5 use of checkers on Integration test
part of #16756

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>

update integration-cli/docker_cli_wait_test.go
part of #16756

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>

update integration-cli/docker_cli_wait_test.go
part of #16756

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>

update docker_cli_wait_test.go
part of #16756

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
2015-10-11 11:31:01 +08:00
heartlock
dc9dd188cf update pull-local#16756
Signed-off-by: heartlock <21521209@zju.edu.cn>
2015-10-11 09:57:25 +08:00
Arnaud Porterie
ed9434c5bb Merge pull request #12648 from estesp/userns-impl
Phase 1 implementation of user namespaces as a remapped container root
2015-10-10 11:38:07 -07:00
Arnaud Porterie
ef4b053b90 Merge pull request #16907 from sdurrheimer/zsh-completion-cluster-store-opt
Add zsh completion for '--cluster-store-opt'
2015-10-10 10:32:08 -07:00
Vincent Demeester
ec05d93c16 Merge pull request #16800 from duglin/buildCache
Add useful info to builder cache logrus.Debug
2015-10-10 17:38:43 +02:00
Lei Jitang
5c374c7137 Add docker info show base filesystem size of container/image when use devicemapper
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-10 22:52:05 +08:00
Steve Durrheimer
ae31aa10ab Add zsh completion for '--cluster-store-opt'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-10 16:42:01 +02:00
Vincent Demeester
d46fff7d8f Merge pull request #16846 from HuKeping/master
Use checkers on Integration test when possible
2015-10-10 16:35:17 +02:00
Hu Keping
72269acf29 Use checkers on Integration test when possible
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-10 21:51:15 +08:00
Doug Davis
4920d40093 Add useful info to builder cache logrus.Debug
Closes: #16790

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-10-10 05:53:06 -07:00
Vincent Demeester
faa448e801 Merge pull request #16838 from ZJU-SEL/update-save-load-unix-test
update save-load-unix-test
2015-10-10 14:51:18 +02:00
Zhang Kun
b4d6b23838 add size to inspect
Signed-off-by: Zhang Kun <zkazure@gmail.com>
2015-10-10 20:44:29 +08:00
Sebastiaan van Stijn
a6bbf16aa1 Merge pull request #16895 from vdemeester/ocd-validate-typo
Fix few comments in validate scripts
2015-10-10 12:08:37 +02:00
Sebastiaan van Stijn
5f2e0864e4 Merge pull request #16899 from jfrazelle/provide-dates
fix depreciation dates
2015-10-10 12:06:34 +02:00
Vincent Demeester
99c247a46a Merge pull request #16874 from ZJU-SEL/fix-parse-run-volumes
fix the error msg of func TestParseRunVolumes
2015-10-10 11:27:08 +02:00
Vincent Demeester
1ce9be346b Fix few comments in validate scripts
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-10 11:21:04 +02:00
Viktor Stanchev
4d746658cc fix fish completion; wrong image names bug; close #16672
Signed-off-by: Viktor Stanchev <me@viktorstanchev.com>
2015-10-10 00:55:09 -07:00
xlgao-zju
8d98b37031 update save-load-unix-test
Signed-off-by: xlgao-zju <xlgao@zju.edu.cn>
2015-10-10 15:16:42 +08:00
xlgao-zju
8363f2f171 fix the error msg of func TestParseRunVolumes
Signed-off-by: xlgao-zju <xlgao@zju.edu.cn>
2015-10-10 14:56:50 +08:00
Jessica Frazelle
26701e2d9f fix depreciation dates
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-09 20:24:04 -07:00
Phil Estes
bf80adeee4 Merge pull request #16894 from diogomonica/renaming-trust-keys
Renaming trust keys
2015-10-09 23:20:54 -04:00
Jess Frazelle
e5f7fdccfb Merge pull request #16788 from stefanberger/apparmor_policy_1.9
contrib: Adjustments to AppArmor docker engine policy for docker 1.9
2015-10-09 20:15:06 -07:00
Jessica Frazelle
930b27a86b fix logic because jess is the worst
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-09 22:21:24 -04:00
Phil Estes
a85e6a4d4a Update integration test userns support with flag name change
`--root` is now `--userns-remap`

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-09 20:52:45 -04:00
Jessica Frazelle
ea3afdad61 add test-integration-cli specifics for userns
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-09 20:50:27 -04:00
Phil Estes
44e1023a93 Add user namespace enable flag --userns-remap in experimental build
This adds the capability to turn on user namespace support when using an
experimental build Docker daemon binary using the `--userns-remap` flag.

Also documentation is added to the experimental docs.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-09 20:50:05 -04:00
Sven Dowideit
50f0906007 Default the tcp port to 2376 if tls is on, and 2375 if not
Refactor so that the Host flag validation doesn't destroy the user's input,
and then post process the flags when we know the TLS options

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-10-09 17:48:03 -07:00
Diogo Monica
d9a2fadb5e Changing docs to reflect new names
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-10-09 15:13:37 -07:00
Vincent Demeester
1e5165275f Merge pull request #16858 from cxxly/16756-refactor-docker_cli_login_test
refactor integration-cli/docker_cli_login_test.go with Assert
2015-10-09 23:56:24 +02:00
Phil Estes
442b45628e Add user namespace (mapping) support to the Docker engine
Adds support for the daemon to handle user namespace maps as a
per-daemon setting.

Support for handling uid/gid mapping is added to the builder,
archive/unarchive packages and functions, all graphdrivers (except
Windows), and the test suite is updated to handle user namespace daemon
rootgraph changes.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-09 17:47:37 -04:00
Phil Estes
9a3ab0358e Add utility/support package for user namespace support
The `pkg/idtools` package supports the creation of user(s) for
retrieving /etc/sub{u,g}id ranges and creation of the UID/GID mappings
provided to clone() to add support for user namespaces in Docker.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-09 17:44:47 -04:00
Morgan Bauer
215bfc73d2 refactor away direct references to daemon member
- add daemon methods Authenticate & SearchRegistryForImages
 - use new methods instead of directly accessing RegistryService

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-09 14:40:03 -07:00
Brian Goff
7787d6dc28 Merge pull request #16709 from MHBauer/daemon-derepo2
continue daemon refactor of Repositories()
2015-10-09 15:35:21 -04:00
Phil Estes
f112cd6b6e Merge pull request #16868 from cpuguy83/speedup_graph_unittests
Do not probe plugins for graph init unless `-s`
2015-10-09 15:31:09 -04:00
Diogo Monica
63f8db83aa Adding tests for backwards compatibility
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-10-09 12:20:19 -07:00
Diogo Monica
52240c2d62 Changed trust ENV variables while still supporting old ones
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-10-09 12:19:43 -07:00
Sebastiaan van Stijn
dbc20693f7 Merge pull request #16604 from mountkin/add-missing-commit-parameters
add missing parameters of the commit API to the docs
2015-10-09 20:55:54 +02:00
Sebastiaan van Stijn
5099255d87 Merge pull request #16722 from sallyom/man-docker-build-fix
add clarity in man/docker-build
2015-10-09 20:53:28 +02:00
Sally O'Malley
a2bc804936 add clarity/fix typos man/docker-build
add needed clarity for
1)  using STDIN to pass build context
2)  --cpu-shares flag use

also a few typos

Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-10-09 13:57:13 -04:00
Alexander Morozov
90e733f0b1 Merge pull request #16867 from dmcgowan/distribution-upstream-name-change
Update distribution package for name regexp change
2015-10-09 10:09:23 -07:00
Alexander Morozov
2491f6c95a Merge pull request #16877 from cxxly/16756-refactor-docker_hub_pull_suite_test
Use Assert statement to replace condition judgment
2015-10-09 09:57:14 -07:00
Alexander Morozov
a77d80d9d1 Merge pull request #16881 from cxxly/16756-refactor-docker_cli_stats_test
update integration-cli/docker_cli_stats_test.go use Assert statement
2015-10-09 09:55:41 -07:00
Alexander Morozov
dc04675f4a Merge pull request #16882 from albers/completion--cluster-store-opt
Add bash completion for `--cluster-store-opt` (#16644)
2015-10-09 09:53:56 -07:00
moxiegirl
26ee5fea02 Merge pull request #16287 from mikebrow/16055-man-update-for-docker-run-with-host-volumes
man update for docker run with host volumes
2015-10-09 09:24:11 -07:00
Brian Goff
3b16cb15b4 Do not probe plugins for graph init unless -s
When `-s` is not specified, there is no need to ask if there is a plugin
with the specified name.

This speeds up unit tests dramatically since they don't need to wait the
timeout period for each call to `graphdriver.New`.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-09 12:02:54 -04:00
Brian Goff
96e1cda40f Merge pull request #16875 from hqhq/hq_quiet_at_info
Keep daemon quiet when using docker info
2015-10-09 11:26:53 -04:00
Phil Estes
c2df663851 Merge pull request #16843 from ZJU-SEL/16756-fix-rename-test
#16756 update rename test
2015-10-09 11:23:46 -04:00
Shijiang Wei
b69f4f3c13 add missing parameters of the commit API to the docs
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-09 23:21:12 +08:00
Vincent Demeester
19ff8e09ba Merge pull request #16870 from cxxly/16756-refactor-docker_cli_proxy_test
refactor docker_cli_proxy_test.go
2015-10-09 15:43:39 +02:00
Sebastiaan van Stijn
3526993b2f Merge pull request #16108 from charleswhchan/patch-2
Touch up Node.js and MongoDB examples
2015-10-09 15:33:30 +02:00
moxiegirl
06146b333c Merge pull request #16876 from luca3m/patch-1
Sync with remote API
2015-10-09 06:30:02 -07:00
moxiegirl
734c9d2f67 Merge pull request #16833 from sunyuan3/cpu-shares
Add description for "--cpu-shares=0".
2015-10-09 06:29:18 -07:00
moxiegirl
b7083cf08b Merge pull request #15903 from charleswhchan/patch-1
Revise documentation for Docker LABEL.
2015-10-09 06:11:50 -07:00
Hao Zhang
22d0be5797 use gocheck asserts instead of fatal
Signed-off-by: Hao Zhang <21521210@zju.edu.cn>
2015-10-09 08:34:02 -04:00
Harald Albers
a095f82877 Add bash completion for --cluster-store-opt
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-09 14:00:52 +02:00
Luca Marturana
d7ca0a48ac Sync with remote API
Signed-off-by: Luca Marturana <lucamarturana@gmail.com>

Sync also container events

Signed-off-by: Luca Marturana <lucamarturana@gmail.com>

Sync also man page

Signed-off-by: Luca Marturana <lucamarturana@gmail.com>
2015-10-09 13:53:51 +02:00
Vincent Demeester
04e883c22b Merge pull request #16879 from x1022as/network
remove useless function generateIfaceName()
2015-10-09 13:25:03 +02:00
Xiaoxu Chen
90a81f6af2 update integration-cli/docker_cli_stats_test.go use Assert statement
part of #16756

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
2015-10-09 18:24:32 +08:00
Deng Guangxing
a1620084c5 remove useless function generateIfaceName()
generateIfaceName() is useless as libnetwork has done
the job.

Signed-off-by: Deng Guangxing <dengguangxing@huawei.com>
2015-10-09 18:07:54 +08:00
Xiaoxu Chen
ee7fdbe8b9 Use Assert statement to replace condition judgment
part of #16756
Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
2015-10-09 17:45:28 +08:00
Xiaoxu Chen
75bc0c064b update docker_cli_login_test.go
part of #16756

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
2015-10-09 15:08:01 +08:00
Qiang Huang
aaacde4fd2 Keep daemon quiet when using docker info
If I have some unsupported sysinfo, it's warning on daemon
side every time I use `docker info`, it seems unnecessay and
annoying to me, let's keep it quiet.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-10-09 14:57:47 +08:00
Xiaoxu Chen
1db161768c update docker_cli_proxy_test.go
Part of #16756
Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
2015-10-09 14:53:56 +08:00
Charles Chan
c7e0531c3a Revise documentation for Docker LABEL, including review comments by @SvenDowideit and @thaJeztah in PR #15903.
Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-10-08 20:47:09 -07:00
Xiaoxu Chen
14f43406a3 refactor docker_cli_proxy_test.go
part of #16756

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
2015-10-09 11:11:05 +08:00
Arnaud Porterie
e7ef8633d5 Merge pull request #16862 from cpuguy83/bump_runc
Bump runc
2015-10-08 19:09:47 -07:00
Jess Frazelle
a1d432301d Merge pull request #16859 from diogomonica/changing-trust-server-checks
Changing trustServer allowed URL validation
2015-10-08 18:33:35 -07:00
Jess Frazelle
103189e562 Merge pull request #16866 from cpuguy83/fix_exp_graphdriver_error
Fix exp tests cast protodriver to naivediffdriver
2015-10-08 18:01:48 -07:00
Diogo Monica
a2f9fb7777 Changing trustServer allowed URL behavior
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-10-08 17:47:25 -07:00
Derek McGowan
b5b0da5fec Update distribution package
Pick up name regexp change in distribution to allow matching of hostnames as a valid component of a repository.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-10-08 17:16:43 -07:00
Brian Goff
a705ca0173 Fix exp tests cast protodriver to naivediffdriver
A recent change made `graphdriver.NaiveDiffDriver` from a function to a
struct. New function is `graphdriver.NewNaiveDiffDriver.

The graphdriver plugin PR was created (and tests run) before this change
was introduced causing the failure to not be seen until after merge.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-08 19:44:50 -04:00
Michael Crosby
6d9a84bcd0 Merge pull request #16152 from chlunde/devmapper-mount-flags
Use pkg/mount to support more flags in dm.mountopt
2015-10-08 16:02:50 -07:00
Sebastiaan van Stijn
bccf5c756b Merge pull request #16861 from moxiegirl/fix-testing-stuff
Removing the tests.
2015-10-09 00:46:02 +02:00
Mary Anthony
5a94d2b5b9 Removing the tests. We have training site now.
Ugh...actually adding the files to delete

Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-08 15:22:59 -07:00
Morgan Bauer
ee36b57c8f continue daemon refactor of Repositories()
- use daemon member directly rather than through a function call
 - create GetImage method for use external to deamon

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-08 15:06:55 -07:00
Jess Frazelle
b50a88cfd7 Merge pull request #16644 from dhiltgen/discovery_tls
Add TLS support for discovery backend
2015-10-08 14:21:06 -07:00
Jess Frazelle
67e38cc54c Merge pull request #16638 from MHBauer/daemon-derepo
refactor daemon image tagging
2015-10-08 14:14:20 -07:00
Brian Goff
4ab8514387 Merge pull request #16643 from chenchun/fix_empty_repository
Do not try to cleanupMounts if daemon.repository is empty
2015-10-08 17:10:49 -04:00
Brian Goff
d9f5f1954c Bump runc
Fixes a race when starting a container when there is an error, the stdio
streams are not always written.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-08 17:07:00 -04:00
Jess Frazelle
01cd67e752 Merge pull request #16366 from MHBauer/logs-refactor
refactor logs to not use internal data structures
2015-10-08 14:05:02 -07:00
Jess Frazelle
bea2257f92 Merge pull request #16803 from tiborvass/pkg-broadcaster
Move types from progressreader and broadcastwriter to broadcaster
2015-10-08 13:51:08 -07:00
Jess Frazelle
4c55464dd3 Merge pull request #13777 from cpuguy83/graphdriver_extpoints
Create extpoint for graphdrivers
2015-10-08 13:46:42 -07:00
Brian Goff
5ec323aaa2 Merge pull request #16660 from Microsoft/js/hostname
Windows: --hostname support
2015-10-08 16:11:49 -04:00
Vincent Demeester
caf7d83c67 Merge pull request #16826 from LK4D4/refactor_listenfd
Refactor listenFD function
2015-10-08 22:08:52 +02:00
Vincent Demeester
991589d518 Merge pull request #16781 from brahmaroutu/pkg_integration_timeout
timeouts causing tests to fail differently. GCCGO CI.
2015-10-08 22:02:22 +02:00
Jess Frazelle
4796b5c2f8 Merge pull request #16544 from Mashimiao/fix-bug-client-start-signal-discarded
client/start: fix logic for discarded signal
2015-10-08 12:54:31 -07:00
Jess Frazelle
5bde858db5 Merge pull request #16581 from fgimenez/11584-stdcopy-test-coverage
Added test coverage to StdCopy closes #11584
2015-10-08 12:53:25 -07:00
moxiegirl
246072e8c5 Merge pull request #16837 from x1022as/network
update dockernetwork.md and network api
2015-10-08 12:27:49 -07:00
Jess Frazelle
cc411c054f Merge pull request #16785 from cpuguy83/exec_cleanup
Cleanup some issues with exec
2015-10-08 12:02:03 -07:00
Jess Frazelle
b5d914188e Merge pull request #16674 from coolljt0725/use_consistent_command_description
Use consistent command description
2015-10-08 12:01:16 -07:00
Sebastiaan van Stijn
80469f8180 Merge pull request #16850 from moxiegirl/fix-command-meta
Fixing issues introduced with new commands adding index
2015-10-08 20:59:59 +02:00
Jess Frazelle
73e3d85c28 Merge pull request #16791 from flaccid/patch-1
Do not run yaourt as root/sudo
2015-10-08 11:50:56 -07:00
Jess Frazelle
9123f77a78 Merge pull request #16817 from cpuguy83/explicit_volume_ls
Make `docker volume` behave like `docker network`
2015-10-08 11:36:51 -07:00
Arnaud Porterie
b3b9fe8c77 Merge pull request #15868 from crosbymichael/aufs-data
Add aufs data structure for added mount information
2015-10-08 11:17:20 -07:00
Jess Frazelle
41c99cc621 Merge pull request #15693 from vdemeester/15659-image-label-filter
Fix #15659 : filter by label for docker images commited
2015-10-08 11:14:51 -07:00
Vincent Demeester
683ee20562 Merge pull request #16669 from sunyuan3/TestRunInValidCPUShares
add TestRunInValidCPUShares
2015-10-08 19:38:21 +02:00
Xiaoxu Chen
79498b1c61 refactor integration-cli/docker_cli_login_test.go with Assert
part of #16756

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
2015-10-08 12:43:03 -04:00
Jess Frazelle
2b6af905fa Merge pull request #16815 from duglin/fixHelp
Fix help test comment to align with the code
2015-10-08 09:29:32 -07:00
Mary Anthony
b44ef2b306 Fixing issues in command ordering. Adding index.md
Adjust bullets
Entering Seb's comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-08 09:28:46 -07:00
Jess Frazelle
c281f692c7 Merge pull request #16825 from LK4D4/return_listenbuffer
Return listenbuffer behavior
2015-10-08 09:18:47 -07:00
Alexander Morozov
6654b0e05f Merge pull request #16852 from estesp/overlay-cleanup
Simplify dir removal in overlay driver
2015-10-08 08:44:50 -07:00
Alexander Morozov
9e58793207 Merge pull request #16842 from coolljt0725/revert_16818
Revert add parent img refcount for faster rmi
2015-10-08 08:40:35 -07:00
Vincent Batts
c3e5364813 Merge pull request #16823 from rhvgoyal/check-thin-pool
devmapper: Make sure device is a thin pool device
2015-10-08 11:27:53 -04:00
Srini Brahmaroutu
ffe32ac371 Timeouts are causing tests to fail differently. GCCGO CI.
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-10-08 15:14:56 +00:00
Phil Estes
f418f4864b Merge pull request #16848 from thaJeztah/fix-broken-link-in-error
Fix broken link in error-message
2015-10-08 11:11:11 -04:00
Phil Estes
6ed11b5374 Simplify dir removal in overlay driver
There is no need to call `os.Stat` on the driver filesystem path of a
container as `os.RemoveAll` already handles (properly) the case where
the path no longer exists.

Given the results of the stat() were not even being used,  there is no
value in erroring out because of the stat call failure, and worse, it
prevents daemon cleanup of containers in "Dead" state unless you re-create
directories that were already removed via a manual cleanup after a
failure.  This brings removal in overlay in line with aufs/devicemapper
drivers which don't error out if the filesystem path no longer exists.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-08 11:04:00 -04:00
Stefan Berger
f5be0821cf contrib: Adjustments to AppArmor docker engine policy for docker 1.9
This patch contains a few extensions for the AppArmor docker engine
policy for docker 1.9.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2015-10-08 10:08:53 -04:00
James Turnbull
52de250496 Merge pull request #16832 from sunyuan3/daemoncommand
Replace the deprecated -d with docker daemon.
2015-10-08 10:06:10 -04:00
James Turnbull
a4eba15b75 Merge pull request #16828 from jwayong/jwayong/docs
Docs: Add docker-elements to remote API client lib doc page
2015-10-08 10:05:44 -04:00
moxiegirl
df6cd114a0 Merge pull request #15265 from greaber/dockerignore-docs
Further clarifications to .dockerignore docs
2015-10-08 06:24:44 -07:00
James Turnbull
e777f96e59 Merge pull request #16845 from thaJeztah/is-that-a-container-in-your-repo
docs: minor fix in faq, and update link
2015-10-08 08:55:29 -04:00
Lei Jitang
2b0927c9ac Use consistent command description
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-08 08:46:21 -04:00
Sebastiaan van Stijn
c1783a1c2a Merge pull request #16844 from thaJeztah/fix-typo-in-maintainers
Fix typo in MAINTAINERS
2015-10-08 14:42:12 +02:00
Sebastiaan van Stijn
4830f488d5 Fix broken link in error-message
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-08 14:32:34 +02:00
Sebastiaan van Stijn
6fda30a437 docs: minor fix in faq, and update link
The registry doesn't have containers, only images.
Also updated the Docker Hub link to the new location.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-08 13:49:30 +02:00
Sebastiaan van Stijn
618e00da81 Fix typo in MAINTAINERS
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-08 13:32:58 +02:00
Lei Jitang
b290690d73 Revert add parent img refcount for faster rmi
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-08 06:46:27 -04:00
Vincent Demeester
53d2429164 Merge pull request #16780 from Microsoft/jjh/vfs-build-tags
Fix VFS build tags
2015-10-08 09:43:06 +02:00
Deng Guangxing
54f98f40a4 update dockernetwork.md and network api
Signed-off-by: Deng Guangxing <dengguangxing@huawei.com>
2015-10-08 15:34:24 +08:00
Yuan Sun
b7249569e2 Add description for "--cpu-shares=0".
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-10-08 10:50:55 +08:00
Alexander Morozov
4a9d039721 Merge pull request #16783 from Microsoft/10662-cliwait
Windows CI: cli_wait_test
2015-10-07 19:39:32 -07:00
Yuan Sun
b08c6b1768 Replace the deprecated -d with docker daemon.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-10-08 10:25:16 +08:00
Yuan Sun
042d08a2a8 add TestRunInValidCPUShares
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-10-08 10:04:51 +08:00
Tibor Vass
a8175b751c Merge pull request #16830 from Microsoft/10662-refixdownload
Windows: Regression re-fix builder
2015-10-07 19:51:39 -04:00
Daniel Hiltgen
124792a871 Add TLS support for discovery backend
This leverages recent additions to libkv enabling client
authentication via TLS so the discovery back-end can be locked
down with mutual TLS.  Example usage:

    docker daemon [other args] \
        --cluster-advertise 192.168.122.168:2376 \
        --cluster-store etcd://192.168.122.168:2379 \
        --cluster-store-opt kv.cacertfile=/path/to/ca.pem \
        --cluster-store-opt kv.certfile=/path/to/cert.pem \
        --cluster-store-opt kv.keyfile=/path/to/key.pem

Signed-off-by: Daniel Hiltgen <daniel.hiltgen@docker.com>
2015-10-07 16:01:00 -07:00
John Howard
9cd84e405d Windows: Regression re-fix builder
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-07 15:57:37 -07:00
Morgan Bauer
1eecc1e7e5 refactor logs to not use internal data structures
- refactor to make it easier to split the api in the future
 - additional tests for non existent container case

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-07 15:44:16 -07:00
Morgan Bauer
77c592d26a refactor daemon
- create pass through in daemon for access to functions on daemon
   member
 - import image
push image
export image and corrections
lookup image & comments
load image
list images
image history & comments

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-07 15:29:02 -07:00
Januar Wayong
96ad26a730 Docs: Add docker-elements to remote API client lib doc page
This closes #16824

Signed-off-by: Januar Wayong <januar@gmail.com>
2015-10-08 08:45:35 +11:00
Alexander Morozov
fb04043ca5 Refactor listenFD function
* fixed weird logic with "*"
* return error if fdNum is failed to parse
* check if listener at offset is nil
* close unused listeners

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-07 14:26:48 -07:00
Alexander Morozov
281a48d092 Return listenbuffer behavior
Now we're start to serve early, but all Accept calls are intercepted by
listenbuffer or systemd socket.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-07 14:18:42 -07:00
Grant Reaber
899ecc11c5 clarify dockerignore semantics
Signed-off-by: Grant Reaber <grant.reaber@gmail.com>
2015-10-07 15:51:57 -05:00
moxiegirl
4c1540c8d2 Merge pull request #16806 from aidanhs/aphs-split-docs-dockerfiles
Don't put dockerfiles in one continuous code block
2015-10-07 13:40:19 -07:00
Vivek Goyal
6d2d0a74e8 devmapper: Make sure device is a thin pool device
Right now we check for the existence of device but don't make sure it is
a thin pool device. We assume it is a thin pool device and call poolStatus()
on the device which returns an error EOF. And that error does not tell
anything.

So before we reach the stage of calling poolStatus() make sure we are working
with a thin pool device otherwise error out.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-07 16:28:49 -04:00
John Howard
e666dfff9b Windows CI: Fix cli_wait_test
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-07 12:57:41 -07:00
Alexander Morozov
ce0457a2c9 Merge pull request #16818 from runcom/rmi-perf
graph: add parent img refcount for faster rmi
2015-10-07 10:45:49 -07:00
Arnaud Porterie
8e31036816 Merge pull request #16645 from mavenugo/ux
Docker Network UX & remote API changes
2015-10-07 10:44:58 -07:00
Jess Frazelle
a1c373197f Merge pull request #16807 from jfrazelle/rename-flag
change flag name to better follow the other flags that start with disable
2015-10-07 10:40:32 -07:00
Brian Goff
2feebd95d3 Make docker volume behave like docker network
Before, typing `docker volume` with no args would forward to the handler
for `docker volume ls`, except the flags for the `ls` subcommand were
not supported.
Instead just print the cmd usage.

This makes the behavior of the `docker volume` subcommand behave exactly
like the `docker network` subcommand.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-07 13:36:46 -04:00
Jessica Frazelle
c559d8ebf7 change flag name to better follow the other flags that start with disable;
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-07 10:16:37 -07:00
Antonio Murdaca
292a1564dc graph: add parent img refcount for faster rmi
also fix a typo in pkg/truncindex package comment

Signed-off-by: Antonio Murdaca <amurdaca@redhat.com>
2015-10-07 19:09:44 +02:00
Alexander Morozov
8cee301874 Merge pull request #16381 from rhvgoyal/deferred_deletion
devicemapper: Implement deferred deletion capability
2015-10-07 09:27:41 -07:00
Doug Davis
73a6ac00ce Fix help test comment to align with the code
I disagree with #14546 that pushed the help text past 80 chars.
Aside from it now making the help text look ugly on 80 char displays,
which I use, one thing I like about the previous limitation is that it
forced us to keep our options down to more reasonable phrases/words.
For example, I think
`    --disable-content-trust=true`
could have been:
`    --disable-trust=true`
or even:
`    --disable-ctrust=true`

But regardless, let's at least make the comments match what the code does.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-10-07 05:09:46 -07:00
Madhu Venugopal
dd28ded711 Networking API and UX documentation
More doc updates will follow

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-07 03:54:27 -07:00
Madhu Venugopal
22a9ba090e Network UX and integration tests
* Exiting experimental network UX
* removed experimental service UX
* integrated with the new network remote API

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-07 03:54:27 -07:00
Madhu Venugopal
2ab94e11a2 Network remote APIs using new router, --net=<user-defined-network> changes
* Moving Network Remote APIs out of experimental
* --net can now accept user created networks using network drivers/plugins
* Removed the experimental services concept and --default-network option
* Neccessary backend changes to accomodate multiple networks per container
* Integration Tests

Signed-off-by: David Calavera <david.calavera@gmail.com>
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-07 03:54:19 -07:00
Aidan Hobson Sayers
4cb0790a62 Mention more realistic examples are available
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-10-07 11:45:57 +01:00
Vincent Demeester
0137e3eda2 Merge pull request #16758 from HuKeping/update-test
Update test
2015-10-07 07:09:13 +02:00
Tibor Vass
2391233404 Move types from progressreader and broadcastwriter to broadcaster
progressreader.Broadcaster becomes broadcaster.Buffered and
broadcastwriter.Writer becomes broadcaster.Unbuffered.

The package broadcastwriter is thus renamed to broadcaster.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-06 22:20:07 -04:00
Brian Goff
2606a2e4d3 Merge pull request #16147 from tiborvass/refactor-builder
Refactor builder with new Go interfaces
2015-10-06 20:36:07 -04:00
HuKeping
28cff8bd03 Update test
Use of checkers on Integration test.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-07 07:11:45 +08:00
Tibor Vass
e0ef11a4c2 Abstract builder and implement server-side dockerfile builder
This patch creates interfaces in builder/ for building Docker images.
It is a first step in a series of patches to remove the daemon
dependency on builder and later allow a client-side Dockerfile builder
as well as potential builder plugins.

It is needed because we cannot remove the /build API endpoint, so we
need to keep the server-side Dockerfile builder, but we also want to
reuse the same Dockerfile parser and evaluator for both server-side and
client-side.

builder/dockerfile/ and api/server/builder.go contain implementations
of those interfaces as a refactoring of the current code.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-06 19:10:19 -04:00
Aidan Hobson Sayers
6a1a192e07 Don't put dockerfiles in one continuous code block
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-10-06 22:58:42 +01:00
Vivek Goyal
87de04005d devmapper: Implement a goroutine to cleanup deleted devices
Start a goroutine which runs every 30 seconds and if there are deferred
deleted devices, it tries to clean those up.

Also it moves the call to cleanupDeletedDevices() into goroutine and
moves the locking completely inside the function. Now function does not
assume that device lock is held at the time of entry.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-06 17:37:21 -04:00
Vivek Goyal
d295dc6652 devmapper: Keep track of number of deleted devices
Keep track of number of deleted devices and export this information through
"docker info".

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-06 17:37:21 -04:00
Vivek Goyal
d929589c1f devmapper: Implement deferred deletion functionality
Finally here is the patch to implement deferred deletion functionality.
Deferred deleted devices are marked as "Deleted" in device meta file. 

First we try to delete the device and only if deletion fails and user has
enabled deferred deletion, device is marked for deferred deletion.

When docker starts up again, we go through list of deleted devices and
try to delete these again.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-06 17:37:21 -04:00
Vivek Goyal
51e059e7e9 devmapper: Provide option to enabled deferred device deletion
Provide a command line option dm.use_deferred_deletion to enable deferred
device deletion feature. By default feature will be turned off.

Not sure if there is much value in deferred deletion being turned on
without deferred removal being turned on. So for now, this feature can
be enabled only if deferred removal is on.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-06 17:37:21 -04:00
Vivek Goyal
6b8b4feaa1 devmapper: construct used device ID map from device Hash map
Currently during startup we walk through all the device files and read
their device ID and mark in a bitmap that device id is used.

We are anyway going through all device files. So we can as well load all
that data into device hash map. This will save us little time when
container is actually launched later.

Also this will help with later patches where cleanup deferred device
wants to go through all the devices and see which have been marked for
deletion and delete these.

So re-organize the code a bit.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-06 17:37:21 -04:00
Jess Frazelle
c1c3475c6a Merge pull request #16786 from LK4D4/fix_systemd_serve
Remove wait on start channel for butts socket
2015-10-06 14:04:15 -07:00
Jess Frazelle
7c19f660b3 Merge pull request #16752 from vdemeester/skip-TestExecStartFails-on-windows
Skip TestExecStartFails on windows
2015-10-06 13:52:51 -07:00
Vincent Batts
670c48857a Merge pull request #16799 from rhvgoyal/code-reorg
devmapper: Break down setupBaseImage() function into smaller pieces
2015-10-06 16:15:31 -04:00
Vincent Demeester
aee0fcf413 Merge pull request #16804 from Microsoft/jjh/fixpullimageifnotexist
No err shadowing on pullImageIfNotExist
2015-10-06 22:02:45 +02:00
Jess Frazelle
931e6129d0 Merge pull request #16795 from runcom/bump-libcontainer
Bump libcontainer
2015-10-06 12:24:19 -07:00
Brian Goff
561005e5ca Cleanup some issues with exec
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-06 15:22:20 -04:00
John Howard
b7009a4b3a No error shadow pullImageIfNotExist
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-06 11:38:23 -07:00
Antonio Murdaca
7539013436 bump libcontainer to 902c012e85cdae6bb68d8c7a0df69a42f818ce96
Signed-off-by: Antonio Murdaca <amurdaca@redhat.com>
2015-10-06 17:55:09 +02:00
Vivek Goyal
0fcd485626 devmapper: Move UUID setup and verification code in a function
Simplify setupBaseImage() even further. Move some more code in a separate
function. Pure code reorganization. No functionality change.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-06 08:38:03 -04:00
Vivek Goyal
69051ec0a5 devmapper: Move thin pool related checks in a function
Move thin pool related checks in a separate function. Pure code reorganization.
Makes reading code easier.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-06 08:38:03 -04:00
Vivek Goyal
efc1ddd7e3 devmapper: Move base device creation in separate function
This moves base device creation function in a separate function. Pure
code reorganization. Makes reading code little easier.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-06 08:38:03 -04:00
Chris Fordham
e9c64b6d99 Do not run yaourt as root/sudo
Signed-off-by: Chris Fordham <chris@fordham-nagy.id.au>
2015-10-06 17:59:52 +11:00
Alexander Morozov
1529343a3f Merge pull request #16727 from rhvgoyal/code-cleanup
devmapper: Little code cleanup and code reorganization
2015-10-05 22:23:10 -07:00
Alexandre Beslic
f66a6f0346 Merge pull request #16782 from duglin/ErrInfoDaemon
Fix daemon logs so that "API listen on" is INFO not ERROR
2015-10-05 17:50:57 -07:00
Alexander Morozov
806e4c4a02 Remove wait on start channel for systemd socket
Because Serve will be called after daemon creation

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-05 17:41:25 -07:00
Doug Davis
cc833c5e2b Fix daemon logs so that "API listen on" is INFO not ERROR
W/o this PR the logs would show:
```
ERRO[0000] API listen on [::]:2375
ERRO[0000] API listen on /var/run/docker.sock
```
which is misleading since these aren't "errors" they're just informational.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-10-05 16:17:25 -07:00
Sebastiaan van Stijn
6a45bed9bf Docs: add Docker version/API version matrix
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-06 01:04:15 +02:00
John Howard
7db08b4e62 Fix VFS build tags
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-05 15:52:09 -07:00
moxiegirl
e1d3cb89f1 Merge pull request #16647 from vdemeester/revert-env-validation-docs
Update documentation on the revert on env validation
2015-10-05 15:27:45 -07:00
Tibor Vass
f41230b93a Move builder files to builder/dockerfile
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-05 18:26:47 -04:00
Antonio Murdaca
aac5c44c10 Merge pull request #16776 from shishir-a412ed/docker_tag_error_msg
Make docker tag error message more user friendly
2015-10-05 22:06:29 +02:00
Shishir Mahajan
582a24e937 Make docker tag error message more user friendly
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2015-10-05 15:19:34 -04:00
Arnaud Porterie
33e9d70c82 Merge pull request #16718 from mavenugo/discovery
Vendoring libnetwork integrated with Docker discovery service
2015-10-05 12:06:36 -07:00
Vincent Demeester
80f2e3f0c6 Merge pull request #16769 from LK4D4/fix_volume_socket
Allocate resources for server API before daemon creation
2015-10-05 20:48:41 +02:00
Tianon Gravi
0339ed787c Merge pull request #16747 from vdemeester/docs-testdirs
Update test-and-docs with TESTDIRS
2015-10-05 10:39:56 -07:00
Jess Frazelle
2e557c5c9a Merge pull request #16761 from sdurrheimer/zsh-completion-no-legacy-registry
Add zsh completion for 'docker daemon --no-legacy-registry'
2015-10-05 10:39:02 -07:00
moxiegirl
ec1d8d7f2a Merge pull request #16662 from moxiegirl/install-via-rpm
Updating the installations with rpm and yum install
2015-10-05 09:46:53 -07:00
Alexander Morozov
5eda566f93 Allocate resources for server API before daemon creation
It prevents occupying of those resources (ports, unix-sockets) by
containers.
Also fixed false-positive test for that case.

Fix #15912

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-05 09:32:08 -07:00
Vivek Goyal
482eca3099 devmapper: Few code cleanups
This patch does three things. Following are the descriptions.

===
Create a separate function for delete transactions so that parent function
is little smaller.

Also close transaction if an error happens.
===
When docker is being shutdown, save deviceset metadata first before
trying to remove the devices. Generally caller gives only 10 seconds
for shutdown to complete and then kills it after that. So if some device
is busy, we will wait 20 seconds for it removal and never be able to save
metadata. So first save metadata and then deal with device removal.
===
Move issue discard operation in a separate function. This makes reading code
little easier.

Also don't issue discards if device is still open. That means devices is
still probably being used and issuing discards is not a good idea.

This is especially true in case of deferred deletion. We want to issue
discards when device is not open. At that time device can be deleted too.
Otherwise we will issue discards and deletion will actually fail. Later
we will try deletion again and issue discards again and deletion will
fail again as device is open and busy.

So this will ensure that discards are issued once when device is not open
and it can actually be deleted.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-05 09:02:31 -04:00
Antonio Murdaca
072ac5e7f0 Merge pull request #16740 from vdemeester/remove-testify-and-mock
Remove use of testify mock and testify vendored lib
2015-10-05 09:42:16 +02:00
Vincent Demeester
fbd0cea90c Remove use of testify mock and testify vendored lib
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-05 08:43:34 +02:00
Steve Durrheimer
883fe220ec Add zsh completion for 'docker daemon --no-legacy-registry'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-05 08:31:00 +02:00
Vincent Demeester
b3fe785c72 Update documentation on the revert on env validation
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-04 23:04:36 +02:00
Sebastiaan van Stijn
67eb810a60 Merge pull request #16744 from runcom/fix-mam-commandline
Fix man and commandline docs
2015-10-04 22:28:19 +02:00
Vincent Demeester
4843323a46 Merge pull request #16751 from albers/completion--no-legacy-registry
Add bash completion for `docker daemon --no-legacy-registry`
2015-10-04 22:13:51 +02:00
Antonio Murdaca
14e8898648 Fix man and commandline docs
- missing help option in `docs/reference/commandline/*.md` (some files
  have it, the other I fixed didn't)
- missing `[OPTIONS]` in Usage description
- missing options
- formatting
- start/stop idempotence

Signed-off-by: Antonio Murdaca <amurdaca@redhat.com>
2015-10-04 21:22:27 +02:00
Vincent Demeester
0542939f40 Update test-and-docs with TESTDIRS
… and fix the rendering of `make test-unit` with TESTDIRS :)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-04 21:19:04 +02:00
Antonio Murdaca
e86291edd8 Merge pull request #16530 from dnephin/filter_events_by_label
Filter events by labels
2015-10-04 20:36:42 +02:00
Mary Anthony
5e061b5945 Updating the installations with rpm and yum install
Prefer rpm/yum over script install
Updating with review comments
Adding second round review comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-04 11:29:58 -07:00
Tianon Gravi
e6ca006d86 Merge pull request #16561 from ai-traders/restart_on_debian
#16560 Add timeout to `sudo service docker stop` on sysvinit
2015-10-04 11:25:59 -07:00
Vincent Demeester
dc204b8786 While #16738 is "fixed", skip TestExecStartFails
… on windows

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-04 18:38:21 +02:00
Vincent Demeester
b78f66c472 Merge pull request #16509 from HuKeping/search-problem
Fix docker search problem
2015-10-04 18:21:32 +02:00
Hu Keping
f04e8fdb9b Fix docker search problem
Search terms shouldn't be restricted to only full valid repository
names. It should be perfectly valid to search using a part of a name,
even if it ends with a period, dash or underscore.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-04 23:23:43 +08:00
Harald Albers
3f04ab2fc7 Add bash completion for --no-legacy-registry
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-04 06:49:42 -07:00
Sebastiaan van Stijn
2fcacf8ea3 Merge pull request #16739 from dgageot/contribution_fix
Fix hidden link in contribution guide
2015-10-03 10:38:12 +02:00
Sebastiaan van Stijn
a6cef38936 Merge pull request #16726 from sallyom/man-search
typo man/search
2015-10-03 10:26:18 +02:00
David Gageot
545ab6bf48 Fix hidden link in contribution guide
Signed-off-by: David Gageot <david@gageot.net>
2015-10-03 10:16:34 +02:00
Madhu Venugopal
139ea5b7f2 Docker daemon updates to libnetwork discovery support
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-02 20:57:47 -07:00
Doug Davis
49066f621e Merge pull request #16582 from vdemeester/16360-dockerCmd-raceytests
Fix TestDockerCmd*Timeout racey tests
2015-10-02 20:45:41 -04:00
Jess Frazelle
da0cf69147 Merge pull request #16736 from cpuguy83/16706_let_the_undead_keep_names
Don't let `Names` be null on GET /containers/JSON
2015-10-02 16:55:21 -07:00
Jess Frazelle
24e7907bb1 Merge pull request #16733 from MHBauer/perjury
remove testify asserts from pkg/discovery
2015-10-02 16:04:56 -07:00
Antonio Murdaca
0e17547af2 Merge pull request #16735 from LK4D4/style_fix
Fix some style issues
2015-10-03 01:03:44 +02:00
Brian Goff
59b8a0f697 Don't let Names be null on GET /containers/JSON
Fixes an issue where a `Dead` container has no names so the API returns
`null` instead of an empty array.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-02 17:09:14 -04:00
Daniel Nephin
c1713e7c5a Documentation for filtering events by label
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-10-02 16:45:08 -04:00
Alexander Morozov
01112989b7 Fix some style issues
Just read code and saw inconsistencies in variable decls and stuff.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-02 13:39:33 -07:00
Daniel Nephin
08b117517d Resolves #16458 - filter events by labels.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-10-02 16:33:20 -04:00
Madhu Venugopal
956fbccdaa Vendoring in libnetwork integrated with Docker Discovery
This commit brings in end to end integration of Docker Discovery with
libnetwork multi-host networking.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-02 13:07:44 -07:00
Morgan Bauer
eb13311129 remove testify asserts from pkg/discovery
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-02 13:05:15 -07:00
Jess Frazelle
5a43beda91 Merge pull request #16250 from cpuguy83/15487_exec_error_codes
Make exec start return proper error codes
2015-10-02 12:55:17 -07:00
Brian Goff
662f55d11d Merge pull request #16708 from jfrazelle/fix-shm-mqueue-when-mounted-from-host
do not mount /dev/shm or /dev/mqueue if we are mounting from the host
2015-10-02 15:13:59 -04:00
Jess Frazelle
134fefbaa2 Merge pull request #16490 from Microsoft/10662-mtimefix
Fixed file modified time not changing on windows
2015-10-02 12:06:03 -07:00
Brian Goff
2d43d93410 Make exec start return proper error codes
Exec start was sending HTTP 500 for every error.

Fixed an error where pausing a container and then calling exec start
caused the daemon to freeze.

Updated API docs which incorrectly showed that a successful exec start
was an HTTP 201, in reality it is HTTP 200.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-02 14:40:22 -04:00
Jess Frazelle
698e14902a Merge pull request #16159 from runcom/validate-cpuset-cpus
Validate --cpuset-cpus, --cpuset-mems
2015-10-02 11:30:46 -07:00
Jess Frazelle
bbac09a097 Merge pull request #16367 from Morgy93/names-generator
Added some adjectives and names
2015-10-02 11:29:09 -07:00
Jess Frazelle
aa2e3247cb Merge pull request #16470 from tonistiigi/fix-aufs-opq
Add basic support for .wh..wh..opq
2015-10-02 11:28:33 -07:00
Jess Frazelle
d04fd5e0dc Merge pull request #16594 from Microsoft/sjw/unc-build-fix
Windows: Fixing longpath hanlding of UNC paths.
2015-10-02 11:24:27 -07:00
Jess Frazelle
d6f8365258 Merge pull request #16680 from dnephin/update_list_image_api_docs
Update api docs for /images/json
2015-10-02 11:23:49 -07:00
Jessica Frazelle
934d9d6323 add regression test for mounting /dev/shm from host
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-02 11:14:08 -07:00
Jessica Frazelle
b8605a1107 do not mount /dev/shm or /dev/mqueue if we are mounting from the host
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-02 11:14:04 -07:00
Vincent Demeester
830729bb94 Merge pull request #15472 from coolljt0725/fix_docker_ps_trucate_id
Fix docker ps truncate long image name
2015-10-02 18:56:55 +01:00
Tianon Gravi
970bc4b5c1 Merge pull request #16707 from jfrazelle/fix-release
fix release script gpg key id
2015-10-02 10:13:51 -07:00
Sally O'Malley
435e30e42f typo man/search
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-10-02 11:24:31 -04:00
Lei Jitang
3fcf481361 Fix docker ps truncate long image name by default
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-02 22:56:42 +08:00
Vincent Demeester
77da5d8feb Merge pull request #16076 from vbatts/export_image_times
graph: exported images times matching creation
2015-10-01 21:50:43 +01:00
Jessica Frazelle
cb0ce5bb76 fix release script gpg key id
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-01 13:22:33 -07:00
Vincent Batts
e4478caddf save: integration test for timestamp matching
The `docker save`ed output ought to have matching timestamp to the layer
creation.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-10-01 14:38:55 -04:00
Alexander Morozov
99d13e7e14 Merge pull request #16698 from rhvgoyal/drop-redundant-lock
devmapper: Drop redundant lock and redundant function
2015-10-01 10:48:03 -07:00
Darren Stahl
40b77af234 Fixed file modified time not changing on Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2015-10-01 10:45:32 -07:00
Jess Frazelle
b26bcfe9be Merge pull request #16687 from jfrazelle/update-man8
ignore man8
2015-10-01 10:23:56 -07:00
Jessica Frazelle
cf8688c235 ignore man8
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-01 10:05:51 -07:00
Vivek Goyal
289145ecc6 devmapper: Get rid of metaData.devicesLock
Right now we seem to have 3 locks. 

- devinfo.lock
  This is a per device lock

- metaData.devicesLock

  This is supposedely protecting map of devices.

- Global DeviceSet lock

  This is protecting map of devices as well as serializing calls to libdevmapper.

Semantics of per devices lock and global deviceset lock seem to be very clear.
Even ordering between these two locks has been defined properly.

What is not clear is the need and ordering of metaData.devicesLock. Looks like
this lock is not necessary and global DeviceSet lock should be used to
protect map of devices as it is part of DeviceSet.

This patchset gets rid of metaData.devicesLock and instead uses DeviceSet
lock to protect map of devices.

Also at couple of places during initialization takes devices.Lock(). That
is not strictly necessary as there is supposed to be one thread of execution
during initializaiton. Still it makes the code clearer.

I think this makes code more clear and easier to understand and easier to
make further changes.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-01 13:02:55 -04:00
Vivek Goyal
73f8b46d84 devmapper: Get rid of unused function HasActivatedDevice()
Looks like nobody is calling HasActivatedDevice(). Get rid of it.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-01 07:59:12 -04:00
Vincent Batts
a3b04de401 Merge pull request #16686 from rhvgoyal/more-fixes
devicemapper: A bug fix and a code improvement
2015-09-30 23:01:00 -04:00
Stefan J. Wernli
6d223febda Windows: Fixing longpath hanlding of UNC paths.
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-09-30 19:36:08 -07:00
Vivek Goyal
94caae2477 devmapper: Move maxDeviceID check in loadMetadata
maxDeviceID is upper limit on device Id thin pool can support. Right now
we have this check only during startup. It is a good idea to move this
check in loadMetadata so that any time a device file is loaded and if it
is corrupted and device Id is more than maxDevieceID, it will be detected
right then and there.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-09-30 18:54:06 -04:00
Vivek Goyal
39081eb3aa devmapper: Use deactivateDevice() instead of removeDevice() in deleteDevice()
Use deactivateDevice() instead of removeDevice() directly. This will make
sure for device deletion, deferred removal is used if user has configured
it in. Also this makes reading code litle easier as there is single function
to remove a device and that is deactivateDevice().

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-09-30 18:54:06 -04:00
David Calavera
8ebd0c972a Merge pull request #16683 from rhvgoyal/fix-couple-of-bugs
devmapper: Fix a bug and fix a comment and add one reliability check
2015-09-30 15:17:29 -07:00
Antonio Murdaca
0e9b0806f5 Merge pull request #16564 from calavera/versioned_types
Extract api types to version packages.
2015-09-30 23:28:10 +02:00
Arnaud Porterie
826ebc9333 Merge pull request #16684 from estesp/lets-update-runc-again
Update runc to fba07bce72e72ce5b2dd618e4f67dd86ccb49c82
2015-09-30 14:07:29 -07:00
Vincent Demeester
825f1a7e28 Merge pull request #16629 from sdurrheimer/cluster-options-zsh-completion
Add zsh completion for --cluster-store and --cluster-advertise
2015-09-30 20:48:25 +01:00
Vincent Demeester
f22674a5f0 Merge pull request #16622 from albers/completion-cluster
bash completion for #16229
2015-09-30 20:46:45 +01:00
Phil Estes
b7a009cc1c Update runc to fba07bce72e72ce5b2dd618e4f67dd86ccb49c82
Fixing user namespaces (again) with a vendor update from runc
(specifically, the remount() only if special flags change)

Other changes are very minimal.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-09-30 15:33:23 -04:00
Vivek Goyal
e97e46b737 devmapper: Fail device deletion early if device is still mounted
If a device is still mounted at the time of DeleteDevice(), that means
higher layers have not called Put() properly on the device and are trying
to delete it. This is a bug in the code where Get() and Put() have not been
properly paired up. Fail device deletion if it is still mounted.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-09-30 15:21:22 -04:00
Vivek Goyal
f5c0eb9ffe devmapper: Fix comments and for HasDevice() and Exists()
Exists() and HasDevice() just check if device file exists or not. It does
not say anything about if device is mounted or not. Fix comments.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-09-30 15:21:22 -04:00
Vivek Goyal
ba02bf31cb devmapper: Do not load transaction meta file in device Hash map
device has map (device.Devices), contains valid devices and we skip all
the files which are not device files. transaction metadata file is not
device file. Skip this file when devices files are being read and loaded
into map.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-09-30 15:21:22 -04:00
Alexandre Beslic
ec25a44732 Merge pull request #16678 from tklauser/moar-names
Add more amazing people to the names generator
2015-09-30 12:06:07 -07:00
David Calavera
61634758c4 Extract api types to version packages.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-30 14:14:27 -04:00
Arnaud Porterie
85244f80e3 Merge pull request #16385 from RichardScothern/v1-deprecation
Add a daemon flag to prevent contact with v1 registries.
2015-09-30 10:10:06 -07:00
Daniel Nephin
e5967d041d Fix api documenation for /images/json response format
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-09-30 12:24:34 -04:00
Tibor Vass
4f677df0d1 Merge pull request #16539 from calavera/router_interfaces
Separate API router from server.
2015-09-30 11:51:30 -04:00
Tobias Klauser
d762dcd147 Add more amazing people to the names generator
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-09-30 16:13:51 +02:00
Brian Goff
31b882e793 Merge pull request #16642 from vdemeester/remove-question-make-in-pkg-devicemapper
Remove "(?)" from comments in pkg/devicemapper
2015-09-30 09:39:23 -04:00
Antonio Murdaca
c300978370 Merge pull request #16562 from Microsoft/10662-fixhttppull
Windows: Fix ADD from URL in dockerfile
2015-09-30 11:46:57 +02:00
Vincent Demeester
1dcb7d9e40 Remove (?) from comments in pkg/devicemapper
Got merged with it, removing it as it doesn't add anything.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-30 10:35:02 +02:00
Brian Goff
729c9a9782 Merge pull request #16580 from coolljt0725/unpause_all_container_on_exit
Make sure the container will always be unpaused on test exit
2015-09-29 21:44:23 -04:00
Alexander Morozov
36592a4bc2 Merge pull request #16666 from calavera/golint_graph_windows
Fix golint issues on the windows graph driver.
2015-09-29 17:36:37 -07:00
David Calavera
ae03e544e7 Merge pull request #16650 from cpuguy83/no_named_volumes_for_builder
Do not parse config.Volumes for named volumes
2015-09-29 17:04:29 -07:00
David Calavera
da982cf551 Separate API router from server.
Implement basic interfaces to write custom routers that can be plugged
to the server. Remove server coupling with the daemon.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-29 19:43:03 -04:00
Alexander Morozov
144abf2a58 Merge pull request #16659 from tiborvass/revert-context
Remove custom context package and use golang's only for api/server
2015-09-29 16:11:24 -07:00
David Calavera
1fffc7a89d Fix golint issues on the windows graph driver.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-29 18:32:45 -04:00
Tibor Vass
94e3b0f428 Use golang.org/x/net/context in api/server/
This patch removes the internal context package and uses golang's
package instead.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-09-29 17:40:55 -04:00
moxiegirl
724b410c55 Merge pull request #16656 from shishir-a412ed/man_docker_daemon_dns-opt
Add dns-opt option to docker daemon man page
2015-09-29 14:07:43 -07:00
David Calavera
949270ba7c Merge pull request #16661 from brahmaroutu/gccgo_ci_stretchr_fix
Vendor in stretchr/testify to fix GCCGO issue with function name parsing (GCCGO CI)
2015-09-29 13:53:35 -07:00
Srini Brahmaroutu
81c42d6c1e Vendor in stretchr/testify to fix GCCGO issue with function name parsing
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-09-29 19:20:03 +00:00
John Starks
7e8c92ad72 Windows: --hostname support
This passes through the container hostname to HCS, which in Windows Server
2016 TP4 will set the container's hostname in the registry before starting
it. This will be silently ignored by TP3.

Signed-off-by: John Starks <jostarks@microsoft.com>
2015-09-29 12:13:06 -07:00
Tibor Vass
b08f071e18 Revert "Merge pull request #16228 from duglin/ContextualizeEvents"
Although having a request ID available throughout the codebase is very
valuable, the impact of requiring a Context as an argument to every
function in the codepath of an API request, is too significant and was
not properly understood at the time of the review.

Furthermore, mixing API-layer code with non-API-layer code makes the
latter usable only by API-layer code (one that has a notion of Context).

This reverts commit de41640435, reversing
changes made to 7daeecd42d.

Signed-off-by: Tibor Vass <tibor@docker.com>

Conflicts:
	api/server/container.go
	builder/internals.go
	daemon/container_unix.go
	daemon/create.go
2015-09-29 14:26:51 -04:00
Tonis Tiigi
2fb5d0c323 Add constants for AUFS whiteout files
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-09-29 11:21:45 -07:00
Tibor Vass
79c31f4b13 Revert "Merge pull request #16567 from calavera/context_per_request"
This reverts commit ff92f45be4, reversing
changes made to 80e31df3b6.

Reverting to make the next revert easier.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-09-29 13:40:46 -04:00
Brian Goff
252af0ae2f Merge pull request #16570 from duglin/ReaderFix
Make Close() on simpleReaderCloser actually close the reader
2015-09-29 12:55:03 -04:00
Shishir Mahajan
8db945abb9 Add dns-opt option to docker daemon man page
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2015-09-29 12:31:51 -04:00
Brian Goff
4e0eb91c55 Merge pull request #16649 from mtrmac/16648-test-text-fixups
Fix text not matching the actual tests
2015-09-29 12:01:19 -04:00
Doug Davis
992e464a80 Merge pull request #16611 from vdemeester/fix-TestAttachClosedOnContainerStop-racy-test
Fix TestAttachClosedOnContainerStop racey test
2015-09-29 11:49:24 -04:00
Doug Davis
499b76d2ec Merge pull request #16641 from cpuguy83/16598_fix_TestExecStartFails
Make sure test container is running before exec
2015-09-29 11:25:14 -04:00
Tonis Tiigi
00e3277107 Add basic support for .wh..wh..opq
This fixes the case where directory is removed in
aufs and then the same layer is imported to a
different graphdriver.

Currently when you do `rm -rf /foo && mkdir /foo`
in a layer in aufs the files under `foo` would
only be be hidden on aufs.

The problems with this fix:

1) When a new diff is recreated from non-aufs driver
the `opq` files would not be there. This should not
mean layer differences for the user but still
different content in the tar (one would have one
`opq` file, the others would have `.wh.*` for every
file inside that folder). This difference also only
happens if the tar-split file isn’t stored for the
layer.

2) New files that have the filenames before `.wh..wh..opq`
when they are sorted do not get picked up by non-aufs
graphdrivers. Fixing this would require a bigger
refactoring that is planned in the future.


Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-09-29 08:22:25 -07:00
Vincent Demeester
50852f3be3 Fix TestAttachClosedOnContainerStop racey test
This test is failing once in a while on the CI, because the docker
attach command might be called after the container ends.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-29 16:57:58 +02:00
Brian Goff
9077c89689 Make sure test container is running before exec
Fixes race in TestExecStartFails

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-29 10:06:51 -04:00
Brian Goff
8e5bb8fdd3 Do not parse config.Volumes for named volumes
Fixes an issue where `VOLUME some_name:/foo` would be parsed as a named
volume, allowing access from the builder to any volume on the host.

This makes sure that named volumes must always be passed in as a bind.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-29 10:01:57 -04:00
Miloslav Trmač
8781367c77 Fix text not matching the actual tests
Also fixes a typo in image name.

Fixes #16648

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2015-09-29 15:26:04 +02:00
Vincent Demeester
7eab3db324 Fix TestDockerCmd*Timeout racey tests
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-29 14:50:22 +02:00
Chun Chen
213a0f9d86 Do not try to cleanupMounts if daemon.repository is empty
Signed-off-by: Chun Chen <ramichen@tencent.com>
2015-09-29 11:30:18 +08:00
Alexander Morozov
d6e7350b96 Merge pull request #16635 from Microsoft/10662-fixtestrununknowncommand
TestRunUnknownCommand 30s, not 30ns
2015-09-28 14:31:48 -07:00
David Calavera
79dd76b602 Merge pull request #16636 from Microsoft/setrunninglocking
Move setRunningLocking to test code
2015-09-28 14:25:32 -07:00
Alexander Morozov
b50b928313 Merge pull request #16637 from Microsoft/10662-TestRunStdinBlockedAfterContainerExit
Windows: Fix TestRunStdinBlockedAfterContainerExit
2015-09-28 14:21:41 -07:00
John Howard
4d301f0059 Windows: Fix TestRunStdinBlockedAfterContainerExit
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-28 14:08:26 -07:00
Alexander Morozov
ab8a4102e1 Merge pull request #16608 from vdemeester/16585-revert-env-regexp
Revert environment regexp in opts
2015-09-28 13:54:17 -07:00
John Howard
eff253dfaf Move setRunningLocking to test code
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-28 13:48:12 -07:00
John Howard
74aeb0350e TestRunUnknownCommand 30s, not 30ns
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-28 13:40:17 -07:00
Alexander Morozov
17062aea21 Merge pull request #16616 from sunyuan3/TestRunWithSwappinessInvalid
Update TestRunWithSwappinessInvalid.
2015-09-28 11:42:26 -07:00
Vincent Demeester
7335544fd0 Revert environment regexp from 13694
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-28 20:26:20 +02:00
Richard Scothern
4acf29a808 Command line, manpage and deprecation documentation.
Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
2015-09-28 10:31:04 -07:00
Alexander Morozov
7669670f2d Merge pull request #16631 from coolljt0725/fix_typo
Fix comment typo in attach.go
2015-09-28 09:25:54 -07:00
Steve Durrheimer
c576310b6f Add zsh completion for --cluster-store and --cluster-advertise options for docker daemon
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-09-28 15:13:42 +02:00
Lei Jitang
4e62bd97d3 Fix comment typo in attach.go
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-28 08:59:40 -04:00
Yuan Sun
3571814dc5 Update TestRunWithSwappinessInvalid.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-09-28 18:13:21 +08:00
Harald Albers
1c71c1995f bash completion for docker daemon --cluster-*
Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-28 11:23:23 +02:00
Andrea Luzzardi
9324b154d2 Merge pull request #16229 from icecrime/discovery
Add builtin nodes discovery
2015-09-27 18:06:27 -07:00
moxiegirl
486c12525f Merge pull request #16109 from charleswhchan/patch-3
Touch up "Dockerfile reference"
2015-09-27 15:12:17 -07:00
Alexandre Beslic
da294050f3 fix discovery package documentation with the right --cluster* flags
Signed-off-by: Alexandre Beslic <abronan@docker.com>
2015-09-27 13:40:42 -07:00
Arnaud Porterie
457a066ff0 Merge pull request #16603 from icecrime/add_more_vincent
Add @vdemeester to MAINTAINERS
2015-09-27 12:14:39 -07:00
Charles Chan
60f76bbfe1 Touch up "Dockerfile reference"
- add example for `docker build -f ...`
- modifiy `FROM` explaination into bullet points
- add/clarify examples for `LABEL` and `ADD` instructions
- fix review comments (PR #16109)

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-09-27 08:04:36 -07:00
moxiegirl
1cab5a50d0 Merge pull request #16187 from mikebrow/16161-fix-text-in-docker-basics-page
cleaning up the first few paragraphs of getting started with containers
2015-09-27 08:02:14 -07:00
moxiegirl
f8f03a290c Merge pull request #16338 from twaugh/env-replacement-label
Add documentation note that LABEL allows environment replacement
2015-09-27 08:00:53 -07:00
Antonio Murdaca
94464e3a5e Validate --cpuset-cpus, --cpuset-mems
Before this patch libcontainer badly errored out with `invalid
argument` or `numerical result out of range` while trying to write
to cpuset.cpus or cpuset.mems with an invalid value provided.
This patch adds validation to --cpuset-cpus and --cpuset-mems flag along with
validation based on system's available cpus/mems before starting a container.

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-27 16:38:58 +02:00
Arnaud Porterie
6957b671bb Sort maintainers by name
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-26 08:11:36 -07:00
Arnaud Porterie
fcb9d8d899 Add @vdemeester to MAINTAINERS
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-26 08:09:44 -07:00
Madhu Venugopal
2ed0739c7a Merge pull request #16597 from brahmaroutu/vendor_libnetwork_gccgo_fix
Vendoring in libnetwork with the fix for compilation error using GCCG…
2015-09-25 21:22:02 -07:00
Srini Brahmaroutu
ba4c132491 Vendoring in libnetwork with the fix for compilation error using GCCGo (X86 GCCGO CI)
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-09-26 01:37:56 +00:00
Richard Scothern
39f2f15a35 Prevent push and pull to v1 registries by filtering the available endpoints.
Add a daemon flag to control this behaviour.  Add a warning message when pulling
an image from a v1 registry.  The default order of pull is slightly altered
with this changset.

Previously it was:
https v2, https v1, http v2, http v1

now it is:
https v2, http v2, https v1, http v1

Prevent login to v1 registries by explicitly setting the version before ping to
prevent fallback to v1.

Add unit tests for v2 only mode.  Create a mock server that can register
handlers for various endpoints.  Assert no v1 endpoints are hit with legacy
registries disabled for the following commands:  pull, push, build, run and
login.  Assert the opposite when legacy registries are not disabled.

Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
2015-09-25 15:59:42 -07:00
moxiegirl
02eed8d666 Merge pull request #16063 from shishir-a412ed/man_docker_daemon
man page for docker daemon command
2015-09-25 15:42:06 -07:00
Tibor Vass
c32d22e6e4 Merge pull request #16531 from vbatts/vbatts-non-utf8-name-fix
vendor: update tar-split to v0.9.10
2015-09-25 17:55:11 -04:00
Arnaud Porterie
7d193ef1f3 Add builtin nodes discovery
Use `pkg/discovery` to provide nodes discovery between daemon instances.

The functionality is driven by two different command-line flags: the
experimental `--cluster-store` (previously `--kv-store`) and
`--cluster-advertise`. It can be used in two ways by interested
components:

1. Externally by calling the `/info` API and examining the cluster store
   field. The `pkg/discovery` package can then be used to hit the same
   endpoint and watch for appearing or disappearing nodes. That is the
   method that will for example be used by Swarm.
2. Internally by using the `Daemon.discoveryWatcher` instance. That is
   the method that will for example be used by libnetwork.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-25 14:52:09 -07:00
Arnaud Porterie
166e082be3 Add pkg/discovery for nodes discovery
Absorb Swarm's discovery package in order to provide a common node
discovery mechanism to be used by both Swarm and networking code.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-25 13:33:23 -07:00
Jess Frazelle
3c3d232e0a Merge pull request #16589 from mavenugo/ln_vin_ls
Vendoring libnetwork and libkv
2015-09-25 13:31:14 -07:00
David Calavera
f0e904df8e Merge pull request #16590 from Microsoft/10662-escapeargsfix
Windows: Flags to cmd are now sent as two separate arguments
2015-09-25 13:29:54 -07:00
Jess Frazelle
ff92f45be4 Merge pull request #16567 from calavera/context_per_request
Define a context per request.
2015-09-25 13:01:51 -07:00
Vincent Batts
ecedb3d81d vendor: update tar-split to v0.9.10
This addresses handling of non-utf8 file names, namely iso-8859-1.

https://github.com/docker/docker/issues/16516

Reported-by: @kwk
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-09-25 14:42:17 -04:00
Jess Frazelle
80e31df3b6 Merge pull request #15916 from mikedougherty/release-flexibility
Improve flexibility of release scripts
2015-09-25 11:26:18 -07:00
Madhu Venugopal
6db1592066 Docker daemon changes to use default gateway service
* Thanks to the Default gateway service in libnetwork, we dont have to add
containers explicitly to secondary public network. This is handled
automatically regardless of the primary network driver.

* Fixed the URL convention for kv-store to be aligned with the upcoming
changes to discovery URL

* Also, in order to bring consistency between external and internal network
drivers, we moved the driver configs via controller Init.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-09-25 11:00:42 -07:00
Alexandre Beslic
07cfac3d2d Merge pull request #16508 from MHBauer/create-refactor
refactor create to not expose internal data structures
2015-09-25 10:58:56 -07:00
Darren Stahl
5aa7c2317a Flags to cmd are now sent as two separate arguments
This fixes a regression caused by PR #16538.

Signed-off-by: Darren Stahl <darst@microsoft.com>
2015-09-25 10:37:53 -07:00
Jess Frazelle
7a1dbd17fc Merge pull request #16569 from brahmaroutu/ioutil_hang_gccgo
goroutine fairness is not guaranteed causing the hang with GCCGO (x86 GCCGO CI)
2015-09-25 10:24:13 -07:00
Jess Frazelle
2ecc7290d6 Merge pull request #16576 from Djelibeybi/rpm-docs
Add documentation files
2015-09-25 10:16:12 -07:00
Madhu Venugopal
59a000ec7f Vendoring libnetwork and libkv
- Libnetwork brings in :
  * Default Gateway as a service for network drivers
  * Persistence for local scoped networks using libkv
  * BATS based Multi-host Integration-test infra and end-to-end tests
  * libnetwork fixes for zookeeper and etcd backend
- Libkv upgrade brings in :
  * boltdb support for local kv persistence
  * other general bug fixes

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-09-25 10:02:31 -07:00
Morgan Bauer
93bd57b0b2 refactor create to not expose internal data structures
- use existing exposed type

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-09-25 09:35:18 -07:00
Shishir Mahajan
fada260ad2 man page for docker daemon command
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2015-09-25 10:49:06 -04:00
Srini Brahmaroutu
7c52fcce85 goroutine fairness is not guaranteed causing the hang with GCCGO
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-09-25 14:40:16 +00:00
Federico Gimenez
2368d23665 Added test coverage to StdCopy closes #11584
Some corner cases and error conditions are covered while reading
and writing

Signed-off-by: Federico Gimenez <fgimenez@coit.es>
2015-09-25 11:15:45 +02:00
Lei Jitang
5106532601 Make sure the container will always be unpaused on test exit
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-25 05:15:16 -04:00
Avi Miller
63e5891e4f Add documentation files including the LICENSE and CHANGELOG.md to the RPM
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-09-25 17:44:11 +10:00
Doug Davis
02ae137b1d Merge pull request #16571 from skatsuta/fix-typo-comment-evaluator
builder: fix typos in comments
2015-09-24 23:44:00 -04:00
Ma Shimiao
6d25eb6e7c client/start: fix logic for discarded signal
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-09-25 11:25:29 +08:00
Doug Davis
b5265fe7ad Make Close() on simpleReaderCloser actually close the reader
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-24 20:22:59 -07:00
Jess Frazelle
b2b76894a1 Merge pull request #16468 from crosbymichael/bump_libcontainer
Bump libcontainer to 5765dcd086eb0584c0e2eaff9a3ac97b467a98e6
2015-09-24 16:53:28 -07:00
David Calavera
27c76522de Define a context per request.
Avoid creating a global context object that will be used while the daemon is running.

Not only this object won't ever be garbage collected, but it won't ever be used for anything else than creating other contexts in each request. I think it's a bad practive to have something like this sprawling aroud the code.

This change removes that global object and initializes a context in the cases we don't have already one, like shutting down the server.
This also removes a bunch of context arguments from functions that did nothing with it.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-24 18:44:53 -04:00
Michael Crosby
7d8b5fc3aa Fix windows cross compile with new netlink
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-09-24 15:01:03 -07:00
Michael Crosby
189d2c7985 Update libcontainer to aac9179bbadbf958054ce97ab36
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-09-24 15:00:31 -07:00
Michael Crosby
f6064cb42b Update CAP_ prefix for new spec format
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-09-24 15:00:30 -07:00
Michael Crosby
d0fdc3b5df Fix netlink dependency with new pkg
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-09-24 15:00:30 -07:00
Michael Crosby
6bd3e6357c Bump libcontainer to 08b5415ffa3769ff7c1d2f673f613
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-09-24 15:00:30 -07:00
David Calavera
de41640435 Merge pull request #16228 from duglin/ContextualizeEvents
Add context.RequestID to event stream
2015-09-24 14:16:22 -07:00
John Howard
608b3db5c8 Windows: Fix ADD from URL in dockerfile
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-24 13:20:15 -07:00
Ewa Czechowska
5c94a9e800 #16560 Add timeout to sudo service docker stop on sysvinit
Add 10 seconds timeout when running `sudo service docker stop`. This is
especially needed when running `sudo service docker restart`. Otherwise,
`restart` results in exitstatus 1, because `start` has nothing to do.

Signed-off-by: Ewa Czechowska <ewa@ai-traders.com>
2015-09-24 19:41:32 +00:00
Jess Frazelle
7daeecd42d Merge pull request #16559 from Microsoft/10662-fix16556
Fixes 16556 CI failures
2015-09-24 12:31:36 -07:00
Carl Henrik Lunde
9a64f2bbb3 Use pkg/mount to support more flags in dm.mountopt
The mount syscall does not handle string flags like "noatime",
we must use bitmasks like MS_NOATIME instead.

pkg/mount.Mount already handles this work.

Signed-off-by: Carl Henrik Lunde <chlunde@ping.uio.no>
2015-09-24 21:14:41 +02:00
Jess Frazelle
84b53c8d87 Merge pull request #14579 from hqhq/hq_add_softlimit
Add support for memory reservation
2015-09-24 12:11:36 -07:00
Phil Estes
a7e8f3616c Merge pull request #16511 from Mashimiao/fix-logic-client-search
client/search: small logic fix
2015-09-24 15:06:10 -04:00
Doug Davis
26b1064967 Add context.RequestID to event stream
This PR adds a "request ID" to each event generated, the 'docker events'
stream now looks like this:

```
2015-09-10T15:02:50.000000000-07:00 [reqid: c01e3534ddca] de7c5d4ca927253cf4e978ee9c4545161e406e9b5a14617efb52c658b249174a: (from ubuntu) create
```
Note the `[reqID: c01e3534ddca]` part, that's new.

Each HTTP request will generate its own unique ID. So, if you do a
`docker build` you'll see a series of events all with the same reqID.
This allow for log processing tools to determine which events are all related
to the same http request.

I didn't propigate the context to all possible funcs in the daemon,
I decided to just do the ones that needed it in order to get the reqID
into the events. I'd like to have people review this direction first, and
if we're ok with it then I'll make sure we're consistent about when
we pass around the context - IOW, make sure that all funcs at the same level
have a context passed in even if they don't call the log funcs - this will
ensure we're consistent w/o passing it around for all calls unnecessarily.

ping @icecrime @calavera @crosbymichael

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-24 11:56:37 -07:00
Jess Frazelle
23750fb802 Merge pull request #15862 from calavera/share_shm_and_mqueue
Share shm and mqueue between containers.
2015-09-24 11:23:59 -07:00
John Howard
e65a7dabb9 Fixes 16556 CI failures
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-24 11:19:00 -07:00
David Calavera
c8bc02ea35 Merge pull request #16538 from Microsoft/10662-escapeargs
Windows: Fixed escaping of command line arguments
2015-09-24 11:18:29 -07:00
Jess Frazelle
ccba7c3e14 Merge pull request #16507 from azurezk/testcase_nit
TestInspectInt64 to be neat
2015-09-24 11:12:43 -07:00
Jess Frazelle
f2db5028cd Merge pull request #16480 from sunyuan3/TestRunWithKernelMemory
update TestRunWithKernelMemory
2015-09-24 11:10:51 -07:00
Arnaud Porterie
de8b5c46cc Merge pull request #16556 from Microsoft/10662-randomunix
Make 'TestRandomUnixTmpDirPath' platform agnostic
2015-09-24 10:35:27 -07:00
David Calavera
f75206dd7b Merge pull request #16541 from sunyuan3/newlogformat
Update documentation for new test log format
2015-09-24 10:07:20 -07:00
Soshi Katsuta
53e5f33279 builder: fix typos in comments
Signed-off-by: Soshi Katsuta <soshi.katsuta@gmail.com>
2015-09-25 01:45:59 +09:00
Doug Davis
1e514de2e4 Merge pull request #16545 from HuKeping/fixtest
Fix test for container events
2015-09-24 12:43:51 -04:00
John Howard
5d630abbab TestRandomUnixTmpDirPath platform agnostic
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-24 09:37:07 -07:00
Morgy93
f2823f64a5 Added some names
Signed-off-by: Thomas Hauschild <thomas@ulfertsprygoda.de>
2015-09-24 17:15:47 +02:00
Hu Keping
5505bcdd62 Fix test for container events
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-24 19:04:54 +08:00
Jess Frazelle
8c33c6c737 Merge pull request #16190 from LK4D4/drain_refactor
Refactoring of bufReader
2015-09-24 01:54:40 -07:00
Ma Shimiao
19613feddf client/search: small logic fix
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-09-24 11:11:03 +08:00
Kun Zhang
029c6eacd6 test neat
Signed-off-by: Kun Zhang <zkazure@gmail.com>
2015-09-24 10:55:47 +08:00
Brian Goff
22877e1b16 Merge pull request #15021 from chenchun/resize_pool
Try to resize data and metadata loopback file when initiating devicemapper
2015-09-23 22:22:51 -04:00
Yuan Sun
6fe38e3947 Update documentation for new test log format.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-09-24 09:47:42 +08:00
Chun Chen
2458452a3b Try to resize data and metadata loopback file when initiating devicemapper
Signed-off-by: Chun Chen <ramichen@tencent.com>
2015-09-24 09:31:00 +08:00
Brian Goff
ebe7ef9fc2 Merge pull request #16411 from duglin/DaemonErrors
Move more 'daemon' errors to the new error package
2015-09-23 21:20:56 -04:00
Brian Goff
40e8560412 Merge pull request #16415 from HuKeping/dockerinfo
Format output of docker info
2015-09-23 21:15:23 -04:00
David Calavera
a518612260 Merge pull request #16540 from MHBauer/man-build-arg
fix typo in man page
2015-09-23 17:51:09 -07:00
Morgan Bauer
3a4775cb80 fix typo in man page
- resolve #16536

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-09-23 17:41:52 -07:00
Yuan Sun
b89fdc120e update TestRunWithKernelMemory
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-09-24 08:41:35 +08:00
Tonis Tiigi
c5b23337c3 Make bytesPipe use linear allocations
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-09-23 17:12:54 -07:00
Jess Frazelle
ddd0c47412 Merge pull request #16497 from MHBauer/attach-refactor-new
refactor attach to not use internal data structures
2015-09-23 16:52:39 -07:00
Jess Frazelle
d71ae45772 Merge pull request #16484 from HuKeping/history-format
Format the output of docker history
2015-09-23 16:52:21 -07:00
Darren Stahl
ca5cc770b9 Windows: Fixed escaping of command line arguments
This fixes some tests that were failing on windows

Signed-off-by: Darren Stahl <darst@microsoft.com>
2015-09-23 16:35:44 -07:00
Alexandre Beslic
a1573dffee Merge pull request #16494 from calavera/fix_plugin_url_scheme
Do not hardcode http as plugin URL scheme for secure connections.
2015-09-23 16:18:00 -07:00
Tibor Vass
793a409081 Merge pull request #16504 from brahmaroutu/ImageErrors
Adding error codes to image package
2015-09-23 19:15:25 -04:00
Alexander Morozov
56b70bf84e Refactor bufReader to use BytesPipe
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-09-23 16:00:28 -07:00
Alexander Morozov
24310b5b4a Add BytesPipe datastructure to ioutils
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-09-23 16:00:27 -07:00
Tibor Vass
01670bec48 Merge pull request #16517 from coolljt0725/show_help_all_the_time
Clean up: show usage when global --help present
2015-09-23 18:58:19 -04:00
Jess Frazelle
323c77e4e1 Merge pull request #16371 from coolljt0725/docs_update_contributing
Docs: update the CONTRIBUTING.md
2015-09-23 15:56:13 -07:00
Jess Frazelle
04b171a632 Merge pull request #16500 from sergeyevstifeev/11584-pkg-stdcopy-test-coverage
Adding some more coverage to StdCopy to address #11584
2015-09-23 15:51:21 -07:00
Jess Frazelle
51fad49e67 Merge pull request #16502 from Microsoft/10662-cpuweight
Windows: [TP4] Add CPU Weight
2015-09-23 15:41:35 -07:00
Jess Frazelle
a077c46d14 Merge pull request #16523 from coolljt0725/correct_help_message_of_docker_cp
Docs: correct the description of docker cp
2015-09-23 15:40:58 -07:00
Jess Frazelle
40adb3fd2c Merge pull request #16528 from gesellix/docs-container-commit
fix content-type of response for `/commit`
2015-09-23 15:38:38 -07:00
Jess Frazelle
c0c941627a Merge pull request #16289 from cpuguy83/11957_fix_stdin_block_after_container_exit
Ensure stdin does not block after container stop
2015-09-23 15:29:48 -07:00
Jess Frazelle
871daf5498 Merge pull request #16346 from cpswan/fixes-15792
Clarify when keys are created
2015-09-23 15:29:06 -07:00
Jess Frazelle
200fa6978c Merge pull request #16518 from unclejack/bump_go_to_1.4.3
Dockerfile: bump Go to 1.4.3
2015-09-23 15:21:06 -07:00
Tobias Gesellchen
78de066a28 fix content-type of response for /commit
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-09-23 23:49:16 +02:00
Tibor Vass
8d69e0eae0 Merge pull request #15915 from sdurrheimer/master
Zsh completion updates
2015-09-23 17:20:34 -04:00
Jess Frazelle
8f8cc077d3 Merge pull request #16525 from icecrime/fix_integration_cli
Fix integration cli
2015-09-23 13:52:28 -07:00
Jess Frazelle
ce092ed08e Merge pull request #16521 from matthiasr/fix/syvinit-debian/basename-on-boot
Do not try to guess "docker" in Debian SysV init script
2015-09-23 13:46:19 -07:00
Arnaud Porterie
04e1015aa0 Skip TestAppArmorDeniesChmodProc
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-23 13:23:15 -07:00
Arnaud Porterie
03dce24137 Skip TestRunUnshareProc
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-23 13:23:08 -07:00
moxiegirl
ec4b71b64a Merge pull request #16503 from carolfh/image-mag
Image mag
2015-09-23 12:43:20 -07:00
Tibor Vass
8f7f0f8deb Merge pull request #16493 from cpuguy83/doc_plugin_rpcgen
Add README for pluginrpc-gen
2015-09-23 15:36:05 -04:00
Carol Fager-Higgins
3e6991f35c fixed jira DTR-1173 typo in link and additional edits
Signed-off-by: Carol Fager-Higgins <carol.fager-higgins@docker.com>
2015-09-23 12:33:45 -07:00
Jess Frazelle
70016198ce Merge pull request #16522 from jfrazelle/zypper-wtaf
fix zypper wrt interactive
2015-09-23 10:30:58 -07:00
Srini Brahmaroutu
da0ca83377 Adding error codes to image package
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-09-23 17:03:37 +00:00
Doug Davis
0a734182eb Move more 'daemon' errors to the new error package
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-23 09:51:45 -07:00
David Calavera
b1d2f52bb2 Improvements to the original sharing implementation.
- Print the mount table as in /proc/self/mountinfo
- Do not exit prematurely when one of the ipc mounts doesn't exist.
- Do not exit prematurely when one of the ipc mounts cannot be unmounted.
- Add a unit test to see if the cleanup really works.
- Use syscall.MNT_DETACH to cleanup mounts after a crash.
- Unmount IPC mounts when the daemon unregisters an old running container.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-23 12:07:24 -04:00
Morgan Bauer
8aef1a33eb refactor attach to not use internal data structures
- refactor to make it easier to split the api in the future

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-09-23 08:55:21 -07:00
Sergey Evstifeev
6335c90d4a Add StdCopy happy path test: both reading and writing
Signed-off-by: Sergey Evstifeev <sergey.evstifeev@gmail.com>
2015-09-23 17:27:32 +02:00
Jessica Frazelle
d265f93f6e fix zypper BS wrt interactive
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-23 04:48:06 -07:00
Matthias Rampke
01c5cfcc56 Do not try to guess "docker" in Debian SysV init script
On boot, the init script is invoked from `/etc/rcN.d/S20docker` (where N
is the runlevel). Consequently, the init script tried to find the
defaults at `/etc/defaults/S20docker` and the binary at
`/usr/bin/S20docker`. This causes the docker daemon to fail at boot with
the error

    /usr/bin/S20docker not present or not executable

Starting it manually works because it invokes `/etc/init.d/docker` which
has the correct basename.

Fix this by hardcoding "docker" as the base name.

Signed-off-by: Matthias Rampke <mr@soundcloud.com>
2015-09-23 11:27:34 +00:00
unclejack
34e41580f9 Dockerfile: bump Go to 1.4.3
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2015-09-23 12:34:00 +03:00
Lei Jitang
4d55877e27 Clean up: show usage when global --help present
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-23 05:17:03 -04:00
Hu Keping
141e91c480 Format output of docker info
Format those info which will only be displayed when daemon is
in debug mode.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-23 14:35:13 +08:00
qhuang
aa1780997f Add support for memory reservation
Signed-off-by: qhuang <qhuang@10.0.2.15>
2015-09-23 14:02:45 +08:00
John Howard
a5879bb83b Windows: [TP4] Add CPU Weight
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-22 18:29:15 -07:00
Brian Goff
7acd3ca79d Add README for pluginrpc-gen
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-22 19:34:44 -04:00
David Calavera
b0dc11127e Merge pull request #16328 from jfrazelle/opensuse-rpms
add opensuse to rpm builder
2015-09-22 15:59:49 -07:00
David Calavera
14e8949dcf Merge pull request #16492 from albers/completion-compopt-mac
[Fix 16348] Bash completion: avoid 'compopt: command not found' errors on Mac OS
2015-09-22 15:58:56 -07:00
Phil Estes
9dc0973655 Merge pull request #16331 from calavera/server_middlewares
Organize server pre-func logic in middlewares.
2015-09-22 16:10:42 -05:00
David Calavera
dc17613297 Do not hardcode http as plugin URL scheme for secure connections.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-22 15:54:29 -04:00
Brian Goff
04d76d898a Merge pull request #16312 from Microsoft/10662-startwindowscli
Windows: First part of CI tests (docker run)
2015-09-22 15:37:33 -04:00
Harald Albers
9d8f9943e9 Bash completion: avoid 'compopt: command not found' errors on Mac OS
The shell builtin `compopt` is not available on the outdated bash
version 3.2.57 that ships with Mac OS.
It is used in Docker's bash completion to suppress trailing spaces
in advanced completions of hash map options, e.g. `--log-opt`.

If `compopt` is not available, the new behavior is to do nothing,
i.e. the user will have to delete the additional space.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-22 12:17:30 -07:00
David Calavera
114612305c Merge pull request #16235 from HuKeping/oom-event
Events for OOM needs to be shift to an earlier time
2015-09-22 11:50:30 -07:00
John Howard
8a5ab83df8 Windows: First part of CI tests (docker run)
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-22 10:24:03 -07:00
moxiegirl
bfc785bf64 Merge pull request #16428 from charleswhchan/fix-logs-doc
Touch up 'docker logs' documentation.
2015-09-22 07:17:26 -07:00
Hu Keping
6353f3a7b5 Format the output of docker history
Once there have '\t' in the "CREATED BY" section, it will possibly
cause a messy output of docker history.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-22 21:27:20 +08:00
Antonio Murdaca
44f47903a8 Merge pull request #16444 from fgimenez/11584-pkg-stdcopy-test-coverage
Added tests for Write
2015-09-22 14:28:14 +02:00
Federico Gimenez
3efe5ff22e Added tests for StdWriter.Write.
The tests added cover the case when the Writer field returns and error
and, related to that, when the number of written bytes is less than 0.

Signed-off-by: Federico Gimenez <fgimenez@coit.es>
2015-09-22 09:05:22 +02:00
David Calavera
a7e23cab8d Merge pull request #15864 from dmcgowan/notary-offline
Support content trust offline
2015-09-21 21:11:36 -07:00
Alexandre Beslic
f97e6f2a37 Merge pull request #16419 from HuKeping/comments
Comment: add description for some code which hard to understand
2015-09-21 20:44:54 -07:00
Charles Chan
eff524e19c Touch up 'docker logs' documentation.
* Update format for 'Note:' to match other pages.
* Add link to Go's RFC3339Nano timestamp information.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-09-21 19:47:33 -07:00
Hu Keping
3b443abec2 Comment: add description for some code which hard to understand
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-22 09:34:49 +08:00
David Calavera
108891069f Merge pull request #16400 from albers/completion-log-opt-tags
bash completion: use generic `tag` log driver option
2015-09-21 17:17:11 -07:00
Brian Goff
5c73f14c62 Merge pull request #16457 from Microsoft/10662-blockarg
Windows: Nice error on ARG (builder)
2015-09-21 19:43:48 -04:00
John Howard
b69c13b1a6 Windows: Nice error on ARG (builder)
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-21 14:54:15 -07:00
Tibor Vass
985b7ec895 Merge pull request #16465 from albers/reference-capability-all
reference: capability `all` should be `ALL`
2015-09-21 16:49:17 -04:00
Tibor Vass
a8eba11fb1 Merge pull request #16461 from tomdee/libnetwork-routes-fixes
Vendoring libnetwork
2015-09-21 16:48:16 -04:00
Tibor Vass
da82b5fedb Merge pull request #16466 from runcom/15876-fix-TestRunWithKernelMemory
daemon: execdriver: lxc: fix wrong template value passed to lxc conf
2015-09-21 16:34:34 -04:00
Evan Hazlett
0c71c19239 Merge pull request #16404 from duglin/FixRenameError
Fix 'rename' error msg and error checking
2015-09-21 15:51:02 -04:00
Evan Hazlett
732676fad5 Merge pull request #16413 from sunyuan3/TestRunSwapMoreThanMemoryLimit
Add the TestRunSwapMoreThanMemoryLimit case.
2015-09-21 15:43:20 -04:00
Antonio Murdaca
7b4f73ee6c daemon: execdriver: lxc: fix wrong template value passed to lxc conf
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-21 21:40:46 +02:00
Tibor Vass
2daa5b1735 Merge pull request #16432 from calavera/volume_store
Move volume ref counting store to a package.
2015-09-21 15:38:06 -04:00
Harald Albers
d37674b44b reference: capability all should be ALL
Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-21 21:09:50 +02:00
Tibor Vass
d572bab4a0 Merge pull request #16437 from runcom/invalid-logger-address
daemon: logger: error out on daemon start if invalid logger address
2015-09-21 14:53:47 -04:00
Alexandre Beslic
40edb5f97c Merge pull request #15029 from azurezk/add-version-info
Add docker version info in /info request
2015-09-21 11:44:11 -07:00
David Calavera
0fea04d27e Organize server pre-func logic in middlewares.
It defines global middlewares for every request.
This makes the server slightly more composable.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-21 14:27:06 -04:00
Tom Denham
499ade0116 Vendoring libnetwork
Pull in version e5fea92a6c8a5968bdb8005bf959c6e23113b689

Fixes libnetwork regressions that stopped drivers that set routes from working.
Pulls in libnetwork PRs #546 #543

Signed-off-by: Tom Denham <tom@tomdee.co.uk>
2015-09-21 11:13:14 -07:00
moxiegirl
f018c0430b Merge pull request #16449 from runcom/add-container-label-userguide
docs: userguide: add container labels section
2015-09-21 10:26:20 -07:00
David Calavera
72bb56618b Move volume ref counting store to a package.
- Add unit tests to make sure the functionality is correct.
- Add FilterByDriver to allow filtering volumes by driver, for future
  `volume ls` filtering and whatnot.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-21 12:46:49 -04:00
Alexandre Beslic
587558f617 Merge pull request #16440 from runcom/tempdir-check-errs
integration-cli: check err on tmp dir creation
2015-09-21 08:06:08 -07:00
Yuan Sun
ab39a4c981 Add the TestRunSwapLessThanMemoryLimit case.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-09-21 22:12:19 +08:00
Zhang Kun
7cf343d106 add docker server version to /info
Signed-off-by: Zhang Kun <zkazure@gmail.com>
2015-09-21 21:15:32 +08:00
Brian Goff
743dc1c791 Merge pull request #16443 from coolljt0725/simplify_volume_code
Cleanup: remove unnecessary return at the end of block in volume.go
2015-09-21 09:05:16 -04:00
Antonio Murdaca
124540c086 docs: userguide: add container labels section
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-21 14:41:22 +02:00
Lei Jitang
5746eb9501 Cleanup: remove unnecessary return at the end of block in volumes.go
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-21 04:32:37 -04:00
Hu Keping
f05bacbe50 Events for OOM needs to be shift to an earlier time
It's worth to warn user as soon as possilbe when OOM happend.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-21 10:18:08 +08:00
David Calavera
4a6e8c8f3c Merge pull request #16174 from sallyom/man-restart-fix
docker restarts running OR stopped containers
2015-09-20 18:10:06 -07:00
Antonio Murdaca
76b3b54314 api: server: container: fix wrong comment
This comment was wrongly referring to the old job mechanism and it
wasn't clear what it was trying to document.

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-21 00:46:16 +02:00
Antonio Murdaca
b616b8a17a integration-cli: check err on tmp dir creation
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-21 00:00:55 +02:00
moxiegirl
4133401bf9 Merge pull request #16425 from charleswhchan/fix-version-doc
Add missing '[OPTIONS]' arg to documentation for 'docker version'.
2015-09-20 14:33:47 -07:00
Antonio Murdaca
e3c472426f daemon: logger: error out on daemon start if invalid logger address
If an invalid logger address is provided on daemon start it will
silently fail. As syslog driver is doing, this check should be done on
daemon start and prevent it from starting even in other drivers.
This patch also adds integration tests for this behavior.

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-20 16:20:25 +02:00
Sally O'Malley
e41753678d docker restarts running OR stopped containers, docs edit rm "running"
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-09-20 09:16:27 -04:00
Doug Davis
148be8bd7e Merge pull request #16430 from runcom/pkg-integration-fix-format
pkg: integration: utils_test: fix int format
2015-09-20 06:48:58 -05:00
Lei Jitang
ee6b81faf2 Docs: correct the description of docker cp
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-20 18:02:28 +08:00
Antonio Murdaca
c219311fd8 pkg: integration: utils_test: fix int format
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-20 02:42:08 +02:00
Sebastiaan van Stijn
acdc0f82c0 Merge pull request #16414 from sunyuan3/dockertest
Add timeout description.
2015-09-19 22:20:10 +02:00
Charles Chan
8d6796f8c6 Add missing '[OPTIONS]' arg to documentation for 'docker version'.
Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-09-19 08:53:11 -07:00
Brian Goff
7d5603e7cb Merge pull request #16363 from coolljt0725/fix_net_none_test
Fix --net none test closes #16356
2015-09-19 09:25:12 -04:00
Steve Durrheimer
07f1d68887 Catchup missing changes for the zsh completion
- felixr/docker-zsh-completion@6ae6279: Add --privileged flag to docker exec command in zsh completion
 - felixr/docker-zsh-completion@259ea00: Remove -h help flag from subcommands in zsh completion
 - felixr/docker-zsh-completion@5f77b29: Add docker ps --format flag to zsh completion
 - felixr/docker-zsh-completion@a1f39f8: Add --config flag to zsh completion
 - felixr/docker-zsh-completion@6a503b4: Filter zsh completions of inspect command by --type
 - felixr/docker-zsh-completion@d286ccd: Add --ulimit flag to build command to zsh completion
 - felixr/docker-zsh-completion@bdc1261: Add support for kernel memory limit in zsh completion
 - felixr/docker-zsh-completion@c8ce164: Add docker volume command and subcommands in zsh completion
 - felixr/docker-zsh-completion@7f996bf: Add docker daemon command to zsh completion
 - felixr/docker-zsh-completion@4ccd292: Be more generic when parsing "docker ps" output.
 - felixr/docker-zsh-completion@cd0f1b9: Fix container completion by name
 - felixr/docker-zsh-completion@8bf9041: Use "docker ps --no-trunc" to build completion.
 - felixr/docker-zsh-completion@b721bbb: Only keep the last name for a running/stopped container
 - felixr/docker-zsh-completion@6791b3e: Fix "docker run --stop-signal" completion
 - felixr/docker-zsh-completion@961f628: Try some heuristics to determine the canonical container name

Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-09-19 12:03:55 +02:00
Yuan Sun
76c96da487 Add timeout description.
It is almost impossible to take serveral minutes to complete all the
test.

Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-09-19 10:24:16 +08:00
Lei Jitang
0b2091132a Fix --net none test closes #16356
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-18 20:49:36 -04:00
Doug Davis
536353e87f Merge pull request #16409 from runcom/fix-tests
integration-cli: fix tests with memory limit
2015-09-18 19:47:16 -04:00
Jess Frazelle
bf892efe36 Merge pull request #16405 from michaelhuettermann/master
Adding another scientist to the hall of fame.
2015-09-18 16:09:01 -07:00
Jess Frazelle
16f60347bc Merge pull request #16407 from Microsoft/10662-fixinfoprocerror
Windows: Fix error in daemon log on info
2015-09-18 16:08:45 -07:00
Antonio Murdaca
0b8b8ed9e9 integration-cli: fix tests with memory limit
If you don't have cgroup swap memory support, `dockerCmd`'s output in
these tests will be polluted by a warning from the daemon and will fail
the tests.
No need to have memory swap support for these tests to run as it will
be reset to -1 and everything will continue correctly.

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-19 00:07:40 +02:00
John Howard
8d56108ffb Windows: Fix warning on info
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-18 13:39:12 -07:00
David Calavera
e61abac5fa Merge pull request #16349 from cpuguy83/16302_deprecate_autocreate_binds
deprecate bind path auto-create
2015-09-18 12:53:06 -07:00
michaelhuettermann
3e212eec5e Adding another scientist to the hall of fame.
Signed-off-by: Michael Hüttermann <michael@huettermann.net>
2015-09-18 21:31:12 +02:00
Alexandre Beslic
96f9efc063 Merge pull request #16403 from runcom/fix-containers-json-emtpy-response
Fix GET /containers/json emtpy response regression
2015-09-18 11:47:42 -07:00
Brian Goff
45d7acf237 Merge pull request #16317 from vbatts/vbatts-event-timenano
jsonmessage: add and use TimeNano for events
2015-09-18 14:41:45 -04:00
Doug Davis
848792c42e Fix 'rename' error msg and error checking
`docker rename foo ''` would result in:
```
usage: docker rename OLD_NAME NEW_NAME
```
which is the old engine's way of return errors - yes that's in the
daemon code.  So I fixed that error msg to just be normal.

While doing that I noticed that using an empty string for the
source container name failed but didn't print any error message at all.
This is because we would generate a URL like: ../containers//rename/..
which would cause a 301 redirect to ../containers/rename/..
however the CLI code doesn't actually deal with 301's - it just ignores
them and returns back to the CLI code/caller.

Rather than changing the CLI to deal with 3xx error codes, which would
probably be a good thing to do in a follow-on PR, for this immediate
issue I just added a cli-side check for empty strings for both old and
new names. This way we catch it even before we hit the daemon.

API callers will get a 404, assuming they follow the 301, for the
case of the src being empty, and the new error msg when the destination
is empty - so we should be good now.

Add tests for both cases too.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-18 11:12:22 -07:00
Brian Goff
3dbfb3d38c Ensure stdin does not block after container stop
Fixes #11957
Fixes #12319

Also removes check for Darwin when the stdin reader is closed as it
doesn't appear to block any more.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-18 13:48:07 -04:00
Vincent Batts
4026512a2c events/jsonmessage: add and prefer TimeNano for events
This way provide both Time and TimeNano in the event. For the display of
the JSONMessage, use either, but prefer TimeNano Proving only TimeNano
would break Subscribers that are using the `Time` field, so both are set
for backwards compatibility.

The events logging uses nano formatting, but only provides a Unix()
time, therefor ordering may get lost in the output. Example:
```
2015-09-15T14:18:51.000000000-04:00 ee46febd64ac629f7de9cd8bf58582e6f263d97ff46896adc5b508db804682da: (from busybox) resize
2015-09-15T14:18:51.000000000-04:00 a78c9149b1c0474502a117efaa814541926c2ae6ec3c76607e1c931b84c3a44b: (from busybox) resize
```

By having a field just for Nano time, when set, the marshalling back to
`time.Unix(sec int64, nsec int64)` has zeros exactly where it needs to.
This does not break any existing use of jsonmessage.JSONMessage, but now
allows for use of `UnixNano()` and get event formatting that has
distinguishable order. Example:
```
2015-09-15T15:37:23.810295632-04:00 6adcf8ed9f5f5ec059a915466cd1cde86a18b4a085fc3af405e9cc9fecbbbbaf: (from busybox) resize
2015-09-15T15:37:23.810412202-04:00 6b7c5bfdc3f902096f5a91e628f21bd4b56e32590c5b4b97044aafc005ddcb0d: (from busybox) resize
```

Including tests for TimeNano and updated event API reference doc.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-09-18 13:15:26 -04:00
Antonio Murdaca
41646cb4e3 Merge pull request #16389 from HuKeping/stats-zero
Reset data of stats in docker cli when container stopped
2015-09-18 18:59:51 +02:00
Antonio Murdaca
26bd5e3a2d Fix GET /containers/json emtpy response regression
GET /containers/json route used to reply with and empty array `[]` when no
containers where available. Daemon containers list refactor introduced
this bug by declaring an empty slice istead of initializing it as well
and it was now replying with `null`.

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-18 18:44:46 +02:00
David Calavera
72eb75a06c Merge pull request #16260 from sunyuan3/comment
Correct wrong comment for TestRunWithoutMemoryswapLimit case.
2015-09-18 09:22:49 -07:00
Phil Estes
c4d4318b82 Merge pull request #16378 from duglin/MoveErrors
Move api/errors/ to errors/
2015-09-18 10:42:12 -04:00
Brian Goff
249f45bcfe deprecate bind path auto-create
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-18 10:28:38 -04:00
Harald Albers
5d6ca225d1 bash completion: use generic tag log driver option
Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-18 16:20:05 +02:00
Chris Swan
d09da26f06 Clarify when keys are created and fix missing of
Signed-off-by: Chris Swan <chris.swan@iee.org>

Conflicts:
	docs/security/trust/content_trust.md
2015-09-18 10:10:10 +01:00
Hu Keping
da67833e63 Reset data of stats in docker cli when container stopped
When use `docker stats` to minitor a running container and then stop it,
there are some fields need to be reset to zero. Otherwise it will keep
displaying the data it received last time.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-18 15:24:13 +08:00
Lei Jitang
2bb6b13685 Docs: update the CONTRIBUTING.md
Tell user not to add random `+1`
Remove unecessary `-D` in `docker info`

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-17 21:58:34 -04:00
Yuan Sun
cf6a53642a Correct wrong comment for TestRunWithoutMemoryswapLimit case.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-09-18 08:28:36 +08:00
moxiegirl
d2e7ba42b1 Merge pull request #15327 from flavio/update-suse-docs
Update SUSE docs
2015-09-17 16:46:26 -07:00
Jess Frazelle
52d7542195 Merge pull request #16377 from runcom/add-stats-tests
integration-cli: add cli/api stats tests when container not found
2015-09-17 13:43:02 -07:00
Jess Frazelle
4a707c9ad9 Merge pull request #16364 from wcwxyz/master
Preserve /etc/sysconfig/docker across rpm update
2015-09-17 13:36:17 -07:00
Doug Davis
a283a30fb0 Move api/errors/ to errors/
Per @calavera's suggestion: https://github.com/docker/docker/pull/16355#issuecomment-141139220

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-17 11:54:14 -07:00
Jess Frazelle
4702d45599 Merge pull request #16271 from runcom/deprecate-cli-opts
Deprecate -c cli short variant flag in docker run
2015-09-17 11:52:59 -07:00
Jess Frazelle
96c735a724 Merge pull request #16354 from tomdee/patch-3
Update the instructions for building experimental docker binaries
2015-09-17 11:50:07 -07:00
Jess Frazelle
828e4ac45a Merge pull request #16355 from duglin/DaemonErrors
Convert some "daemon" static error strings to the new errocode package format
2015-09-17 11:48:37 -07:00
Mike Brown
2b6b9a8018 man update for docker run with host volumes
Signed-off-by: Mike Brown <brownwm@us.ibm.com>

cleaning up docker run -v documentation for man and web reference guide

Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-09-17 12:15:18 -05:00
David Calavera
57c6012cf0 Merge pull request #16375 from sunyuan3/makefile
from make file to Makefile
2015-09-17 10:10:18 -07:00
Antonio Murdaca
66be81b148 integration-cli: add cli/api stats tests when container not found
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-17 18:20:25 +02:00
David Calavera
cfd3080a80 Merge pull request #15898 from Microsoft/15775-buildcontextfix
Windows: Fix long path handling for docker build
2015-09-17 09:19:23 -07:00
Yuan Sun
5e7895ee21 from make file to Makefile
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-09-17 15:37:50 +00:00
Antonio Murdaca
e33b8b11af Merge pull request #16370 from mountkin/daemon-cleanup
remove the unused run() and output() functions in daemon/container.go
2015-09-17 17:33:55 +02:00
David Calavera
cafee2eb45 Merge pull request #16361 from MHBauer/stats-refactor
refactor stats to not use internal data structures
2015-09-17 08:28:07 -07:00
Antonio Murdaca
e5a26ec081 Deprecate -c cli short variant flag in docker run
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-17 15:48:48 +02:00
Brian Goff
3b168b29f2 Merge pull request #16372 from runcom/skip-racey-twst
Skip racey TestDockerCmdInDirWithTimeout
2015-09-17 09:47:08 -04:00
Antonio Murdaca
f172847205 Skip racey TestDockerCmdInDirWithTimeout
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-17 15:30:07 +02:00
Shijiang Wei
b79782e951 remove the unused run() and output() functions in daemon/container.go
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-09-17 19:22:25 +08:00
Morgy93
cdc91aaf7c Added some adjectives
Signed-off-by: Thomas Hauschild <thomas@ulfertsprygoda.de>
2015-09-17 11:04:01 +02:00
Antonio Murdaca
ffaee8fe78 Merge pull request #16336 from mountkin/fix-hijack
error should be checked earlier in the hijack function
2015-09-17 09:38:48 +02:00
WANG Chao
b51918fba1 Preserve /etc/sysconfig/docker across rpm update
Otherwise we have to reconfigure every time docker rpm got update.

Signed-off-by: WANG Chao <wcwxyz@gmail.com>
2015-09-17 12:12:28 +08:00
Tibor Vass
1ffff4c8e2 Merge pull request #15182 from mapuri/build-arg
Support for passing build-time variables in build context
2015-09-16 23:52:37 -04:00
Brian Goff
4dfa996cc2 Merge pull request #15384 from phil-monroe/15058-include-name-in-syslog-tag
log driver - Interpolate fields into log tag
2015-09-16 23:33:34 -04:00
Morgan Bauer
2d5d606fd3 refactor stats to not use internal data structures
- refactor to make it easier to split the api in the future
 - addition to check the existing test case and make sure it contains
   some expected output

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-09-16 17:28:52 -07:00
David Calavera
b0b3bc56d0 Merge pull request #16357 from Microsoft/10662-enabledockervolume
Windows: Enable docker volume
2015-09-16 16:42:50 -07:00
Doug Davis
f7d4b4fe2b Convert some "daemon" static error strings to the new errocode package format
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-16 16:16:42 -07:00
David Calavera
9ab8c2d92e Merge pull request #16358 from mrjana/mh
Vendoring libnetwork
2015-09-16 15:47:47 -07:00
Arnaud Porterie
0ac28f5e48 Merge pull request #16294 from jfrazelle/cleanup-vendor
cleanup vendoring of test deps
2015-09-16 15:45:36 -07:00
Tibor Vass
9a8f1b7673 Merge pull request #16359 from cpuguy83/skip_racey_test
Skip racey TestDockerCmdWithTimeout
2015-09-16 18:37:14 -04:00
Brian Goff
5cf3a6e010 Skip racey TestDockerCmdWithTimeout
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-16 18:36:35 -04:00
Sebastiaan van Stijn
3394fedf32 Merge pull request #16269 from moxiegirl/fixes-15790
Clarifying use of flag
2015-09-17 00:23:25 +02:00
Philip Monroe
3be7146e14 log driver - add ability to interpolate container context into the log tag field
Signed-off-by: Philip Monroe <phil@philmonroe.com>
2015-09-16 15:19:28 -07:00
Antonio Murdaca
5cbcbfc03c Merge pull request #16031 from thockin/14069-dns-options
Add support for DNS options
2015-09-16 23:59:19 +02:00
Jana Radhakrishnan
a803148bba Vendoring libnetwork
To fix an issue with experimental multihost networking.
git hash: 00a92f066e628e4c6d50979c070df377575aad18

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-09-16 14:48:42 -07:00
Brian Goff
677a6eaf8f Merge pull request #16261 from vdemeester/integration-dockercmd
Move dockerCmd to pkg/integration and add tests to it
2015-09-16 17:40:33 -04:00
John Howard
42a46ed1a4 Windows: Enabled docker volume
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-16 14:33:13 -07:00
David Calavera
4a2c3733bd Merge pull request #16351 from mavenugo/vin_ln_kv
Vendoring in libnetwork and libkv
2015-09-16 14:10:49 -07:00
Tim Hockin
3d4685e258 Add support for DNS options
Signed-off-by: Tim Hockin <thockin@google.com>
2015-09-16 14:06:45 -07:00
David Calavera
b9a3660d1e Merge pull request #16316 from vbatts/vbatts-events
daemon/events: let Log be [slightly] blocking
2015-09-16 13:57:06 -07:00
David Calavera
fb01c2ea3c Merge pull request #16350 from cpuguy83/fix_error_on_dev-snd_test
Skip TestRunDeviceDirectory when no /dev/snd
2015-09-16 13:56:11 -07:00
Jess Frazelle
ac34ce0307 Merge pull request #16305 from estesp/hooks-for-the-hooks-gods
Use libcontainer hook for network namespace info passing to libnetwork's sandbox
2015-09-16 13:55:16 -07:00
Alexander Morozov
5b99591e18 Merge pull request #16308 from runcom/graph-unparam
graph: remove unused functions parameters
2015-09-16 13:54:23 -07:00
David Calavera
c1e59b94e2 Merge pull request #16345 from albers/completion-extglob-fix
[Fix 16326] Bash completion syntax error on OSX
2015-09-16 13:43:02 -07:00
Jess Frazelle
74a8f2f668 Merge pull request #15861 from brahmaroutu/gccgo_x86
Enable building Docker with gcc-go on x86
2015-09-16 13:29:02 -07:00
Tom Denham
f9e9a622f0 Update the instructions for building experimental docker binaries
There is no dynbinary target.

Signed-off-by: Tom Denham <tom@tomdee.co.uk>
2015-09-16 13:18:32 -07:00
David Calavera
bfc4e38429 Merge pull request #16320 from 0xfoo/remove-unused-var
Remove unused variable, fix #16310
2015-09-16 13:17:10 -07:00
Srini Brahmaroutu
2c53643b33 adding a Dockerfile.gccgo to use gccgo compiler instead of go compiler.
temporarily disabling registry builds as crypto package is broken with gccgo.

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-09-16 18:56:01 +00:00
Madhu Venugopal
814c19591d Vendoring in libnetwork and libkv
* libkv upgrade is required for the docker discovery PR
* vendor-in libnetwork contains an update to network plugin api
  (Thanks @WeiZhang555 : https://github.com/docker/libnetwork/pull/516)

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-09-16 11:54:28 -07:00
Brian Goff
88b895111b Skip TestRunDeviceDirectory when no /dev/snd
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-16 14:43:30 -04:00
Sebastiaan van Stijn
259a0fb16c Merge pull request #15786 from HuKeping/stats-network
Refactor the statistics of network in docker stats
2015-09-16 20:29:16 +02:00
Mary Anthony
a2f545c86d Clarifying use of flag
Updating with Seb's comments
Updating with comments from review

Signed-off-by: Mary Anthony <mary@docker.com>
2015-09-16 11:22:40 -07:00
David Calavera
60db152b20 Merge pull request #16292 from tpounds/fix-doc-typo
Fix minor documentation typo.
2015-09-16 11:18:17 -07:00
David Calavera
552c361f39 Merge pull request #16347 from jfrazelle/revert-ulp
Revert "Make daemon to start with no userlandproxy by default"
2015-09-16 10:01:11 -07:00
Jessica Frazelle
50d7fba775 Revert "Make daemon to start with no userlandproxy by default"
This reverts commit bf2b8ec816.

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-16 09:56:38 -07:00
Madhu Venugopal
e148e763b8 Update native execdriver to exploit libcontainer hooks
Using @mavenugo's patch for enabling the libcontainer pre-start hook to
be used for network namespace initialization (correcting the conflict
with user namespaces); updated the boolean check to the more generic
SupportsHooks() name, and fixed the hook state function signature.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-09-16 12:51:14 -04:00
Harald Albers
0a5aac1ff6 Fix bash completion when extglob is not set
Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-16 18:17:40 +02:00
Brian Goff
7b1930063f Merge pull request #16309 from LK4D4/fix_volumes_race
volumes: add synchronization to Count and List
2015-09-16 11:28:51 -04:00
Tim Waugh
ea4d70bdfd Add documentation note that LABEL allows environment replacement
Signed-off-by: Tim Waugh <twaugh@redhat.com>
2015-09-16 14:47:01 +01:00
Brian Goff
e0fee019ca Merge pull request #16314 from Microsoft/10662-stopsignal2
Windows: Turn off TestBuildStopSignal
2015-09-16 09:42:01 -04:00
Shijiang Wei
f2d978ccf9 error should be checked earlier in the hijack function
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-09-16 20:28:07 +08:00
Madhav Puri
8cfcd87380 incorporate doc review comments
Signed-off-by: Madhav Puri <madhav.puri@gmail.com>
2015-09-16 03:31:15 -07:00
Madhav Puri
54240f8da9 Support for passing build-time variables in build context
- The build-time variables are passed as environment-context for command(s)
run as part of the RUN primitve. These variables are not persisted in environment of
intermediate and final images when passed as context for RUN. The build environment
is prepended to the intermediate continer's command string for aiding cache lookups.
It also helps with build traceability. But this also makes the feature less secure from
point of view of passing build time secrets.

- The build-time variables also get used to expand the symbols used in certain
Dockerfile primitves like ADD, COPY, USER etc, without an explicit prior definiton using a
ENV primitive. These variables get persisted in the intermediate and final images
whenever they are expanded.

- The build-time variables are only expanded or passed to the RUN primtive if they
are defined in Dockerfile using the ARG primitive or belong to list of built-in variables.
HTTP_PROXY, HTTPS_PROXY, http_proxy, https_proxy, FTP_PROXY and NO_PROXY are built-in
variables that needn't be explicitly defined in Dockerfile to use this feature.

Signed-off-by: Madhav Puri <madhav.puri@gmail.com>
2015-09-16 03:31:15 -07:00
Jessica Frazelle
b0d4e9d1ba add opensuse to rpm builder
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-15 16:18:19 -07:00
moxiegirl
606c6e8f57 Merge pull request #16291 from mikebrow/readme-updates-for-man-pages
updates to readme documents for manual page
2015-09-15 15:18:19 -07:00
Jess Frazelle
be082715c7 Merge pull request #16324 from calavera/update_changelog
Update changelog for version 1.8.2.
2015-09-15 14:51:53 -07:00
David Calavera
3b7cdfcd6b Update changelog for version 1.8.2.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-15 17:43:37 -04:00
Christian Rotzoll
9c9b748ad8 Remove unused variable, fix #16310
Signed-off-by: Christian Rotzoll <ch.rotzoll@gmail.com>
2015-09-15 22:20:10 +02:00
Vincent Batts
fc77ea787e Revert "Make events test more deterministic in go1.5"
This reverts commit 386aefb9fc.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-09-15 15:55:18 -04:00
John Howard
6167c7bfb8 Windows: Turn off TestBuildStopSignal
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-15 11:56:54 -07:00
Vincent Batts
09e7dd03f8 daemon/events: let Log be [slightly] blocking
With go1.5's concurrency, the use of a goroutine in Log'ing events was
causing the resulting events to not be in order.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-09-15 14:28:22 -04:00
Stefan J. Wernli
9b648dfac6 Windows: Fix long path handling for docker build
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-09-15 10:58:11 -07:00
Alexander Morozov
2d21996eec volumes: add synchronization to Count and List
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-09-15 10:38:53 -07:00
Mike Brown
96699e06dd updates to readme documents for manual page
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-09-15 12:08:02 -05:00
Brian Goff
59311faaed Merge pull request #16285 from calavera/cleanup_volumes_when_create_fails
Remove volume references when container creation fails.
2015-09-15 10:55:51 -04:00
Antonio Murdaca
723f587b56 graph: remove unused functions parameters
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-15 15:34:15 +02:00
Brian Goff
e91f2c26ce Merge pull request #15069 from duglin/UseErrorPackage
Use the new error package
2015-09-15 09:28:53 -04:00
Flavio Castelli
5d6bb52976 Update SUSE docs
Clarify some parts of the document, add extra resources link.

Signed-off-by: Flavio Castelli <fcastelli@suse.com>
2015-09-15 14:46:46 +02:00
Antonio Murdaca
db2ac8655d Merge pull request #16275 from coolljt0725/fix_register_failed_and_start
Fix container register failed during daemon start and then start the container
2015-09-15 11:46:03 +02:00
Antonio Murdaca
0d873f6e70 Merge pull request #16279 from coolljt0725/clean_up
Clean up: remove redundant value assign in runconfig/parse.go
2015-09-15 11:43:38 +02:00
Hu Keping
d3379946ec Refactor the statistics of network in docker stats
For now docker stats will sum the rxbytes, txbytes, etc. of all
the interfaces.

It is OK for the output of CLI `docker stats` but not good for
the API response, especially when the container is in sereval
subnets.

It's better to leave these origianl data to user.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-15 15:40:34 +08:00
Sebastiaan van Stijn
99b40d1e14 Merge pull request #16295 from BWITS/master
typo
2015-09-15 08:42:04 +02:00
Phil Estes
370ca6e401 Merge pull request #16282 from mavenugo/ln_uns
Vendor-in libnetwork 2baa2ddc78b42f011f55633282ac63a72e1b09c1
2015-09-14 22:18:50 -04:00
Bill W
386b7bc71b typo
Signed-off-by: Bill Wang <ozbillwang@gmail.com>
2015-09-15 11:58:20 +10:00
Jessica Frazelle
8ef7aaf885 cleanup vendoring of test deps
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-14 17:38:50 -07:00
Stephen Day
58d6919183 Merge pull request #16197 from aaronlehmann/carry-15539
Carry #15539: Avoid redundant HEAD requests on push
2015-09-14 17:15:32 -07:00
Trevor Pounds
2eedaf0389 Fix minor documentation typo.
Signed-off-by: Trevor Pounds <trevor.pounds@gmail.com>
2015-09-14 17:08:04 -07:00
Brian Goff
a90ed92df0 Merge pull request #16283 from nalind/journald-not-nil
Remove unnecessary check for nil CString
2015-09-14 19:45:36 -04:00
David Calavera
7ce270d4ea Merge pull request #15931 from vdemeester/api-client-ps-coverage
Add more unit tests on api/client/ps package
2015-09-14 14:02:49 -07:00
David Calavera
bda964d085 Merge pull request #16247 from calavera/unexport_volumedriver_interface
Unexport VolumeDriver.
2015-09-14 13:47:00 -07:00
David Calavera
2c6c07752c Remove volume references when container creation fails.
Volumes are accounted when a container is created.
If the creation fails we should remove the reference from the counter.
Do not log ErrVolumeInUse as an error, having other volume references is
not an error.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-14 16:16:46 -04:00
David Calavera
fedecb8c91 Merge pull request #16276 from Mashimiao/typo-fix-opts-split
opts/opts.go: fix typo
2015-09-14 13:12:16 -07:00
Doug Davis
628b9a41b0 Use the new error package
This is the first step in converting out static strings into well-defined
error types.  This shows just a few examples of it to get a feel for how things
will look. Once we agree on the basic outline we can then work on converting
the rest of the code over.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-14 13:11:01 -07:00
Nalin Dahyabhai
11fda783f8 Remove unnecessary check for nil CString
@noxiouz points out that we don't need to check for a nil result from
C.CString(), since an out-of-memory condition causes a runtime panic
instead.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2015-09-14 14:16:48 -04:00
Derek McGowan
5e11cd43aa Ignore ping errors in notary repository setup
Notary is capable of acting in offline mode, making use of cache TUF data.
When ping is not successful, notary should still be attempted without error.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-09-14 11:08:25 -07:00
Madhu Venugopal
d0e0c13b60 Vendor-in 2baa2ddc78b42f011f55633282ac63a72e1b09c1 for userns support
Changes include :
* libnetwork support for userns
* driver api change to have 1 interface per endpoint

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-09-14 11:04:12 -07:00
Sebastiaan van Stijn
084f8060e2 Merge pull request #16274 from opreaadrian/rest-api-documentation-syntax-error
Rest api documentation syntax error
2015-09-14 19:40:59 +02:00
David Calavera
d25dada639 Merge pull request #15886 from xiekeyang/master
Fix: Docker Daemon didn't send actual actions client ask for to Token Server
2015-09-14 09:47:19 -07:00
Mike Brown
ff61be9b04 rebased, the clean up of the first few paragraphs of getting started with containers; addressed nit
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-09-14 09:26:32 -05:00
moxiegirl
621143a641 Merge pull request #16253 from AmeBel/update-documentation-on-run
add a documentation note on backslash usage in shell form of RUN
2015-09-14 06:32:20 -07:00
Lei Jitang
5575b93678 Clean up: remove redundant value assign in runconfig/parse.go
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-14 08:30:11 -04:00
Amen Belayneh
30164588d6 update documentation styling as per suggestions
Signed-off-by: Amen Belayneh <amenbelayneh@gmail.com>
2015-09-14 19:08:27 +08:00
Adrian Oprea
18d856f55a Fix typos in REST API documentation
Replace comma with column
Remove extra curly brace

Fix typo in REST API documentation

Replace comma with column in documentation.

Signed-off-by: Adrian Oprea <adrian@codesi.nz>

Remove extra curly brace

Remove extra curly brace from remote API docs.

Signed-off-by: Adrian Oprea <adrian@codesi.nz>
2015-09-14 11:18:41 +03:00
Ma Shimiao
185544a4fe opts/opts.go: fix typo
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-09-14 14:48:09 +08:00
Lei Jitang
b4841dd237 Fix container register failed during daemon start and try to start the container
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-09-13 22:52:56 -04:00
Phil Estes
dac92a8afb Merge pull request #16244 from calavera/libcontainer_0_0_4
Vendor libcontainer v0.0.4
2015-09-13 22:24:44 -04:00
Sven Dowideit
21cc0ac2c6 Merge pull request #16241 from jaxgeller/fix-installation-docs
fix typo and cleanup docs for installation.
2015-09-14 09:23:33 +10:00
Sebastiaan van Stijn
25eb101624 Merge pull request #16268 from charleswhchan/fix-ubuntu-doc
Fix Ubuntu instalation doc.
2015-09-14 00:11:16 +02:00
Charles Chan
6b16c154f5 Fix Ubuntu instalation doc.
Formatting, break `sudo ...` command into 2 lines.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-09-13 13:29:50 -07:00
Vincent Demeester
7efa0f37b2 Move dockerCmd… to pkg/integration…
… and add some tests on them.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-13 13:09:04 +02:00
Doug Davis
611dbd8957 Merge pull request #16254 from dgageot/patch-5
Fix typo in ROADMAP.md
2015-09-12 06:15:00 -04:00
David Gageot
02e18c9ab3 Fix typo in ROADMAP.md
Signed-off-by: David Gageot <david@gageot.net>
2015-09-12 11:27:46 +02:00
Amen Belayneh
6a55d95334 add a documentation note on backslash usage in shell form of RUN
Signed-off-by: Amen Belayneh <amenbelayneh@gmail.com>
2015-09-12 15:42:18 +08:00
Sebastiaan van Stijn
9d0954a83d Merge pull request #16100 from ZJU-SEL/fix-document-about-vol
fix doc about vol
2015-09-12 02:50:49 +02:00
David Calavera
69dde5c075 Unexport VolumeDriver.
This is not a public interface and users are trying to use it.
We only use it to be able to generate the rpc protocol to talk with a plugin.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-11 18:19:38 -04:00
Alexander Morozov
7fc4566c9d Merge pull request #13707 from nalind/journald-logs
Implement the "logs" endpoint for the journald log driver
2015-09-11 14:38:33 -07:00
Nalin Dahyabhai
e611a189cb Add log reading to the journald log driver
If a logdriver doesn't register a callback function to validate log
options, it won't be usable.  Fix the journald driver by adding a dummy
validator.

Teach the client and the daemon's "logs" logic that the server can also
supply "logs" data via the "journald" driver.  Update documentation and
tests that depend on error messages.

Add support for reading log data from the systemd journal to the
journald log driver.  The internal logic uses a goroutine to scan the
journal for matching entries after any specified cutoff time, formats
the messages from those entries as JSONLog messages, and stuffs the
results down a pipe whose reading end we hand back to the caller.

If we are missing any of the 'linux', 'cgo', or 'journald' build tags,
however, we don't implement a reader, so the 'logs' endpoint will still
return an error.

Make the necessary changes to the build setup to ensure that support for
reading container logs from the systemd journal is built.

Rename the Jmap member of the journald logdriver's struct to "vars" to
make it non-public, and to make it easier to tell that it's just there
to hold additional variable values that we want journald to record along
with log data that we're sending to it.

In the client, don't assume that we know which logdrivers the server
implements, and remove the check that looks at the server.  It's
redundant because the server already knows, and the check also makes
using older clients with newer servers (which may have new logdrivers in
them) unnecessarily hard.

When we try to "logs" and have to report that the container's logdriver
doesn't support reading, send the error message through the
might-be-a-multiplexer so that clients which are expecting multiplexed
data will be able to properly display the error, instead of tripping
over the data and printing a less helpful "Unrecognized input header"
error.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2015-09-11 16:50:03 -04:00
David Calavera
6f15546f6b Merge pull request #16231 from jfrazelle/vendor-test-deps
allow vendoring of test packages
2015-09-11 13:47:03 -07:00
David Calavera
55a601e3f1 Vendor libcontainer v0.0.4
Noteworthy changes:

- Add Prestart/Poststop hook support
- Fix bug finding cgroup mount directory
- Add OomScoreAdj as a container configuration option
- Ensure the cleanup jobs in the deferrer are executed on error
- Don't make modifications to /dev when it is bind mounted

Other changes in runc:

https://github.com/opencontainers/runc/compare/v0.0.3...v0.0.4

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-11 16:17:59 -04:00
Jess Frazelle
9fbef808c1 Merge pull request #16243 from LK4D4/fix_import
awslogs: fix logrus import
2015-09-11 12:46:57 -07:00
Jess Frazelle
c044dadade Merge pull request #15955 from aaronlehmann/parallel-pull-race-2
Fix race condition when waiting for a concurrent layer pull
2015-09-11 12:45:25 -07:00
Jess Frazelle
f9320690d9 Merge pull request #14973 from mrjana/up
Make daemon to start with no userlandproxy by default
2015-09-11 12:39:04 -07:00
Jana Radhakrishnan
bf2b8ec816 Make daemon to start with no userlandproxy by default
This PR makes a user visible behavior change with userland
proxy disabled by default and rely on hairpin NAT to be enabled
by default. This may not work in older (unsupported) kernels
where the user will be forced to enable userlandproxy if needed.

      - Updated the Docs
      - Changed the integration-cli to start with userlandproxy
	desiabled by default.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-09-11 11:58:35 -07:00
Alexander Morozov
32964def83 awslogs: fix logrus import
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-09-11 11:05:06 -07:00
Mrunal Patel
c8291f7107 Add support for sharing /dev/shm/ and /dev/mqueue between containers
This changeset creates /dev/shm and /dev/mqueue mounts for each container under
/var/lib/containers/<id>/ and bind mounts them into the container. When --ipc:container<id/name>
is used, then the /dev/shm and /dev/mqueue of the ipc container are used instead of creating
new ones for the container.

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)

(cherry picked from commit d88fe447df)
2015-09-11 14:02:11 -04:00
Mrunal Patel
3f631b0d94 Modify test to include /dev/shm sharing
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
(cherry picked from commit 457aeaa2e1)
2015-09-11 14:02:11 -04:00
Jess Frazelle
ec6d91ce43 Merge pull request #16240 from Microsoft/10662-stopsignal
Windows: Nice error on stopsignal
2015-09-11 11:00:12 -07:00
Aaron Lehmann
4a5d40fdb7 Make Broadcaster Wait function wait for all writers to finish before returning
Also, use the channel to determine if the broadcaster is closed,
removing the redundant isClosed variable.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-09-11 10:54:40 -07:00
Aaron Lehmann
50c355777e Remove io.Pipe used for download progress
The original purpose of this was to cancel downloads if pullV2Tag
returns an error, preventing an associated crash (see #15353). The
broadcaster now accomplishes the same thing that the pipe does, making
the pipe redundant. When pullV2Tag returns, all broadcasters are closed,
which means all further writes to those broadcasters will return errors.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-09-11 10:54:40 -07:00
Aaron Lehmann
64faec8269 Fix races accessing d.poolKey and d.tmpFile when pullV2Tag returns
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-09-11 10:54:35 -07:00
Brian Goff
bc48194ded Merge pull request #16215 from HuKeping/save
Refactor CLI docker save
2015-09-11 13:52:59 -04:00
Aaron Lehmann
23e68679f0 Fix race condition when waiting for a concurrent layer pull
Before, this only waited for the download to complete. There was no
guarantee that the layer had been registered in the graph and was ready
use. This is especially problematic with v2 pulls, which wait for all
downloads before extracting layers.

Change Broadcaster to allow an error value to be propagated from Close
to the waiters.

Make the wait stop when the extraction is finished, rather than just the
download.

This also fixes v2 layer downloads to prefix the pool key with "layer:"
instead of "img:". "img:" is the wrong prefix, because this is what v1
uses for entire images. A v1 pull waiting for one of these operations to
finish would only wait for that particular layer, not all its
dependencies.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-09-11 10:52:34 -07:00
Tianon Gravi
f9e5a693ed Merge pull request #16194 from yosifkit/fix-nuke
Fix nuke script
2015-09-11 10:26:22 -07:00
Jess Frazelle
335689118b Merge pull request #16026 from vdemeester/integration-cli-utils-tests
Add unit tests for integration cli utils.go functions
2015-09-11 10:21:09 -07:00
Jess Frazelle
dc1cc46348 Merge pull request #16224 from jfrazelle/no-release-dirty
do not allow the release of a dirty binary
2015-09-11 10:08:55 -07:00
jaxgeller
9746021f1a fix typo and cleanup docs for installation.
Signed-off-by: Jackson Geller <jacksongeller@gmail.com>
2015-09-11 13:06:54 -04:00
John Howard
8de7fcaf7e Windows: Nice error on stopsignal
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-11 09:40:23 -07:00
David Calavera
db54c79d7c Merge pull request #15307 from calavera/stop_signal
Signal to stop a container.
2015-09-11 09:25:18 -07:00
Hu Keping
22be1e443f Refactor CLI docker save
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-11 15:31:55 +08:00
Brian Goff
7064fe283f Merge pull request #16226 from aaronlehmann/broadcaster-catch-up
Broadcaster writer goroutines must only finish when they are caught up
2015-09-10 22:55:44 -04:00
xlgao-zju
af14c6e7aa fix doc about vol
Signed-off-by: xlgao-zju <xlgao@zju.edu.cn>
2015-09-11 10:49:39 +08:00
Jessica Frazelle
1ca88b2ca6 allow vendoring of test packages
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-10 19:21:46 -07:00
Derek McGowan
a0d9ffd6f7 Fix layer exclusion bug on multiple tag push
Ensure that layers are not excluded from manifests based on previous pushes.
Continue skipping pushes on layers which were pushed by a previous tag.

Update push multiple tag tests.
Ensure that each tag pushed exists on the registry and is pullable.
Add output comparison on multiple tag push check.

fixes #15536

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-09-10 18:08:59 -07:00
David Calavera
3781cde61f Add STOPSIGNAL instruction to dockerfiles.
This way, images creators can set the exit signal their programs use.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-10 19:56:05 -04:00
David Calavera
0e50d946a2 Signal to stop a container.
Allow to set the signal to stop a container in `docker run`:
- Use `--stop-signal` with docker-run to set the default signal the container will use to exit.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-10 19:56:05 -04:00
David Calavera
bb1996ab8f Merge pull request #13185 from NOX73/10139-tags-list-get-image-api
Added tags list to /images/:id/json api.
2015-09-10 16:40:44 -07:00
Aaron Lehmann
947519bfb3 Broadcaster writer goroutines must only finish when they are caught up
Without this change, there was a narrow race condition that would allow
writers to finish when there was still data left to write. This is
likely to be what was causing some integration tests to fail with
truncated pull output.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-09-10 14:58:06 -07:00
Jessica Frazelle
b18d664692 do not allow the release of a dirty binary
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-10 12:28:09 -07:00
David Calavera
65e43593f5 Merge pull request #16191 from runcom/daemon-remove-unused-function-params
daemon: remove unused function params
2015-09-10 10:23:52 -07:00
Brian Goff
c8dc729af4 Merge pull request #16086 from cezarsa/full_stack_dump
Ensure goroutines dump is not truncated
2015-09-10 11:16:28 -04:00
Brian Goff
08a2e475bc Merge pull request #16104 from vdemeester/httputils-withmock
Update httputils tests
2015-09-10 11:00:17 -04:00
Doug Davis
727f083a37 Merge pull request #16213 from HuKeping/minor
Minor typo
2015-09-10 09:55:49 -04:00
Rozhnov Alexandr
e9e68fa2d2 Added tags list to /images/:id/json api.
It closes #10139.

Signed-off-by: Rozhnov Alexandr <nox73@ya.ru>
2015-09-10 11:55:01 +03:00
Hu Keping
40d3ce1063 Minor typo
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-10 14:13:15 +08:00
Sebastiaan van Stijn
072790bb3b Merge pull request #16202 from tnws/fix-please
Remove stray please
2015-09-10 07:59:46 +02:00
Trevor
012bdac6d6 Remove stray please
Signed-off-by: Trevor <trevinwoodstock@gmail.com>
2015-09-09 21:21:23 -04:00
David Calavera
6efe45990d Merge pull request #15953 from duglin/DaemonContext
Add a "context" to the api/server/* code
2015-09-09 17:28:38 -07:00
Brian Goff
b78e4216a2 Create extpoint for graphdrivers
Allows people to create out-of-process graphdrivers that can be used
with Docker.

Extensions must be started before Docker otherwise Docker will fail to
start.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-09 20:24:35 -04:00
David Calavera
9f517fc5bb Merge pull request #15495 from samuelkarp/awslogs-logging-driver
Add awslogs driver for Amazon CloudWatch Logs
2015-09-09 17:19:39 -07:00
moxiegirl
8855bf3500 Merge pull request #16023 from mikebrow/12854-update-irc-webpage
refresh where to chat page; and add IRCCloud to IRC Quickstart
2015-09-09 17:14:28 -07:00
moxiegirl
b154a6f68e Merge pull request #16188 from albers/docs-volume-help
Update docs and man pages for `docker volume` subcommands
2015-09-09 17:13:21 -07:00
Joe Ferguson
d2e9f6c0c1 Fix nuke script to remove from end of path
Signed-off-by: Joe Ferguson <joe@infosiftr.com>
2015-09-09 15:34:05 -07:00
David Calavera
72f355e466 Merge pull request #16192 from anusha-ragunathan/dev
Updated rpm spec to perform cleaner installs
2015-09-09 15:26:36 -07:00
Doug Davis
f790496d8b Move context stuff to its own package
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-09 14:23:25 -07:00
Anusha Ragunathan
1caa9a7d16 Updated rpm spec to perform cleaner installs
Signed-off-by: Anusha Ragunathan <anusha.ragunathan@docker.com>
2015-09-09 17:13:57 -04:00
Samuel Karp
3effe484e6 Add awslogs driver for Amazon CloudWatch Logs
Signed-off-by: Samuel Karp <skarp@amazon.com>
2015-09-09 13:52:40 -07:00
Samuel Karp
85433365cc Vendor AWS Go SDK
Signed-off-by: Samuel Karp <skarp@amazon.com>
2015-09-09 13:51:14 -07:00
Antonio Murdaca
587823af27 daemon: remove unused function params
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-09 22:37:46 +02:00
David Calavera
a796ac5318 Merge pull request #14626 from kunalkushwaha/add-network-cli-help
"docker network" missing from docker --help
2015-09-09 13:36:43 -07:00
Mike Brown
82fce53103 addressing useability comments per @moxiegirl
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-09-09 14:59:30 -05:00
Doug Davis
8b454dd79e Add a "context" to the api/server/* code
This defines a 'context' object that is passed to each API handler.
Right now the context just has a unique 'requestID' for each API call.
The next steps would be:
- use this 'requestID' in our logging.
- determine the best way to format the logging to include this info.

In particular for log events that generate multiple entries in the log
we can use the requestID to help correlate the log entries.

Adding the requestID to the logging will be a challenge since it could mean
changing every single logrus.XXX() call to pass in the 'context' object.

But first step is to agree on a format, which we can discus in a subsequent
PR, but my initial thoughts are to add it right after the timestamp:

current format:
INFO[0039] POST /v1.21/build?buildargs=%7B%22foo%22%3A%22xxx%22%7D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=&ulimits=null

proposed format:
INFO[0039-83dea1222191] POST /v1.21/build?buildargs=%7B%22foo%22%3A%22xxx%22%7D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=&ulimits=null

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-09 12:51:20 -07:00
Arnaud Porterie
5ff63b6946 Merge pull request #16154 from calavera/remove_steve_from_maintainers
Remove Steve Francia from maintainers.
2015-09-09 12:38:59 -07:00
Jess Frazelle
d333849459 Merge pull request #16162 from cpuguy83/16071_fix_lstat_errors
Ignore stat errors on volume rm.
2015-09-09 11:55:14 -07:00
Jess Frazelle
0072896445 Merge pull request #16171 from vdemeester/lint-only-on-diff
Golint only on changed files
2015-09-09 10:19:16 -07:00
Alexander Morozov
5d67fd5fb2 Merge pull request #16185 from runcom/fix-pkg-devicemapper-typo
pkg: devicemapper: fix typo in function declaration
2015-09-09 10:17:52 -07:00
Harald Albers
2724010364 update docker volume man pages
- added --help option
- fixed several formatting problems

Also added --help to volume inspect reference page.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-09 19:16:39 +02:00
Jess Frazelle
3d8aae1308 Merge pull request #16149 from LK4D4/remove_link_libs
Remove -lpthread and -ldl from ldflags
2015-09-09 10:13:36 -07:00
Sebastiaan van Stijn
34752e091d Merge pull request #16179 from hristozov/patch-1
Update the time since Linux 2.6.26 in the security article
2015-09-09 18:33:50 +02:00
Brian Goff
58ae808d42 Merge pull request #16180 from HuKeping/graph
We don't need image layer stream when create the rootfs
2015-09-09 10:16:31 -04:00
Antonio Murdaca
d4a123b20b pkg: devicemapper: fix typo in function declaration
6990b76a69 introduced a typo in function
declaration, this patch fixes that.

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-09 15:57:52 +02:00
Vincent Demeester
5109071706 Add unit tests for integration cli utils function
- utils_test.go and docker_utils_test.go
- Moved docker related function to docker_utils.go
- add a test for integration-cli/checker

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-09 15:36:44 +02:00
Vincent Demeester
5c80c3fb3c Update httputils tests
- Make sure we use httptest instead of depending on network
- Update resumablerequestreader tests

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-09 14:59:25 +02:00
Hu Keping
f70c592137 We don't need image layer stream when create the rootfs
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-09 20:31:08 +08:00
Antonio Murdaca
104d30f946 Merge pull request #16177 from HuKeping/leading-tab
Use TrimSpace to instead of Trim
2015-09-09 14:12:36 +02:00
Georgi Hristozov
e514fabfac Linux 2.6.26 is now 7 years ago :)
Signed-off-by: Georgi Hristozov <georgi@forkbomb.nl>
2015-09-09 15:06:02 +03:00
Doug Davis
8ff67b9c1a Merge pull request #16176 from HuKeping/typo
Kind of typo
2015-09-09 07:37:37 -04:00
Hu Keping
e9602f3561 Use TrimSpace to instead of Trim
String.Trim(string, " ") can only get ride of the blank, but actully we need
to remove all leading and trailing white space include "\t" for example.

Prior to this patch, one can login with "[Tab][Tab]username", and it will
not be consider as the same with "username".

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-09 19:37:33 +08:00
Sebastiaan van Stijn
bab424aa34 Merge pull request #16170 from devmeyster/master
Minor formating changes
2015-09-09 13:11:56 +02:00
Hu Keping
fd5c33194c Kind of typo
It seems the author foget to change the variable name after copying
from the valid testcase.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-09 19:03:53 +08:00
Vincent Demeester
1cca5ee98c Golint only on changed files
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-09 09:37:47 +02:00
devmeyster
f8308a4965 Minor formating changes
- Changed ";" to "." at the end of bullet points for consistency

Signed-off-by: Artur Meyster <arthurfbi@yahoo.com>
2015-09-09 00:21:22 -07:00
Sebastiaan van Stijn
6733962a2c Merge pull request #16165 from devmeyster/patch-1
Added periods at the end of bullet points for consistency
2015-09-09 08:32:34 +02:00
Artur Meyster
2022fa81ff Added periods at the end of bullet points for consistency
Signed-off-by: Artur Meyster <arthurfbi@yahoo.com>
2015-09-08 23:17:10 -07:00
Brian Goff
9ca4aa4797 Merge pull request #15798 from calavera/volume_driver_host_config
Move VolumeDriver to HostConfig to make containers portable.
2015-09-08 22:05:40 -04:00
Brian Goff
8d27417bfe Ignore stat errors on volume rm.
Underlying volume data may have been removed by some other tool.
Ignore and remove the reference in this case.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-08 22:01:02 -04:00
Alexander Morozov
a58aa9d889 Merge pull request #16157 from runcom/add-missing-err-check-integration-cli-run
integration-cli: add missing err check
2015-09-08 17:26:10 -07:00
Alexander Morozov
8845eb4345 Remove -lpthread and -ldl from ldflags
There is no need in those flags now when we use amalgamated sqlite3 from
mattn/go-sqlite3.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-09-08 17:01:14 -07:00
Brian Goff
4b4597ae17 Merge pull request #16158 from duglin/Issue16146
Add --help to "docker volume inspect --help" output
2015-09-08 19:50:22 -04:00
Brian Goff
25418010ef Merge pull request #16113 from Mashimiao/fix-bug-daemon-delete-link-remove
record the error of removing volumes when removing containers
2015-09-08 19:44:56 -04:00
David Calavera
51662df329 Merge pull request #16123 from albers/completion-volume
bash completion for `docker volume`
2015-09-08 16:21:49 -07:00
Jess Frazelle
634a848b8e Merge pull request #16096 from vdemeester/14756-final-golints
Final bits of enabling golint on the code base 🐹
2015-09-08 15:25:55 -07:00
David Calavera
5c22cb5741 Merge pull request #16148 from Microsoft/10662-fixlogging
Windows: Fix logging
2015-09-08 14:28:28 -07:00
David Calavera
fd32c47112 Merge pull request #16151 from LK4D4/light_stats
Don't read CPU usage if there is no subscribers for stats
2015-09-08 14:26:54 -07:00
Doug Davis
87255b6721 Add --help to "docker volume inspect --help" output
Closes #16146

While in there, modified the testing infrastructure for the help text
so that we can get commands with nested commands - like "volume".

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-08 14:24:00 -07:00
Antonio Murdaca
d5a705b600 integration-cli: add missing err check in TestRunNetworkNotInitializedNoneMode
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-08 23:05:54 +02:00
Jess Frazelle
9fdb626bfb Merge pull request #16153 from calavera/missing_ps_placeholder
Add missing ps placeholder to the docs.
2015-09-08 13:42:10 -07:00
David Calavera
1666fbe287 Remove Steve Francia from maintainers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-08 16:28:03 -04:00
David Calavera
914905f452 Add missing ps placeholder to the docs.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-08 16:12:26 -04:00
Vincent Demeester
0c70eb8381 Update validate-lint to find go files by itself
… and fixes the last bits that were missing :3.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-08 22:07:42 +02:00
Sebastiaan van Stijn
ab197f7ad2 Merge pull request #16053 from sallyom/man-docker-tag
man docker-tag minor fixup
2015-09-08 21:45:27 +02:00
John Howard
1d52c53eea Windows: Fix logging
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-08 12:18:50 -07:00
moxiegirl
1947ab6c1e Merge pull request #15368 from jengeb/docs-docker-start
[docs] Add instruction to start docker on Ubuntu
2015-09-08 11:59:13 -07:00
David Calavera
479fcbb1d0 Merge pull request #16088 from jfrazelle/better-canonical-json-package
replace canonical json package
2015-09-08 11:58:24 -07:00
Alexander Morozov
c486a3a6dc Don't read CPU usage if there is no subscribers for stats
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-09-08 11:57:22 -07:00
Madhu Venugopal
eb5c81e799 Merge pull request #16130 from aboch/vnd
Vendoring libnetwork 3e31cead05cba8ec20241630d051e6d73765b3a2
2015-09-08 11:29:34 -07:00
Jess Frazelle
451f4d0d3b Merge pull request #16142 from cpuguy83/stats_pass_container
Don't lookup container 4 times for stats
2015-09-08 11:19:33 -07:00
Jess Frazelle
2b6da0a965 Merge pull request #16144 from albers/fix-volume-optional
[Fix 16122] usage for `docker volume inspect` and `docker volume rm`
2015-09-08 11:18:43 -07:00
Doug Davis
3fdfbd43b6 Merge pull request #16103 from HuKeping/format
Refactor some code to use simply format
2015-09-08 13:08:35 -04:00
Harald Albers
00eaa7e1f5 Fix usage for docker volume inspect and docker volume rm
For both commands, volume is _not_ optional. Several volumes may
be specified.
Both commands now use the same name (VOLUME) for the command argument.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-08 09:14:57 -07:00
Alessandro Boch
4d648f924a Vendoring libnetwork 3e31cead05cba8ec20241630d051e6d73765b3a2
+ Fix a couple of bugs introduced by previous vendoring:
  - in bitseq which prevents to use experimental overlay networking
  - in docker service ls cli o/p
+ Add missing http subrouter for newly introduced sandboxes
+ Fix fragmentation issue on vxlan header addition for overlay network driver
+ Remove libnetwork test code utilities from vendoring

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-09-08 07:36:35 -07:00
Brian Goff
3a539c6db9 Merge pull request #16098 from thaJeztah/fix-16095-reverse-dangling
Fix docker volume dangling filter
2015-09-08 10:17:07 -04:00
Brian Goff
dc8a39036b Don't lookup container 4 times for stats
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-08 10:12:46 -04:00
Brian Goff
5f5d73d515 Merge pull request #14488 from HuKeping/fixstats
Fix connection block when using docker stats API
2015-09-08 10:01:11 -04:00
Brian Goff
be7d346504 Merge pull request #16126 from calavera/remove_registry_circular_dep
Make RegistryConfig a typed value in the api.
2015-09-08 09:37:53 -04:00
Sebastiaan van Stijn
2968558f61 Merge pull request #16128 from duglin/TypoCP
Typo in cp.md
2015-09-08 08:14:20 +02:00
Alexander Morozov
a8d6b033e1 Merge pull request #16094 from jfrazelle/bump-sqlite3
Bump sqlite3
2015-09-07 22:29:49 -07:00
Jessica Frazelle
c045af8332 replace weird canonical json package with one that is rebased on the standard encoding/json package
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-07 18:51:33 -07:00
Jessica Frazelle
46df9e4ec3 update sqlite3 vendor with fix for static builds
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-07 18:50:56 -07:00
Doug Davis
a14a31ed40 Typo in cp.md
Closes #16124

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-07 18:19:54 -07:00
Sven Dowideit
12058f3a75 Merge pull request #16064 from pachyderm/master
Add link to Pachyderm PFS volume driver plugin in plugins.md
2015-09-08 10:59:57 +10:00
David Calavera
719886d435 Make RegistryConfig a typed value in the api.
Remove possible circular dependency that prevented us from using a real
type.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-07 19:29:33 -04:00
Harald Albers
57ab4a1a6c bash completion for docker volume
Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-07 13:22:57 -07:00
Doug Davis
13d1f0c1a1 Merge pull request #16121 from albers/doc-volume-typo-1
Fix minor typo in volume create reference
2015-09-07 15:33:40 -04:00
Harald Albers
45368779f8 Fix minor typo in docs
Signed-off-by: Harald Albers <github@albersweb.de>
2015-09-07 21:16:47 +02:00
Doug Davis
b1053a7526 Merge pull request #16120 from josegonzalez/patch-1
Transform comma into period
2015-09-07 14:05:03 -04:00
Jose Diaz-Gonzalez
be304ec688 Transform comma into period
This was probably meant as a separate sentence but is now
"proper english."

Signed-off-by: Jose Diaz-Gonzalez <jose@seatgeek.com>
2015-09-07 13:56:20 -04:00
David Calavera
c1c4ccefcd Merge pull request #16110 from Mashimiao/daemon-create-fix-return-and-adjust
before adjusting should check whether need return or not
2015-09-07 09:16:23 -07:00
Ma Shimiao
49da029030 record the error of removing volumes
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-09-07 16:38:05 +08:00
Antonio Murdaca
6743a6e665 Merge pull request #16111 from Mashimiao/fix-typo-daemon-daemon
daemon/daemon: fix typo
2015-09-07 09:31:54 +02:00
Ma Shimiao
89f99343ff daemon/daemon: fix typo
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-09-07 14:43:22 +08:00
Ma Shimiao
73d8af9319 before adjusting should check whether need return or not
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-09-07 11:09:39 +08:00
Peter Edge
f4fb4796a1 move pachyderm PFS link above rex ray link in docs/extend/plugins.md
Signed-off-by: Peter Edge <peter.edge@gmail.com>
2015-09-07 00:36:14 +02:00
Peter Edge
23b33aef1e Add link to Pachyderm PFS volume driver plugin in plugins.md
Signed-off-by: Peter Edge <peter.edge@gmail.com>
2015-09-07 00:36:03 +02:00
Charles Chan
549c8ea96e Touch up Node.js and MongoDB examples
- Remove extraneous '-' in sudo note.
- Correct space formatting (minor).
- Simplify instructions for install EPEL and install with yum directly.
- Add `nodejs` to yum install list explicitly to match the comments -- more transparent for new users who might not be clear `npm` package also installs `nodejs`.
- Remove '--noprealloc` from MongoDB example as the option has been depcated since Mongo 2.6 and is now the default behaviour. See: http://docs.mongodb.org/manual/reference/program/mongod/

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-09-06 14:34:54 -07:00
Vincent Demeester
6baf65d1a6 Complete unit tests on api/client/ps package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-06 22:05:57 +02:00
Sebastiaan van Stijn
1cbf9047b3 Fix docker volume dangling filter
The docker volume ls -f dangling=true filter was
inverted; the filtered results actually returned all
non-dangling volumes.

This fixes the filter and adds some integration tests
to test the correct behavior.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-09-06 20:17:56 +02:00
Hu Keping
cd33b98041 Refactor some code to use simply format
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-06 20:59:09 +08:00
Doug Davis
7ce97dbe30 Merge pull request #16102 from HuKeping/rmdeadcode
Remove dead code
2015-09-06 08:40:45 -04:00
Hu Keping
c957d9c768 Remove dead code
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-06 19:52:39 +08:00
Hu Keping
d9bf8163ad Fix connection block when using docker stats API
For now CLI `docker stats` will not block even if the container was
not running is because there is a 2s timeout setting when waiting for
the response.

I think why we hang there waiting for the container to run is because we
want to get the stats of container immediately when it starts running.
But it will block when use the API directly, for example
- curl
- Google Chrome plugin, Postman
- Firefox plugin, RESTClient

This patch keeps the feature that getting info immediately when container
starts running and in the meantime, it will not block when using the API
directrly.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-09-06 17:21:41 +08:00
Vincent Demeester
6990b76a69 Lint package pkg/devicemapper
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-05 23:15:13 +02:00
Vincent Demeester
915d6ec76d Lint package pkg/plugins/pluginrpc-gen
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-05 23:15:13 +02:00
Sebastiaan van Stijn
8562c423b8 Merge pull request #16091 from sallyom/man-docker-pull
correct man docker-pull
2015-09-05 14:14:11 +02:00
Sven Dowideit
e4f721e73e Merge pull request #16082 from sallyom/manDocker
add --insecure-registry warning to online docs
2015-09-05 22:06:45 +10:00
Jessie Frazelle
835acd96ec Merge pull request #15992 from Microsoft/10662-cli
Windows: Get Integration CLI running
2015-09-04 13:38:41 -07:00
Sally O'Malley
73fe42e3db correct man docker-pull
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-09-04 16:34:40 -04:00
Kir Kolyshkin
15aad5d3e6 make binary: do not ignore unresolved symbols
TL;DR: stop building static binary that may fail

Linker flag --unresolved-symbols=ignore-in-shared-libs was added
in commit 06d0843 two years ago for the static build case, presumably
to avoid dealing with problem of missing libraries.

For the record, this is what ld(1) man page says:

> --unresolved-symbols=method
>    Determine how to handle unresolved symbols.  There are four
>    possible values for method:
> .........
>    ignore-in-shared-libs
>        Report unresolved symbols that come from regular object files,
>        but ignore them if they come from shared libraries.  This can
>        be useful when creating a dynamic binary and it is known that
>        all the shared libraries that it should be referencing are
>        included on the linker's command line.

Here, the flag is not used for its purpose ("creating a dynamic binary")
and does more harm than good. Instead of complaining about missing symbols
as it should do if some libraries are missing from LIBS/LDFLAGS, it lets
ld create a binary with unresolved symbols, ike this:

 $ readelf -s bundles/1.7.1/binary/docker-1.7.1 | grep -w UND
 ........
 21029: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND dlopen
 .........

Such binary is working just fine -- until code calls one of those
functions, then it crashes (for apparently no reason, i.e. it is
impossible to tell why from the diagnistics printed).

In other words, adding this flag allows to build a static binary
with missing libraries, hiding the problem from both a developer
(who forgot to add a library to #cgo: LDFLAGS -- I was one such
developer a few days ago when I was working on ploop graphdriver)
and from a user (who expects the binary to work without crashing,
and it does that until the code calls a function in one of those
libraries).

Removing the flag immediately unveils the problem (as it should):

	/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libsqlite3.a(sqlite3.o):
	In function `unixDlError':
	(.text+0x20971): undefined reference to `dlerror'
	/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libsqlite3.a(sqlite3.o):
	In function `unixDlClose':
	(.text+0x8814): undefined reference to `dlclose'

The problem is, gosqlite package says:

	#cgo LDFLAGS: -lsqlite3

which is enough for dynamic linking, as indirect dependencies (i.e.
libraries required by libsqlite3.so) are listed in .so file and will be
resolved dynamically by ldd upon executing the binary.

For static linking though, one has to list all the required libraries,
both direct and indirect. For libraries with pkgconfig support the
list of required libraries can be obtained with pkg-config:

	$ pkg-config --libs sqlite3 # dynamic linking case
	-lsqlite3
	$ pkg-config --libs --static sqlite3 # static case
	-lsqlite3 -ldl -lpthread

It seems that all one has to do is to fix gosqlite this way:

	-#cgo LDFLAGS: -lsqlite3
	+#cgo pkg-config: sqlite3

Unfortunately, cmd/go doesn't know that it needs to pass --static
flag to pkg-config in case of static linking
(see https://github.com/golang/go/issues/12058).

So, for one, one has to do one of these things:

1. Patch sqlite.go like this:

	-#cgo LDFLAGS: -lsqlite3
	+#cgo pkg-config: --static sqlite3

(this is exactly what I do in goploop, see
https://github.com/kolyshkin/goploop/commit/e9aa072f51)

2. Patch sqlite.go like this:
	-#cgo LDFLAGS: -lsqlite3
	+#cgo LDFLAGS: -lsqlite3 -ldl -lpthread

(I would submit this patch to gosqlite but it seems that
https://code.google.com/p/gosqlite/ is deserted and not maintained,
and patching it here is not right as it is "vendored")

3. Explicitly add -ldl for the static link case.
This is what this patch does.

4. Fork sqlite to github and maintain it there. Personally I am not
ready for that, as I'm neither a Go expert nor gosqlite user.

Now, #3 doesn't look like a clear solution, but nevertheless it makes
the build much better than it was before.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
2015-09-04 13:15:25 -07:00
John Howard
f9a3558a9d Windows: Get Integration CLI running
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-04 12:32:40 -07:00
Jessie Frazelle
bc915d0856 Merge pull request #16087 from Microsoft/turn-off-dockerhubpull-suite
Temp: Turn off dockerhubpullsuite on Win2Linux CI
2015-09-04 12:30:06 -07:00
John Howard
0b18b1b309 Temp: Turn off dockerhubpullsuite on Win2Linux CI
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-04 11:53:40 -07:00
Jessie Frazelle
6b14d9a645 Merge pull request #16065 from Microsoft/10662-fix2panics
Fixes 2 panics initialising tests
2015-09-04 11:07:17 -07:00
Cezar Sa Espinola
e787296c75 Ensure goroutines dump is not truncated
Calling runtime.Stack requires the buffer to be big enough to fit the
goroutines dump. If it's not big enough the dump will be truncated and
the value returned will be the same size as the buffer.

The code was changed to handle this situation and try again with a
bigger buffer. Each time the dump doesn't fit in the buffer its size is
doubled.

Signed-off-by: Cezar Sa Espinola <cezarsa@gmail.com>
2015-09-04 14:50:37 -03:00
Jessie Frazelle
5b46d8f0fa Merge pull request #16039 from icecrime/update_pull_tests
Update pull tests
2015-09-04 09:52:41 -07:00
Jessie Frazelle
7c667f9d6e Merge pull request #15999 from cpuguy83/15994_ext_volume_bind
Set bind driver after volume is created
2015-09-04 09:47:10 -07:00
David Calavera
6549d6517b Move VolumeDriver to HostConfig to make containers portable.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-04 12:42:44 -04:00
Sally O'Malley
5446aac0e5 add --insecure-registry warning to online docs
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-09-04 10:28:35 -04:00
Sally O'Malley
9c3aafd354 man docker-tag minor fixup
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-09-04 10:10:03 -04:00
Sebastiaan van Stijn
4a0606423b Merge pull request #16043 from sallyom/manDockerfile
man Dockerfile ADD/COPY/FROM clarify
2015-09-04 10:03:50 +02:00
Sebastiaan van Stijn
409212be24 Merge pull request #16057 from sallyom/manDocker
clarify --insecure-registry in man docker
2015-09-04 09:56:01 +02:00
Kunal Kushwaha
44da5c3de2 "docker network" missing from docker --help
Fixed issues related to network subcommand tests
- "network" in exempted list of short help check
- Condition for exact test modified to meet experimental commands
- Sorting of commands done in flags_experimental

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2015-09-04 15:34:17 +09:00
Alexander Morozov
0009852cb0 Merge pull request #15877 from Microsoft/10662-trigger
Fix trigger count and output
2015-09-03 20:04:05 -07:00
Jessie Frazelle
38ecc7fc32 Merge pull request #16054 from jfrazelle/update-sqlite3-dep
code.google.com is shutting down so update the dep
2015-09-03 19:20:57 -07:00
Vincent Batts
7795b1c697 graph: exported images times matching creation
the image export, that is used in `docker save` previous has just had
the layers times (atimes, mtimes) be when the save was done.
```bash
vbatts@valse ~ (master) $ docker save busybox | tar tv
drwxr-xr-x 0/0               0 2015-09-03 22:22 6ce2e90b0bc7224de3db1f0d646fe8e2c4dd37f1793928287f6074bc451a57ea/
-rw-r--r-- 0/0               3 2015-09-03 22:22 6ce2e90b0bc7224de3db1f0d646fe8e2c4dd37f1793928287f6074bc451a57ea/VERSION
-rw-r--r-- 0/0            1405 2015-09-03 22:22 6ce2e90b0bc7224de3db1f0d646fe8e2c4dd37f1793928287f6074bc451a57ea/json
-rw-r--r-- 0/0         2643968 2015-09-03 22:22 6ce2e90b0bc7224de3db1f0d646fe8e2c4dd37f1793928287f6074bc451a57ea/layer.tar
drwxr-xr-x 0/0               0 2015-09-03 22:22 8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55/
-rw-r--r-- 0/0               3 2015-09-03 22:22 8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55/VERSION
-rw-r--r-- 0/0            1346 2015-09-03 22:22 8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55/json
-rw-r--r-- 0/0            1024 2015-09-03 22:22 8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55/layer.tar
drwxr-xr-x 0/0               0 2015-09-03 22:22 cf2616975b4a3cba083ca99bc3f0bf25f5f528c3c52be1596b30f60b0b1c37ff/
-rw-r--r-- 0/0               3 2015-09-03 22:22 cf2616975b4a3cba083ca99bc3f0bf25f5f528c3c52be1596b30f60b0b1c37ff/VERSION
-rw-r--r-- 0/0            1181 2015-09-03 22:22 cf2616975b4a3cba083ca99bc3f0bf25f5f528c3c52be1596b30f60b0b1c37ff/json
-rw-r--r-- 0/0            1024 2015-09-03 22:22 cf2616975b4a3cba083ca99bc3f0bf25f5f528c3c52be1596b30f60b0b1c37ff/layer.tar
-rw-r--r-- 0/0              90 2015-09-03 22:22 repositories
```

With this change, the layer's directory and artifact will have times
matching the image layer's created time. The "repositories" file is set
to epoch.
```bash
vbatts@valse ~ (master) $ docker save busybox | tar tv
drwxr-xr-x 0/0               0 2015-04-17 18:01 6ce2e90b0bc7224de3db1f0d646fe8e2c4dd37f1793928287f6074bc451a57ea/
-rw-r--r-- 0/0               3 2015-04-17 18:01 6ce2e90b0bc7224de3db1f0d646fe8e2c4dd37f1793928287f6074bc451a57ea/VERSION
-rw-r--r-- 0/0            1405 2015-04-17 18:01 6ce2e90b0bc7224de3db1f0d646fe8e2c4dd37f1793928287f6074bc451a57ea/json
-rw-r--r-- 0/0         2643968 2015-04-17 18:01 6ce2e90b0bc7224de3db1f0d646fe8e2c4dd37f1793928287f6074bc451a57ea/layer.tar
drwxr-xr-x 0/0               0 2015-04-17 18:01 8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55/
-rw-r--r-- 0/0               3 2015-04-17 18:01 8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55/VERSION
-rw-r--r-- 0/0            1346 2015-04-17 18:01 8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55/json
-rw-r--r-- 0/0            1024 2015-04-17 18:01 8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55/layer.tar
drwxr-xr-x 0/0               0 2015-04-17 18:01 cf2616975b4a3cba083ca99bc3f0bf25f5f528c3c52be1596b30f60b0b1c37ff/
-rw-r--r-- 0/0               3 2015-04-17 18:01 cf2616975b4a3cba083ca99bc3f0bf25f5f528c3c52be1596b30f60b0b1c37ff/VERSION
-rw-r--r-- 0/0            1181 2015-04-17 18:01 cf2616975b4a3cba083ca99bc3f0bf25f5f528c3c52be1596b30f60b0b1c37ff/json
-rw-r--r-- 0/0            1024 2015-04-17 18:01 cf2616975b4a3cba083ca99bc3f0bf25f5f528c3c52be1596b30f60b0b1c37ff/layer.tar
-rw-r--r-- 0/0              90 1969-12-31 19:00 repositories
```

Side effect of this is that the tar stream from `docker save` is now
more deterministic.
```bash
vbatts@valse ~ (master) $ docker save busybox | sha1sum
baf03e30ef79ca4d9c5e512d3a1b873880f404ca  -
vbatts@valse ~ (master) $ docker save busybox | sha1sum
baf03e30ef79ca4d9c5e512d3a1b873880f404ca  -
vbatts@valse ~ (master) $ docker save busybox | sha1sum
baf03e30ef79ca4d9c5e512d3a1b873880f404ca  -
vbatts@valse ~ (master) $ docker save busybox | sha1sum
baf03e30ef79ca4d9c5e512d3a1b873880f404ca  -
```

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-09-03 22:19:10 -04:00
John Howard
69bf17ffbd Fixes 2 panics initialising tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-03 18:26:38 -07:00
Jessie Frazelle
90477e8e94 Merge pull request #16066 from jfrazelle/remove-reprepro
remove reprepro
2015-09-03 18:20:01 -07:00
Jessie Frazelle
1fa560e6eb Merge pull request #15706 from clnperez/vendor-helper-use-branch
Allow branch name in vendor-helper script
2015-09-03 18:02:06 -07:00
Tianon Gravi
b019229996 Merge pull request #16052 from jfrazelle/fix-release-selinux
make docker-engine-selinux findable
2015-09-03 17:52:39 -07:00
Tibor Vass
c8c1c472b2 Merge pull request #15845 from calavera/refactor_daemon_list
Refactor daemon container list.
2015-09-03 20:48:54 -04:00
Tibor Vass
057f53f503 Merge pull request #15846 from ZJU-SEL/11646-fix-path-validations
fix 11646 to check volume path in server side
2015-09-03 20:42:37 -04:00
Jessica Frazelle
4a864a7552 code.google.com is shutting down so update the dep
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-03 17:39:29 -07:00
John Howard
6620102926 Fix trigger count and output
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-03 17:39:19 -07:00
Jessica Frazelle
e7cf75c103 remove reprepro
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-03 17:31:49 -07:00
Tibor Vass
07d2eae6d5 Merge pull request #16060 from vdemeester/14756-lint-pkg-term-windows
Lint pkg/term/windows package
2015-09-03 19:54:20 -04:00
Tibor Vass
2d605ce53b Merge pull request #16041 from runcom/portmapping-doc-cleaning
Clean latest api doc from PortMapping and outdated error check
2015-09-03 19:37:34 -04:00
Jessie Frazelle
9b072fb722 Merge pull request #16067 from jfrazelle/fix-release-branch-in-suites-script
fix release branch in suites.sh
2015-09-03 16:33:32 -07:00
Arnaud Porterie
f324f4851f Update image pull tests
Update and migrate existing tests to the `DockerHubPullSuite`. Most
tests were preserved, but refactored and made more exhaustive. One test
was deliberately removed (`TestPullVerified`) as it is unreliable and
that the feature was obsoleted by content trust.

Move all trust related tests to `docker_cli_pull_trusted_test.go`.

Move tests depending on a local registry to `docker_cli_pull_local_test.go`.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-03 15:57:41 -07:00
Arnaud Porterie
c87cbd3862 Add integration-cli/checker package
Add a `checker` package that adds some utility Checker implementation,
the first one being `checker.Contains`, as well as brining all go-check
provided Checker implementations in scope as a commodity.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-03 15:57:41 -07:00
Jessica Frazelle
e38a9ecef6 fix release branch in suites.sh
we changed the naming scheme of the release branch

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-03 15:48:02 -07:00
Tibor Vass
6ffbea3c94 Merge pull request #16027 from Microsoft/10662-utimes
Windows: Fix dockerfile ADD from HTTP
2015-09-03 18:44:34 -04:00
Tibor Vass
f0a5d03400 Merge pull request #16022 from nalind/cgo-windows
Fix a daemon build error when cgo isn't available
2015-09-03 18:42:58 -04:00
Sally O'Malley
2d9ea188d4 clarify --insecure-registry in man docker
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-09-03 17:10:40 -04:00
Vincent Demeester
3409de971c Lint pkg/term/windows package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-03 22:25:52 +02:00
Brian Goff
9d0eef55ea Merge pull request #16025 from sallyom/overlayfsSelinux
selinux/overlay incompatible err
2015-09-03 16:08:55 -04:00
Jenny Gebske
ffc8d4e204 [doc] Rephrase Ubuntu installation
Signed-off-by: Jenny Gebske <jennifer@gebske.de>
2015-09-03 22:07:33 +02:00
Michael Crosby
6f5eb78519 Merge pull request #16018 from surya-shodan/master
Typo in README.md
2015-09-03 11:57:06 -07:00
Michael Crosby
8258996cf2 Merge pull request #16036 from Microsoft/10662-httpdirectory
Windows: Fix HTTP download directory
2015-09-03 11:54:53 -07:00
Michael Crosby
288275ab60 Merge pull request #16038 from aboch/sbx
Vendor libnetwork dc52820147f40fe424c8959987af3b396f842639
2015-09-03 11:48:02 -07:00
Jessica Frazelle
c7b3e7e770 make docker-engine-selinux findable
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-03 08:58:33 -07:00
Sally O'Malley
48badd2a2e man Dockerfile ADD/COPY/FROM clarify
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-09-03 09:08:25 -04:00
David Calavera
d9065fcdb5 Merge pull request #16001 from jfrazelle/apt-repo-pinning
use apt-ftparchive and reprepro to enable apt-pinning;
2015-09-03 11:18:54 +02:00
Antonio Murdaca
137c12f19a Clean latest api doc from PortMapping and outdated error check
Regarding the outdated error check, there's no `docker.PortMapping`
struct anymore and this is linked to something really old #1334

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-03 11:01:55 +02:00
Sebastiaan van Stijn
ee4de4d163 Merge pull request #15984 from jlhawn/document_build_auth_config
[docs] Add description of "X-Registry-Config"
2015-09-03 08:40:34 +02:00
Arnaud Porterie
9e4addde76 Add test suite for push/pull code
Introduce the `DockerHubPullSuite` that interacts with its own dedicated
daemon, thus allowing to start from a clean environment and finely test
against the impact of isolated push and pull operations.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-09-02 22:06:24 -07:00
Alexander Morozov
2bd30cd6cb Merge pull request #16035 from aaronlehmann/remove-test-push-interrupt
Remove TestPushInterrupt
2015-09-02 21:07:55 -07:00
Alessandro Boch
56fdb05258 Docker changes for libnetwork Sandbox
- Ground-work for integrating with user namespace support

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-09-02 17:24:56 -07:00
Brian Goff
39be36658d Set bind driver after volume is created
When using a named volume without --volume-driver, the driver was
hardcoded to "local".
Even when the volume was already created by some other driver (and
visible in `docker volume ls`), the container would store in it's own
config that it was the `local` driver.
The external driver would work perfecly fine until the daemon is
restarted, at which point the `local` driver was assumed because that is
as it was set in the container config.

Set the bind driver to the driver returned by createVolume.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-09-02 20:13:20 -04:00
Brian Goff
fb4cce5e53 Merge pull request #16030 from Microsoft/fix-golint-commit
Windows: Fix golint daemon breaking commit
2015-09-02 20:10:33 -04:00
Alessandro Boch
414dfbf681 Vendor libnetwork dc52820147f40fe424c8959987af3b396f842639
Main changes in this vendoring are to allow user name space integration in docker.
And it includes major fix for network namespace handling

Signed-off-by: Alessandro Boch <aboch@docker.com>

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-09-02 16:57:43 -07:00
John Howard
7beb026f0e Windows: Fix HTTP download directory
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-02 16:24:53 -07:00
Jessie Frazelle
c6dd451073 Merge pull request #16002 from Microsoft/10662-workdir-platformsemantics
Windows: Ensure workdir handled in platform semantics
2015-09-02 16:09:35 -07:00
Sally O'Malley
04329e0b3e selinux/overlay incompatible err
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-09-02 18:52:10 -04:00
Aaron Lehmann
6cc38775bb Remove TestPushInterrupt
This test relies on a race condition, and has been failing often in CI.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-09-02 15:30:55 -07:00
John Howard
cfddca2bf9 Windows: Fix golint daemon breaking commit
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-02 14:36:45 -07:00
John Howard
3715e60c71 Windows: Fix dockerfile ADD from HTTP
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-02 13:53:09 -07:00
Jessie Frazelle
2434bd8e63 Merge pull request #15935 from vdemeester/badges-all-the-things
Add more badges :)
2015-09-02 11:07:25 -07:00
Jessica Frazelle
12a71c8954 use apt-ftparchive and reprepro to enable apt-pinning;
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-09-02 09:32:24 -07:00
Jessie Frazelle
8c5d511aa6 Merge pull request #16020 from runcom/remove-port-mapping-field
Remove PortMapping from container NetworkSettings
2015-09-02 09:10:38 -07:00
Nalin Dahyabhai
00ab6d9d47 Fix a daemon build error when cgo isn't available
Avoid duplicate definitions of NewSqliteConn when cgo isn't enabled, so
that we can at least build the daemon.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2015-09-02 11:41:42 -04:00
Antonio Murdaca
db4f20404d Remove PortMapping from container NetworkSettings
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-02 14:32:53 +02:00
Suryakumar Sudar
dae50f9b5e Typo in README.md
The number of StackOverflow question is 7000, not 7000k. The extra 'k' is redundant.
Signed-off-by: Suryakumar Sudar <suryakumar.sudar@gmail.com>
2015-09-02 15:52:05 +05:30
Antonio Murdaca
9ea7267285 Merge pull request #16014 from angt/angt-patch-2
Fix typo
2015-09-02 11:25:12 +02:00
David Calavera
1ed3cb2b6c Merge pull request #15921 from srust/volume_driver_register_retry
Retry registering a volume driver
2015-09-02 11:24:52 +02:00
Antonio Murdaca
4c54751cab Merge pull request #16007 from toddjcrane/master
Normalized, ungrouped, and sorted names
2015-09-02 11:24:42 +02:00
angt
01059cba78 Fix typo
Signed-off-by: Adrien Gallouët <agallouet@gmail.com>
2015-09-02 10:43:49 +02:00
Todd Crane
ed14fe2afa Normalized, ungrouped, and sorted names
Signed-off-by: Todd Crane <todd@toddcrane.com>
2015-09-01 21:57:01 -07:00
John Howard
6c56f917d3 Windows: Ensure workdir handled in platform semantics
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-01 18:50:41 -07:00
Jessie Frazelle
7f8954cb79 Merge pull request #15989 from tianon/ubuntu
Swap "ubuntu-debootstrap" for just "ubuntu"
2015-09-01 15:19:16 -07:00
Alexander Morozov
3111aa7293 Merge pull request #15988 from runcom/use-stringutils-strslice
Use StrSlice from pkg/stringutils
2015-09-01 14:32:58 -07:00
Tianon Gravi
a5eec723f8 Swap "ubuntu-debootstrap" for just "ubuntu"
See https://github.com/docker-library/official-images/pull/982#issuecomment-133207587.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-09-01 14:03:49 -07:00
Alexander Morozov
7c44209037 Merge pull request #15986 from runcom/add-strslice-tests
pkg: stringutils: Add more tests to strslice
2015-09-01 12:29:27 -07:00
Antonio Murdaca
17999c70c3 Use StrSlice from pkg/stringutils
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-01 21:23:46 +02:00
Stephen Rust
45fdce8a0d Retry registering a volume driver
Signed-off-by: Stephen Rust <srust@blockbridge.com>
2015-09-01 14:56:29 -04:00
Antonio Murdaca
cac8f4f0d0 pkg: stringutils: Add more tests to strslice
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-09-01 20:27:45 +02:00
Alexander Morozov
70f0d6d84c Merge pull request #15983 from Microsoft/unix-run-test
Move run tests out of unix files
2015-09-01 10:49:01 -07:00
Josh Hawn
61de962979 [docs] Add description of "X-Registry-Config"
The structure of this header has never been specified in the docs and has
been a pain point for those who have tried to get registry authentication
to work during builds. This Patch *finally* adds a description of JSON
object which should be base64-url-safe-encoded and used as the value of
the X-Registry-Config HTTP request header during `POST /build`.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-09-01 10:05:30 -07:00
Alexander Morozov
82415adc81 Merge pull request #15980 from Microsoft/unix-links-test
Moved unix links tests to non-platform
2015-09-01 10:03:54 -07:00
John Howard
d7eb85bb1f Move run tests out of unix files
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-01 09:42:19 -07:00
David Calavera
2093616d7f Merge pull request #15871 from Microsoft/10662-absolute
Windows: Fix absolute checks
2015-09-01 18:38:36 +02:00
Alexander Morozov
7f58fb5f01 Merge pull request #15972 from calavera/remove_containers_ps
Remove /containers/ps from the api router.
2015-09-01 09:15:35 -07:00
John Howard
4fccf8adfa Moved unix links tests to non-platform
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-01 09:10:24 -07:00
Alexander Morozov
be8e126a0f Merge pull request #15834 from Microsoft/10662-fixdockercp
Windows: Fix docker cp
2015-09-01 08:41:59 -07:00
John Howard
49c1b51ae2 Windows: Fix absolute checks
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-09-01 08:41:37 -07:00
David Calavera
26fb160610 Merge pull request #15976 from duglin/MissingDefer
Add missing defer to delete temp dir
2015-09-01 17:13:37 +02:00
Antonio Murdaca
4bb2449188 Merge pull request #15913 from mountkin/abstract
abstract the string slice struct to stringutils package
2015-09-01 17:06:13 +02:00
Doug Davis
51e721ab07 Add missing defer to delete temp dir
Minor thing I just noticed

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-09-01 07:19:38 -07:00
Brian Goff
3b2c9fa049 Merge pull request #15965 from tonistiigi/pull-goroutine-leak
Fix goroutine leak on pull
2015-09-01 09:27:55 -04:00
Brian Goff
567687fd98 Merge pull request #15900 from Microsoft/10662-testinfra
Test infrastructure for cross platform
2015-09-01 09:18:29 -04:00
Doug Davis
5eb4a6b933 Merge pull request #15927 from SvenDowideit/clean-up-parsehost
Change ParseTCPAddr to use tcp://127.0.0.0:2375 format as default consistently
2015-09-01 08:25:59 -04:00
Antonio Murdaca
e98ec2b567 Merge pull request #15970 from Mashimiao/cleanup-daemon-commit-unneeded-code
daemon/commit: remove unneeded code
2015-09-01 14:15:56 +02:00
David Calavera
dd49002055 Merge pull request #15958 from vdemeester/14570-contrib-completion-image
Add docker ps --filter=… ancestor image bash completion
2015-09-01 12:16:52 +02:00
David Calavera
b5cc077864 Remove /containers/ps from the api router.
This route was deprecated more than two years ago in the linked
commit[1]. It's not referenced anywhere in the documentation and it's
time to stop maintaning it.

[1]: 4f9443927e

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-09-01 05:17:35 -04:00
Ma Shimiao
ab868ad79c daemon/commit: remove unneeded code
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-09-01 16:34:07 +08:00
Vincent Demeester
6ae2cb7ad1 Add docker ps --filter=… image completion
I missed that on #15919, thanks @albers

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-09-01 08:47:02 +02:00
Sebastiaan van Stijn
d080f6524b Merge pull request #15969 from charleswhchan/issue-15939
Fix issue #15939: Hyperlink to MongoDB Dockerfile not found.
2015-09-01 08:33:22 +02:00
Charles Chan
f814ae437f Fix issue #15939: Hyperlink to MongoDB Dockerfile not found. Replaced with link to file in Github.
Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-31 19:28:36 -07:00
Alexander Morozov
84bc41a3fb Merge pull request #15963 from Microsoft/fix-unixtestport
Move TestPort out of _unix
2015-08-31 17:09:59 -07:00
Doug Davis
0f878cfa00 Merge pull request #15966 from Microsoft/test-typo
Fix typo in test title
2015-08-31 18:59:55 -04:00
Tonis Tiigi
3037e4f7c4 Fix goroutine leak on pull
Close the pipeWriter even if there was no error.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-31 15:56:19 -07:00
John Howard
3c2b128582 Fix typo in test title
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-31 15:28:40 -07:00
John Howard
68c7d24a12 Move TestPort out of _unix
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-31 14:40:36 -07:00
David Calavera
166412e529 Merge pull request #15827 from williamh/fix-openrc-script
Fix openrc script
2015-08-31 20:32:00 +02:00
Mike Dougherty
7ca017eb62 Add ability to use a different GPG key identifier
Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
2015-08-31 11:27:57 -07:00
Sebastiaan van Stijn
c844effeda Merge pull request #15926 from moxiegirl/carry-15210
add: best practice for security when sharing host directories.
2015-08-31 19:51:15 +02:00
Mary Anthony
7271dca8cc updating again.
Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-31 09:56:35 -07:00
Mary Anthony
95495d20be Updating with SEb's comments
Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-31 09:54:15 -07:00
David Calavera
3bd8016259 Merge pull request #15922 from unclejack/lower_reset_timeout_bufreader
pkg/ioutils: lower bufReader reset timeout
2015-08-31 18:43:45 +02:00
Arnaud Porterie
84614fdae0 Merge pull request #15489 from aaronlehmann/pull-updates
Show pull progress in terminal for inflight pull requests
2015-08-31 09:37:33 -07:00
moxiegirl
38ac1f908e Merge pull request #15920 from mikebrow/docker-engine-update-to-index
Adding additional instructions to the Docker Engine installation/inde…
2015-08-31 09:35:34 -07:00
LIZAO LI
b0fd4f882f add: best practice for security when sharing host directories.
Closes and carries PR #15210
Updating with Seb's comment

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-31 09:32:42 -07:00
David Calavera
96974170f8 Merge pull request #15606 from jlhawn/img_delete
[daemon] Refactor image_delete.go
2015-08-31 18:22:48 +02:00
John Howard
cd18e7bb73 Test infrastructure for cross platform
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-31 09:10:18 -07:00
Alexander Morozov
4ae81e145e Merge pull request #15918 from duglin/HttpHeaderTests
More httputil tests for the docker header
2015-08-31 08:48:28 -07:00
Jessie Frazelle
3272b3d120 Merge pull request #15954 from jfrazelle/no-t-install-script
we dont need the tty in the install script
2015-08-31 08:45:35 -07:00
Brian Goff
754c10430b Merge pull request #15807 from coolljt0725/remove_remove_redundant_tag_name
Minor fix: remove redundant tag name in error message of create failed.
2015-08-31 11:34:40 -04:00
Mike Brown
e9eaef6f1e Adding additional instructions to the Docker Engine installation/index page per discussions with @moxiegirl.
Removed the "Other Linux" heading; Changed the "Next Steps" heading to "Where to go After Installing"

Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-08-31 10:25:41 -05:00
Jessica Frazelle
80c32162b5 we dont need the tty in the install script
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-31 08:12:01 -07:00
Sebastiaan van Stijn
81d6f350f7 Merge pull request #13266 from shishir-a412ed/docker_lvm_devmapper_loopbackdevices
Warning message for lvm devmapper running on top of loopback devices
2015-08-31 16:40:16 +02:00
Shishir Mahajan
4870fb36d4 Warning message for lvm devmapper running on top of loopback devices
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2015-08-31 10:35:48 -04:00
David Calavera
06699f73fb Refactor daemon container list.
Separate container iteration, filtering and reducing.
This will make easier in the future to improve the implementation of
docker ps as we know it.

The end goal is to unify the objects returned by the api for docker ps
and docker inspect, leaving all docker ps transformations to the client.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-31 04:24:08 -04:00
David Calavera
754d81bd69 Merge pull request #15873 from cpuguy83/no_args_for_volume_subcmd
Fix `docker volume invalidarg` so it displays usage
2015-08-31 10:04:45 +02:00
David Calavera
998699316c Merge pull request #15901 from Microsoft/10662-revendorhcs
Windows: Revendor HCSShim with godoc
2015-08-31 10:03:18 +02:00
David Calavera
d6a94fbf22 Merge pull request #15919 from vdemeester/14570-contrib-completion
Update shell completion on docker ps for ancestor
2015-08-31 09:58:05 +02:00
David Calavera
9703c3a90e Merge pull request #15914 from dmcgowan/fix-upload-sanitize
Fix sanitize URL bug on layer upload
2015-08-31 09:35:28 +02:00
xlgao
50be74ba14 just check -v /src:dest and test it
Signed-off-by: xlgao <xlgao@zju.edu.cn>
2015-08-31 10:50:49 +08:00
Vincent Demeester
10005433eb Add jenkins and godoc badges
Build badges are for master and one for experimental (in the `README.md`
of the experimental folder)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-30 21:31:13 +02:00
xiekeyang
e451ddbf46 Fix: Docker Daemon didn't send actual actions client ask for to Token Server
The Docker Daemon should send actual actions client ask for to issue tokens,

not all the permissions that client is guaranteed.

Signed-off-by: xiekeyang <xiekeyang@huawei.com>
2015-08-30 16:40:26 +08:00
Lei Jitang
16220e0681 Minor fix: remove redundant tag name in error message of create failed.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-30 10:43:33 +08:00
James Turnbull
e137f2d081 Merge pull request #15932 from lyndaoleary/15909-daemon-flag
Removed deprecated -d flag from docs
2015-08-29 22:10:35 -04:00
Sebastiaan van Stijn
ad91d2e97a Merge pull request #15929 from jjn2009/patch-1
ubuntu-14-10-x64 is not a valid image on digital ocean
2015-08-30 02:54:16 +02:00
Sebastiaan van Stijn
bace51571f Merge pull request #15925 from moxiegirl/carry-14234
Closes #14234 and updates text
2015-08-30 01:33:57 +02:00
Lynda O'Leary
55468e2ac4 Removed deprecated -d flag from docs
Signed-off-by: Lynda O'Leary <lyndaoleary29@gmail.com>
2015-08-29 23:31:27 +01:00
moxiegirl
fd1b21b646 Merge pull request #15885 from tombee/7866-10463-runmetrics-doc-updates
Updated runmetrics article to use up-to-date cgroup paths
2015-08-29 13:36:20 -07:00
Mary Anthony
2920550211 Closes #14234 and updates text
Updating with Seb's comments
Entering Sven's comment

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-29 13:15:36 -07:00
Arnaud Porterie
626c05036c Merge pull request #15832 from jfrazelle/add-docker-seliux-policy-for-rpm
Add docker seliux policy for rpm
2015-08-29 11:07:20 -07:00
Sven Dowideit
3d510f15da Change ParseTCPAddr to use tcp://127.0.0.0:2375 format as default consistently
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-08-29 11:23:51 +00:00
Jordan
24c4594cc3 ubuntu-14-10-x64 is not a valid image on digital ocean
Signed-off-by: Jordan Jennings <jjn2009@gmail.com>
2015-08-28 23:59:30 -07:00
Jessica Frazelle
8fe675d799 add selinux-policy and docker-engine-selinux rpm
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-28 17:54:04 -07:00
Jessica Frazelle
42d8fe6105 add build deps for selinux-policy/selinux-policy-devel
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-28 17:43:30 -07:00
Jessica Frazelle
df6d928370 update spec file to require docker-engine-selinux policy
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-28 17:43:30 -07:00
Derek McGowan
b1c1f42bcc Fix sanitize URL bug on layer upload
Update the distribution version to include sanitize URL fix

Fixes #15875

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-08-28 14:35:06 -07:00
Brian Goff
0b2cff35ba Merge pull request #15917 from srust/volume_create_dont_lock_around_volume_driver
Don't hold lock around volume driver for volume create.
2015-08-28 17:13:47 -04:00
Stephen Rust
0ef740a5bf Don't hold lock around volume driver for volume create.
Signed-off-by: Stephen Rust <srust@blockbridge.com>
2015-08-28 16:28:28 -04:00
unclejack
f9df813a99 pkg/ioutils: lower bufReader reset timeout
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2015-08-28 23:13:02 +03:00
Doug Davis
5e540bdc13 More httputil tests for the docker header
follow-on to #15911

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-08-28 12:16:37 -07:00
Vincent Demeester
672bae2dc0 Update shell completion on docker ps for ancestor
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-28 20:56:52 +02:00
Josh Hawn
111d2f3487 [daemon] Refactor image_delete.go
This file was not well documented and had very high cyclomatic complexity.
This patch completely rearranges this file and the ImageDelete method to
be easier to follow and more maintainable in the future.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-08-28 11:01:24 -07:00
Sebastiaan van Stijn
b1cb1b1df4 Merge pull request #14570 from vdemeester/13365-ps-image-filter
Add docker ps ancestor filter for image
2015-08-28 19:47:43 +02:00
Sebastiaan van Stijn
279bbbedb2 Merge pull request #15872 from lyndaoleary/find-an-issue-style-updates
Style updates to find an issue page
2015-08-28 19:18:19 +02:00
Aaron Lehmann
317a5462e4 Make the broadcaster write messages to the observers in the same units they were written to the broadcaster
This means the writing to a WriteFlusher will flush in the same places
as it would if the broadcaster wasn't sitting in front of it.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-08-28 10:09:00 -07:00
Shijiang Wei
ea4a06740b abstract the string slice struct to stringutils package
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-08-29 01:08:40 +08:00
Alexander Morozov
50bcf17c39 Merge pull request #15902 from SvenDowideit/add-more-tests-for-parsehost
Exploring the parsehost using unit tests
2015-08-28 09:14:35 -07:00
David Calavera
e6e210164e Merge pull request #15910 from mimoralea/patch-1
Typo fix then -> than
2015-08-28 18:09:26 +02:00
Alexander Morozov
2a66beef7f Merge pull request #15911 from calavera/carry_14296
[Carry 14296] Increased test coverage of pkg/httputils
2015-08-28 09:04:43 -07:00
Miguel Morales
95e3a4ca6d Typo fix then -> than
Signed-off-by: Miguel Morales <mimoralea@hp.com>
2015-08-28 10:44:39 -05:00
David Calavera
433956cc47 Merge pull request #15310 from MHBauer/demon-lint-squash
golint fixes for daemon/ package
2015-08-28 17:34:36 +02:00
Alexander Morozov
6caaa8a635 Merge pull request #15023 from hqhq/hq_add_status_in_inspect
Add status string to State field for inspect
2015-08-28 08:27:36 -07:00
David Calavera
243f98ff6d Fix server header parsing.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-28 11:06:24 -04:00
Kristina Zabunova
f753f6d597 unit test refactor in pkg/httputils as suggested by vdemeester; using pattern if x := …; x == nil {}
Signed-off-by: Kristina Zabunova <triara.xiii@gmail.com>
(cherry picked from commit c3f1b2a5bd)
2015-08-28 10:41:19 -04:00
Kristina Zabunova
b3f999e863 Increased test coverage of httputils to 70 %
Signed-off-by: Kristina Zabunova <triara.xiii@gmail.com>
(cherry picked from commit d71817464e)
2015-08-28 10:41:19 -04:00
Sven Dowideit
e48a222828 Exploring the code using unit tests - these 2 functions do not work consistently
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-08-28 10:29:52 +00:00
Morgan Bauer
abd72d4008 golint fixes for daemon/ package
- some method names were changed to have a 'Locking' suffix, as the
 downcased versions already existed, and the existing functions simply
 had locks around the already downcased version.
 - deleting unused functions
 - package comment
 - magic numbers replaced by golang constants
 - comments all over

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-08-27 22:07:42 -07:00
Mike Dougherty
b46c15e772 Add support for longer S3 bucket paths
Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
2015-08-27 18:32:03 -07:00
John Howard
5a5f9e93e9 Windows: Revendor HCSShim with godoc
Signed-off-by: John Howard <John.Howard@microsoft.com>
2015-08-27 15:46:00 -07:00
Lynda O'Leary
6f22cc9b5c Style updates to find an issue page
* Fixed exp/beginner label colour background
* Added thead element to label table
* Updated issue list screenshot (old one referenced old whitebelt label)
* Content tweaks as per style guide

Signed-off-by: Lynda O'Leary <lyndaoleary29@gmail.com>
2015-08-27 23:05:00 +01:00
Sebastiaan van Stijn
fdc73cc3fc Merge pull request #15778 from dharmit/13595-update-docs-process-interaction-container
Added note about process interaction with container in detached mode
2015-08-27 22:39:20 +02:00
Aaron Lehmann
9b9d70ad27 Remove "...already being pulled" messages
These don't get seen, so they are unnecessary.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-08-27 13:22:08 -07:00
Aaron Lehmann
26c9b58504 Clean up ProgressStatus
- Rename to Broadcaster

- Document exported types

- Change Wait function to just wait. Writing a message to the writer and
  adding the writer to the observers list are now handled by separate
  function calls.

- Avoid importing logrus (the condition where it was used should never
  happen, anyway).

- Make writes non-blocking

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-08-27 13:22:08 -07:00
Brian Goff
ba019dc0d0 Merge pull request #15882 from vdemeester/14756-lint-opts-trust
Carry #14813 on linting package opts and trust
2015-08-27 15:58:13 -04:00
Alexander Morozov
0ca2c3abf5 Merge pull request #15893 from tonistiigi/fix-testsuite
Use DockerSuite for PullClientDisconnect test
2015-08-27 12:30:44 -07:00
Tonis Tiigi
9dd6c8822d Use DockerSuite for PullClientDisconnect test
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-27 11:22:54 -07:00
Aaron Lehmann
80513d85cf Change poolAdd to return a boolean instead of an error
Previously, its other return value was used even when it returned an
error. This is awkward and goes against the convention. It also could
have resulted in a nil pointer dereference when an error was returned
because of an unknown pool type. This changes the unknown pool type
error to a panic (since the pool types are hardcoded at call sites and
must always be "push" or "pull"), and returns a "found" boolean instead
of an error.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-08-27 11:18:42 -07:00
Sam Abed
572f008e89 Show pull progress in terminal for inflight pull requests
Based on #12874 from Sam Abed <sam.abed@gmail.com>. His original commit
was brought up to date by manually porting the changes in pull.go into
the new code in pull_v1.go and pull_v2.go.

Fixes #8385

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-08-27 11:18:40 -07:00
moxiegirl
04b0fb6314 Merge pull request #15822 from vdemeester/docs-update-filtering-ps-and-images
Update filtering chapters on ps/images references
2015-08-27 10:39:20 -07:00
David Calavera
0634c653d5 Merge pull request #15646 from tonistiigi/15589-pull-cancellation
Fix pull on client disconnect
2015-08-27 17:54:08 +02:00
Vincent Demeester
0bd016b1c3 Finish linting opts and trust package.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-27 17:36:11 +02:00
Brian Goff
38da43184d Fix docker volume invalid so it displays usage
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-27 09:46:05 -04:00
Sevki Hasirci
5572148477 golint: trust
contributes to #14756

Signed-off-by: Sevki Hasirci <s@sevki.org>
2015-08-27 11:40:27 +02:00
Sevki Hasirci
6eb03c53db Opts lint issues, ip and ulimit
Signed-off-by: Sevki Hasirci <s@sevki.org>
2015-08-27 11:40:27 +02:00
Tom Barlow
b582977bc8 Updated to use correct cgroup paths
Signed-off-by: Tom Barlow <tomwbarlow@gmail.com>
2015-08-27 10:39:37 +01:00
David Calavera
4579d5ac78 Merge pull request #15878 from brahmaroutu/vendor_netns
Allow vendoring netns changes to build Docker on s390x
2015-08-27 10:02:25 +02:00
Vincent Demeester
61de442c49 Update filtering chapters on ps/images references
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-27 08:47:03 +02:00
Dharmit Shah
9f8891a855 Added note about process interaction with container in detached mode
Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>

Added note about process interaction with container in detached mode

Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>
2015-08-27 09:39:34 +05:30
Michael Crosby
20bb065535 Add aufs data structure for added mount information
This adds a data struct in the aufs driver for including more
information about active mounts along with their reference count.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-08-26 16:38:13 -07:00
Sebastiaan van Stijn
44ea7e91fb Merge pull request #15760 from mikebrow/9235-improve-documentation
Improvement to userguide/dockerrepos/ documentation
2015-08-27 01:21:12 +02:00
Mike Brown
5caccd27cd improvement to documentation
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-08-26 16:49:31 -05:00
moxiegirl
5e8038d0b0 Merge pull request #15773 from charleswhchan/patch-3
Fix #14572: Improve explaination for using `RUN` command inside Docke…
2015-08-26 14:19:44 -07:00
Alexander Morozov
459c2c66c3 Merge pull request #15801 from jfrazelle/btrfs-rm-subvolume-recursion
remove btrfs subvolumes when destroying containers (recursive)
2015-08-26 14:00:53 -07:00
Vincent Demeester
c1af0ac082 Add 'ancestor' ps filter for image
Makes it possible to filter containers by image, using
--filter=ancestor=busybox and get all the container running busybox
image and image based on busybox (to the bottom).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-26 22:59:48 +02:00
Alexander Morozov
7a74422724 Merge pull request #15826 from Microsoft/start-from-one
Builder counts from 1
2015-08-26 13:59:38 -07:00
Alexander Morozov
70a814c3f3 Merge pull request #15493 from stevvooe/no-buffer-on-push
Avoid buffering to tempfile when pushing with V2
2015-08-26 13:59:01 -07:00
moxiegirl
ea65c38ac0 Merge pull request #15843 from MHBauer/version-order
reweight api doc for v1.21 to correct the order.
2015-08-26 13:51:06 -07:00
Morgan Bauer
31a52a31c6 reweight api doc for v1.21 to correct the order.
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-08-26 13:40:37 -07:00
Alexander Morozov
47cdae243a Merge pull request #15865 from Microsoft/10662-isabs
Windows: Fix use of IsAbs check
2015-08-26 13:29:24 -07:00
Sebastiaan van Stijn
fa13f7cde8 Merge pull request #14242 from cpuguy83/add_volume_api
Add volume api
2015-08-26 21:57:12 +02:00
John Howard
f11ba3135b Windows: Fix use of IsAbs check
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-26 12:38:28 -07:00
Brian Goff
b3b7eb2723 Add volume API/CLI
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-26 13:37:52 -04:00
Jessie Frazelle
5dadfa8b69 Merge pull request #15848 from calavera/revert_ipc_mounts
DO NOT MERGE: Check if these commits broke the builds.
2015-08-26 10:29:25 -07:00
John Howard
17d6c6c7e5 Builder counts from 1
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-26 10:05:04 -07:00
David Calavera
7ef08f39ed Merge pull request #15850 from choleraehyq/15849-fixtypo
api/client/restart.go:Fix a typo in comment
2015-08-26 16:10:31 +02:00
Brian Goff
2cec06fbcd Merge pull request #13304 from coolljt0725/restart_daemon_with_paused_containers
Fix restart docker daemon with paused containers
2015-08-26 09:04:14 -04:00
Cholerae Hu
d30990d7b1 api/client/restart.go:Fix a typo in comment
Signed-off-by: Yingqian Hu <choleraehyq@gmail.com>
2015-08-26 18:59:56 +08:00
David Calavera
b857dadb33 Merge pull request #15711 from monitorjbl/import-commit-message
adding message option to the import subcommand
2015-08-26 11:42:10 +02:00
David Calavera
688dd8477e Revert "Add support for sharing /dev/shm/ and /dev/mqueue between containers"
This reverts commit d88fe447df.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-26 05:23:00 -04:00
David Calavera
a9378a0ab5 Revert "Modify test to include /dev/shm sharing"
This reverts commit 457aeaa2e1.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-26 05:22:46 -04:00
Charles Chan
b6621a1b6c Fix #14572: Improve explaination for usng RUN and apt-get inside Dockerfil.
Based on example provided by @thaJeztah and @moxiegirl:
  https://github.com/docker/docker/pull/15773

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-25 21:58:20 -07:00
Sven Dowideit
8720f71b52 Merge pull request #15836 from rsmitty/issue-15835
Resolves link to introduction to Docker
2015-08-26 12:06:29 +10:00
Sven Dowideit
3bc375c6e4 Merge pull request #15831 from yasker/master
Update plugins.md
2015-08-26 12:05:35 +10:00
Sven Dowideit
a0f6ff7d58 Merge pull request #15838 from rsmitty/issue-15837
Updates link to the understanding-docker section
2015-08-26 11:53:58 +10:00
Spencer Smith
90be489f40 Updates link to the understanding-docker section
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2015-08-25 14:12:29 -07:00
Spencer Smith
9a71dd2b90 Resolves link to introduction to Docker
Signed-off-by: Spencer Smith <robertspencersmith@gmail.com>
2015-08-25 13:54:39 -07:00
Sebastiaan van Stijn
bdba406492 Merge pull request #15821 from vbatts/tarsum_warning
tarsum: add a big fat warning
2015-08-25 22:53:04 +02:00
Vincent Batts
459451de8b tarsum: add a big fat warning
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-08-25 16:50:08 -04:00
John Howard
f950de5754 Windows: Fix docker cp
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-25 13:26:49 -07:00
Jessica Frazelle
bd06432ba3 cleanup and fix btrfs subvolume recursion deletion
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-25 13:00:41 -07:00
Sheng Yang
5f156d8c25 Update plugins.md
Add Convoy to Docker plugin list.

Signed-off-by: Sheng Yang <sheng.yang@rancher.com>
2015-08-25 12:01:31 -07:00
James Turnbull
7dbb5fafcd Merge pull request #15824 from Microsoft/10662-moredocs
Windows: Minor doc clarification
2015-08-25 13:30:54 -04:00
William Hubbs
e3772538c0 Fix OpenRC init script
The shebang for OpenRC init scripts is now #!/sbin/openrc-run, and we
can also use the default start and stop functions built into OpenRC.

Signed-off-by: William Hubbs <w.d.hubbs@gmail.com>
2015-08-25 12:02:01 -05:00
William Hubbs
1c0c68b18f Drop execute bit from openrc init script
Signed-off-by: William Hubbs <w.d.hubbs@gmail.com>
2015-08-25 12:00:54 -05:00
Brian Goff
e134ccada7 Merge pull request #14978 from gesellix/websocket-disable-check-origin
skip checkOrigin during websocket handshake
2015-08-25 12:56:30 -04:00
John Howard
759ed647fb Windows: Minor doc clarification
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-25 09:36:51 -07:00
Alexander Morozov
78698855ce Merge pull request #15818 from calavera/fix_api_json_examples
Fix json examples in the api reference.
2015-08-25 09:22:38 -07:00
Srini Brahmaroutu
eecf6cd48c Allow vendoring netns change to build Docker on s390x
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-08-25 15:07:17 +00:00
David Calavera
7296c845b7 Fix json examples in the api reference.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-25 10:55:12 -04:00
David Calavera
6f8c4480e4 Merge pull request #14665 from coolljt0725/fix_build_with_resource_limit
Fix build with resource limit which system not support.
2015-08-25 16:42:13 +02:00
Sebastiaan van Stijn
ee2c476f22 Merge pull request #15804 from epc/epc-2015236
Copy edits for typos
2015-08-25 08:04:53 +02:00
Ed Costello
cefb72080d Copy edits for typos
Signed-off-by: Ed Costello <epc@epcostello.com>
2015-08-24 23:02:44 -04:00
Taylor Jones
936b2c6afe adding message option to the import subcommand
Signed-off-by: Taylor Jones <monitorjbl@gmail.com>
2015-08-25 02:55:04 +00:00
Lei Jitang
9a9724ad56 Fix docker daemon restart with paused container.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-25 09:42:58 +08:00
Stephen J Day
349aef06d5 Avoid buffering to tempfile when pushing with V2
The practice of buffering to a tempfile during a pushing contributes massively
to slow V2 push performance perception. The protocol was actually designed to
avoid precalculation, supporting cut-through data push. This means we can
assemble the layer, calculate its digest and push to the remote endpoint, all
at the same time.

This should increase performance massively on systems with slow disks or IO
bottlenecks.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-08-24 18:08:05 -07:00
Jessie Frazelle
903cd2b9e3 Merge pull request #12159 from mrunalp/feature/ipc_share_dev
ipc: Share /dev/shm and /dev/mqueue when --ipc container:<id/name> is used
2015-08-24 17:55:03 -07:00
Brian Goff
562cc6254f Merge pull request #15702 from LK4D4/fix_events_tests_15
Make events test more deterministic in go1.5
2015-08-24 20:15:09 -04:00
Ma Shimiao
dea78fc2ce fix 9939: docker does not remove btrfs subvolumes when destroying container
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-08-24 14:52:07 -07:00
Jessie Frazelle
82e2dec06d Merge pull request #15393 from azurezk/exportImage-toplevel
change exportImage to top-level func
2015-08-24 14:35:55 -07:00
Jessie Frazelle
25f4f5588e Merge pull request #15756 from tonistiigi/15724-remove-nil-contexts
Remove nil contexts
2015-08-24 14:29:48 -07:00
Jessie Frazelle
ebe27cb34c Merge pull request #14868 from jeffminard-ck/rhel-init-detect-failure
Allow RHEL init script to detect daemon start pid failure
2015-08-24 14:24:36 -07:00
moxiegirl
0ce37336b3 Merge pull request #15800 from moxiegirl/carry-14503
Closes PR #14503 with this carry
2015-08-24 13:22:19 -07:00
Casey Bisson
831747d59e Closes PR #14503 with this carry
- Refer to Joyent's blogs and docs rather than following from our end
- All of this information exists on Joyent's site
Updating with thaJeztah's comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-24 13:21:27 -07:00
Alexander Morozov
1269dd35dc Merge pull request #15728 from tonistiigi/parallel-pulls
Mitigate parallel pull issues
2015-08-24 12:56:21 -07:00
Tonis Tiigi
b779bc3102 Mitigate parallel pull issues
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-24 11:41:45 -07:00
Alexander Morozov
137df3048c Merge pull request #15389 from aidanhs/aphs-simpler-pull-codepath
Remove unnecessary function parameter, add mirror endpoint test
2015-08-24 11:03:01 -07:00
Alexander Morozov
6b21e98432 Merge pull request #15766 from hqhq/hq_fix_device
Add mode check for device
2015-08-24 10:58:49 -07:00
Brian Goff
fd8b25c802 Merge pull request #15348 from tonistiigi/11008-always-unless-stopped-restart-policy
Add always-unless-stopped restart policy
2015-08-24 13:48:56 -04:00
Alexander Morozov
1544c5edb6 Merge pull request #15735 from tonistiigi/graph-register-readcloser
Make graph.Register take in io.Reader
2015-08-24 10:40:04 -07:00
Jessie Frazelle
654b555d09 Merge pull request #15789 from calavera/add_cors_head_option
Allow HEAD requests to container archives via CORS.
2015-08-24 10:27:07 -07:00
Alexander Morozov
386aefb9fc Make events test more deterministic in go1.5
Now scheduler makes order of events pretty random, so I added little
sleeps to make order intact. Also I renamed to test so name better
describes its nature.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-24 09:35:11 -07:00
Brian Goff
c0a48a676d Merge pull request #15762 from mattrobenolt/trim
opts/envfile: trim all leading whitespace in a line
2015-08-24 12:32:27 -04:00
Brian Goff
e14eaba784 Merge pull request #12918 from thieman/tnt-issue-12595
Use image ID in ps if tag has been updated
2015-08-24 12:24:42 -04:00
Sebastiaan van Stijn
37f58d266f Merge pull request #14564 from docteurklein/master
[experimental compose/swarm] explain how to make it work on awazon ec2.
2015-08-24 17:47:26 +02:00
David Calavera
88cacbf529 Merge pull request #15767 from hqhq/hq_fix_optional_comments
Change all optional unit to [unit]
2015-08-24 17:36:01 +02:00
Sebastiaan van Stijn
32053b965b Merge pull request #15791 from agonzalezro/broken-links-revert
Revert "Fix broken links at plugins documentation"
2015-08-24 15:27:40 +02:00
moxiegirl
02683dfa09 Merge pull request #15745 from Microsoft/readme
Update readme
2015-08-24 06:13:02 -07:00
Brian Goff
e4147bcad4 Merge pull request #15776 from duglin/buildEnvTest
Add some builder getEnv tests
2015-08-24 08:57:41 -04:00
Brian Goff
2b174d3d9d Merge pull request #15444 from coolljt0725/add_test_require_for_test_blkio
Add test require for TestRunWithBlkioInvalidWeight and TestRunWithBlkio
2015-08-24 08:33:17 -04:00
Brian Goff
1ee53d4fb7 Merge pull request #15779 from mountkin/split-build-test
split build API tests to a separate file
2015-08-24 08:31:48 -04:00
Álex González
62ce5b6929 Revert "Fix broken links at plugins documentation"
This reverts commit 354147df01.

Signed-off-by: Álex González <agonzalezro@gmail.com>
2015-08-24 11:48:59 +01:00
David Calavera
354a2e105d Allow HEAD requests to container archives via CORS.
Add HEAD to Access-Control-Allow-Methods.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-24 05:57:22 -04:00
Qiang Huang
429423624c Add mode check for device
This fixes two problems:
1. docker run --device /dev/sda:rw ubuntu bash doesn't work
2. --device /dev/zero:/dev/noro:ro doesn't show clear error message,
but fail when writing to cgroup file.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-24 17:57:12 +08:00
David Calavera
888d1d0e20 Merge pull request #15787 from agonzalezro/patch-1
Fix broken links at plugins documentation
2015-08-24 11:49:55 +02:00
Alexandre González
354147df01 Fix broken links at plugins documentation
Signed-off-by: Álex González <agonzalezro@gmail.com>
2015-08-24 10:47:56 +01:00
Qiang Huang
c99ed5ae5d Change return value for ValidateMountMode
1. rename it from ValidateMountMode to ValidMountMode
Because it's a function simply check mount mode is valid or not.
2. remove the rw check return value
It's not supposed to be combined into this function, and we already
have a function for that check.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-24 17:28:19 +08:00
David Calavera
9bac520c12 Merge pull request #15571 from ewindisch/apparmor_denywproc
AppArmor: Deny w to /proc/* files
2015-08-24 11:03:41 +02:00
David Calavera
cb00396f61 Merge pull request #15332 from pugnascotia/master
Make run and rmi bash completions configurable
2015-08-24 10:49:01 +02:00
Lei Jitang
c340ca4f5d Add some missing cgroup test require and refactor the require check.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-24 11:37:11 +08:00
Travis Thieman
2167f40a76 Use image ID if tag has been updated
Fixes #12595

Signed-off-by: Travis Thieman <travis.thieman@gmail.com>
2015-08-23 12:11:24 -04:00
Shijiang Wei
96e37f671a split build API tests to a separate file
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-08-23 23:59:15 +08:00
Sebastiaan van Stijn
7ead74d903 Merge pull request #15774 from charleswhchan/patch-4
Revise Mac Docker instructions
2015-08-23 10:26:58 +02:00
Sven Dowideit
819166c16c Merge pull request #15769 from charleswhchan/patch-1
Revise Windows Docker instructions
2015-08-23 12:11:37 +10:00
Doug Davis
eeeae2c235 Add some builder getEnv tests
In particular I want to make sure that calling getEnv() when the same
var name appears more than once in the env list that we only pick up
the first one.  PR #15182 counts on this

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-08-22 13:12:43 -07:00
Matt Robenolt
f1988f046f opts/envfile: trim all leading whitespace in a line
Signed-off-by: Matt Robenolt <matt@ydekproductions.com>
2015-08-22 09:01:27 -07:00
Charles Chan
9572edc34a Revise Mac Docker instructions
* Clarify `default` VM
* Various minor changes

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-22 08:00:48 -07:00
Charles Chan
3faba5fbe2 Revise Windows Docker instructions
* Fix Windows 7 (not 7.1 ;p)
* Clarify virtualization technology section, add link to wiki
* Fix heading level for various ways of starting Docker container
* Clarify `default` VM
* Various minor changes

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-22 07:26:26 -07:00
Vincent Demeester
c71a99af11 Fix filter by label for docker images
Using Config.Labels to filter images on Labels.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-22 14:06:48 +02:00
Sebastiaan van Stijn
efabc8ee1a Merge pull request #15764 from coolljt0725/docs_update_readme_in_daemon
Docs: remove networkdriver from README.md in daemon
2015-08-22 13:36:38 +02:00
Qiang Huang
76a5fdc3d4 Change all optional unit to [unit]
As suggested before, we should change every signal one.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-21 21:29:52 -07:00
Tianon Gravi
5fd15da7da Merge pull request #15763 from tianon/dind-tmp
Update dind "/tmp" mounting to be optional
2015-08-21 21:14:35 -07:00
Lei Jitang
ce5bbed858 Docs: remove networkdriver from README.md in daemon
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-22 10:09:07 +08:00
Brian Goff
5929502b4e Merge pull request #15412 from vdemeester/dont-sleep-too-much
time.Sleep in integration tests — comment and waitRun/waitInspect
2015-08-21 20:43:55 -04:00
Jessie Frazelle
90801ab939 Merge pull request #15708 from Microsoft/sjw/graphdriver_missing_parent
Windows: Graphdriver should reject create of layer w/o parent
2015-08-21 16:34:03 -07:00
Jessie Frazelle
fefc9a3a6a Merge pull request #15750 from mountkin/fix-exec-panic
fix a panic when the exec fails to start
2015-08-21 15:54:58 -07:00
Tianon Gravi
b8bed8832b Update dind "/tmp" mounting to be optional
This allows someone running the image to use `-v` to mount a non-tmpfs `/tmp` into their image if they so require/desire.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-08-21 15:47:50 -07:00
Jessie Frazelle
c5733e6a20 Merge pull request #15366 from rvesse/sysvinit-redhat-silent-fail
Fix silent failure in RedHat sysvinit script
2015-08-21 14:54:25 -07:00
Jessie Frazelle
e5e6eaacee Merge pull request #15492 from vbatts/update-tar-split
vendor: update tar-split to v0.9.6
2015-08-21 14:45:19 -07:00
Sebastiaan van Stijn
9415db7e95 Merge pull request #15742 from Microsoft/addazure
Add Microsoft Azure
2015-08-21 23:41:36 +02:00
Jessie Frazelle
9bd8a9b66b Merge pull request #14006 from hqhq/hq_add_kmem_limit
Add support for kernel memory limit
2015-08-21 14:34:27 -07:00
Jessie Frazelle
ecff4badcd Merge pull request #15125 from WeiZhang555/golint-stdcopy-system
fix golint warnings/errors on pkg/system and pkg/stdcopy
2015-08-21 14:27:59 -07:00
Jessie Frazelle
008a8ffdd2 Merge pull request #15218 from calavera/gender_unbiased_names
Add more amazing women to the names generator.
2015-08-21 14:24:49 -07:00
Jessie Frazelle
19f7bfcda9 Merge pull request #15507 from clintonskitson/patch_issue_15467
added check for bind on create to determine local volume driver
2015-08-21 14:23:44 -07:00
Jessie Frazelle
9b8cfb6c79 Merge pull request #15709 from Mashimiao/state-separate-part-of-SetRestarting
daemon/state: separate part of SetRestarting to setRestarting
2015-08-21 14:21:10 -07:00
Jessie Frazelle
9d22c7a2d5 Merge pull request #15596 from jfrazelle/hack-dind-its-been-fun
docker 1.8+ no longer needs dind
2015-08-21 13:51:41 -07:00
Jessie Frazelle
616950b030 Merge pull request #15687 from coolljt0725/add_blk_dev_throttling_to_check_config
Add CONFIG_BLK_DEV_THROTTLING to check-config.sh
2015-08-21 13:48:28 -07:00
Stefan J. Wernli
a456f20b44 Windows: Graphdriver should reject create of layer w/o parent
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-08-21 13:23:04 -07:00
Jessie Frazelle
e6be51a0f9 Merge pull request #15758 from jfrazelle/EOL-fedora-20
fedora 20 is EOL remove from rpm builder
2015-08-21 13:15:58 -07:00
moxiegirl
1425b185db Merge pull request #15746 from Microsoft/libcontainer-spec-location
Updated spec location for libcontainer
2015-08-21 11:15:28 -07:00
Jessica Frazelle
c48ac77840 update hack/dind for 1.8 mounting of cgroups
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-21 11:13:33 -07:00
Jessica Frazelle
ee1304a35e fedora 20 is EOL remove from rpm builder
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-21 11:01:18 -07:00
Tonis Tiigi
0c08913d52 Remove nil contexts
Causes daemon panic because loggers can’t be found.

Fixes #15724

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-21 10:31:27 -07:00
Shijiang Wei
fcf9daad91 fix a panic when the exec fails to start
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-08-22 00:01:44 +08:00
Brian Goff
eb7b2ed6bb Merge pull request #15748 from coolljt0725/fix_daemon_start_with_old_running_container
Fix docker daemon start with old running container which use thirdparty volume plugin
2015-08-21 11:07:02 -04:00
Brian Goff
85bef48bf5 Merge pull request #15754 from mountkin/fix-return
modify a return value in graph/tags.go to increase readability
2015-08-21 10:55:50 -04:00
Brian Goff
10c97a310a Merge pull request #15751 from nf/bcw
Use a slice instead of a map of io.WriteClosers in broadcastwriter
2015-08-21 10:51:07 -04:00
Shijiang Wei
f11b7acc73 modify a return value in graph/tags.go to increase readability
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-08-21 21:36:30 +08:00
Andrew Gerrand
31cbf76d0c Use a slice instead of a map of io.WriteClosers in broadcastwriter
Maps rely on the keys being comparable.
Using an interface type as the map key is dangerous,
because some interface types are not comparable.
I talked about this in my "Stupid Gopher Tricks" talk:
	https://talks.golang.org/2015/tricks.slide

In this case, if the user-provided writer is backed by a slice
(such as io.MultiWriter) then the code will panic at run time.

Signed-off-by: Andrew Gerrand <adg@golang.org>
2015-08-21 14:08:04 +01:00
Sebastiaan van Stijn
5ceff3f191 Merge pull request #15718 from ZJU-SEL/rm-volume-action
specify `docker run --rm` action when it comes to volume
2015-08-21 08:50:18 +02:00
Tonis Tiigi
2d1158790d Make graph.Register take in io.Reader
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-20 20:37:11 -07:00
Lei Jitang
c8a46cb0b2 Fix docker daemon start with old running container which user volume plugin. Fixes #15720
Signed-off-by: Lei Jitang <leijitang@huawei>
2015-08-21 11:29:53 +08:00
John Howard
011b4ca256 Updated spec location for libcontainer
Signed-off-by: John Howard <John.Howard@microsoft.com>
2015-08-20 20:04:04 -07:00
John Howard
faf9e34067 Update readme
Signed-off-by: John Howard <John.Howard@microsoft.com>
2015-08-20 19:55:32 -07:00
John Howard
98f60aef13 Add Microsoft Azure
Signed-off-by: John Howard <john.howard@microsoft.com>
2015-08-20 18:35:21 -07:00
He Simei
76a559ccb2 specify the docker run --rm action
Signed-off-by: He Simei <hesimei@zju.edu.cn>
2015-08-21 08:52:06 +08:00
David Calavera
d760947b2e Merge pull request #15716 from calavera/release_checklist_docs
Corrections in the release checklist.
2015-08-20 22:29:42 +01:00
Sebastiaan van Stijn
9ed5cf08a3 Merge pull request #15732 from moxiegirl/15731-fixes
Examples index has broken links
2015-08-20 22:56:45 +02:00
Mary Anthony
15c24db9a5 Examples index has broken links
Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-20 13:40:03 -07:00
Sebastiaan van Stijn
ec43113662 Merge pull request #15697 from sallyom/man-commit-fix
fix format man-commit
2015-08-20 21:33:46 +02:00
Sebastiaan van Stijn
ba9496ae48 Merge pull request #15688 from Evalle/15564-fix-windows-doc
Fix a windows doc issue
2015-08-20 20:39:16 +02:00
evalle
3c61ede074 Fix a windows doc issue
Signed-off-by: evalle <shmarnev@gmail.com>
2015-08-20 14:14:48 +02:00
Sven Dowideit
272a3eef94 Merge pull request #15696 from sallyom/man-history-fixup
add -H to SYNOPSIS man-history
2015-08-20 22:11:50 +10:00
Brian Goff
44465098cb Merge pull request #15661 from coolljt0725/fix_docker_stats_show_read_blkio
Fix docker stats show blkio when there are multiple block device
2015-08-20 07:53:38 -04:00
David Calavera
1d0ee18d6b Corrections in the release checklist.
- Add a note about creating the release in GitHub.
- Fix docs release process.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-20 11:52:56 +01:00
David Calavera
d959739125 Merge pull request #15715 from aanand/fix-compose-1.2-changelog-link
Fix Compose 1.2 changelog link
2015-08-20 11:42:14 +01:00
Doug Davis
90ebc3b455 Merge pull request #14928 from brahmaroutu/lint_daemon_graphdriver
daemon/graphdriver fix lint errors/warnings
2015-08-20 03:25:00 -07:00
Aanand Prasad
23d3e4bb03 Fix Compose 1.2 changelog link
Hardcode the release tag, so that:

- it goes straight to the changes for 1.2, not whatever the current
  version is

- it still works now that we've renamed CHANGES.md to CHANGELOG.md

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
2015-08-20 11:09:10 +01:00
Clinton Kitson
6b8129d1fe added check for bind on create to determine local volume driver
Signed-off-by: Clinton Kitson <clintonskitson@gmail.com>
2015-08-20 01:40:04 -07:00
Lei Jitang
211449a1ca Fix docker stats show blkio when there are multiple block devices.
Signed-off-by: Lei Jiang <leijitang@huawei.com>
2015-08-20 11:46:21 +08:00
Ma Shimiao
a6ed990593 daemon/state: separate part of SetRestarting to setRestarting
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-08-20 11:14:28 +08:00
Brian Goff
8acd006fd9 Merge pull request #15707 from icaroseara/fix_typo
Fix typo, "fil" -> "fill"
2015-08-19 21:25:43 -04:00
Icaro Seara
997ba4b0da Fix typo, "fil" -> "fill"
Signed-off-by: Icaro Seara <icaro.seara@gmail.com>
2015-08-19 21:50:54 -03:00
Christy Perez
6bf2440650 Allow branch name in vendor-helper script
With this, you can specify a branch name in the
vendor script instead of a commit ID. This makes it easier
to quickly test changes in dep'd repos outside of the DIND
environment.

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-08-19 17:56:04 -05:00
Sebastiaan van Stijn
41ca7c0f13 Merge pull request #15675 from thaJeztah/carry-14625
[Carry #14625] run.md: --expose does NOT override Dockerfile EXPOSE
2015-08-20 00:49:16 +02:00
Sebastiaan van Stijn
35cbcc2fc1 Add gists provided by Mary
This adds the example gists, provided by Mary Anthony,
also fixes a link to the old /terms/

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-08-20 00:30:39 +02:00
Spencer Brown
6dd84ba2ab run.md: --expose does NOT override Dockerfile EXPOSE
run.md states that the operator can override all defaults set in the Dockerfile, and explicitly says that `--expose` overrides the `EXPOSE` instruction. Neither of these are true. An `EXPOSE` instruction cannot be overridden, `--expose` can only add additional exposed ports.

This change fixes the instructions, and also takes the liberty of crisping up the grammar and phrasing in a place or two.

Signed-off-by: Spencer Brown <spencer@spencerbrown.org>
2015-08-19 23:57:35 +02:00
moxiegirl
286afb9a77 Merge pull request #15682 from MHBauer/cliorder
add weight to daemon page so it renders in order
2015-08-19 14:24:51 -07:00
Morgan Bauer
2a84157352 add weight to daemon page so it renders in order
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-08-19 10:26:19 -07:00
Sebastiaan van Stijn
f848f34da2 Merge pull request #15694 from liubin/fixtypo
add missing instruction
2015-08-19 19:05:41 +02:00
Brian Goff
7f46dc03d5 Merge pull request #15684 from ibuildthecloud/dont-sync
Don't globally lock on driver initialization
2015-08-19 12:48:14 -04:00
Mrunal Patel
457aeaa2e1 Modify test to include /dev/shm sharing
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-08-19 12:36:57 -04:00
Mrunal Patel
d88fe447df Add support for sharing /dev/shm/ and /dev/mqueue between containers
This changeset creates /dev/shm and /dev/mqueue mounts for each container under
/var/lib/containers/<id>/ and bind mounts them into the container. When --ipc:container<id/name>
is used, then the /dev/shm and /dev/mqueue of the ipc container are used instead of creating
new ones for the container.

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-08-19 12:36:52 -04:00
Doug Davis
ca79576585 Merge pull request #15664 from skatsuta/fix-parse-null
builder: avoid parsing null- string to nil slice (issue #15634)
2015-08-19 09:06:20 -07:00
Qiang Huang
b6f1b4ad35 Add support for kernel memory limit
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-19 23:56:55 +08:00
Qiang Huang
87959dbfac Add CheckKernelVersion so we can check any specific version
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-19 23:49:52 +08:00
Sebastiaan van Stijn
7ec7173b76 Merge pull request #15482 from hqhq/hq_fix_run_doc
Add format description in run doc
2015-08-19 17:13:00 +02:00
Doug Davis
09cdd0524e Merge pull request #15691 from skatsuta/fix-printf-wrong-type
integration-cli: fix printf verbs of wrong types
2015-08-19 08:12:45 -07:00
Phil Estes
70c4b6e619 Merge pull request #15695 from lmesz/deviceset_warn_fix
deviceset.go: fixed link in warning about udex sync is not supported
2015-08-19 08:05:27 -07:00
Sebastiaan van Stijn
59e49e1db0 Merge pull request #12927 from lindenlab/custom-host-port-ranges
Proposal: Change --publish=SPEC to allow binding to custom host port ranges
2015-08-19 17:04:23 +02:00
moxiegirl
43763805fb Merge pull request #15690 from hacfi/docs-status-fix
Small fix in dev env docs
2015-08-19 07:12:39 -07:00
Brian Goff
b8c319996f Merge pull request #15683 from skatsuta/cli-exec-test-printf-int
integration-cli: modify %s to %d in formatting an int
2015-08-19 10:10:17 -04:00
Sally O'Malley
ab9e71b616 fix format man-commit
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-08-19 10:07:32 -04:00
Sally O'Malley
898114a6d0 add -H to SYNOPSIS man-history
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-08-19 09:35:52 -04:00
Laszlo Meszaros
78676f19c1 deviceset.go: fixed link in warning about udex sync is not supported
Signed-off-by: Laszlo Meszaros <lacienator@gmail.com>
2015-08-19 14:16:40 +02:00
bin liu
1988064ef2 add missing instruction
Signed-off-by: bin liu <liubin0329@gmail.com>
2015-08-19 18:43:19 +08:00
Philipp Wahala
fbc0ea32e8 Small fix in dev env docs
Signed-off-by: Philipp Wahala <philipp.wahala@gmail.com>
2015-08-19 10:53:55 +02:00
Soshi Katsuta
5759b95e7e integration-cli: fix printf verbs of wrong types
Signed-off-by: Soshi Katsuta <katsuta_soshi@cyberagent.co.jp>
2015-08-19 17:47:33 +09:00
Lei Jitang
cbb69531a8 Add CONFIG_BLK_DEV_THROTTLING to check-config.sh
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-19 15:11:04 +08:00
Soshi Katsuta
a41f431d11 integration-cli: use c.Assert(err, check.IsNil) instead of if err != nil
Signed-off-by: Soshi Katsuta <katsuta_soshi@cyberagent.co.jp>
2015-08-19 15:23:11 +09:00
Darren Shepherd
164208fde5 Don't globally lock on driver initialization
This patch makes it such that plugin initialization is synchronized
based on the plugin name and not globally

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-08-18 22:25:30 -07:00
Jessie Frazelle
3dc30d47e1 Merge pull request #15417 from icecrime/update_windows_registry_endpoint
Update Windows TP3 registry endpoints
2015-08-18 20:35:02 -07:00
Soshi Katsuta
5b870d7fa6 integration-cli: modify %s to %d in formatting an int
Signed-off-by: Soshi Katsuta <katsuta_soshi@cyberagent.co.jp>
2015-08-19 12:06:05 +09:00
Soshi Katsuta
d45fcc6c80 integration-cli: add a integration test to avoid parsing null string in ADD, COPY and VOLUME to nil slice
Signed-off-by: Soshi Katsuta <katsuta_soshi@cyberagent.co.jp>
2015-08-19 11:11:46 +09:00
Qiang Huang
2a468ed7e4 Add format description in run doc
And only set false to --oom-kill-disable, we just need the default
value to show.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-19 10:11:08 +08:00
moxiegirl
aacb47d628 Merge pull request #15671 from tonistiigi/fix-volume-userguide
Update volumes userguide
2015-08-18 18:57:24 -07:00
moxiegirl
5fccbd1243 Merge pull request #15676 from thaJeztah/fix-anchor-link
docs: fix anchor link on Ubuntu installation page  Merging for @thaJeztah ....da ddadad dadada 🎼
2015-08-18 18:55:56 -07:00
moxiegirl
9f1e324b53 Merge pull request #15660 from sallyom/man-create-typo
fix SYNOPSIS alphabetical order man-create
2015-08-18 18:40:39 -07:00
Sebastiaan van Stijn
d997351e97 Merge pull request #15677 from moxiegirl/carry-14714-changes
remove references to 'source repository'
2015-08-19 00:56:41 +02:00
Morgan Bauer
b143c05d64 remove references to 'source repository'
- rewrite intro to Dockerfile reference usage section to remove
   references to 'source repository'
- Closes #14714
- Fixes:  #8648
- Updating with Seb's comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-18 15:50:42 -07:00
Sebastiaan van Stijn
5dd28c1f9d docs: fix anchor link on Ubuntu installation page
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-08-18 23:41:00 +02:00
Sebastiaan van Stijn
7e3088c43b Merge pull request #15672 from moxiegirl/cli-reference-cleanup
Updating hashcode links to commands
2015-08-18 21:45:06 +02:00
Mary Anthony
85c2c77188 Updating hashcode links to commands
Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-18 12:25:59 -07:00
Tonis Tiigi
cc2aab7816 Update volumes userguide
Fixes #15644

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-18 12:17:45 -07:00
David Calavera
215a1136f7 Merge pull request #15662 from cpuguy83/noisy_blkio_warning
Quiet sysinfo warnings on container create/start
2015-08-18 11:47:17 -07:00
Tonis Tiigi
10305dc5e8 Add unless-stopped restart policy
Fixes #11008

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-18 11:39:06 -07:00
Vincent Demeester
799d9605d6 Remove/Comment time.Sleep in integration tests
Remove what seems unnecessary time.Sleep (1 second even) and comment the
ones that seemed necessary.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-18 20:36:08 +02:00
David Calavera
8aa520b8c0 Merge pull request #15649 from LK4D4/syslog_validation
Syslog validation
2015-08-18 11:14:31 -07:00
moxiegirl
bba2551847 Merge pull request #15510 from kblin/issue-14795
reference/run: Clarify the use of numeric UIDs
2015-08-18 09:43:16 -07:00
moxiegirl
7ae6a505f2 Merge pull request #15337 from phemmer/doc-builder-volume
add documentation clarifying behavior of VOLUME instruction
2015-08-18 09:42:00 -07:00
Tonis Tiigi
8eeafa058c Fix pull on client disconnect
Fixes #15589

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-18 09:41:37 -07:00
Brian Goff
135f5324b1 Merge pull request #15653 from albers/completion-log-opt-fix
[Fix 15246] bash completion fails on systems with bash 3.2
2015-08-18 12:37:56 -04:00
David Calavera
9f1e8eea8f Merge pull request #15316 from icecrime/release_process
Documenting Docker release process
2015-08-18 09:33:44 -07:00
Sebastiaan van Stijn
d7ac3fa863 Merge pull request #15605 from dharmit/15530-remove-the-terms-folder
Fixing docs to remove references to links under terms/
2015-08-18 18:27:28 +02:00
Sebastiaan van Stijn
3ce11c1587 Merge pull request #15656 from SvenDowideit/rename-public-hub
use the Docker Hub as the product name
2015-08-18 17:59:34 +02:00
Sebastiaan van Stijn
6947fbc2b0 Merge pull request #15657 from sallyom/man-inspect-typo
typo man-inspect
2015-08-18 17:37:58 +02:00
Brian Goff
9f8881b810 Merge pull request #15230 from azurezk/fix--rm-when-create-failure
--rm delete container when create failed
2015-08-18 11:32:33 -04:00
Sally O'Malley
df11b10680 typo man-inspect
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-08-18 11:19:57 -04:00
Brian Goff
e9d8e38c47 Quiet sysinfo warnings on container create/start
This was making logrus warn on each container create and start.
These warnings are not needed as the code below already warns when these
various cgroup settings aren't supported but have been set.
Warnings were originally introduced by #15381, which appear to be a
side-effect of that change and not the intention.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-18 10:01:52 -04:00
Sally O'Malley
8b8413266c fix SYNOPSIS alphabetical order man-create
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-08-18 08:16:57 -04:00
Soshi Katsuta
2d6952e8a5 builder: avoid decoding "null" string in ADD, COPY and VOLUME step to nil slice
Signed-off-by: Soshi Katsuta <katsuta_soshi@cyberagent.co.jp>
2015-08-18 21:15:57 +09:00
Sven Dowideit
30cde97e5c use the Docker Hub as the product name
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-08-18 21:13:57 +10:00
Harald Albers
18381faee6 Fix bash completion for log driver options
This option was incorrectly ported to the new `daemon` subcommand
structure.

Beside the obvious effect that completion of `docker daemon --log-opt`
did not work, this also caused completion of `docker` and `docker xxx`
to fail on macs with

> bash: words: bad array subscript

Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-18 09:17:29 +02:00
Kai Blin
ba29d31c9c reference/run: Some editorial changes
Based on the suggestions from @moxiegirl, some changes to make the wording more clear.

Signed-off-by: Kai Blin <kai@samba.org>
2015-08-18 08:56:56 +02:00
Lei Jitang
770daa15f3 Fix build with resource limit which system is not support.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-18 11:54:00 +08:00
Zhang Kun
1ed15550f5 fix in daemon side
Signed-off-by: Zhang Kun <zkazure@gmail.com>

goformat

Signed-off-by: Zhang Kun <zkazure@gmail.com>

fix small

Signed-off-by: Zhang Kun <zkazure@gmail.com>

change to rm

Signed-off-by: Zhang Kun <zkazure@gmail.com>

handler other error

Signed-off-by: Zhang Kun <zkazure@gmail.com>

unique ERR

Signed-off-by: Zhang Kun <zkazure@gmail.com>

setHostConfig_fail_test

Signed-off-by: Zhang Kun <zkazure@gmail.com>

format

Signed-off-by: Zhang Kun <zkazure@gmail.com>

err handle and modify test

Signed-off-by: Zhang Kun <zkazure@gmail.com>

golint error

Signed-off-by: Zhang Kun <zkazure@gmail.com>
2015-08-18 10:06:36 +08:00
moxiegirl
66112a7ae5 Merge pull request #15613 from mgrauer/update_docs_installation_mac_docker_machine_name
Update dev machine name to default in mac installation docs
2015-08-17 19:05:34 -07:00
Alexandre Beslic
f1da5edc8b Merge pull request #15380 from calavera/remove_sys_info_pointers
Remove pointers from the SysInfo struct.
2015-08-17 18:40:54 -07:00
moxiegirl
5ab6883b92 Merge pull request #15430 from charleswhchan/patch-2
Cleanup "Working with containers" page.
2015-08-17 17:46:05 -07:00
Brian Goff
fd2e945d15 Merge pull request #15650 from LK4D4/fix_max_file_error
Fix error message in max-file validation
2015-08-17 20:27:12 -04:00
Brian Goff
1c916dbd83 Merge pull request #15632 from mountkin/fix-15626
a quick fix to #15626
2015-08-17 20:26:47 -04:00
Doug Davis
29ced5d0c4 Merge pull request #15599 from calavera/ps_format_q
Fix ignore `-q` flag in `docker ps` when there is a default format.
2015-08-17 15:44:28 -07:00
Alexander Morozov
cde607108b Fix error message in max-file validation
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-17 15:34:39 -07:00
Alexander Morozov
3f61002b05 Fix LogConfig.Config in inspect
Also add test for daemon-wide log-opt.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-17 15:27:44 -07:00
Alexander Morozov
960791ba60 Check syslog config on daemon start
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-17 14:29:45 -07:00
Brian Goff
5c88a6fdca Merge pull request #15292 from mountkin/fix-exec-test
move the assertions outside of the goroutine
2015-08-17 17:24:58 -04:00
Alexander Morozov
b7a6d14bdc Do not allow corrupted syslog-address
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-17 14:19:06 -07:00
Alexander Morozov
aef15ffc5d Merge pull request #15611 from mariussturm/master
Initialize LogConfig in daemon mode
2015-08-17 14:17:54 -07:00
David Calavera
436fca704f Merge pull request #15356 from Microsoft/10662-uncpathonbuild
Windows: Allow UNC paths on build
2015-08-17 13:34:27 -07:00
Srini Brahmaroutu
9e1a41aae5 daemon/graphdriver fix lint errors/warnings
Addresses #14756

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-08-17 19:27:36 +00:00
John Howard
df7ab6f3db Windows: Allow UNC paths on build
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-08-17 11:03:54 -07:00
Alexander Morozov
5aeb48af77 Merge pull request #15635 from cpuguy83/15633_allow_logconfig_empty_driver
Fix `inspect` output when no log driver specified
2015-08-17 11:03:37 -07:00
David Calavera
df46bfdd4d Fix ignore -q flag in docker ps when there is a default format.
Docker ps default format should not take precedence over cli flags.
This happens effectively for other flags except `-q`.
We need to let the cli to set the format as table to print the
expected output with `-q`.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-17 10:48:04 -07:00
David Calavera
2e7b088164 Merge pull request #15579 from Microsoft/10662-graph
Windows: Graph remove custom interface, add central store
2015-08-17 10:45:48 -07:00
Brian Goff
2f2779b6a5 Fix inspect output when no log driver specified
Config options were being ignored in the inspect output when no driver
was specified.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-17 11:35:34 -04:00
Shijiang Wei
3977f30869 a quick fix to #15626
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-08-17 21:35:57 +08:00
Sebastiaan van Stijn
bba762b192 Merge pull request #15237 from charleswhchan/patch-3
Reformat /containers/(id)/resize to make it consistent with other sections.
2015-08-16 10:59:16 +02:00
Charles Chan
6cd2d89469 Reformat /containers/(id)/resize to make it consistent with "Exec Resize" section.
Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-15 19:47:01 -07:00
Sebastiaan van Stijn
e1f3a5ad0a Merge pull request #14113 from dit4c/10348-exec-privileged
Remerge of `docker exec --privileged` with better tests
2015-08-16 00:20:41 +02:00
Michael Grauer
f26045a534 Update dev machine name to default in mac installation docs
Signed-off-by: Michael Grauer <michael.grauer@kitware.com>
2015-08-15 15:56:41 -04:00
Marius Sturm
e904cbec03 Initialize LogConfig in daemon mode
Signed-off-by: Marius Sturm <marius@graylog.com>
2015-08-15 18:06:03 +02:00
Charles Chan
2fcae333e8 Cleanup "Working with containers" page.
* Cleanup introduction
* Update output of `docker version`
* Cleanup explaination of `docker inspect`
* Change 'deleting' to 'removing' for consistency

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-15 08:44:56 -07:00
Dharmit Shah
0a925d07a8 Fixing docs to remove references to links under terms/
Removed terms/ directory

Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>
2015-08-15 13:09:29 +05:30
Stefan J. Wernli
dfbb5520e3 Windows: Graph remove custom interface and add central store
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>

Windows: add support for images stored in alternate location.

Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-08-14 23:45:53 -07:00
Brian Goff
a6e0a6852d Merge pull request #15602 from Microsoft/10662-blockfromscratch
Windows: Block 'FROM scratch'
2015-08-14 21:12:15 -07:00
Arnaud Porterie
167783eb13 Merge pull request #15601 from mrjana/vendor18
Vendoring in vishvananda/netlink
2015-08-14 20:22:54 -07:00
Arnaud Porterie
bd9cc788d0 Merge pull request #15598 from cpuguy83/15570_fix_exec_tty
Fix issue with exec TTY caused by 15446
2015-08-14 19:43:04 -07:00
Don Kjer
47272f9cc5 Adding support to publish on custom host port ranges
Signed-off-by: Don Kjer <don.kjer@gmail.com>

Changing vendor/src/github.com/docker/libnetwork to match lindenlab/libnetwork custom-host-port-ranges-1.7 branch
2015-08-15 02:41:29 +00:00
John Howard
6df6e2e405 Windows: Block 'FROM scratch'
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-14 18:17:19 -07:00
Jana Radhakrishnan
7948b755c7 Vendoring in vishvananda/netlink
Updating netlink package to 4b5dce31de6d42af5bb9811c6d265472199e0fec
to fix certain wierd netlink issues seen.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-08-14 18:02:58 -07:00
Sebastiaan van Stijn
837a66e79b Merge pull request #15595 from estesp/build-experimental
Add info on how to build experimental binaries
2015-08-15 01:32:10 +02:00
Brian Goff
5ffcecf130 Fix issue with exec TTY caused by 15446
The bool logic around setting up the TTY ended up getting flipped
accidentally.
Also added a test for exec with TTY.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-14 14:55:26 -07:00
moxiegirl
aedd45346a Merge pull request #15428 from charleswhchan/patch-1
Improve/fix "Dockerizing Applications" page.
2015-08-14 14:03:11 -07:00
David Calavera
313b37129a Merge pull request #15525 from albers/completion-option-updates
Updates to bash completion for docker run and docker daemon.
2015-08-14 13:55:11 -07:00
Phil Estes
3f8d60ac2f Add info on how to build experimental binaries
..also update the text that says "TO.BE.DETERMINED" to the actual URL
where the experimental nightlies are published.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2015-08-14 16:45:38 -04:00
Jessie Frazelle
424fa59859 Merge pull request #15568 from Microsoft/10662-commitrunning
Windows: Stop commit on running container
2015-08-14 13:13:42 -07:00
Tibor Vass
3e523ae015 Merge pull request #14530 from Microsoft/10662-serversidevalidation
Windows: [TP3] Move netmode validation to server
2015-08-14 16:05:59 -04:00
John Howard
f6ed590596 Move netmode validation to server
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-14 12:17:41 -07:00
Tianon Gravi
53b1f993ab Merge pull request #15580 from hqhq/hq_fix_NETPRIO_check
Adapt CONFIG_NETPRIO_CGROUP in check-config.sh
2015-08-14 12:03:03 -07:00
Alexander Morozov
d1fada4bf7 Merge pull request #15584 from mavenugo/ln-vendor-in
Vendoring in libnetwork 22dc04d06067b40a9e7ef575aee6d1bb69d4dcc3
2015-08-14 11:56:47 -07:00
Sebastiaan van Stijn
f39323c1e3 Merge pull request #15519 from albers/changelog-dangling
[Fix 15518] wrong feature description in changelog
2015-08-14 20:48:48 +02:00
Sebastiaan van Stijn
575a104b3f Merge pull request #15524 from veggiemonk/patch-README
update README.md
2015-08-14 20:45:40 +02:00
Sebastiaan van Stijn
d1585f1d66 Merge pull request #15542 from MHBauer/rundoclink
fix link
2015-08-14 20:35:51 +02:00
moxiegirl
424702b91a Merge pull request #15574 from diogomonica/fixing-race-on-key-backup
Fixing race condition on private key backup how-to
2015-08-14 11:26:56 -07:00
moxiegirl
ff155ce6ee Merge pull request #15576 from estesp/hows-about-a-minor-typo
Correct readability of --userland-proxy para.
2015-08-14 11:26:21 -07:00
Arnaud Porterie
28a17c8a03 Merge pull request #15491 from Microsoft/10662-fixtar
Windows: [TP3] Fixing Tar functions to support long paths.
2015-08-14 09:41:42 -07:00
Madhu Venugopal
703e2264ba Vendoring in libnetwork 22dc04d06067b40a9e7ef575aee6d1bb69d4dcc3
Notable changes include :
- #285 : Fix required for https://github.com/docker/docker/pull/12927
- #283 : Code re-architecture/tech-debt in bridge driver
- Upgraded to latest Netlink library
- Fixed certain race-conditions

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-08-14 05:57:47 -07:00
Rory Hunter
60d97a4a63 Make run and rmi bash completions configurable
Allow the user to configure how Docker's bash completion works for the
"events", "history", "inspect", "run", "rmi" and "save" commands through the
following environment variables:

DOCKER_COMPLETION_SHOW_IMAGE_IDS
  "none" - Show names only (default)
  "non-intermediate" - Show names and ids, but omit intermediate image IDs
  "all" - Show names and ids, including intermediate image IDs

DOCKER_COMPLETION_SHOW_TAGS
  "yes" - include tags in completion options (default)
  "no"  - don't include tags in completion options

Fixes #9474.

Signed-off-by: Rory Hunter <roryhunter2@gmail.com>
2015-08-14 11:29:29 +01:00
Qiang Huang
6c4d4c70c6 Adapt CONFIG_NETPRIO_CGROUP in check-config.sh
Fixes: #15572

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-14 14:38:48 +08:00
Arnaud Porterie
693ff58cd2 Merge pull request #14758 from Microsoft/10662-pipestohcs
Windows: [TP3] new hcsshim stdin/out/err handling
2015-08-13 22:52:48 -07:00
John Howard
4b933dd2ea Windows: Stop commit on running container
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-13 22:17:03 -07:00
Phil Estes
4e53e80934 Correct readability of --userland-proxy para
Was reading this to explain it to someone and noticed the missing "s"
which makes it not so great for nice English readability..

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2015-08-13 23:56:42 -04:00
Diogo Monica
fbb268c12a Fixing race condition on private key backup how-to
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-08-13 19:16:00 -07:00
David Calavera
54b50479af Merge pull request #15065 from calavera/new_release_branch_workflow
Make the release process more atomic between major releases.
2015-08-13 16:10:11 -07:00
Jessie Frazelle
b93d99b25d Merge pull request #15545 from LK4D4/refactor_pullv2
Refactoring of pullV2Tag
2015-08-13 15:52:14 -07:00
Jessie Frazelle
46d9fd6a11 Merge pull request #15367 from hqhq/hq_update_rpm_deb_desc
Tiny fix for rpm and deb descriptions
2015-08-13 15:04:50 -07:00
John Starks
ec5a73d18e Windows: new hcsshim stdin/out/err handling
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-13 13:09:42 -07:00
Vincent Batts
4ce24eb73a vendor: update tar-split to v0.9.6
Fixes rare edge case of handling GNU LongLink and LongName entries.
Perf improvements. /dev/null writes were taking CPU time during docker
push. Thanks @LK4D4
Various cleanup too.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-08-13 15:42:01 -04:00
Eric Windisch
7342d59114 AppArmor: Deny w to /proc/* files
Introduce a write denial for files at the root of /proc.

This prohibits root users from performing a chmod of those
files. The rules for denials in proc are also cleaned up,
making the rules better match their targets.

Locally tested on:
- Ubuntu precise (12.04) with AppArmor 2.7
- Ubuntu trusty (14.04) with AppArmor 2.8.95

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-08-13 15:39:25 -04:00
Sebastiaan van Stijn
c6c195a465 Merge pull request #13501 from vdemeester/8048-image-repository-tag
Fix #8048 : make `docker images repository:tag` work
2015-08-13 21:36:21 +02:00
Alexander Morozov
9b2426c606 Refactoring of pullV2Tag
* use downloadInfo pointers everywhere
* use downloads slice only for things that we really download
* cleanup tmp files in all cases

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-13 11:50:19 -07:00
Sebastiaan van Stijn
599b76000d Merge pull request #15560 from docker/patch-bad-formatting
Fixing bad formatting reported by David via email
2015-08-13 20:26:05 +02:00
Jessie Frazelle
355f640d4d Merge pull request #15559 from liusdu/liusdu-type
fix a typo in graph/graph.go
2015-08-13 09:33:00 -07:00
Jessie Frazelle
53812e51f4 Merge pull request #15563 from ankushagarwal/changelog
Add 1.8.1 CHANGELOG
2015-08-13 09:28:31 -07:00
Ankush Agarwal
4ac8fd98b3 Add 1.8.1 CHANGELOG
Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-08-13 09:02:04 -07:00
Sebastiaan van Stijn
6b1b1ad31c Merge pull request #15451 from liubin/liubin/fix-broken-link
fix broken link to wiki
2015-08-13 17:03:41 +02:00
moxiegirl
68a4beeba4 Merge pull request #15554 from HuKeping/docs-notary
Docs: some fix about notarysandbox
2015-08-13 07:47:35 -07:00
bin liu
f6753cd963 fix broken link to glossary page.
Signed-off-by: bin liu <liubin0329@gmail.com>
2015-08-13 22:40:20 +08:00
moxiegirl
ef453f7118 Fixing bad formatting reported by David via email
Fixed and tested

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-13 06:42:26 -07:00
Liu Hua
883fcfe425 fix a typo in graph/graph.go
Signed-off-by: Liu Hua <sdu.liu@huawei.com>
2015-08-13 20:01:43 +08:00
Zhang Wei
7e420ad850 fix golint warnings/errors on pkg/system and pkg/stdcopy
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-08-13 18:47:13 +08:00
Hu Keping
79aac6584d Docs: some fix about notarysandbox
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-08-13 16:53:05 +08:00
Vincent Demeester
4fb88d2e11 Fix #8048 : make docker images repository:tag work
Make command like "docker images ubuntu:14.04" work and filter out the
image with the given tag.

Closes #8048.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-13 08:50:09 +02:00
Tim Dettrick
90326939c8 Updated test to check for exec --privileged side-effects
Also improving documentation for same feature as part of
docker/docker#14113 docs review.

Signed-off-by: Tim Dettrick <t.dettrick@uq.edu.au>
2015-08-13 16:37:20 +10:00
Tim Dettrick
03f65b3d0d Revert "Revert "Add docker exec run a command in privileged mode""
This reverts commit 40b71adee3.

Original commit (for which this is effectively a rebased version) is
72a500e9e5 and was provided by Lei Jitang
<leijitang@huawei.com>.

Signed-off-by: Tim Dettrick <t.dettrick@uq.edu.au>
2015-08-13 16:36:44 +10:00
Kai Blin
8a61e2b151 reference/run: Add some articles
Signed-off-by: Kai Blin <kai@samba.org>
2015-08-13 06:35:48 +02:00
Kai Blin
4d89910820 reference/run: Add a paragraph break
Signed-off-by: Kai Blin <kai@samba.org>
2015-08-13 06:34:57 +02:00
moxiegirl
650feb29f1 Merge pull request #15541 from thaJeztah/hashtag-space
docs: fix fedora prerequisites heading
2015-08-12 19:33:38 -07:00
Jessie Frazelle
30cf473f26 Merge pull request #15543 from icecrime/15536_partial_manifest
Fix partial manifest push
2015-08-12 19:19:07 -07:00
Arnaud Porterie
72e55cb0ec Merge pull request #15399 from Microsoft/10662-portmapping
Windows: [TP3] Enable NAT port mapping
2015-08-12 19:07:14 -07:00
Arnaud Porterie
697cdb8e2f Update regression test
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-08-12 18:46:55 -07:00
Arnaud Porterie
4f3b0d0f4a Revert #14884
This reverts commit 810d3b2642.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-08-12 18:46:48 -07:00
Morgan Bauer
c50e78e799 fix link
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-08-12 17:20:20 -07:00
Sebastiaan van Stijn
e26ee9a317 Merge pull request #15521 from albers/changelog-rollover
[Fix 15520] wrong feature description (rollover) in changelog
2015-08-13 02:17:42 +02:00
David Calavera
d50881e446 Merge pull request #15449 from albers/completion-help
Remove -h flag from completion and daemon reference
2015-08-12 17:09:51 -07:00
Sebastiaan van Stijn
2c18e1cd05 docs: fix fedora prerequisites heading
Fixes the prerequisites heading not being
rendered properly, because of a missing space.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-08-13 01:29:10 +02:00
John Howard
4393be7100 Windows: Enable NAT port mapping
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-12 13:17:27 -07:00
Alexander Morozov
d50d56b352 Merge pull request #15531 from Microsoft/10662-buildercommands
Windows: Error on unsupported builder command
2015-08-12 13:13:03 -07:00
Alexander Morozov
d8ff9ef2b5 Merge pull request #15504 from kolyshkin/zfs-nitpicks
zfs nitpicks
2015-08-12 11:54:35 -07:00
Jessie Frazelle
d3198fa8c4 Merge pull request #15446 from cpuguy83/better_err_on_exec_err
Return better errors from exec
2015-08-12 11:13:29 -07:00
John Howard
394ccfac07 Windows: Error on unsupported builder command
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-12 10:02:23 -07:00
moxiegirl
8a0efadee1 Merge pull request #15450 from liubin/liubin/change-port-number-through-example
change port number through example context
2015-08-12 09:49:50 -07:00
Jessie Frazelle
e82358586d Merge pull request #15183 from jfrazelle/test-install-script
add file to test install script
2015-08-12 09:49:35 -07:00
Harald Albers
e4d8a8e1ca Add storage options to bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-12 06:13:24 -07:00
Julien Bisconti
c7ab9b4a5c update README.md
Add Awesome-docker list to docker resources.

Signed-off-by: Julien Bisconti <julien.bisconti@gmail.com>
2015-08-12 15:10:29 +02:00
Harald Albers
5c1ad6f90c Add options for the json-file logging driver to bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-12 04:39:29 -07:00
Harald Albers
644c158837 Update bash completion for docker run
Also fixed sort order of options using `sort -d`

Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-12 04:38:55 -07:00
Harald Albers
967c50cfe9 Fix wrong feature description (rollover) in changelog
Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-12 04:20:16 -07:00
Harald Albers
b4a89489ae Fix wrong feature description in changelog
See https://github.com/docker/docker/issues/15518

Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-12 03:25:37 -07:00
Arnaud Porterie
dc945f5559 Merge pull request #15512 from moxiegirl/fix-links-checker
Fixes after release
2015-08-11 23:15:04 -07:00
Mary Anthony
8b09f8a302 Fixes after release
Adding in a link about the deprecated material
Fixing bad link to staging

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-11 23:13:14 -07:00
Kai Blin
a7cfb098d4 reference/run: Clarify the use of numeric UIDs
it is possible to pass an UID that has not been created inside the container, clarify this in the docs.
This should fix issue #14795

Signed-off-by: Kai Blin <kai@samba.org>
2015-08-12 06:34:37 +02:00
Kir Kolyshkin
15a232fd06 graphdriver/zfs: fix GetMetadata() comment
Commit e27c904 added a wrong and misleading comment
to GetMetadata(). Fix it using the wording from
commit 407a626 which introduced GetMetadata().

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
2015-08-11 18:16:11 -07:00
Kir Kolyshkin
f5f7fee2ec graphdriver/zfs: privatize mountPath and zfsPath
These functions are not part of the graphdriver.Driver
interface and should therefore be private.

Also, remove comments added by commit e27c904 as they are
* pretty obvious
* no longer required by golint

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
2015-08-11 18:16:08 -07:00
Darren Shepherd
8b91b3cf77 Revert "Container don't inherit from image labels"
This reverts commit 79621c7728.

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-08-11 17:01:57 -07:00
Alexander Morozov
f5e2c6f14b Merge pull request #15502 from mrunalp/fixup_comment
Fix incorrect comment
2015-08-11 16:53:23 -07:00
Mrunal Patel
d626f77e36 Fix incorrect comment
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-08-11 19:45:23 -04:00
Jessie Frazelle
13873e6841 Merge pull request #15377 from jfrazelle/do-not-keep-old-experimental-debs
do not keep old debs for experimental
2015-08-11 16:35:55 -07:00
Jessica Frazelle
0eade329dc fix oracle linux install
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-11 16:33:14 -07:00
Jessica Frazelle
83416f68de add file to test install script
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-11 16:31:58 -07:00
Stefan J. Wernli
230cfc6ed2 Fixing Tar functions to support Windows long paths.
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-08-11 16:07:36 -07:00
Tobias Gesellchen
9bde19e72a skip checkOrigin during websocket handshake
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-08-12 00:05:59 +02:00
David Calavera
0e3674d7d0 Merge pull request #15485 from calavera/merge_release_v1.8.0
Bump version to 1.8.0 in master
2015-08-11 13:38:57 -05:00
David Calavera
a09ba62d18 Bump dev version to 1.9.0-dev
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-11 10:21:12 -05:00
David Calavera
e873686017 Bump version to 1.8.0
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-11 10:20:47 -05:00
David Calavera
bca8159174 Make the release process more atomic between major releases.
Rather than keeping a branch named "release" where we merge every release,
we want to keep "disposable" release branches for each release.

This will make much easier to create new major releases, since we always
want to start these releases from what we have in master. We create a
disposable release branch from master that we'll only use during the lifecycle
of the major release.

Once the release branch is created, the release captain will use a "bump" branch
in her own fork to cherry pick changes that will need to be applied to this
release. We'll track those changes in a pull request between the disposable release
branch and the bump branch.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-11 10:09:25 -05:00
David Calavera
3e596da9ea Merge pull request #15474 from tonistiigi/network-ui-endpoints-windows
Mark network ui endpoints unix-only
2015-08-11 09:32:09 -05:00
Harald Albers
ceb11d9660 Remove -h flag from completion and daemon reference
All docker subcommands support `-h` as an alias for `--help`
unless they have `-h` aliased to something else like `docker run`,
which uses `-h` for `--hostname`.

`-h` is not included in the help messages of the commands, though.

It ist visible in
* reference: only in `docker daemon` reference,
  see output of `grep -Rse --help=false docs`
* man pages: only in `docker` man page
  see output of `grep -RF '**-h**' man`

For consistency reasons, this commit removes `-h` as an alias for
`--help` from the reference page, man page and the bash completion.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-11 07:30:58 -07:00
Jessie Frazelle
beab255cc0 Merge pull request #15473 from jfrazelle/minor-cosmetic-change
minor cosmetic change to client output on pull
2015-08-10 23:20:05 -07:00
Jessica Frazelle
8bd6322760 minor cosmetic change to client output on pull
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-10 21:54:03 -07:00
Tonis Tiigi
6e3740450d Mark network ui endpoints unix-only
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-08-10 21:49:27 -07:00
Jessie Frazelle
ca8f24679e Merge pull request #15459 from jfrazelle/make-windows-cross-compile-static-daemon-work
make windows cross compile static daemon work
2015-08-10 17:53:09 -07:00
moxiegirl
c4cb55b84f Merge pull request #15458 from moxiegirl/remove-registry-v1-14616
Removing references to registry 1.0
2015-08-10 17:44:32 -07:00
Mary Anthony
d550d729e1 Initial work
Removing references to regsitry 1.0, pointing to distribution
Updating links and title
Adding in comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-10 17:43:41 -07:00
moxiegirl
1eb1083066 Merge pull request #15396 from moxiegirl/my-trust-changes
Docker content trust documentation
2015-08-10 17:24:06 -07:00
Diogo Monica
753bf40f15 Docker content trust documentation
- started from Diogo's work
- updated after discussions with team
- Updating with new key names
- fixing weight
- adding in sandbox
- adding in gliffy for images
- backing out to old names for now
- Copy edit pass
- Entering comments from the content trust team
- Update name of branch and image name
- Removing the last diogo reference
- Updating with Seb's comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-10 17:22:11 -07:00
Jessica Frazelle
e62745922f make windows cross compile static daemon work
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-10 16:16:58 -07:00
moxiegirl
4bfbeb80a6 Merge pull request #15462 from moxiegirl/add-migrate-windows-15454
Updating new vm name, add migrate, and Windows 10 limitation
2015-08-10 15:13:08 -07:00
Mary Anthony
e5c160e1d6 Updating new vm and with migrate
Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-10 13:29:08 -07:00
Alexander Morozov
0bfad28b86 Merge pull request #15422 from kolyshkin/graphtest-fix
graphtest: filter out lost+found dir entry
2015-08-10 12:21:21 -07:00
Tibor Vass
4293861c1e Merge pull request #15452 from albers/completion-storage-driver
Add missing storage drivers to bash completion
2015-08-10 13:25:45 -04:00
Alexander Morozov
6f89a8ee1b Merge pull request #15404 from vbatts/vbatts-dm-zero-sized-field
devicemapper: fix zero-sized field access
2015-08-10 09:16:11 -07:00
Harald Albers
5cee7e8116 Add missing storage drivers to bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-10 08:49:40 -07:00
bin liu
b0a65f93a5 change port number through example context
Signed-off-by: bin liu <liubin0329@gmail.com>
2015-08-10 23:12:03 +08:00
Vincent Batts
f83d05c3be devicemapper: fix zero-sized field access
Fixes: #15279

Due to
7904946eeb
the devices field is dropped.

This solution works on go1.4 and go1.5

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-08-10 11:11:58 -04:00
Brian Goff
51249a3aa0 Merge pull request #15445 from hqhq/hq_use_docker_daemon
Change all docker -d to docker daemon
2015-08-10 10:35:19 -04:00
Brian Goff
2231c5161e Merge pull request #15447 from albers/completion-ps-format
Add `docker ps --format` to bash completion
2015-08-10 10:31:49 -04:00
Kun Zhang
a7c00bc1a2 change exportImage to top-level func
Signed-off-by: Kun Zhang <zkazure@gmail.com>

remove useless FIXME

Signed-off-by: Kun Zhang <zkazure@gmail.com>

fix

Signed-off-by: Kun Zhang <zkazure@gmail.com>
2015-08-10 22:18:57 +08:00
Brian Goff
f078f75bf2 Return better errors from exec
Also cleans up some of the API side of exec.
Was writing the header twice (two different headers).

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-10 09:53:19 -04:00
Harald Albers
c465ba7bde Add docker ps --format to bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-10 06:51:14 -07:00
David Calavera
ba0eba6960 Merge pull request #15426 from BenHall/15425-set-e-install-script-fix
Fix install.sh to handle non-zero exit codes when checking lsb_release
2015-08-10 08:47:19 -05:00
David Calavera
650d5d5d7a Merge pull request #15437 from calavera/remove_wrong_doc
Remove doc that doesn't apply to Journald.
2015-08-10 08:44:08 -05:00
David Calavera
5d54f50751 Merge pull request #15441 from summershrimp/master
fix typo mistake
2015-08-10 08:18:09 -05:00
Qiang Huang
81cc8ebc93 Change all docker -d to docker daemon
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-10 20:48:08 +08:00
Yibai Zhang
fa9e54fbf1 fix typo mistake
Signed-off-by: Yibai Zhang <xm1994@gmail.com>
2015-08-10 16:30:48 +08:00
David Calavera
f1412f2942 Remove doc that doesn't apply to Journald.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-09 22:12:42 -05:00
Qiang Huang
ff97bc79cb Tiny fix for rpm and deb descriptions
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-10 09:34:10 +08:00
moxiegirl
b173314cca Merge pull request #15400 from vincentbernat/doc/memory-cgroup-overhead
doc: add a notice about memory accounting overhead
2015-08-09 16:38:41 -07:00
Sebastiaan van Stijn
8e05a3e30f Merge pull request #15411 from moxiegirl/fix-links-15349
Fixes #15349 too many apis
2015-08-09 20:52:49 +02:00
Kir Kolyshkin
158c536267 graphtest: filter out lost+found dir entry
Ploop graph driver provides its own ext4 filesystem to every
container. It so happens that ext4 root comes with lost+found
directory, causing failures from DriverTestCreateEmpty() and
DriverTestCreateBase() tests on ploop.

While I am not yet ready to submit ploop graph driver for review,
this change looks simple enough to push.

Note that filtering is done without any additional allocations,
as described in https://github.com/golang/go/wiki/SliceTricks.

[v2: added a comment about lost+found]

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
2015-08-09 10:23:36 -07:00
moxiegirl
98ec623a8b Merge pull request #15431 from charleswhchan/patch-4
Cleanup "Automatically start containers" page.
2015-08-09 10:10:42 -07:00
Charles Chan
ad3df49958 Cleanup "Automatically start containers" page.
* Remove old information for Docker 1.2. (See PR #15408)

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-08 17:28:21 -07:00
Charles Chan
316eb2979e Improve/fix "Dockerizing Applications" page.
* Try to update the wording for the notes.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-08 16:13:23 -07:00
Doug Davis
34a17a5de1 Merge pull request #15427 from calavera/fix_overlay_typo
Fix typo in Overlay documentation.
2015-08-08 18:14:38 -04:00
David Calavera
f1f6738d97 Fix typo in Overlay documentation.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-08 15:11:09 -07:00
moxiegirl
00843d18d8 Merge pull request #15312 from yyekhlef/fedora_22_doc
Fedora 22 manual network configuration and ip forwarding
2015-08-08 12:59:11 -07:00
moxiegirl
030df72279 Merge pull request #15408 from ankushagarwal/env-var-docs
Make Environment replacement note less kludgy
2015-08-08 12:56:19 -07:00
moxiegirl
22d539866c Merge pull request #15409 from ankushagarwal/wgetcurl
Make official install instructions use curl instead of wget
2015-08-08 12:51:48 -07:00
Brian Goff
cc73fc03e8 Merge pull request #15421 from maaquib/15418-ps-image-id-too-wide
Truncating image id is docker ps to a length of 12
2015-08-08 07:48:16 -04:00
Brian Goff
764aa1a583 Merge pull request #15074 from coolljt0725/14756_enable_golint_2
Enable golint in pkg/jsonlog and pkg/jsonmessage part of #14756
2015-08-08 07:14:53 -04:00
Ben Hall
3b28bada0a Fix install.sh to handle non-zero exit codes when checking lsb_release
Signed-off-by: Ben Hall <ben@benhall.me.uk>
2015-08-08 11:44:52 +01:00
Arnaud Porterie
bf892dcfcc Merge pull request #15420 from vlajos/typofixes-vlajos-20150807
typofix - https://github.com/vlajos/misspell_fixer
2015-08-08 01:08:49 -07:00
Arnaud Porterie
46f40c34d2 Merge pull request #15424 from coolljt0725/typo_remove_useless_period
Typo: remove unconsistent period in docker info
2015-08-08 01:04:38 -07:00
Lei Jitang
dc2a7ab750 Typo: remove unconsistent period in docker info
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-08 13:06:59 +08:00
Alexander Morozov
03f969d0b3 Merge pull request #15423 from HuKeping/if-else
Remove useless if-else
2015-08-07 21:54:30 -07:00
Hu Keping
c536cec5ea Remove useless if-else
It is better to use simple form without else.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-08-08 20:02:44 +08:00
Lei Jitang
5220f3b535 Enable golint in pkg/jsonlog and pkg/jsonmessage.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-08 11:28:22 +08:00
David Calavera
196aa6d62d Merge pull request #14965 from stefanberger/nohidevols2
Have network files mounted read-only when -v parameter has 'ro' passed
2015-08-07 19:10:59 -07:00
Mohammed Aaqib Ansari
1a2ccf59ee Truncating image id to 12 in docker ps
Signed-off-by: Mohammed Aaqib Ansari <maaquib@gmail.com>
2015-08-07 20:53:48 -04:00
Veres Lajos
5146232723 typofix - https://github.com/vlajos/misspell_fixer
Signed-off-by: Veres Lajos <vlajos@gmail.com>
2015-08-07 23:25:49 +01:00
David Calavera
1e2765dabb Merge pull request #15109 from kevishi/new-config-reader
Added support for creating a cliconfig.ConfigFile via io.Reader
2015-08-07 14:43:55 -07:00
Arnaud Porterie
4f349cdd4b Merge pull request #14719 from icecrime/14662_update_issue_triage
Update issue triaging process
2015-08-07 14:37:31 -07:00
Ankush Agarwal
89ec5399af Remove note from docker version 1.3 on Env variables
Fixes #14734

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-08-07 14:36:06 -07:00
Alexander Morozov
7ac357c795 Merge pull request #15416 from vdemeester/lint-remove-pkgsystemd
Remove pkg/systemd from validate-lint
2015-08-07 14:31:12 -07:00
Arnaud Porterie
c7e1f91a9e Update Windows TP3 registry endpoints
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-08-07 14:03:46 -07:00
Kevin Shi
34679e568a Added support for creating a cliconfig.ConfigFile via io.Reader
Signed-off-by: Kevin Shi <kshi@andrew.cmu.edu>
2015-08-07 14:02:03 -07:00
Vincent Demeester
b8559991dc Remove pkg/systemd from validate-lint
Following #15330, pkg/systemd doesn't exists anymore.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-07 22:26:45 +02:00
David Calavera
5110095310 Merge pull request #15014 from brahmaroutu/lint_daemon_graphdriver_overlay
daemon/graphdriver/overlay/ fix lint errors/warnings
2015-08-07 13:06:56 -07:00
David Calavera
0262d40ba7 Merge pull request #15370 from cpuguy83/better_error_on_client_connect
Better/more specific error messages on connect
2015-08-07 13:00:44 -07:00
Mary Anthony
1d5f479e01 Fixes #15349 too many apis
Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-07 11:37:05 -07:00
Srini Brahmaroutu
de3944219f daemon/graphdriver/overlay/ fix lint errors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-08-07 18:34:59 +00:00
David Calavera
0a0e9701f7 Merge pull request #14897 from WeiZhang555/golint-api-types
fix golint warnings/errors on package api/types/
2015-08-07 10:51:27 -07:00
David Calavera
b1009d1fdd Merge pull request #14828 from brahmaroutu/lint_graph_tags
/graph/tag fix lint errors/warnings
2015-08-07 10:49:26 -07:00
David Calavera
70cae97ee2 Merge pull request #14811 from devx/refactor-clientRequestAttemptLogin
Cleanup: Factor cmdAttempt out of cli.clientRequestAttemptLogin
2015-08-07 10:47:18 -07:00
Brian Goff
510ecbf371 Merge pull request #15407 from calavera/daemon_supported_flag
Add platformSupported flag to enable daemon mode by platform.
2015-08-07 13:45:10 -04:00
Ankush Agarwal
c76fef1791 Make official install instructions use curl instead of wget
YOU GO CURL

Fixes #14650

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-08-07 10:16:09 -07:00
David Calavera
10d30c6457 Add platformSupported flag to enable daemon mode by platform.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-07 09:45:24 -07:00
Doug Davis
38e5764132 Merge pull request #15371 from ankushagarwal/flags
Add test to check if subcommands are sorted
2015-08-07 12:21:00 -04:00
Arnaud Porterie
27fd64c67f Merge pull request #15392 from Microsoft/js/vendor_ansiterm
Update vendored go-ansiterm for Windows console
2015-08-07 09:01:31 -07:00
Arnaud Porterie
a8026239fc Merge pull request #15385 from jfrazelle/gpg-passphrase-rpm-sign-fix
Gpg passphrase rpm sign fix
2015-08-07 08:53:51 -07:00
Brian Goff
81c679acae Merge pull request #15405 from duglin/BFlagDoc
Just add some code doc around the use of AddXXX func to avoid any confusion
2015-08-07 11:47:18 -04:00
Doug Davis
592908c0f5 Just add some code doc around the use of AddXXX func to avoid any confusion
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-08-07 08:07:27 -07:00
Vincent Bernat
56b33e9f27 doc: add a notice about memory accounting overhead
The documentation for Debian and Ubuntu explains how to enable memory
and swap accounting but doesn't explain why it is disabled in the first
place. The problem with those subsystems is that they incurs a
performance hit even when not used at all. Add this explanation.

The provided figure are quite vague. The memory overhead is easily
verifiable. It is for example cited in [RedHat documentation][]. For the
performance hit, maybe the performance is better now, but a few years
ago, it was said to be [between 6 and 15%][].

The goal is that people don't just enable memory accounting if they
don't have a use for it.

[RedHat documentation]: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html
[between 6 and 15%]: https://lwn.net/Articles/517562/

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2015-08-07 14:31:33 +02:00
Ankush Agarwal
4d212f7853 Add test to check if subcommands are sorted
Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-08-07 01:34:21 -07:00
root
ecf528fcb6 Update vendored go-ansiterm for Windows console
This update fixes Windows client console bugs and increases VT100
compatibility. With this change, nano and emacs become usable, and bash
works better.

Signed-off-by: John Starks <jostarks@microsoft.com>
2015-08-06 20:48:02 -07:00
David Calavera
b9094633f3 Merge pull request #15386 from jfrazelle/remove-docker-unconfined-profile
remove docker-unconfined profile we were not using it
2015-08-06 20:06:33 -07:00
Zhang Wei
3d6617ffe7 fix golint warnings/errors on package api/types/
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-08-07 09:43:43 +08:00
Aidan Hobson Sayers
c016d2defd Remove unnecessary func parameter, add mirror endpoint test
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-08-07 02:25:41 +01:00
Stefan Berger
38295d4b48 Have network files mounted read-only when -v parameter has 'ro' passed
Have network files mounted read-only when mounted using the -v
open and -v parameter has 'ro' passed.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-06 20:37:28 -04:00
Sven Dowideit
818190b1ff Merge pull request #15351 from SvenDowideit/remove-hub-v1-documentation
Removing Hub v1 documentation, Hub v2 documentation will come from th…
2015-08-07 10:33:15 +10:00
Arnaud Porterie
04cd81401a Merge pull request #15141 from Microsoft/10662-cp
Windows [TP3] - make docker cp functional
2015-08-06 17:15:09 -07:00
Jessica Frazelle
e542238f2a remove docker-unconfined profile we were not using it and it breaks apparmor on wheezy
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-06 16:51:01 -07:00
David Calavera
6168a992c7 Merge pull request #15381 from calavera/carry_15275
[Carry 15275] Runtime sysinfo check
2015-08-06 16:48:22 -07:00
Sven Dowideit
9f530aba7f remove unused images
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-08-06 23:34:29 +00:00
Jessica Frazelle
203776a40c fix rpm signing so it does not open a tty w question
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-06 16:18:40 -07:00
Sven Dowideit
70092b3ee0 Removing Hub v1 documentation, Hub v2 documentation will come from that repository
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-08-06 23:00:49 +00:00
David Calavera
c2bc637a03 Remove pointers from the SysInfo struct.
Because they can just be values.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-06 15:57:21 -07:00
Antonio Murdaca
4177b0bae0 Add hostConfig check before starting a container
It may happen that host system settings are changed while the daemon is running.
This will cause errors at libcontainer level when starting a container with a
particular hostConfig (e.g. hostConfig with memory swappiness but the memory
cgroup was umounted).
This patch adds an hostConfig check on container start to prevent the daemon
from even calling libcontainer with the wrong configuration as we're already
doing on container's creation).

Signed-off-by: Antonio Murdaca <runcom@linux.com>
(cherry picked from commit 0d2628cdf1)
2015-08-06 15:46:10 -07:00
Antonio Murdaca
b2d06b6fba Move sysinfo out of daemon struct
sysinfo struct was initialized at daemon startup to make sure
kernel configs such as device cgroup are present and error out if not.
The struct was embedded in daemon struct making impossible to detect
if some system config is changed at daemon runtime (i.e. someone
umount the memory cgroup). This leads to container's starts failure if
some config is changed at daemon runtime.
This patch moves sysinfo out of daemon and initilize and check it when
needed (daemon startup, containers creation, contaienrs startup for
now).

Signed-off-by: Antonio Murdaca <runcom@linux.com>
(cherry picked from commit 472b6f66e0)
2015-08-06 15:46:09 -07:00
David Calavera
6b341f2b9d Merge pull request #15378 from tiborvass/dont-push-to-mirror
registry: Do not push to mirrors
2015-08-06 15:30:06 -07:00
David Calavera
fe6c0e44be Merge pull request #15376 from aboch/ep
Vendoring libnetwork bd3eecc96f3c05a4acef1bedcf74397bc6850d22
2015-08-06 15:14:01 -07:00
Jessica Frazelle
aadb3407d3 to not keep old debs for experimental
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-06 14:49:05 -07:00
Tibor Vass
b899977ee2 registry: Do not push to mirrors
This patch splits LookupEndpoints into LookupPullEndpoints and
LookupPushEndpoints so that mirrors added with --registry-mirror are
skipped in the list returned by LookupPushEndpoints.

Fixes https://github.com/docker/distribution/issues/823

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-08-06 17:41:59 -04:00
David Calavera
9ce0a20c01 Merge pull request #15320 from hqhq/hq_add_cgroup_check
Check sysinfo for Cpuset cpu.shares and blkio
2015-08-06 14:23:37 -07:00
Alessandro Boch
e35a5ae463 Vendoring libnetwork bd3eecc96f3c05a4acef1bedcf74397bc6850d22
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-08-06 14:23:25 -07:00
David Calavera
287e8167f2 Merge pull request #15350 from jfrazelle/revert-apparmor-stuff
revert apparmor changes back to how it was in 1.7.1
2015-08-06 13:57:55 -07:00
Brian Goff
9994a35b5d Better/more specific error messages on connect
Closes #15309

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-06 16:41:37 -04:00
Jessica Frazelle
ed248207d7 revert apparmor changes back to how it was in 1.7.1, but keep tests
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-06 12:49:25 -07:00
Arnaud Porterie
612a1fb4ab Documenting Docker release process
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-08-06 11:42:27 -07:00
John Howard
2a237615c0 Windows - make docker cp functional
Signed-off-by: John Howard <jhoward@microsoft.com>

Conflicts:
	pkg/archive/copy.go

Make it compile

Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-06 11:22:38 -07:00
Jessie Frazelle
c471b7aba5 Merge pull request #15361 from hqhq/hq_use_docker_daemon
Use docker daemon for intergation test daemon start
2015-08-06 10:40:49 -07:00
David Calavera
33ed76b0f7 Merge pull request #15369 from coolljt0725/adapt_container_settings_after_verify
Adapt container settings after verify platform container settings.
2015-08-06 10:16:54 -07:00
Brian Goff
4640c4abe8 Merge pull request #15240 from vdemeester/cliconfig-test-coverage
Add unit test (coverage) to package cliconfig
2015-08-06 13:16:04 -04:00
Alexander Morozov
f6106fc3ce Merge pull request #15330 from runcom/refactor-pkg-systemd
Vendor go-systemd daemon and refactor pkg systemd
2015-08-06 10:02:04 -07:00
Vincent Demeester
73ad1b2674 Add unit test to pkg cliconfig (and thus coverage)
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-06 18:02:25 +02:00
Tibor Vass
57c8f4244b Merge pull request #15213 from Microsoft/10662-cliwindowsdaemon
Windows: Test infrastructure plumbing
2015-08-06 11:25:22 -04:00
Antonio Murdaca
931645c460 Remove pkg/systemd
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-08-06 14:35:00 +02:00
Antonio Murdaca
61c9f4db41 Vendor coreos/go-systemd/daemon
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-08-06 14:34:40 +02:00
Lei Jitang
08b3dc8d9f Adapt container settings after verify platform container settings.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-06 19:56:51 +08:00
Jenny Gebske
a12a781b5e [docs] Add instruction to start docker on Ubuntu
I just tried the installation but docker didn't start automatically. So I had to execute the newly added command in order to get the hello-world verification running.

Signed-off-by: Jenny Gebske <jennifer@gebske.de>
2015-08-06 13:55:32 +02:00
Rob Vesse
f8387f6904 Fix silent failure in RedHat sysvinit script
The docker script in contrib/init/sysvinit-redhat will fail silently on
a start if Docker is not installed in the default /usr/bin/ location.
While a non-zero exit code is returned the user will receive no visible
indication (i.e. error message) as to why Docker was not started.

This commit changes the logic so that in the case that the docker
executable is not found in the expected location or the user does not
have execute permissions on the executable appropriate error messages
are now shown to the user as well as exiting with a non-zero exit code

Signed-off-by: Rob Vesse <rvesse@dotnetrdf.org>
2015-08-06 12:07:38 +01:00
Qiang Huang
b8a8ac9b58 Use docker daemon for intergation test daemon start
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-06 16:20:57 +08:00
Sebastiaan van Stijn
ad5355151c Merge pull request #15335 from moxiegirl/boot2docker-remove-refs
Boot2Docker Cleanup
2015-08-06 08:48:57 +02:00
Brian Goff
5b289cd1aa Merge pull request #15313 from Microsoft/10662-fixcertdir
Windows: [TP3] Fix certificate directory for registry
2015-08-05 22:59:51 -04:00
Mary Anthony
cc375a1e48 - Remove references to sudo in basics.md; see sudo instructions top of file
- Removing references to Boot2Docker replacing with Docker Machine
- Removing sudo warnings in instances where appropriate (no sudo in file)
- Updating with comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-05 19:45:43 -07:00
Tibor Vass
3273209a9c Merge pull request #15075 from hqhq/hq_move_cpushare_change
Cleanup: Merge adjustCpuShares to adoptContainerSettings
2015-08-05 21:53:58 -04:00
Alexander Morozov
263220fa30 Merge pull request #15354 from coolljt0725/remove_redundant_ip_forward_check
Remove redundant ip_forward check
2015-08-05 18:52:44 -07:00
Alexander Morozov
af9dc3050b Merge pull request #15353 from jlhawn/fixing-concurrency-trust
[graph] Use a pipe for downloads to write progress
2015-08-05 18:52:27 -07:00
Antonio Murdaca
6805241fe2 Merge pull request #15352 from icecrime/fix_pause_tests
Use busybox in 'pause' tests
2015-08-06 03:14:44 +02:00
Josh Hawn
d80c4244d3 [graph] Use a pipe for downloads to write progress
The process of pulling an image spawns a new goroutine for each layer in the
image manifest. If any of these downloads fail we would stop everything and
return the error, even though other goroutines would still be running and
writing output through a progress reader which is attached to an http response
writer. Since the request handler had already returned from the first error,
the http server panics when one of these download goroutines makes a write to
the response writer buffer.

This patch prevents this crash in the daemon http server by waiting for all of
the download goroutines to complete, even if one of them fails. Only then does
it return, terminating the request handler.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-08-05 18:13:39 -07:00
Lei
6a0050d0f0 Remove redundant ip_forward check
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-06 09:06:31 +08:00
Jessie Frazelle
efe4f0dfa9 Merge pull request #15119 from xnox/sdnotify
systemd: set service type to notify.
2015-08-05 17:42:58 -07:00
Arnaud Porterie
3529e3dac7 Use busybox in 'pause' tests
Don't assume that any random image will have 'top' and explicitely use
the busybox image for testing.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-08-05 17:35:20 -07:00
Qiang Huang
e0af23dc18 Cleanup: Merge adjustCPUShares to adoptContainerSettings
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-06 08:15:14 +08:00
Antonio Murdaca
044c4e00a0 Merge pull request #15334 from Mashimiao/change-name-check-for-image-delete
image_delete: move name check first
2015-08-06 02:07:34 +02:00
Tibor Vass
8534090476 Merge pull request #15252 from coolljt0725/14765_enable_golint_3
Enable golint in pkg/archive
2015-08-05 19:27:48 -04:00
Tibor Vass
d93eca2250 Merge pull request #15345 from calavera/fix_ps_format_error
Fail fail when the ps format template is invalid.
2015-08-05 19:19:33 -04:00
Jessie Frazelle
a8e67849b9 Merge pull request #15001 from fmoliveira/master
Adding support for elementary OS distro in install script.
2015-08-05 16:14:47 -07:00
John Howard
da44d0fccb Windows: Test infrastructure plumbing
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-05 14:34:32 -07:00
Sebastiaan van Stijn
565535073f Merge pull request #15346 from Microsoft/minortypo
Minor typo in test-and-docs.md
2015-08-05 22:27:18 +02:00
John Howard
831b00303f Windows: Fix certificate directory for registry
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-05 13:25:41 -07:00
John Howard
b5eea8f33b Minor typo in test-and-docs.md
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-05 13:22:39 -07:00
David Calavera
3d3db0d4af Fail fail when the ps format template is invalid.
Fixes error continuing execution when the parsing fails.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-05 13:22:24 -07:00
Alexander Morozov
aec46ac0b2 Merge pull request #15336 from Microsoft/fixwindowsci
Windows: Fix for CI
2015-08-05 13:11:59 -07:00
John Howard
ac120567e8 Windows: Workaround for CI
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-05 11:20:30 -07:00
Srini Brahmaroutu
d9b261221a /graph/tag fix lint errors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-08-05 17:46:41 +00:00
Patrick Hemmer
08a867b82f add documentation clarifying behavior of VOLUME instruction
Signed-off-by: Patrick Hemmer <patrick.hemmer@gmail.com>
2015-08-05 12:34:31 -04:00
Ma Shimiao
cb2def9f90 image_delete: move name check first
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-08-06 00:27:45 +08:00
moxiegirl
6206cbe193 Merge pull request #15305 from vdemeester/contribution-docs-updates
Update some contributions documentations
2015-08-05 08:46:53 -07:00
Qiang Huang
b7599d58cb Check sysinfo for Cpuset cpu.shares and blkio
Carried: #14015

If kernel is compiled with CONFIG_FAIR_GROUP_SCHED disabled cpu.shares
doesn't exist.
If kernel is compiled with CONFIG_CFQ_GROUP_IOSCHED disabled blkio.weight
doesn't exist.
If kernel is compiled with CONFIG_CPUSETS disabled cpuset won't be
supported.

We need to handle these conditions by checking sysinfo and verifying them.

Signed-off-by: Zefan Li <lizefan@huawei.com>
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-05 22:35:18 +08:00
Doug Davis
a15b676ee1 Merge pull request #15318 from Microsoft/10662-fixmasteragain
Windows: Fix docker/master daemon compile again
2015-08-05 08:32:12 -04:00
Shijiang Wei
bb161b7789 move the assertions outside of the goroutine
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-08-05 13:59:31 +08:00
John Howard
67e670b79f Windows: Fix docker/master daemon compile again
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-04 19:32:05 -07:00
Arnaud Porterie
c9a28b4951 Update issue triaging process
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-08-04 19:27:25 -07:00
Arnaud Porterie
7374852be9 Merge pull request #14921 from aaronlehmann/int64
Fix uses of "int" where "int64" should be used instead
2015-08-04 19:16:13 -07:00
Arnaud Porterie
b985dca578 Merge pull request #15241 from vdemeester/api-test-coverage
Add more unit tests (coverage) to package api
2015-08-04 18:41:35 -07:00
Arnaud Porterie
2c3cd949c8 Merge pull request #15269 from brahmaroutu/lint_daemon_graphdriver_zfs
daemon/graphdriver/zfs fix lint errrors/warnings
2015-08-04 18:41:02 -07:00
Arnaud Porterie
7b077c16d6 Merge pull request #15302 from LK4D4/update_libcontainer
Update runc to v0.0.3
2015-08-04 18:40:32 -07:00
Filipe Oliveira
f618de1543 Adding support to forked distributions in installer script.
Signed-off-by: Filipe Oliveira <contato@fmoliveira.com.br>
2015-08-04 21:33:48 -03:00
Youcef YEKHLEF
35aebdc803 Add fedora 22 install docs warning about systemd-network
With systemd in version 219 IP forwarding should be forced in the interface configuration file.

Signed-off-by: yyekhlef <yyekhlef@gmail.com>
2015-08-05 01:33:13 +02:00
Youcef YEKHLEF
f224a9f3d6 Add fedora 22 install docs warning about systemd-network
Following @cles commit #6bd15a68c for Arch

Signed-off-by: yyekhlef <yyekhlef@gmail.com>
2015-08-05 01:32:33 +02:00
David Calavera
58121c59ff Merge pull request #15304 from jfrazelle/only-sign-files-changes-within-last-2-hours
only sign the files that were changed in the last 2 hours
2015-08-04 14:16:20 -07:00
Tibor Vass
63940145a4 Merge pull request #15303 from Microsoft/10662-fixdaemonbuild
Windows: Daemon compile was broken
2015-08-04 16:48:11 -04:00
Jessica Frazelle
efd47654dd only sign the files that were changed in the last 2 hours
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-04 13:16:57 -07:00
Sebastiaan van Stijn
d4d3504122 Merge pull request #15301 from jfrazelle/fix-systemd-docs
update systemd article to reference dropin file
2015-08-04 22:12:36 +02:00
Vincent Demeester
b304920021 Update some contributions documentations
- Add a golint entry to coding-style.md

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-04 22:04:11 +02:00
John Howard
fe8cfc5b39 Windows: Daemon compile was broken
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-08-04 12:42:41 -07:00
Antonio Murdaca
23dab01ed2 Merge pull request #14840 from HuKeping/golint-pkg-sysinfo
Fix golint warning on pkg/sysinfo
2015-08-04 20:57:39 +02:00
Srini Brahmaroutu
e27c904b99 daemon/graphdriver/zfs fix lint errrors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-08-04 18:30:55 +00:00
Jessica Frazelle
35e7a7c3e2 update systemd article to reference dropin file
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-08-04 11:03:43 -07:00
Vincent Demeester
f7e43d45b3 Add more unit tests (thus coverage) to pkg api
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-04 19:51:02 +02:00
Alexander Morozov
a4ddf0e362 Update runc to v0.0.3
This fixes criu behavior with mounted cgroups.
It includes also update of go-systemd dependecy.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-04 10:47:59 -07:00
Sebastiaan van Stijn
0f49141150 Merge pull request #15300 from l0rd/test-and-docs-fix
Removed `docs-test` from Makefile rules list
2015-08-04 19:41:48 +02:00
Jessie Frazelle
c4b9884ab5 Merge pull request #15260 from albers/completion-config
Add `--config` to bash completion
2015-08-04 10:14:15 -07:00
Arnaud Porterie
2c6fa8375b Merge pull request #15291 from duglin/FixInspectExecId
Another try to fix InspectExecID
2015-08-04 10:13:42 -07:00
Doug Davis
fe6a7c8e57 Another try to fix InspectExecID
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-08-04 09:21:41 -07:00
moxiegirl
c5e0ea02f7 Merge pull request #15297 from lerignoux/15296-updating-docs-README-new-md-file
Removing deprecated notice to update mkdocs.yml in docs README
2015-08-04 09:04:21 -07:00
Mario Loriedo
5237670b5b Removed docs-test from Makefile rules list
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2015-08-04 15:57:42 +00:00
moxiegirl
be07c53d2d Merge pull request #15259 from sallyom/manFixes
make man/docker.1.md consistent with docker --help
2015-08-04 08:34:52 -07:00
Laurent Erignoux
ac1794d3e2 Removing deprecated notice to update mkdocs.yml in docs README
Signed-off-by: Laurent Erignoux <lerignoux@gmail.com>
2015-08-04 15:15:46 +02:00
Sven Dowideit
bc12094251 Merge pull request #15236 from charleswhchan/patch-1
Fix #15212: Add "Label" key to output of /containers/json
2015-08-04 21:48:39 +10:00
Sebastiaan van Stijn
c26c1eb8ba Merge pull request #15278 from campoy/14558-break-long-command
Break long command to avoid cropping
2015-08-04 08:27:55 +02:00
Lei Jitang
ba332b7d12 Enable golint in pkg/arcive
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-04 09:52:54 +08:00
Francesc Campoy
16b5b6e49f Break long command to avoid cropping
Fixes docker/docker#14558

Signed-off-by: Francesc Campoy <campoy@google.com>
2015-08-03 18:36:32 -07:00
Charles Chan
b245bcd458 Fix #15212: Add "Labels" key to output of /containers/json
Applied retroactively from API v1.18 - v1.21.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-03 18:11:33 -07:00
Jessie Frazelle
dff25c9e46 Merge pull request #15277 from calavera/check_apparmor_docker_contrib
Include apparmor/docker only when it exists.
2015-08-03 17:36:23 -07:00
David Calavera
408cffac94 Include apparmor/docker only when it exists.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-03 17:34:04 -07:00
David Calavera
d7c2fe0f20 Merge pull request #15276 from aboch/24
Fix preallocated bridge networks
2015-08-03 17:21:03 -07:00
David Calavera
85a0f56fe7 Add more amazing women to the names generator.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-03 17:19:36 -07:00
Alessandro Boch
dab0447ae0 Fix preallocated bridge networks
- Because of a bug, all the statically preallocated
  bridge networks have /24 as network mask.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-08-03 16:37:01 -07:00
Arnaud Porterie
ff3adb135d Merge pull request #15114 from hqhq/hq_exedriver_win_lint
Fix golint warnings for daemon/execdriver/windows
2015-08-03 16:28:47 -07:00
Jessie Frazelle
8d3bc4b98c Merge pull request #15261 from LK4D4/fix_fluentd_vendor
Fix vendoring for fluent-logger-golang
2015-08-03 16:13:05 -07:00
David Calavera
40bd10dc95 Merge pull request #15273 from calavera/remove_new_key_path_on_error
Remove key file when migration fails.
2015-08-03 16:07:22 -07:00
David Calavera
dfb63b0425 Merge pull request #15255 from crosbymichael/lxc-dep
Add LXC built in support deprecation notice
2015-08-03 15:36:43 -07:00
David Calavera
07c45e499d Remove key file when migration fails.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-08-03 15:29:54 -07:00
Michael Crosby
06f6c0c7e5 Add LXC built in support deprecation notice
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-08-03 14:54:42 -07:00
David Calavera
e84a938f2e Merge pull request #15222 from jlhawn/error_on_v2pull_hash_mismatch
[Re]Enforce manifest/layer digest verification
2015-08-03 13:02:52 -07:00
Sally O'Malley
f3bea61c80 make man/docker.1.md consistent with docker --help
"Options:" listed when you run "docker --help" and "docker daemon
--help" do not match the options listed in "man/docker.1.md".  This PR
makes 'docker --help', 'docker daemon --help' and 'man docker' consistent.
Also 2 typo fixes.

Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-08-03 15:12:33 -04:00
David Calavera
00c1874b8e Merge pull request #15092 from brahmaroutu/lint_daemon_graphdriver_vfs
daemon/graphdriver/vfs fix lint errors/warnings
2015-08-03 11:50:05 -07:00
Josh Hawn
de52a3bcaa [graph] Enforce manifest/layer digest verification
We noticed a regression since the 1.7.1 patch after some refactoring. This
patch corrects the behavior and adds integration tests for modified manifest
and rootfs layer blobs.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-08-03 11:41:23 -07:00
Tibor Vass
102724700b Merge pull request #13698 from cpuguy83/split_api_routes_from_setup
Move api handlers to separate file
2015-08-03 14:03:15 -04:00
Srini Brahmaroutu
3e7f9c636a daemon/graphdriver/vfs fix lint errors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-08-03 17:46:42 +00:00
Alexander Morozov
ef7bb7242f Fix vendoring for fluent-logger-golang
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-08-03 10:23:50 -07:00
Harald Albers
b898111d3a Add --config to bash completion
The custom configuration will also be used in docker invocations made
by the completion script itself, just like `-H`.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-03 19:03:43 +02:00
Brian Goff
b9aaf8c758 Merge pull request #15257 from sallyom/manTypo
Typo fix: man/docker-tag.1.md
2015-08-03 12:53:04 -04:00
Sally O'Malley
70ac38025c Typo fix: man/docker-tag.1.md
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-08-03 12:51:10 -04:00
David Calavera
637cf3a4b7 Merge pull request #15233 from srust/add_blockbridge_volume_plugin
Docs: Add Blockbridge volume plugin
2015-08-03 09:46:33 -07:00
David Calavera
137995cb94 Merge pull request #15229 from albers/completion-inspect-filter-by-type
Filter completions of `docker inspect` by `--type`
2015-08-03 09:45:21 -07:00
Arnaud Porterie
67bca8ab8a Merge pull request #15215 from dmcgowan/notary-update
Notary updates
2015-08-03 09:06:09 -07:00
moxiegirl
1367bb41fc Merge pull request #15249 from Evalle/15198-fix-path-to-routing-menu
Fix wrong path to YaST's 'Routing' menu for openSUSE Tumbleweed
2015-08-03 09:04:10 -07:00
moxiegirl
cc5cd65e6d Merge pull request #15248 from vdemeester/userguide-fixes
Fix "Getting started" link in userguide
2015-08-03 09:00:18 -07:00
moxiegirl
d136f5e027 Merge pull request #15102 from moxiegirl/fix-run-headings
Several fixes in formatting
2015-08-03 08:46:15 -07:00
Mary Anthony
70aa63b92a Several fixes in formatting
- fixing headings in run.md
- creating a table for readability
- adding index for logging
- moving logging overview into logging
- Updating with Seb's comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-08-03 08:45:25 -07:00
Alexander Morozov
69f3def58d Merge pull request #15225 from runcom/add-restart-always-test-on-daemon-restart
test: daemon restart with containers running with restart always policy manually stopped
2015-08-03 08:40:44 -07:00
Alexander Morozov
3f23ae663b Merge pull request #15244 from hqhq/hq_remove_closeOnce
Remove unused variable
2015-08-03 08:39:43 -07:00
Brian Goff
1a77580030 Split API handlers into domain specific files
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-03 11:12:44 -04:00
evalle
5f1593c7b8 Fix wrong path to YaST's 'Routing' menu for openSUSE Tumbleweed
Signed-off-by: evalle <shmarnev@gmail.com>
2015-08-03 12:01:25 +02:00
Vincent Demeester
5d57f56362 Fix "Getting started" link in userguide
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-03 11:48:59 +02:00
Brian Goff
dce1488ae5 Merge pull request #15013 from coolljt0725/14756_enbale_golint_1
Enable golint, part of #14756
2015-08-02 22:14:18 -04:00
Qiang Huang
f9b5eb0cac Fix golint warnings for daemon/execdriver/windows
Addresses: #14756

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-03 09:54:02 +08:00
Stephen Rust
8b15b7958a Docs: Add Blockbridge volume plugin
Signed-off-by: Stephen Rust <srust@blockbridge.com>
2015-08-02 21:48:46 -04:00
Lei Jitang
27a8f9937e Enable golint part of #14756
pkg/broadcastwriter
pkg/graphdb
pkg/httputils
pkg/ioutils

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-08-03 09:45:05 +08:00
Qiang Huang
f5557f4f43 Remove unused variable
Introduced by #15209 unintentionally.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-08-03 09:14:52 +08:00
Sebastiaan van Stijn
05529ab584 Merge pull request #15235 from charleswhchan/patch-1
Update docker_remote_api.md
2015-08-02 19:17:22 +02:00
Charles Chan
084d464081 Update docker_remote_api.md
Minor fixes:
* v1.19: GET /containers/(id)/logs - add missing '/'
* v1.18: Break up POST /containers/create and POST /containers/(id)/start into separate lines.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-08-02 10:11:18 -07:00
Brian Goff
ef24b8e485 Merge pull request #15181 from Microsoft/10662-registermountpoints
Windows: Tidy/godoc volume*.go
2015-08-02 13:04:48 -04:00
Antonio Murdaca
af59c80b4a test: daemon restart with containers running with restart always policy
manually stopped

If a container is running with a restart policy of always and it's
manually stopped, then on daemon restart it will be running.

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-08-02 11:14:01 +02:00
Tibor Vass
bf384a3e4f Merge pull request #15226 from vdemeester/3745-remote-TEST-env-test-from-daemon
Remove daemon check for TEST
2015-08-01 13:10:02 -04:00
moxiegirl
7feb176233 Merge pull request #14539 from nhocki/improve-docs-for-execstart
Adding information about ExecStart configuration for systemd
2015-08-01 09:23:59 -07:00
Alexander Morozov
d080d262b3 Merge pull request #15209 from cpuguy83/15199_fix_tailing_more_than_available
Ensure reader position is at the end after tailing
2015-08-01 09:02:44 -07:00
Harald Albers
69cde5a302 Filter completions of docker inspect by --type
Completion now filters the images and containers by given
`--type`.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-08-01 08:36:00 -07:00
Vincent Demeester
9af6b57a5d Remove daemon check for TEST
Closes #3745

I think DEBUG is still used (might be wrong though) and according to
https://github.com/docker/docker/issues/3745#issuecomment-76035979 there
is now nothing in integration (all has been migrated to integration-cli)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-08-01 15:13:38 +02:00
Brian Goff
f9a2b3650b Merge pull request #15220 from maaquib/15217-skip-TestRunCapAddSYSTIME-on-lxc
Skipping test TestRunCapAddSYSTIME on lxc
2015-08-01 09:04:16 -04:00
Brian Goff
c57faa91e2 Ensure reader position is at the end after tailing
After tailing a file, if the number of lines requested is > the number
of lines in the file, this would cause a json unmarshalling error to
occur when we later try to go follow the file.
So brute force set it to the end if any tailing occurred.

There is potential that there could be some missing log messages if logs
are being written very quickly, however I was not able to make this
happen even with `while true; do echo hello; done`, so this is probably
acceptable.

While testing this I also found a panic in LogWatcher.Close can be
called twice due to a race. Fix channel close to only close when there
has been no signal to the channel.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-08-01 08:00:28 -04:00
Hu Keping
7390cc5300 Fix golint warning on pkg/sysinfo
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-08-01 18:24:49 +08:00
Nicolás Hock Isaza
6b44c05205 Adding information about ExecStart configuration for systemsd
Closes #14491

Signed-off-by: Nicolás Hock Isaza <nhocki@gmail.com>
2015-07-31 21:28:30 -05:00
Mohammed Aaqib Ansari
84c9a6684f skipping test TestRunCapAddSYSTIME on lxc
Signed-off-by: Mohammed Aaqib Ansari <maaquib@gmail.com>
2015-07-31 22:07:40 -04:00
Derek McGowan
6ce76cd9ed Updated to use latest version of notary
Update UX to use aliases for root, snapshot, and target key

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-31 17:32:35 -07:00
Derek McGowan
d594c6fcd8 Vendor latest notary
Use updated notary to pick up updates from security review

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-31 17:32:35 -07:00
Aaron Lehmann
1f61084d83 Fix uses of "int" where "int64" should be used instead
Some structures use int for sizes and UNIX timestamps. On some
platforms, int is 32 bits, so this can lead to the year 2038 issues and
overflows when dealing with large containers or layers.

Consistently use int64 to store sizes and UNIX timestamps in
api/types/types.go. Update related to code accordingly (i.e.
strconv.FormatInt instead of strconv.Itoa).

Use int64 in progressreader package to avoid integer overflow when
dealing with large quantities. Update related code accordingly.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-31 16:31:40 -07:00
David Calavera
8f2dca5386 Merge pull request #15144 from aaronlehmann/graph-cleanup
Documentation improvements and code cleanups for graph package
2015-07-31 15:11:34 -07:00
Sebastiaan van Stijn
bb2039c925 Merge pull request #14960 from MHBauer/faq-links
Fix FAQ links
2015-08-01 00:05:53 +02:00
David Calavera
3e0b0c59e6 Merge pull request #15207 from calavera/fix_index_locking
Remove read index that causes dead lock.
2015-07-31 14:55:00 -07:00
Alexander Morozov
6fbacc6edb Merge pull request #15005 from WeiZhang555/stats-block
Docker stats: display Block IO stats
2015-07-31 13:59:55 -07:00
David Calavera
5ed84009b3 Remove read index that causes dead lock.
Let the iterator to lock the index when it needs it.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-31 13:53:17 -07:00
John Howard
72c04ab87c Tidy volume*.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-31 13:13:40 -07:00
Tianon Gravi
ce99a462f8 Merge pull request #15208 from albers/daemon-completion-fixes
Fixes to bash completion for docker daemon
2015-07-31 11:56:11 -07:00
Harald Albers
aab82c5c22 Fix completion of commands after a global option with arg
Without this fix, `docker -l info ` would not complete the commands.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-31 20:16:33 +02:00
Harald Albers
e0dad9a153 Add completion of global options to docker daemon
It's a bit confusing: the "global options" are valid as "global options"
for all client commands (i.e. all but daemon).
Example: `docker --log-level info run`

For `docker daemon`, these "global options" are only valid as "command
options".
Example: `docker daemon --log-level info`

As command completion cannot tell which command the user is going to
type next, completion for the daemon command has to allow illegal
syntaxes like
`docker --log-level info daemon --log-level info`

Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-31 20:06:45 +02:00
Michael Crosby
0659ceb0d0 Merge pull request #15201 from moul/names-generator-bin
pkg/namesgenerator: add a 'names-generator' binary
2015-07-31 13:09:02 -04:00
David Calavera
9e9f3aa36b Merge pull request #15185 from aboch/vnd_lbn_1.8
Vendoring libnetwork 31139cdb513aea5ad1ed08b60d4350a68b4c96db
2015-07-31 08:58:41 -07:00
Brian Goff
5276655b69 Merge pull request #14463 from sunyuan3/TestRunCapAddSYSTIME
Add TestRunCapAddSYSTIME test case.
2015-07-31 09:40:12 -04:00
Zhang Wei
6a4ac63aaa Docker stats: display Block IO stats
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-07-31 21:26:32 +08:00
Tibor Vass
1032202b88 Merge pull request #15193 from jfrazelle/fix-lxc
fix lxc test machine
2015-07-31 09:13:52 -04:00
Brian Goff
468bc7d819 Merge pull request #15191 from duglin/TlsTest
Add a test to make sure that --tlsverify=false turns on tls in daemon
2015-07-31 08:54:35 -04:00
Manfred Touron
0800650665 pkg/namesgenerator: add a 'names-generator' binary
Signed-off-by: Manfred Touron <m@42.am>
2015-07-31 13:07:40 +02:00
Yuan Sun
a5e2fa2b2e Add TestRunCapAddSYSTIME test case.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-07-31 12:53:46 +08:00
Jessica Frazelle
f12e18d7ef fix lxc test machine
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-07-30 21:30:47 -07:00
Doug Davis
5ced3ab323 Add a test to make sure that --tlsverify=false turn on tls in daemon
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-30 21:21:24 -07:00
Tibor Vass
500a314713 Merge pull request #15179 from Microsoft/10662-yetmoretodos
Windows: Tidy verifyContainerSettings
2015-07-30 23:58:16 -04:00
Tibor Vass
b48d744b07 Merge pull request #15175 from MHBauer/cliconfig-lint
additional lint fix and enable linter for cliconfig package
2015-07-30 23:07:19 -04:00
Tibor Vass
ad96fc310b Merge pull request #14970 from tiborvass/windows-registry-endpoint
registry: Change default endpoint on windows to a windows-specific one
2015-07-30 22:41:34 -04:00
Tibor Vass
9a9a12b351 Merge pull request #15123 from ewindisch/seed-pkgrand-cryptorand
Prefer crypto rand seed for pkg/rand
2015-07-30 22:41:17 -04:00
Tibor Vass
8d2739df98 Merge pull request #15146 from kolyshkin/mkdirall
Simplify and fix MkdirAll usage
2015-07-30 22:40:57 -04:00
Tibor Vass
0b089bc7d5 Merge pull request #15186 from brahmaroutu/btrfs_test_failure
fix unit test breakage due to lint changes
2015-07-30 22:39:40 -04:00
Stephen Day
e49ab10556 Merge pull request #15190 from tiborvass/bump-distrib
Update distribution to fix uuid.Loggerf initialization logic
2015-07-30 19:19:36 -07:00
Tibor Vass
e496d40107 Merge pull request #15189 from jrabbit/fix-restart-policy-link
Docs: Actually link to restart policy information
2015-07-30 21:44:16 -04:00
Tibor Vass
3face3c521 Use default no-op uuid.Loggerf for client cli
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-30 21:19:51 -04:00
Tibor Vass
084af30f39 Add missing LICENSE files for docker/notary
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-30 21:19:18 -04:00
jrabbit
d2cd142ce1 Actually link to the information
Signed-off-by: jrabbit <jackjrabbit@gmail.com>
2015-07-30 21:16:45 -04:00
Tibor Vass
0cce1fb37f Vendor docker/distribution to 7dc8d4a26b689bd4892f2f2322dbce0b7119d686
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-30 21:14:39 -04:00
Alessandro Boch
4964ab0821 Add test code to cover issue #14859
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-07-30 17:37:11 -07:00
Alessandro Boch
91274625ba Vendoring libnetwork 31139cdb513aea5ad1ed08b60d4350a68b4c96db
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-07-30 17:28:40 -07:00
Srini Brahmaroutu
22873eae31 fix unit test breakage due to lint changes
Addresses #14756

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-31 00:22:28 +00:00
David Calavera
ffeec2bdd1 Merge pull request #15184 from jfrazelle/fix-install
fix regression
2015-07-30 16:59:13 -07:00
Tibor Vass
e2b2c2ae81 Merge pull request #15180 from tiborvass/fix-v1-mirror-fallback
registry: allow fallback on unknown errors
2015-07-30 19:54:48 -04:00
Phil Estes
044b56e94f Merge pull request #15174 from Microsoft/10662-top
Windows: Top (non-)implementation
2015-07-30 19:49:15 -04:00
Jessica Frazelle
b0af811272 fix regression
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-07-30 16:38:51 -07:00
Eric Windisch
f8f4deb0b2 Merge pull request #15154 from stefanberger/apparmor-engine
contrib: Extend engine apparmor profile for tools needed by devicemapper
2015-07-30 19:22:28 -04:00
Jessie Frazelle
5b65284649 Merge pull request #15103 from Djelibeybi/fix14924
Seperate lsb_dist detection from dist_version detection
2015-07-30 16:21:35 -07:00
Tibor Vass
a21ba12f4e registry: allow fallback on unknown errors
This patch fixes a bug where a user specifies a v1 mirror for
--registry-mirror and pull an image from the Hub.

It used to not fallback because of an unexpected error returned when
trying to JSON marshal nginx output.

We now ensure that any unexpected error falls back to the next endpoint
in the list.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-30 19:03:38 -04:00
John Howard
3fea79bfd8 Windows: Address more todos
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-30 15:28:11 -07:00
David Calavera
c1e2e4d9c6 Merge pull request #15176 from Microsoft/10662-removesometodos
Windows: Remove some TODOs
2015-07-30 15:26:06 -07:00
David Calavera
86a6e4914f Merge pull request #14922 from rhatdan/netlabel
Label /etc/resolv.conf, /etc/hosts ... correctly in shared network co…
2015-07-30 15:03:49 -07:00
John Howard
f50b916ca6 Windows: Remove some TODOs
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-30 14:46:51 -07:00
Morgan Bauer
e809919e26 lint fix and enable linter for cliconfig package
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-07-30 14:37:37 -07:00
Tibor Vass
5c9e5bfb0f Merge pull request #15106 from jgkamat/links
Fix a couple broken links
2015-07-30 17:28:11 -04:00
Aaron Lehmann
d4836cd7ec Documentation improvements and code cleanups for graph package
Expand the godoc documentation for the graph package.

Centralize DefaultTag in the graphs/tag package instead of defining it
twice.

Remove some unnecessary "config" structs that are only used to pass
a few parameters to a function.

Simplify the GetParentsSize function - there's no reason for it to take
an accumulator argument.

Unexport some functions that aren't needed outside the package.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-30 14:27:10 -07:00
John Howard
0a9ec21818 Windows: Top (non-)implementation
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-30 14:25:15 -07:00
Tibor Vass
41d9270a40 Merge pull request #15170 from runcom/i-like-cleaning
Remove HostConfig,SetHostConfig from daemon.container
2015-07-30 17:23:58 -04:00
Alexander Morozov
8505183252 Merge pull request #14950 from ottok/master
Multiple fixes to 'docker stats' output
2015-07-30 14:02:35 -07:00
David Calavera
030f61df3d Merge pull request #14885 from jlhawn/fix_cp_symlink
Fix copying of symlinks in containers
2015-07-30 13:42:40 -07:00
Alexander Morozov
9431acbc0a Merge pull request #15169 from Microsoft/10662-tidydiff
Tidy platform common bits in diff
2015-07-30 13:42:27 -07:00
Antonio Murdaca
f95333010e Remove HostConfig,SetHostConfig from daemon.container
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-30 22:25:31 +02:00
John Howard
5ab9654bc4 Tidy platform common bits in diff
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-30 13:04:49 -07:00
Tibor Vass
2f1a7c903f Merge pull request #14844 from WeiZhang555/golint-api
fix golint errors/warnings of pkg api/
2015-07-30 16:02:06 -04:00
Alexander Morozov
75c082c4b2 Merge pull request #15168 from Microsoft/10662-daemonconfiglocation
Windows: [TP3] Move daemon config directory
2015-07-30 12:56:52 -07:00
Tibor Vass
2d730c93b4 Merge pull request #15148 from hqhq/hq_golint_native
Add back golint for daemon/execdriver/native
2015-07-30 15:51:06 -04:00
John Howard
9ed4400baf Windows: Move daemon config directory
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-30 12:39:19 -07:00
Josh Hawn
75f6929b44 Fix docker cp Behavior With Symlinks
[pkg/archive] Update archive/copy path handling

  - Remove unused TarOptions.Name field.
  - Add new TarOptions.RebaseNames field.
  - Update some of the logic around path dir/base splitting.
  - Update some of the logic behind archive entry name rebasing.

[api/types] Add LinkTarget field to PathStat

[daemon] Fix stat, archive, extract of symlinks

  These operations *should* resolve symlinks that are in the path but if the
  resource itself is a symlink then it *should not* be resolved. This patch
  puts this logic into a common function `resolvePath` which resolves symlinks
  of the path's dir in scope of the container rootfs but does not resolve the
  final element of the path. Now archive, extract, and stat operations will
  return symlinks if the path is indeed a symlink.

[api/client] Update cp path hanling

[docs/reference/api] Update description of stat

  Add the linkTarget field to the header of the archive endpoint.
  Remove path field.

[integration-cli] Fix/Add cp symlink test cases

  Copying a symlink should do just that: copy the symlink NOT
  copy the target of the symlink. Also, the resulting file from
  the copy should have the name of the symlink NOT the name of
  the target file.

  Copying to a symlink should copy to the symlink target and not
  modify the symlink itself.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-30 12:14:28 -07:00
Tibor Vass
a687448c4d Merge pull request #15163 from crosbymichael/proc-ro
Don't mount /proc as ro
2015-07-30 15:12:29 -04:00
Tibor Vass
5fa26e3df8 Merge pull request #15161 from ewindisch/fix-netns
Only explicitly deny ptrace for container-originated procs
2015-07-30 15:11:12 -04:00
Brian Goff
b149d9d0d9 Merge pull request #15156 from duglin/AddErrTruncIndex
Add missing typed error in truncindex
2015-07-30 14:55:40 -04:00
Tibor Vass
4a92b8a0ef registry: Change default endpoint on windows to a windows-specific one
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-30 14:52:41 -04:00
Tibor Vass
06668de15e Merge pull request #15167 from tiborvass/better-tlsconf-error-msg
tlsconfig: better format for error message in tlsconfig
2015-07-30 14:51:35 -04:00
Kir Kolyshkin
a83a769347 Simplify and fix os.MkdirAll() usage
TL;DR: check for IsExist(err) after a failed MkdirAll() is both
redundant and wrong -- so two reasons to remove it.

Quoting MkdirAll documentation:

> MkdirAll creates a directory named path, along with any necessary
> parents, and returns nil, or else returns an error. If path
> is already a directory, MkdirAll does nothing and returns nil.

This means two things:

1. If a directory to be created already exists, no error is returned.

2. If the error returned is IsExist (EEXIST), it means there exists
a non-directory with the same name as MkdirAll need to use for
directory. Example: we want to MkdirAll("a/b"), but file "a"
(or "a/b") already exists, so MkdirAll fails.

The above is a theory, based on quoted documentation and my UNIX
knowledge.

3. In practice, though, current MkdirAll implementation [1] returns
ENOTDIR in most of cases described in #2, with the exception when
there is a race between MkdirAll and someone else creating the
last component of MkdirAll argument as a file. In this very case
MkdirAll() will indeed return EEXIST.

Because of #1, IsExist check after MkdirAll is not needed.

Because of #2 and #3, ignoring IsExist error is just plain wrong,
as directory we require is not created. It's cleaner to report
the error now.

Note this error is all over the tree, I guess due to copy-paste,
or trying to follow the same usage pattern as for Mkdir(),
or some not quite correct examples on the Internet.

[v2: a separate aufs commit is merged into this one]

[1] https://github.com/golang/go/blob/f9ed2f75/src/os/path.go

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
2015-07-30 11:48:08 -07:00
Morgan Bauer
3754ad5737 Fix FAQ links
- don't use relative references '..'
 - registry-index-spec became hub-registry-spec
 - reference new 'glossary' instead of old 'terms'

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-07-30 11:46:39 -07:00
Eric Windisch
f5c388b35a Only explicitly deny ptrace for container-originated procs
The 'deny ptrace' statement was supposed to only ignore
ptrace failures in the AUDIT log. However, ptrace was implicitly
allowed from unconfined processes (such as the docker daemon and
its integration tests) due to the abstractions/base include.

This rule narrows the definition such that it will only ignore
the failures originating inside of the container and will not
cause denials when the daemon or its tests ptrace inside processes.

Introduces positive and negative tests for ptrace /w apparmor.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-30 14:40:28 -04:00
David Calavera
868f85b271 Merge pull request #15166 from tiborvass/carry-13934
Carry 13934: Add `docker daemon` to bash completion
2015-07-30 11:30:31 -07:00
Tibor Vass
c7a04fda2a tlsconfig: better format for error message in tlsconfig
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-30 14:15:41 -04:00
Harald Albers
8cc8ee9254 Add docker daemon to bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-30 14:08:55 -04:00
Michael Crosby
bfc51cf660 Don't mount /proc as ro
This caused a regression with LSM labeling.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-07-30 10:57:50 -07:00
Tibor Vass
bfccd328be Merge pull request #15100 from calavera/fix_reader_timeout
Fix reset timeout for buffer readers.
2015-07-30 13:18:06 -04:00
Doug Davis
18b1381335 Add missing typed error in truncindex
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-30 07:52:34 -07:00
Stefan Berger
9dbc36b441 contrib: Extend engine apparmor profile for tools needed by devicemapper
Add tools to the apparmor profile that are needed when -s devicemapper is
in the docker daemon's command line.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2015-07-30 06:45:57 -04:00
Otto Kekäläinen
b619220ce1 Multiple fixes to 'docker stats' output:
* Add space between values in docker stats output for easier parsing

  Old output could not be parsed easily because there were columns
  that did not have any separator. Also values that are together
  without any space is difficult to read even for humans.

* Update unit.HumanSize comment to match what the does actually does

Signed-off-by: Otto Kekäläinen <otto@seravo.fi>
2015-07-30 10:14:57 +03:00
Arnaud Porterie
f39987afe8 Merge pull request #15149 from Microsoft/10662-fixwindowscompile
[Blocking] Windows: Daemon build is currently broken
2015-07-29 22:46:11 -07:00
Sven Dowideit
26ff3bd2e9 Merge pull request #15066 from dwcramer/fix-broken-link
[#15027] Fix broken link and edit link text to match section heads
2015-07-30 13:37:29 +10:00
Sven Dowideit
cc45e027f1 Merge pull request #15071 from epc/epc-2015209
Docs: Copy edits for typos
2015-07-30 13:36:23 +10:00
John Howard
b43dc0d93c Windows: Daemon build is broken
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-29 20:08:51 -07:00
root
cfeab585c0 fix golint errors/warnings of pkg api/
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-07-30 09:46:25 +08:00
Qiang Huang
e34f562a77 Add back golint for daemon/execdriver/native
It's broken by #15099 Fix it.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-30 08:58:54 +08:00
Arnaud Porterie
4c7cf30260 Merge pull request #15126 from LK4D4/global_rand
Use global random *rand.Rand instance in pkg
2015-07-29 17:36:25 -07:00
Arnaud Porterie
b71cf69380 Merge pull request #15132 from LK4D4/improve_test
Fix message and add additional check to test
2015-07-29 17:36:11 -07:00
Tibor Vass
6adb64e113 Merge pull request #14773 from runcom/cleanup-links
Cleanup links top level pkg
2015-07-29 20:17:44 -04:00
Arnaud Porterie
d94aeb2876 Merge pull request #14980 from jlhawn/build_tag_resolved_digests
[api/client] Tag resolved digest from Dockerfile
2015-07-29 16:52:14 -07:00
Michael Crosby
887882c2b6 Merge pull request #15142 from calavera/add_field_comment_back
Add MemorySwappiness comment back.
2015-07-29 16:51:49 -07:00
Arnaud Porterie
8724e8953d Merge pull request #15040 from vbatts/vbatts-double-decompress-fix
archive, graphdriver: double decompress fix
2015-07-29 16:48:02 -07:00
Arnaud Porterie
4a71323ec3 Merge pull request #15098 from calavera/backwards_compat_kill_error
Keep backwards compatibility in kill api.
2015-07-29 16:42:36 -07:00
Arnaud Porterie
3f5ea1bb80 Merge pull request #15090 from dmcgowan/fix-login-tls-config
Fix login and search TLS configuration
2015-07-29 16:42:13 -07:00
David Calavera
f41f62b6cc Add MemorySwappiness comment back.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-29 16:41:46 -07:00
Arnaud Porterie
de50082000 Merge pull request #15134 from calavera/swappiness_big_int
Use pointer for MemorySwappiness.
2015-07-29 16:31:15 -07:00
Jessie Frazelle
2ae174e491 Merge pull request #15138 from ewindisch/apparmor-fix-test-plus-unconfined
Fix the proc integration test & include missing AA profile
2015-07-29 15:32:13 -07:00
Tibor Vass
28ac78c02f Merge pull request #15139 from tiborvass/fix-uuid-loggerf
Set uuid.Loggerf to nop on client and to logrus.Warnf on daemon
2015-07-29 18:17:54 -04:00
Jessie Frazelle
75f8bdd970 Merge pull request #13542 from kvasdopil/freebsd-work
Make docker build on FreeBSD
2015-07-29 15:15:37 -07:00
Tibor Vass
6a274e48dc Merge pull request #14843 from MHBauer/demonlogger-lint
golint fixes for daemon/logger/*
2015-07-29 18:09:46 -04:00
Tibor Vass
28b79e4a84 Merge pull request #14827 from brahmaroutu/lint_graph
/graph fix lint errors/warnings
2015-07-29 18:08:09 -04:00
Tibor Vass
7841d6ab9a Set uuid.Loggerf to nop on client and to logrus.Warnf on daemon
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-29 17:49:59 -04:00
Eric Windisch
0f4e5f7149 Remove container AA profile from packaging
Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-29 17:47:38 -04:00
Antonio Murdaca
0e0c7e521c Cleanup links top level pkg
- Move top level pkg links under daemon
- Refactor code accordingly
- golint pkg

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-29 23:39:18 +02:00
Avi Miller
5c6446f335 Fix for #14924. Seperates lsb_dist detection from dist_version detection
so that the latter can be distro specific.

Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-07-30 07:30:51 +10:00
David Calavera
4e25d2982b Use *int64 for MemorySwappiness.
So we marshal/unmarshal its value properly when it's empty.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-29 14:14:04 -07:00
Eric Windisch
5832715052 Fix the proc integration test & include missing AA profile
Integration tests were failing due to proc filter behavior
changes with new apparmor policies.

Also include the missing docker-unconfined policy resolving
potential startup errors. This policy is complain-only so
it should behave identically to the standard unconfined policy,
but will not apply system path-based policies within containers.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-29 17:08:51 -04:00
Srini Brahmaroutu
1d6e443119 /graph fix lin errors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-29 20:59:36 +00:00
Morgan Bauer
ccbe539e86 golint fixes for daemon/logger/*
- downcase and privatize exported variables that were unused
 - make accurate an error message
 - added package comments
 - remove unused var ReadLogsNotSupported
 - enable linter
 - some spelling corrections

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-07-29 13:09:39 -07:00
Alexander Morozov
0f85fadb4e Merge pull request #15133 from dmcgowan/notary-fix-test-date
Skip notary tests which update system clock
2015-07-29 12:51:05 -07:00
Derek McGowan
bf3c1e6a3a Skip notary tests which update system clock
Currently some notary tests change the system clock to check for expiration.
Skip these tests until the code can be refactored to not rely on updating the system clock.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-29 12:09:40 -07:00
Tibor Vass
0bab97fcba Merge pull request #15076 from hqhq/hq_merge_daemon_test
Merge daemon_unit_test.go to daemon_test.go
2015-07-29 14:53:34 -04:00
Tibor Vass
c09c497c71 Merge pull request #15111 from Microsoft/fix-archive-copy-log
Fix log to logrus
2015-07-29 14:48:19 -04:00
Alexander Morozov
0d09439ace Fix message and add additional check to TestBuildContainerWithCgroupParent
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-29 11:46:33 -07:00
Tibor Vass
2a593bea12 Merge pull request #15116 from ibuildthecloud/devices
Revert change to make ParseDevice unexported
2015-07-29 14:42:30 -04:00
Alexey Guskov
26c03d561a make docker compile on freebsd
Signed-off-by: Alexey Guskov <lexag@mail.ru>
2015-07-29 21:25:56 +03:00
Tibor Vass
0a2ec227f8 Merge pull request #15128 from ankushagarwal/logging
Doc fixes in daemon/logger, update NewCopier method
2015-07-29 14:20:34 -04:00
Tibor Vass
e77ea5aa7a Merge pull request #14784 from brahmaroutu/lint_api_client
fix golint errors/warnings
2015-07-29 14:04:45 -04:00
David Calavera
1cfae07a6e Merge pull request #15015 from runcom/14911-fix-install-script-debian81
Fix install script to handle debian 8.1 apt repo string
2015-07-29 10:45:50 -07:00
Tibor Vass
dfcdde4d98 Merge pull request #14930 from brahmaroutu/lint_daemon_graphdriver_devmapper
daemon/graphdriver/devmapper/ fix lint errors/warnings
2015-07-29 13:29:57 -04:00
root
929f2c2f40 api/client fix golint errors/warnings
Addresses #14756

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-29 17:20:54 +00:00
Tibor Vass
2cd058ce4f Merge pull request #14785 from brahmaroutu/lint_api_server
fix golint errors/warnings
2015-07-29 13:09:31 -04:00
David Calavera
8a8de53d3d Merge pull request #15129 from jfrazelle/golint
fix linnt
2015-07-29 10:07:25 -07:00
Ankush Agarwal
41d85c014d Doc fixes in logger, update NewCopier method
Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-07-29 10:05:46 -07:00
Jessica Frazelle
c2c9e99d84 fix linnt
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-07-29 10:05:30 -07:00
John Howard
2bf73c4b1a Fix log to logrus
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-29 09:58:07 -07:00
Eric Windisch
4742a3964f Prefer crypto rand seed for pkg/rand
Crypto rand is a much better seed for math/rand than
time. In the event we use math/rand where we should not,
this will make it a safer source of random numbers.

Although potentially dangerous, this will still fallback
to time should crypto/rand for any reason fail.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-29 12:55:57 -04:00
Dan Walsh
90b8cebda6 Labels on network content need to be shared if shared network namespace
If I run two containers with the same network they share the same /etc/resolv.conf.
The current code changes the labels of the /etc/resolv.conf currently to the
private label which causes it to be unusable in the first container.

This patch changes the labels to a shared label if more then one container
will use the content.

Docker-DCO-1.1-Signed-off-by: Dan Walsh dwalsh@redhat.com (github: rhatdan)

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-07-29 12:42:28 -04:00
Jessie Frazelle
d7661cb48b Merge pull request #15099 from ewindisch/apparmor-restore-en
Restore AppArmor generation + fixes
2015-07-29 09:36:59 -07:00
Alexander Morozov
51cdcf3c9d Use global random *rand.Rand instance in pkg
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-29 09:30:48 -07:00
Tibor Vass
9d3ad6d892 Merge pull request #15107 from LK4D4/unsafe_random
Use non-crypto version of random to generate ids.
2015-07-29 11:47:38 -04:00
Tibor Vass
0c330a7823 Merge pull request #15064 from jfrazelle/14590-fix-sudo
sh -c the cat repo for yum
2015-07-29 10:02:27 -04:00
Dimitri John Ledkov
d3e5179c29 systemd: set service type to notify.
Currently the service type is 'simple', the default, meaning that
docker.service is considered to be started straight after
spawning. This is incorrect as there is significant amount of time
between spawning and docker ready to accept connections on the passed
sockets. Docker does implement systemd socket activate and
notification protocol, and send the ready signal to systemd, once it
is ready. However for systemd to take those notifications into
account, the service file type should be set to notify.

Signed-off-by: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
2015-07-29 14:02:12 +01:00
Sebastiaan van Stijn
60ed0a7f77 Merge pull request #15117 from ChanderG/master
Fix minor formatting error in security article docs
2015-07-29 13:41:19 +02:00
Chander G
6cf0e27ee0 Fix minor formatting error in security article docs
Signed-off-by: Chander G <chandergovind@gmail.com>
2015-07-30 01:06:04 +05:30
Darren Shepherd
421786e925 Make ParseDevice public
This reverts the change in 5170a2c096 that made ParseDevice private

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-07-29 02:12:35 -07:00
Alexander Morozov
6bca8ec3c9 Replace GenerateRandomID with GenerateNonCryptoID
This allow us to avoid entropy usage in non-crypto critical places.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-28 22:31:01 -07:00
Alexander Morozov
4553b6af4b Add GenerateNonCryptoID function to avoid entropy exhaustion
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-28 22:31:01 -07:00
Alexander Morozov
6963b9c716 Add global instance of *(math/rand).Rand and Reader
You can read random bytes from Reader without exhausting entropy.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-28 22:30:57 -07:00
Jessica Frazelle
93d134c61f sh -c the cat repo for yum
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-28 20:25:26 -07:00
Srini Brahmaroutu
972a94b449 daemon/graphdriver/devmapper/ fix lint errors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-29 01:43:34 +00:00
Tibor Vass
c19a00d4cb Merge pull request #15060 from jlhawn/fix_build_renamed_dockerfile
[api/client] update check Dockerfile in Context
2015-07-28 21:30:19 -04:00
moxiegirl
ed1d9d022d Merge pull request #14565 from moxiegirl/14561-mac-rewrite
Docker Toolbox Updates fixes #14561
2015-07-28 18:20:26 -07:00
Mary Anthony
6ca22add18 Docker Toolbox Updates fixes #14561
- Tested Mac/iterated with Jeff on fixes
- Waiting on formal uninstall;manual now
- 4 hour work
- Fixe #14562 converting Windows to Mac
- Found errors in installer need fixes/another iteration
- Updated as far as possible with limited installation
- 3 Hours work
- Entering comments from PR review
- New screen captures and migration material
- Entering Sven's comment
- Testing with powershell, Seb's comments
- Fix link in upgrade
- Minor tweaks to http and typos
- Adding deprecation note

Signed-off-by: Mary Anthony <mary@docker.com>
2015-07-28 18:17:24 -07:00
Josh Hawn
bb2e6c72d2 [api/client] Tag resolved digest from Dockerfile
Builds where the base images have been resolved to trusted digest
references will now be tagged with the original tag reference from
the Dockerfile on a successful build.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-28 17:54:48 -07:00
Tibor Vass
cc6138d946 Merge pull request #15063 from jfrazelle/only-write-distributions-file-if-dne
only write distributions file if dne
2015-07-28 20:45:04 -04:00
Jay Kamat
4ca0aad855 Fix a couple broken links
Signed-off-by: Jay Kamat <github@jgkamat.33mail.com>
2015-07-28 16:37:52 -07:00
root
351f6b8ec0 api/server fix golint errors/warnings.
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-28 22:44:39 +00:00
Eric Windisch
6c887be769 Mark engine AA policy as complain-only
The engine policy will now only complain
as a temporary measure to ensure we do not
cause breakages while users exercise this
policy.

This is NOT the policy for containers, but
for the newly-introduced policy for the
daemon itself.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-28 17:45:53 -04:00
Eric Windisch
8b2fcddcd2 AA: Eliminate 'file' permission
Implements the policies for the remaining binaries
called by the Docker engine and eliminates the
giant whitelisted 'all files' permission in favor
of granular whitelisting and child-specific policies.

It should be possible now to remove the 'file' permission,
but for the sake of keeping Docker unbroken, we'll try
to gradually tighten the policy.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-28 17:45:53 -04:00
Eric Windisch
3edc88f76d Restore AppArmor profile generation
Will attempt to load profiles automatically. If loading fails
but the profiles are already loaded, execution will continue.

A hard failure will only occur if Docker cannot load
the profiles *and* they have not already been loaded via
some other means.

Also introduces documentation for AppArmor.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-28 17:45:51 -04:00
David Calavera
40ea67a596 Fix reset timeout for buffer readers.
Use our goroutine-safe random source.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-28 14:30:18 -07:00
Alexander Morozov
f809037128 Merge pull request #14848 from hqhq/hq_golint_execdriver
Fix golint warnings for daemon/execdriver/*
2015-07-28 14:23:22 -07:00
Alexander Morozov
2c162292b7 Merge pull request #14824 from fcantournet/lint_pkg_mflag
Fix golint for pkg/mflag
2015-07-28 13:51:09 -07:00
Alexander Morozov
9cfc223cc0 Merge pull request #14818 from MHBauer/volume-lint
lint for volume/*
2015-07-28 13:42:18 -07:00
Vincent Batts
273f50c741 graphdriver/*: expect uncompressed tar for ApplyDiff
The `ApplyDiff` function takes a tar archive stream that is
automagically decompressed later. This was causing a double
decompression, and when the layer was empty, that causes an early EOF.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-07-28 16:36:39 -04:00
Vincent Batts
56bf275e32 archive, chrootarchive: split out decompression
In `ApplyLayer` and `Untar`, the stream is magically decompressed. Since
this is not able to be toggled, rather than break this ./pkg/ API, add
an `ApplyUncompressedLayer` and `UntarUncompressed` that does not
magically decompress the layer stream.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-07-28 16:36:38 -04:00
Sebastiaan van Stijn
bfbac726c7 Merge pull request #15082 from ChanderG/master
Add link to Systemd article in Debian Jessie docs, fix typo
2015-07-28 22:35:48 +02:00
Chander G
b9e6be25d1 Add link to Systemd article, fix typo
Signed-off-by: Chander G <chandergovind@gmail.com>
2015-07-29 01:54:44 +05:30
David Calavera
621e3d8587 Keep backwards compatibility in kill api.
Return an error when the container is stopped only in api versions
equal or greater than 1.20 (docker 1.8).

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-28 12:25:36 -07:00
Jessie Frazelle
e06df594f5 Merge pull request #14863 from brahmaroutu/lint_daemon_graphdriver_aufs
daemon/graphdriver/aufs fix lint errors/warnings
2015-07-28 11:46:40 -07:00
Jessie Frazelle
be60047b43 Merge pull request #14932 from brahmaroutu/lint_daemon_graphdriver_graphtest
daemon/graphdriver/graphtest/ fix lint errors/warnings
2015-07-28 11:20:33 -07:00
Sebastiaan van Stijn
f989d68014 Merge pull request #15096 from kolyshkin/doc-fixes-2
daemon.md: do fix placement of exec driver heading
2015-07-28 20:10:11 +02:00
Kir Kolyshkin
f52514a038 daemon.md: do fix placement of exec driver heading
Options for zfs storage driver were incorrectly placed
under 'exec driver options' header. Move the header to
the correct place.

Now, this is the second time I am fixing this. First time
it was commit 68efb27, but the following commit 9af7afb
screwed it up again, so the header appears twice now.

Get rid of the the wrong one.

Cc: David Calavera <david.calavera@gmail.com>
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
2015-07-28 10:58:17 -07:00
Morgan Bauer
9af963aba0 lint fixes for volume/*
- comments on exported values
 - constant string replaced by constant reference
 - unexport implementation details of VolumeDriver 'local'
 - add fixed packages to linter list

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-07-28 10:40:44 -07:00
Derek McGowan
e863a07b89 Fix login and search TLS configuration
Currently login and search do not load per registry certificates.
This is a regression caused by the last refactor since this was recently fixed.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-28 10:36:57 -07:00
David Calavera
c473ae14fd Merge pull request #15094 from Microsoft/10662-fixvendorhelper
Windows: Fix vendor-helpers.sh
2015-07-28 10:17:30 -07:00
John Howard
663d50464e Windows: Fix vendor-helpers.sh
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-28 10:13:33 -07:00
Félix Cantournet
8e6ad2171a Fix golint for pkg/mflag
Signed-off-by: Félix Cantournet <felix.cantournet@cloudwatt.com>
2015-07-28 15:32:42 +02:00
moxiegirl
3a7b4230b2 Merge pull request #14713 from moxiegirl/remove-boot2docker-14563
Remove references to boot2docker replace with docker-machine
2015-07-28 06:05:29 -07:00
Ed Costello
fb396a71d5 Copy edits for typos
Signed-off-by: Ed Costello <epc@epcostello.com>
2015-07-28 08:51:01 -04:00
Qiang Huang
ada852aa70 Merge daemon_unit_test.go to daemon_test.go
daemon_test.go supposted to be unit test for daemon, so
don't see reason why we need another daemon_unit_test.go.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-28 15:36:29 +08:00
Srini Brahmaroutu
55885daa56 daemon/graphdriver/aufs fix lint errors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-28 06:17:05 +00:00
Srini Brahmaroutu
12460f41a4 daemon/graphdriver/graphtest/ fix lint errors/warnings
Addresses #14756

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-28 06:01:00 +00:00
Mary Anthony
1825e06944 Remove references to boot2docker replace with docker-machine
- boot2docker is deprecated in the 1.8.0
- docker-machine replaces it
- this fixes #14563
- Updating with thaJetzah comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-07-27 18:25:50 -07:00
Jessie Frazelle
4ed3e3a5b2 Merge pull request #14694 from Microsoft/10662-apparmorprofile
Windows: Factoring out unused fields
2015-07-27 18:18:54 -07:00
Qiang Huang
fed85c3296 Add status string to State field for inspect
Fixes: #13579

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-28 08:48:27 +08:00
John Howard
47c56e4353 Windows: Factoring out unused fields
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-27 17:44:18 -07:00
Qiang Huang
4862d723a4 Add daemon/execdriver/* to validate-lint
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-28 08:44:12 +08:00
Qiang Huang
3d17c3bb66 Fix golint warnings for daemon/execdriver/*
Addresses: #14756

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-28 08:43:22 +08:00
Tibor Vass
8ad1d3fec6 Merge pull request #15067 from aaronlehmann/term-windows-golint
Fix golint nit in term_windows.go
2015-07-27 20:43:18 -04:00
Aaron Lehmann
35e498beca Fix golint nit in term_windows.go
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-27 17:40:49 -07:00
Jessie Frazelle
33358f80e5 Merge pull request #14838 from Microsoft/10662-ansirewrite
Windows: CLI Improvement (TP3)
2015-07-27 17:30:14 -07:00
Jessie Frazelle
f32cab874c Merge pull request #15034 from aaronlehmann/update-vendored-distribution
Update vendored distribution repo to new version
2015-07-27 17:24:35 -07:00
Jessie Frazelle
f3c23fc463 Merge pull request #15062 from chrisseto/master
Skip DockerSuite.TestExecResizeImmediatelyAfterExecStart on lxc
2015-07-27 17:20:20 -07:00
David Cramer
00f7ced864 [#15027] Fix broken link and edit link text to match section heads
Signed-off-by: David Cramer <davcrame@cisco.com>
2015-07-27 19:12:04 -05:00
Jessica Frazelle
2eee192366 only write distributions file if dne
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-27 16:26:35 -07:00
Chris Seto
83cb288575 Skip DockerSuite.TestExecResizeImmediatelyAfterExecStart on lxc
Signed-off-by: Chris Seto <chriskseto@gmail.com>
2015-07-27 19:20:15 -04:00
Josh Hawn
af06d289e4 [api/client] update check Dockerfile in Context
Actually determine the relative path of the Dockerfile to the context
directory. Error out if the relative path starts with "../".

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-27 16:11:36 -07:00
Jessie Frazelle
7886056d74 Merge pull request #15059 from calavera/fix_overlay_comments_typo
Fix typo in overlay's create godoc.
2015-07-27 15:40:22 -07:00
David Calavera
5bac5302e5 Fix typo in overlay's create godoc.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-27 15:37:26 -07:00
Jessie Frazelle
25c42cc0d0 Merge pull request #14759 from vdemeester/pkg-golint
golint on some pkg/* packages
2015-07-27 15:19:46 -07:00
Michael Crosby
bdc55be9b4 Merge pull request #15039 from jlhawn/fix_build_context_is_symlink
[api/client] Fix build when context dir is symlink
2015-07-27 15:11:36 -07:00
Jessie Frazelle
72afd792fd Merge pull request #15055 from calavera/log_release_steps
Log each release step.
2015-07-27 15:03:29 -07:00
Jessie Frazelle
0fe564cbb6 Merge pull request #15051 from LK4D4/32bit_const
Use math.MaxInt32 instead of math.MaxUint32
2015-07-27 15:02:40 -07:00
Jessie Frazelle
542de786c2 Merge pull request #14751 from vdemeester/runconfig-lint
golint fixes on runconfig
2015-07-27 15:01:08 -07:00
David Calavera
776600fabb Log each release step.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-27 14:28:05 -07:00
Sebastiaan van Stijn
e5af7a0e86 Merge pull request #14963 from MHBauer/plugins-links
Fix Plugins links
2015-07-27 23:25:48 +02:00
Jessie Frazelle
df75411b0f Merge pull request #15050 from DieterReuter/fix-bash-completion
Fix file mode for docker bash completion
2015-07-27 14:24:49 -07:00
Sebastiaan van Stijn
967bc13ae6 Merge pull request #15052 from MHBauer/ubuntu-docs
Fix interrupted numbering sequence in ubuntu installation docs
2015-07-27 22:45:51 +02:00
Alexander Morozov
eb45602d2f Use math.MaxInt32 instead of math.MaxUint32
I think it was original intention, because even half of a comment was about
MaxInt32.

Fix #15038

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-27 13:11:16 -07:00
Morgan Bauer
289e0d244b Fix interrupted numbering sequence in ubuntu installation docs
- increase indent of note to match surrounding text

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-07-27 13:10:29 -07:00
Dieter Reuter
37169dadda Fix file mode for docker bash completion
A bash completion file shouldn't have a executable bit set.
Just change file mode to 644 (instead of 755).

Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
2015-07-27 22:07:04 +02:00
Doug Davis
8c9cd0418d Merge pull request #15045 from cpuguy83/fix_dockercmdwitherror
Don't pass check.C to dockerCmdWithError
2015-07-27 16:04:16 -04:00
Sebastiaan van Stijn
8492e62306 Merge pull request #15041 from runcom/remove-saucy-from-installation-guide
Remove Ubuntu Saucy 13.10 from Ubuntu installation guide
2015-07-27 21:39:55 +02:00
Vincent Demeester
18c7c67308 Lint on pkg/* packages
- pkg/useragent
- pkg/units
- pkg/ulimit
- pkg/truncindex
- pkg/timeoutconn
- pkg/term
- pkg/tarsum
- pkg/tailfile
- pkg/systemd
- pkg/stringutils
- pkg/stringid
- pkg/streamformatter
- pkg/sockets
- pkg/signal
- pkg/proxy
- pkg/progressreader
- pkg/pools
- pkg/plugins
- pkg/pidfile
- pkg/parsers
- pkg/parsers/filters
- pkg/parsers/kernel
- pkg/parsers/operatingsystem

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-27 21:26:21 +02:00
Vincent Demeester
5170a2c096 Lint fixes on runconfig
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-27 21:23:15 +02:00
David Calavera
0852170e8c Merge pull request #14923 from Djelibeybi/fix14905
Switch to using only the RPM command to determine the distro version.
2015-07-27 12:01:57 -07:00
Josh Hawn
01d570ad30 [api/client] Fix build when context dir is symlink
Symbolic links in the context directory path are now evaluated.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-27 12:01:13 -07:00
Jessie Frazelle
d0215376f8 Merge pull request #15044 from jlhawn/fix_15042
[integration-cli] fix windows build test cases
2015-07-27 11:47:56 -07:00
Brian Goff
693ba98cb9 Don't pass check.C to dockerCmdWithError
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-07-27 14:33:32 -04:00
Josh Hawn
d06ffd0a5f [integration-cli] fix windows build test cases
Use the same IP as the DOCKER_HOST when making a remote file server.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-27 11:30:38 -07:00
Antonio Murdaca
98f15cae89 Fix install script to handle debian 8.1 apt repo string
Fix #14911

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-27 20:21:29 +02:00
Jessie Frazelle
afac39d308 Merge pull request #15026 from duglin/Issue14837
Add a test for using -f w/git repo on build
2015-07-27 10:55:47 -07:00
Antonio Murdaca
1e43ce350d Remove Ubuntu Saucy 13.10 from Ubuntu installation guide
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-27 19:55:26 +02:00
Jessie Frazelle
db647c3b60 Merge pull request #15031 from liubin/typo/liubin-change-restart-command
Change restarting Docker daemon command in CentOS
2015-07-27 10:54:55 -07:00
Alexander Morozov
4dbdd98b41 Merge pull request #14547 from duglin/ErrDeadExec
Return 404 on exec-inspect when container is dead but exec is still around
2015-07-27 10:46:32 -07:00
Jessie Frazelle
6e1d887722 Merge pull request #13834 from hqhq/hq_memswap_change
Set default MemorySwap on Docker side
2015-07-27 10:46:10 -07:00
Jessie Frazelle
33bd41df94 Merge pull request #14118 from mountkin/fix-rmi-force
raise an error if rmi -f with multiple tags and running container
2015-07-27 10:42:07 -07:00
Jessie Frazelle
a62dabe0b4 Merge pull request #14278 from squaremo/separate_overlay_docs
Put the network UI and overlay docs in separate files
2015-07-27 10:41:17 -07:00
Jessie Frazelle
fdb932fa17 Merge pull request #14560 from bkeyoumarsi/volume-plugin-doc-fix
Updated volume-driver plugin api docs
2015-07-27 10:39:15 -07:00
Jessie Frazelle
f3af9c8bdb Merge pull request #14735 from charleswhchan/patch-1
Minor edits to Environment variables section
2015-07-27 10:37:39 -07:00
Jessie Frazelle
2f5dc43ca2 Merge pull request #14852 from rhatdan/relabel
Rename internal field Relabel to Mode
2015-07-27 10:31:08 -07:00
Jessie Frazelle
303345dc6a Merge pull request #14875 from brahmaroutu/lint_daemon_graphdriver_btrfs
daemon/graphdriver/btrfs fix lint errors/warnings
2015-07-27 10:28:50 -07:00
Jessie Frazelle
70842ea942 Merge pull request #14899 from mountkin/fix-exec-resize-panic
fix the panic caused by resizing a starting exec
2015-07-27 10:27:29 -07:00
Jessie Frazelle
b48b6de623 Merge pull request #14959 from runcom/remove-pkg-systemd-booted-go
Remove pkg/systemd/booted.go
2015-07-27 10:22:58 -07:00
Jessie Frazelle
5329d28536 Merge pull request #14971 from moxiegirl/man-page-carry-14637
Carry man page for the load command
2015-07-27 10:18:44 -07:00
Jessie Frazelle
912bafcf36 Merge pull request #14981 from calavera/bump_api_version
Bump api version to 1.21.
2015-07-27 10:17:24 -07:00
Jessie Frazelle
35250b685c Merge pull request #15009 from larchunix/devel
Fix docker-rm man page formatting
2015-07-27 10:16:57 -07:00
David Calavera
c451d597f2 Merge pull request #15028 from vbatts/typo
api/client/build: typo in error
2015-07-27 10:13:05 -07:00
David Calavera
e89aec0dfb Merge pull request #15010 from runcom/14947-fix-inspect-time-RFC3339Nano
Format times in inspect command with a template as RFC3339Nano
2015-07-27 10:08:21 -07:00
Jessie Frazelle
f0f753d70a Merge pull request #14988 from ChanderG/master
Fix minor typo in Debian installation docs
2015-07-27 09:51:58 -07:00
David Calavera
0eb88a0751 Bump api version to 1.21.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-27 09:48:47 -07:00
Alexander Morozov
b2930933c9 Merge pull request #14974 from duglin/BetterTrustErr
Show exact file being parsed on error.
2015-07-27 09:39:48 -07:00
Alexander Morozov
ec8173b517 Merge pull request #14917 from srust/14915-empty-hostconfig-on-create
Check for nil before using HostConfig to adjustCpuShares
2015-07-27 09:38:32 -07:00
Aaron Lehmann
091dbc1034 Update vendored distribution repo to new version
This version includes a fix that avoids checking against specific HTTP
status codes. The previous behavior violated the registry API spec.

Fixes #14975

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-27 09:37:38 -07:00
Alexander Morozov
ae5c8e3b69 Merge pull request #14786 from brahmaroutu/lint_image
image fix lint errors/warnings
2015-07-27 09:25:30 -07:00
moxiegirl
6c0c6b120a Merge pull request #15007 from cles/arch-systemd-network-issue
Add arch install docs warning about systemd-network
2015-07-27 09:22:01 -07:00
moxiegirl
a65f7acbbf Merge pull request #14987 from vdemeester/fix-cli-import-docs
Add missing documentation to cli/import.md
2015-07-27 09:19:57 -07:00
bin liu
aa5fc634f1 Change restarting Docker daemon command in CentOS
Signed-off-by: bin liu <liubin0329@gmail.com>
2015-07-27 23:30:06 +08:00
Vincent Batts
7b4e6fc47b *: s/direcotry/directory/g typo
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-07-27 11:29:28 -04:00
Vincent Batts
0e697ebe6e api/client/build: typo in error
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-07-27 11:01:26 -04:00
Doug Davis
d883540440 Adda test for using -f w/git repo on build
https://github.com/docker/docker/pull/14546 actually fixed issue #14837
but I don't see a new test to ensure we don't regress. So this PR adds
a test and then we can close #14837.

Closes #14837

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-27 07:49:42 -07:00
root
b061572916 /image - fix lint errors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-27 05:40:57 +00:00
Bardia Keyoumarsi
cc997a7f44 Updated volume-driver plugin api docs
There was a mistake in the plugin_volume.md file regarding the /VolumeDriver.Remove call.

Added fix and a better explanation.

Signed-off-by: Bardia Keyoumarsi <b.keyoumarsi@gmail.com>
2015-07-26 21:02:42 -07:00
Alexander Morozov
39999edcc9 Merge pull request #14992 from runcom/remove-unused-funcs
Remove unused functions
2015-07-26 18:36:37 -07:00
Morgan Bauer
c2cf349bcd Fix Plugins links
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-07-26 18:28:25 -07:00
Jessie Frazelle
23b0fdc896 Merge pull request #14998 from jfrazelle/fix-systemd-debs
fix deb packaging systemd files
2015-07-26 17:49:19 -07:00
Stephen Rust
c358a4cd35 Check for nil before using HostConfig to adjustCpuShares
Fix #14915. Add unit test for #14915.
Thanks @runcom for the test case: when the client calls 1.18 api
version w/o hostconfig it results in a nil pointer dereference.

Signed-off-by: Stephen Rust <srust@blockbridge.com>
2015-07-26 20:33:04 -04:00
Oriol Francès
26fa9b0d0d much improved wording for manual network config setup on arch install docs by @moxiegirl
Signed-off-by: Oriol Francès <oriolfa@gmail.com>
2015-07-26 19:11:27 +02:00
Vincent Demeester
3101941120 Add missing documentation to cli/import.md
PR #11907 added support for import using file (path), but it missed
the update of cli/import.md. This fixes that.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-26 18:39:42 +02:00
James Turnbull
77adf6abf1 Merge pull request #15012 from johnktims/patch-3
Fix typo
2015-07-26 11:04:17 -04:00
John Tims
7b552c7a37 Fix typo
Signed-off-by: John Tims <john.k.tims@gmail.com>
2015-07-26 10:53:07 -04:00
Antonio Murdaca
c9207bc0aa Format times in inspect command with a template as RFC3339Nano
In 1.6.2 we were decoding inspect API response into interface{}.
time.Time fields were JSON encoded as RFC3339Nano in the response
and when decoded into interface{} they were just strings so the inspect
template treated them as just strings.
From 1.7 we are decoding into types.ContainerJSON and when the template
gets executed it now gets a time.Time and it's formatted as
2015-07-22 05:02:38.091530369 +0000 UTC.
This patch brings back the old behavior by typing time.Time fields
as string so they gets formatted as they were encoded in JSON -- RCF3339Nano

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-26 15:25:08 +02:00
Oriol Francès
e1b57b2a87 Change of wording, rearrange section ordering
Signed-off-by: Oriol Francès <oriolfa@gmail.com>
2015-07-26 13:27:35 +02:00
Oriol Francès
6bd15a68cf Add arch install docs warning about systemd-network
Signed-off-by: Oriol Francès <oriolfa@gmail.com>
2015-07-26 13:27:07 +02:00
Sebastiaan van Stijn
5297a25b4e Merge pull request #15004 from charleswhchan/patch-2
Update faq.md
2015-07-26 13:03:45 +02:00
Sebastiaan van Stijn
a059701fa5 Merge pull request #15006 from czerasz/patch-1
Fix typo in JSON config example, in the CLI documetation
2015-07-26 12:56:38 +02:00
Michał Czeraszkiewicz
09a9958e22 Fix typo in JSON config example, in the CLI documetation
Signed-off-by: Michał Czeraszkiewicz <czerasz.hosting@gmail.com>
2015-07-26 12:09:31 +02:00
Charles Chan
c6816dfc67 Update faq.md
Fix case for PostgreSQL.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-07-25 22:03:20 -07:00
Arnaud Porterie
b04dd6b7bc Merge pull request #14996 from chrisseto/master
Fix go vet errors
2015-07-25 19:20:48 -07:00
Denis Ollier
9356049680 Fix docker-rm man page formatting
Signed-off-by: Denis Ollier <larchunix@users.noreply.github.com>
2015-07-26 04:18:48 +02:00
Chander G
ceeb22dc6e Fix minor typo in Debian installation docs
Signed-off-by: Chander G <chandergovind@gmail.com>
2015-07-26 03:49:18 +05:30
Sebastiaan van Stijn
6b2b6cb3fc Merge pull request #14940 from coolljt0725/add_vxfs_magic_number
Add VxFS magic number, fixes #14847
2015-07-25 23:25:48 +02:00
Jessica Frazelle
a2ea8f2ad8 fix deb packaging systemd files
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-25 14:04:39 -07:00
Chris Seto
04f76b67c9 Fix go vet errors
Signed-off-by: Chris Seto <chriskseto@gmail.com>
2015-07-25 17:00:10 -04:00
Sebastiaan van Stijn
2d61de4625 Merge pull request #14245 from gs11/master
Clarifications in usage
2015-07-25 22:48:48 +02:00
Antonio Murdaca
0e69318b27 Remove unused functions
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-25 19:54:05 +02:00
gs11
547d6c6656 Clarify error message when container name is already in use. Signed-off-by: Gustav Sinder <gustav.sinder@gmail.com>
Signed-off-by: gs11 <gustav.sinder@gmail.com>
2015-07-25 14:08:38 +02:00
Sebastiaan van Stijn
c051ed7953 Merge pull request #14720 from icecrime/14662_document_branches_tags
Document branches and tags
2015-07-25 13:12:47 +02:00
Alexander Morozov
6b12d37ced Merge pull request #14941 from hqhq/hq_cli_remove_cleanup
Remove unnecessary container cleanup in integration-cli
2015-07-24 20:38:15 -07:00
Tibor Vass
afb831d35e Merge pull request #14979 from runcom/fix-flacky-TestRunNonRootUserResolvName
Fix TestRunNonRootUserResolvName flackiness
2015-07-24 21:50:44 -04:00
Arnaud Porterie
5bdd4d0ec4 Merge pull request #14966 from mrjana/vendor18
Vendoring libnetwork
2015-07-24 17:58:23 -07:00
Antonio Murdaca
30d4c70d28 Fix TestRunNonRootUserResolvName flackiness
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-25 02:45:17 +02:00
Arnaud Porterie
4f5b677fd9 Merge pull request #14546 from dmcgowan/trusted-notary-integration
Notary integration
2015-07-24 17:44:14 -07:00
Arnaud Porterie
542685d856 Merge pull request #14976 from calavera/revert_unconfined_aa_policy
Revert "Introduce a dedicated unconfined AA policy"
2015-07-24 17:31:28 -07:00
Jana Radhakrishnan
2ad81da856 Vendoring libnetwork
Vendoring libnetwork commit f1c5671f1ee2133055144e566cd8b3a0ae4f0433

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-07-24 17:11:47 -07:00
Arnaud Porterie
e4c77b047d Document branches and tags
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-24 16:56:30 -07:00
Arnaud Porterie
78906612a2 Merge pull request #14935 from stevvooe/registry-moratorium
Impose moratorium on remote registry access
2015-07-24 16:45:05 -07:00
Jessie Frazelle
935810bd20 Merge pull request #14977 from jfrazelle/fix-lxc
fix lxc
2015-07-24 16:43:46 -07:00
David Calavera
94ab0d312f Revert "Introduce a dedicated unconfined AA policy"
This reverts commit 87376c3add.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-24 16:35:51 -07:00
Derek McGowan
259cadb0b1 Rename to flags and environment variables to content trust
Update help line to allow 90 characters instead of 80

The trust flag pushes out the help description column wider, requiring more room to display help messages.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-24 16:31:18 -07:00
Diogo Monica
3e90b12d42 Added tests for expired snapshots and timestamps
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-24 16:31:18 -07:00
Nathan McCauley
268fa5af47 Add tests simulating an evil server
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-07-24 16:31:18 -07:00
Derek McGowan
871d2b96ed Add build integration cli tests
Clean up tests to remove duplicate code

Add tests which run pull and create in an isolated configuration directory.
Add build test for untrusted tag

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-24 16:31:12 -07:00
Jessica Frazelle
0a5b8c40c0 ignore certain tests on lxc driver
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-24 16:10:59 -07:00
Jessie Frazelle
5ab4b60e11 Merge pull request #14969 from tianon/utopic-eol
Remove Ubuntu 14.10 (Utopic Unicorn) from build-deb targets
2015-07-24 15:48:34 -07:00
Jessica Frazelle
a38b544ef0 fix memory swappiness lxc
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-24 15:46:51 -07:00
Zhang Kun
0547b5fb2a #14474 skip DockerSuite.TestRunCapAddCHOWN on lxc
Signed-off-by: Zhang Kun <zkazure@gmail.com>
2015-07-24 15:16:07 -07:00
Doug Davis
76106b494b Show exact file being parsed on error.
When there's more than on json file in there we don't tell the user
which one was an issue.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-24 15:08:24 -07:00
Sebastiaan van Stijn
86c7ea4863 Merge pull request #14637 from metalivedev/patch-1
Document that load supports compressed tarballs.
2015-07-24 23:38:43 +02:00
Sebastiaan van Stijn
d951ef128f Merge pull request #14522 from carlossg/patch-1
Clarify filters option in list containers doc
2015-07-24 23:13:32 +02:00
Diogo Monica
eeb6d0a71b Add test for incorrect nonroot passphrase
Fix failing tests for create, push, and pull

Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-24 14:08:20 -07:00
Nathan McCauley
1406cb35fd Add trust tests for Docker create, run, push, and pull
Created date util function

Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-07-24 14:08:20 -07:00
Diogo Monica
356b07c896 Add more integration tests for trusted push and pull
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-24 14:08:20 -07:00
Josh Hawn
578b1521df Add notary integration to docker build
The Dockerfile is rewritten with images references on FROM
instructions resolved to trusted digests. The rewritten Dockerfile
is swapped with the original one during context upload.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-24 14:08:20 -07:00
Josh Hawn
3021b7a4a0 Refactor api/client/build.go
Separated preparation of context and Dockerfile for
the various different methods of specifying them.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-24 14:08:20 -07:00
Derek McGowan
58a1de9b59 Add integration cli trust tests
Added notary server to docker base image.
Created trust suite which runs trust server for running trusted commands.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-24 14:08:20 -07:00
Derek McGowan
ed13c3abfb Use notary library for trusted image fetch and signing
Add a trusted flag to force the cli to resolve a tag into a digest via the notary trust library and pull by digest.
On push the flag the trust flag will indicate the digest and size of a manifest should be signed and push to a notary server.
If a tag is given, the cli will resolve the tag into a digest and pull by digest.
After pulling, if a tag is given the cli makes a request to tag the image.

Use certificate directory for notary requests

Read certificates using same logic used by daemon for registry requests.

Catch JSON syntax errors from Notary client

When an uncaught error occurs in Notary it may show up in Docker as a JSON syntax error, causing a confusing error message to the user.
Provide a generic error when a JSON syntax error occurs.

Catch expiration errors and wrap in additional context.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-24 14:08:20 -07:00
Doug Davis
2084eee02c Merge pull request #14967 from Microsoft/10662-fixpaniconwindowsdaemon
Windows: Fixes panic on daemon binary
2015-07-24 16:48:37 -04:00
moxiegirl
2b847df8c2 Merge pull request #14939 from rtrauntvein/docs-autobuild
Fix broken link in automated build doc
2015-07-24 13:48:14 -07:00
Mary Anthony
ae45ffc1fe Carry man page for 14637
Signed-off-by: Mary Anthony <mary@docker.com>
2015-07-24 13:39:29 -07:00
Tibor Vass
84e917b876 Merge pull request #14835 from aaronlehmann/registry-lint-cleanup
Improve documentation and golint compliance of registry package
2015-07-24 16:23:23 -04:00
Tianon Gravi
a83e4e4a34 Remove Ubuntu 14.10 (Utopic Unicorn) from build-deb targets
As of July 23, 2015, it is officially EOL (https://lists.ubuntu.com/archives/ubuntu-announce/2015-July/000198.html) and will receive no further updates.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-07-24 13:21:01 -07:00
John Howard
b405e89d5c Windows: Fixes panic on daemon binary
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-24 12:30:49 -07:00
Aaron Lehmann
4fcb9ac40c Improve documentation and golint compliance of registry package
* Add godoc documentation where it was missing

* Change identifier names that don't match Go style, such as INDEX_NAME

* Rename RegistryInfo to PingResult, which more accurately describes
  what this structure is for. It also has the benefit of making the name
  not stutter if used outside the package.

Updates #14756

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-24 11:55:07 -07:00
Alexander Morozov
44e327b29e Merge pull request #14964 from tiborvass/fix-reexec
reexec: Use in-memory binary /proc/self/exe on linux instead of os.Args[0]
2015-07-24 11:51:56 -07:00
Tibor Vass
5aee8807a6 reexec: Use in-memory binary on linux instead of os.Args[0]
This keeps reexec working properly even if the on-disk binary was replaced.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-24 14:15:50 -04:00
Jessie Frazelle
e1dea0c485 Merge pull request #14920 from jfrazelle/release-script-updates-for-new-repo
warn the script is depreciated
2015-07-24 11:09:35 -07:00
Jessica Frazelle
ff271f5190 warn the script is depreciated
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-24 10:34:41 -07:00
David Calavera
3a07e7d115 Merge pull request #14958 from LK4D4/fix_valid
Fix option validation for log-drivers without it
2015-07-24 09:57:36 -07:00
Tianon Gravi
4eee075f22 Merge pull request #14865 from calavera/update_init_scripts
Update init scripts to use `docker daemon`.
2015-07-24 09:47:03 -07:00
Antonio Murdaca
f29dcfd215 Remove pkg/systemd/booted.go
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-24 18:09:27 +02:00
Alexander Morozov
d68c55bc72 Fix option validation for log-drivers without it
There is no option validation for "journald" log-driver, so it makes no
sense to fail in that case.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-24 09:00:53 -07:00
Sebastiaan van Stijn
f32295eda6 Merge pull request #14877 from calavera/deprecate_docker_d
Add -d to the deprecated feature list for 1.8.
2015-07-24 17:44:23 +02:00
Tibor Vass
9c0bb22571 Merge pull request #14925 from calavera/fix_volume_symlink_test
Remove reference to old Volumes field in inspect struct.
2015-07-24 10:41:00 -04:00
Charles Chan
42263dafcf Minor edits to Environment variables section
* Clarify the list of supported instructions.
* Clarify behavior of ONBUILD, based on comments by @SvenDowideit, @theJeztah in PR #14735.
* Reorder list of instructions in alphabetical order.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-07-24 06:38:55 -07:00
Shijiang Wei
9f7698a637 raise an error if rmi -f with multiple tags and running container
Fixes https://github.com/docker/docker/issues/14116

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-07-24 20:44:13 +08:00
Shijiang Wei
ba5e098052 fix the panic caused by resizing a starting exec
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-07-24 20:43:07 +08:00
Dan Walsh
4cb9479ce4 Rename internel field Relabel to Mode
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-07-24 07:14:37 -04:00
Carlos Sanchez
1fb29e6c3c Clarify filters option in list containers and list images docs
Based on the list containers with filters options it would seem that filtering containers with label `test=docker-java` could be done with `{"test":["docker-java"]}` which doesn't work

The options that work are `{"label":["test"]}` and `{"label":["test=docker-java"]}`

As seen in https://github.com/docker-java/docker-java/pull/262

Signed-off-by: Carlos Sanchez <carlos@apache.org>
2015-07-24 11:57:18 +02:00
Lei
e1c5e9b561 Add VxFS magic number, fixes #14847
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-24 16:37:56 +08:00
Derek McGowan
f5a4a8da15 Vendor notary
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-24 01:31:50 -07:00
Nathan McCauley
48250832a3 Add cmdline docs for signing and verification flows
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-07-24 01:31:50 -07:00
Qiang Huang
bcc0968a2c Remove unnecessary container cleanup in integration-cli
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-24 14:48:26 +08:00
Sebastiaan van Stijn
58bab11ee2 Merge pull request #14700 from charleswhchan/patch-2
Add benefit to using automated build.
2015-07-24 08:22:59 +02:00
Ryan Trauntvein
8e66e627d7 Fix broken link in automated build doc
Signed-off-by: Ryan Trauntvein <rtrauntvein@novacoast.com>
2015-07-23 23:12:06 -07:00
Charles Chan
c9ff01ffc7 * Add benefit to using automated build.
* Wording based on suggestions by @thaJeztah, @moxiegirl in PR #14700.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-07-23 21:01:23 -07:00
Jessie Frazelle
7674f21686 Merge pull request #13771 from tiborvass/daemon-cli
New `docker daemon` command
2015-07-23 19:30:39 -07:00
Stephen J Day
24f7d0afc9 Impose moratorium on remote registry access
A moratorium has been added to the road map to add a moratorium on adding
remote registry access to commands that don't already do so.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-07-23 19:09:20 -07:00
moxiegirl
163acd07e2 Merge pull request #14696 from rtrauntvein/patch-1
Fix link to examples documentation
2015-07-23 18:25:31 -07:00
Jessie Frazelle
d5e085572d Merge pull request #14926 from dmcgowan/prune-tar-split
Fix pruning in vendor script
2015-07-23 17:43:17 -07:00
Tibor Vass
e246f1e4ee Update docs to use the new docker daemon command
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-23 20:31:43 -04:00
Shishir Mahajan
e7fc632147 Add and modify tests for legacy and new daemon invokations
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-23 20:31:43 -04:00
Ryan Trauntvein
4f62dec548 Add index.md to examples docs
Signed-off-by: Ryan Trauntvein <rtrauntvein@novacoast.com>
2015-07-23 17:24:44 -07:00
David Calavera
cd9dd55233 Merge pull request #14919 from tianon/empty-ps-headers
Fix "docker ps" with no containers regression
2015-07-23 16:52:43 -07:00
Tibor Vass
96ce3a194a cli: new daemon command and new cli package
This patch creates a new cli package that allows to combine both client
and daemon commands (there is only one daemon command: docker daemon).

The `-d` and `--daemon` top-level flags are deprecated and a special
message is added to prompt the user to use `docker daemon`.

Providing top-level daemon-specific flags for client commands result
in an error message prompting the user to use `docker daemon`.

This patch does not break any old but correct usages.

This also makes `-d` and `--daemon` flags, as well as the `daemon`
command illegal in client-only binaries.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-23 19:44:46 -04:00
moxiegirl
490e78a642 Merge pull request #14557 from maaquib/14418-dangling-link-in-runmd
Fixing dangling link in docs/reference/commandline/run.md
2015-07-23 16:29:17 -07:00
moxiegirl
ae027c0864 Merge pull request #14589 from paetling/ae-update_net_docs
add to docs that ports do not get exposed when using --net
2015-07-23 16:22:21 -07:00
Derek McGowan
82685367d8 Keep license files
Currently the vendor script removes directories which do not have imported go packages, however this also ends up removing license files which may be other directories.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-23 16:12:21 -07:00
David Calavera
bb43bdf6c5 Remove reference to old Volumes field in inspect struct.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-23 16:10:31 -07:00
Srini Brahmaroutu
17c19f395f daemon/graphdriver/btrfs fix lint errors/warnings
Addresses #14756
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-23 22:48:45 +00:00
Derek McGowan
a8546df89d Fix pruning on tar split
Currently the vendor script prunes files which are currently checked in.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-23 15:21:32 -07:00
Avi Miller
59e48b3468 Fix typo.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-07-24 08:14:06 +10:00
Avi Miller
a43199f143 Switch to using only the RPM command to determine the distro version.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-07-24 07:38:28 +10:00
Alexander Morozov
c6f4c192fe Merge pull request #14545 from Djelibeybi/oraclelinux6-rpm
Updated docker-engine.spec to build on Oracle Linux 6.
2015-07-23 13:29:48 -07:00
Tianon Gravi
f57fc03e3b Fix "docker ps" with no containers regression
The header row was not being printed when "docker ps" was invoked without containers thanks to the new format support, and we instead received a single blank line.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-07-23 13:23:24 -07:00
Stephen Day
4af94efcf0 Merge pull request #14831 from duglin/VendorDist
Vendor latest distributions so we can use the new errcode stuff
2015-07-23 13:17:55 -07:00
Alexander Morozov
f28877257b Merge pull request #14034 from hqhq/hq_checkconfig_xattr
Some check_config enhancement
2015-07-23 13:01:59 -07:00
Vincent Batts
1e40915e9d Merge pull request #14854 from rhvgoyal/unmount-base
docker: Unmount -init layer root before taking a snapshot
2015-07-23 15:17:07 -04:00
moxiegirl
4e035031b0 Merge pull request #14900 from duglin/AddFilterToDoc
Add filter to /images/json docs
2015-07-23 11:57:12 -07:00
Phil Estes
9dcd0cc1ee Merge pull request #14887 from Microsoft/10662-stupidtypo
Windows: Stupid copy/paste error
2015-07-23 14:49:17 -04:00
Doug Davis
b874ef8f43 Do Docker edits so we can use the new distribution code
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-23 10:24:46 -07:00
Doug Davis
8b69552b50 Vendor latest distributions so we can use the new errcode stuff
ping @stevvooe @RichardScothern

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-23 10:24:46 -07:00
Tianon Gravi
8c28363993 Merge pull request #13933 from ypid/mkimage-no-compression
Do not compress rootfs archive in mkimage.sh.
2015-07-23 10:22:07 -07:00
David Calavera
ac9fc03c74 Merge pull request #14855 from ewindisch/apparmor-unconfined
Introduce a dedicated unconfined AA policy
2015-07-23 10:21:51 -07:00
Jessie Frazelle
e5d8fb9658 Merge pull request #14903 from jfrazelle/fix-experimental-rpm-debs
pass DOCKER_EXPERIMENTAL into build images
2015-07-23 10:05:00 -07:00
David Calavera
2cf9fec111 Merge pull request #14901 from albers/completion-log-opt-fixes
Fixes to bash completion for log driver options
2015-07-23 10:03:29 -07:00
Jessica Frazelle
76d6751600 pass DOCKER_EXPERIMENTAL into build images
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-23 09:42:22 -07:00
Sebastiaan van Stijn
9e438ffb61 Merge pull request #14891 from jgeiger/fix_typo_in_builder_docs_for_dockerignore
Fix typo in builder.mb .dockerignore example
2015-07-23 18:26:16 +02:00
Sebastiaan van Stijn
d44e334a6e Merge pull request #14893 from Evalle/14653-fix-sles-issue
Fixing SLES12 issue
2015-07-23 18:22:38 +02:00
Arnaud Porterie
c9937c3a80 Merge pull request #14905 from jfrazelle/fix-fedora-install
fix fedora release
2015-07-23 09:17:48 -07:00
Jessica Frazelle
8192a9ac6c fix fedora release
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-23 09:16:35 -07:00
Phil Estes
c2346f6406 Merge pull request #14898 from runcom/sockRequestRaw-close-body
Ensure body is closed after error is checked
2015-07-23 10:11:44 -04:00
Antonio Murdaca
18faf6f94e Ensure body is closed after error is checked
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-23 14:34:38 +02:00
Doug Davis
a20bf5e61c Add filter to /images/json docs
Closes #14894

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-23 05:29:09 -07:00
Harald Albers
de40f3997a Complete all known driver options if no log driver was specified
Without this fix, `docker --log-opt ` would not complete anything
because the completions were driver specific.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-23 14:19:13 +02:00
Harald Albers
6de8dd1a6e Fix problem with = in completion of docker global options
Without this fix, `docker --log-driver fluentd --log-opt fluentd-tag=b`
would complete `b` to `build`.
Completion of the commands has to be nailed to __docker_pos_first_nonflag

Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-23 13:52:06 +02:00
evalle
94119c58a1 Fixing SLES12 issue
Signed-off-by: evalle <shmarnev@gmail.com>
2015-07-23 08:59:23 +02:00
Florian Klein
323259ec4e explain how to make it work on awazon ec2.
Signed-off-by: Klein Florian <florian.klein@free.fr>
2015-07-23 08:47:05 +02:00
jgeiger
9086c16f42 Fix typo in builder.mb .dockerignore example
Signed-off-by: jgeiger <jgeiger@gmail.com>
2015-07-22 23:54:46 -06:00
Phil Estes
d593130fda Merge pull request #14880 from Microsoft/10662-paniconremotetest
Stop SIGSEGV on test dial not reachable
2015-07-22 23:21:12 -04:00
Phil Estes
c5053d4700 Merge pull request #14886 from duglin/FixDepDoc
Fix typo in deprecation doc
2015-07-22 23:15:09 -04:00
Phil Estes
7e4db0a370 Merge pull request #12850 from coolljt0725/add_ulimi_to_build
Add ulimit to docker build
2015-07-22 23:11:47 -04:00
John Howard
cef5cb2dcb Windows: Stupid copy/paste error
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-22 19:30:47 -07:00
Lei
877dbbbde8 Add ulimit to docker build.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-23 10:26:06 +08:00
Doug Davis
ea3dcee913 Fix typos in deprecation doc
thanks @tiborvass

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-22 18:45:12 -07:00
John Howard
09b86c46b8 Stop SIGSEGV on test dial not reachable
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-22 18:44:04 -07:00
Stephen Day
48d057f8a9 Merge pull request #14884 from aaronlehmann/redundant-image-checks
Avoid redundant HEAD requests for identical layers on push
2015-07-22 18:28:39 -07:00
Aaron Lehmann
810d3b2642 Avoid redundant HEAD requests for identical layers on push
pushV2Tag already deduplicates layers, but the scope of this
deduplication is only for a particular tag. If we are pushing all tags
in a repository, we may check layers several times. Fix this by moving
the layersSeen map from the pushV2Tag function to the v2Pusher struct.

In addition to avoiding some useless round-trips, this makes the "docker
push" output less confusing. It formerly could contain many repeated
lines like:

    124e2127157f: Image already exists
    124e2127157f: Image already exists
    ...

Add test coverage based on the "docker push" output: a hash should not
appear multiple times when pushing multiple tags.

Fixes #14873

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-22 17:54:20 -07:00
Michael Bridgen
b442db9935 Put the network UI and overlay docs in separate files
.. and link to them separately. They are different features.

Signed-off-by: Michael Bridgen <mikeb@squaremobius.net>
2015-07-23 00:36:34 +01:00
Jessie Frazelle
5fdc102396 Merge pull request #14878 from icecrime/14756_golint_on_ci
Enable validate-lint as part of CI
2015-07-22 16:32:29 -07:00
Tibor Vass
a3857cc379 Merge pull request #14580 from rohitkadam19/patch-1
Update docker_remote_api_v1.17.md
2015-07-22 19:22:37 -04:00
Jessie Frazelle
f218192754 Merge pull request #14638 from jfrazelle/new-repo-install-script
update install script/docs for new apt and yum repos
2015-07-22 15:25:27 -07:00
Arnaud Porterie
bc8b8e03b4 Enable validate-lint as part of CI
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-22 15:23:34 -07:00
Alexander Morozov
3198e76b77 Merge pull request #14862 from vdemeester/validate-lint-all-files
Update validate-lint to lint all go files
2015-07-22 15:18:02 -07:00
Jessica Frazelle
451d3f5950 update install script for new repos
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-22 15:08:19 -07:00
Jessica Frazelle
877d740d48 update docs for new install script
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-22 15:08:14 -07:00
David Calavera
9a1728a427 Add -d to the deprecated feature list for 1.8.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-22 15:05:23 -07:00
Sebastiaan van Stijn
a628155a72 Merge pull request #13900 from duglin/Deprecate
Define Docker's deprecation policy
2015-07-22 23:23:37 +02:00
Vincent Demeester
fa34f07ec0 Update validate-lint to lint all go files
By default, using go with package will only validate the go file for the
current platform (or at last misses file_windows.go for example). This
tries to fix that.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-22 23:21:18 +02:00
David Calavera
f82ebe5932 Merge pull request #14839 from jfrazelle/better-io-error
better i/o timeout error on pull
2015-07-22 14:10:50 -07:00
Doug Davis
27b828c9e4 Define Docker's deprecation policy
Announce the cmd line options that are targetted for removal

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-22 14:09:49 -07:00
Sebastiaan van Stijn
4160d1af7d Merge pull request #14528 from estesp/add-readme-links
Add links and correct locations in project/README.md
2015-07-22 23:05:32 +02:00
Jessie Frazelle
a7d8450312 Merge pull request #14864 from ewindisch/apparmor-engine-policy
Add AppArmor policy for the docker binary
2015-07-22 13:56:33 -07:00
Jessie Frazelle
80fec1dbaf Merge pull request #14872 from jfrazelle/fix-debs-apparmour
update deb dockerfiles
2015-07-22 13:35:24 -07:00
Phil Estes
9055eb0ce4 Add links and correct locations in project/README.md
After removing the duplicate ROADMAP in a separate PR, a few other
issues were noted in README.md which are fixed here:
- the directory is project, not hack
- make.sh is no longer in the current dir since hack/ is not project/
  anymore
- MAINTAINERS is no longer here as a markdown file, but is a TOML file
  in the root of the project
- links were added to all files to make it easier to follow from here
  to the appropriate location

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-07-22 16:31:12 -04:00
Alexander Morozov
3ee7297b7e Merge pull request #14869 from calavera/remove_duplicated_cp_handlers_init
Remove duplicated code parsing parameters for the archiving handlers.
2015-07-22 13:25:34 -07:00
Brian Goff
d106a2ea2a Merge pull request #14613 from stefanberger/nohidevols2
Do not hide user provided network mounts [v2]
2015-07-22 16:24:22 -04:00
Sebastiaan van Stijn
d3ba2457d9 Merge pull request #14769 from clintonskitson/add_plugindocs_rexray
updated plugin docs to include REX-Ray
2015-07-22 22:12:41 +02:00
Sebastiaan van Stijn
933d9f2e0d Merge pull request #14799 from coolljt0725/docs_fix_devicemapper_default_basesize
Docs: update the devicemapper default basesize from 10G to 100G
2015-07-22 22:07:38 +02:00
Jessica Frazelle
1fff0a5cc5 actually update deb dockerfiles
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-22 13:06:04 -07:00
David Calavera
53fb4d6fb6 Merge pull request #14871 from jfrazelle/change-leeroy-uri
move leeroy under docker
2015-07-22 13:03:22 -07:00
Jessica Frazelle
9bc502ecde move leeroy under docker
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-22 12:57:13 -07:00
David Calavera
1639288b0a Merge pull request #14067 from vbatts/vbatts-tar-split
graph: layer tar disassembly and reassembly
2015-07-22 12:53:26 -07:00
Alexander Morozov
c328e0c827 Merge pull request #14628 from estesp/update-docker-py
Update docker-py commit to current master (~1.3.1 release)
2015-07-22 12:41:41 -07:00
David Calavera
1612ff9726 Remove duplicated code parsing parameters for the archiving handlers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-22 12:39:46 -07:00
David Calavera
1c6fe58efc Merge pull request #14442 from cpuguy83/refactor_logdrvier_reader
Refactor log driver reader
2015-07-22 11:54:35 -07:00
Jeff Minard
6f8fdb8aa8 Allow RHEL init script to detect daemon start pid failure
If you have some kind of bogus `other_args` in `/etc/sysconfig/docker` the start script will report "started" but it's full of lies. This enhances the flow so that if the pidfile never shows up (failure to start) you get a proper failure message.

I also added dots for fun.

Signed-off-by: Jeff Minard <jeff.minard@creditkarma.com>
2015-07-22 11:36:34 -07:00
Brian Goff
19ba7f9e23 Merge pull request #14753 from flavio/zfs-initialization-errors
ZFS driver: raise better errors during init
2015-07-22 14:27:46 -04:00
David Calavera
346ce4f8d2 Update init scripts to use docker daemon.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-22 11:24:38 -07:00
Eric Windisch
39dae54a3f Add AppArmor policy for the engine
Wraps the engine itself with an AppArmor policy.

This restricts what may be done by applications
we call out to, such as 'xz'.

Significantly, this policy also restricts the policies
to which a container may be spawned into. By default,
users will be able to transition to an unconfined
policy or any policy prefaced with 'docker-'.

Local operators may add new local policies prefaced
with 'docker-' without needing to modify this policy.
Operators choosing to disable privileged containers
will need to modify this policy to remove access
to change_policy to unconfined.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-22 14:20:50 -04:00
David Calavera
40b922418c Merge pull request #14699 from estesp/docker-ps-format
Carry #10255: Docker ps format
2015-07-22 10:58:34 -07:00
Stefan Berger
6bd389b9db Do not hide user provided network mounts [v2]
Prevent the docker daemon from mounting the created network files over
those provided by the user via -v command line option. This would otherwise
hide the one provide by the user.
The benefit of this is that a user can provide these network files using the
-v command line option and place them in a size-limited filesystem.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2015-07-22 13:44:21 -04:00
Phil Estes
65fb04228e Update docker-py to current master (~docker-py 1.3.1)
The docker-py commit used in the standard `Dockerfile` is from Feb. 2015
and is out of date with the current API level and has fixes for things
like the new docker cli config location and registry v2 changes/API
responses as well.

Also pass "NOT_ON_HOST=true" to docker-py test suite so that tests
relying on direct HOST interaction (versus running in a container) are
skipped.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-07-22 13:17:59 -04:00
David Calavera
fe68ac806b Merge pull request #14858 from icecrime/14756_update_linted_packages
Update linted package list
2015-07-22 10:11:51 -07:00
Phil Estes
542b58d8f7 ps --format: Add config.js doc, fix gofmt, add integration tests
Re-add the docs from @calavera's PR to the moved cli cmd reference docs.
Fix gofmt and vet issues from carried commits
Add integration test for using format with --no-trunc and multi-names
Fix custom_test map order dependency on expected value check
Add docs to reference/commandline/ps.md
Remove "-F" flag option from original carried PR content

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-07-22 12:51:16 -04:00
moxiegirl
7d8859a4f5 Merge pull request #14217 from ankushagarwal/ubuntu-15.04
Add support for 15.04, add systemd note for 15.04
2015-07-22 08:56:02 -07:00
Arnaud Porterie
b7184f8574 Update linted package list
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-22 08:46:42 -07:00
Vincent Batts
22347fdb63 graph: isolate the (dis)assembly logic
with the current duplication of code in the grap.go split-up, this puts
all assembly/disassembly logic into isolated functions

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-07-22 11:36:15 -04:00
Vincent Batts
5a00326d29 graph: use tar archive entries for TarLayer
if there is a tar-data.json.gz present for an image layer, then use it
to create the tar archive, instead of the traditional graphdriver Diff.

Signed-off-by: Vincent Batts <vbatts@redhat.com>

Conflicts:
	graph/graph.go
2015-07-22 11:36:15 -04:00
Vincent Batts
ba1f76cbfa graph: variablize file names
and add a comment.. :-)

Signed-off-by: Vincent Batts <vbatts@redhat.com>

Conflicts:
	graph/graph.go
2015-07-22 11:36:15 -04:00
Vincent Batts
5d9f06599c graph: preserve tar archive entries
Preserve the entries from the tar archive for layers added to the graph.

With these entries and relative filesystem path, the tar archives can be
reassembled later.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-07-22 11:36:15 -04:00
Vincent Batts
7fb061832a vendor: adding tar-split dependency for graph
tar-split is a facility to disassemble and reassemble tar archives

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-07-22 11:36:10 -04:00
Eric Windisch
87376c3add Introduce a dedicated unconfined AA policy
By using the 'unconfined' policy for privileged
containers, we have inherited the host's apparmor
policies, which really make no sense in the
context of the container's filesystem.

For instance, policies written against
the paths of binaries such as '/usr/sbin/tcpdump'
can be easily circumvented by moving the binary
within the container filesystem.

Fixes GH#5490

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-22 11:28:32 -04:00
Tibor Vass
875fffdff8 Merge pull request #14851 from bfirsh/golint-integration-cli
Golint integration-cli
2015-07-22 11:28:19 -04:00
Alexander Morozov
a751c0a52f Merge pull request #14790 from hqhq/hq_golint_build
Fix golint warnings for builder
2015-07-22 08:17:04 -07:00
Vivek Goyal
fe26669205 docker: Unmount -init layer root before taking a snapshot
When we are creating a container, first we call into graph driver to take
snapshot of image and create root for container-init. Then we write some
files to it and call into graph driver again to create container root
from container-init as base.

Once we have written files to container-init root, we don't unmount it
before taking a snapshot of it. Looks like with XFS it leaves it in such
a state that when we mount the container root, it goes into log recovery
path.

Jul 22 10:24:54 vm2-f22 kernel: XFS (dm-6): Mounting V4 Filesystem
Jul 22 10:24:54 vm2-f22 kernel: XFS (dm-6): Starting recovery (logdev: internal)
Jul 22 10:24:54 vm2-f22 kernel: XFS (dm-6): Ending recovery (logdev: internal)

This should not be required. So let us unmount container-init before use
it  as a base for container root and then XFS does not go into this
internal recovery path.

Somebody had raised this issue for ext4 sometime back and proposed the same
change. I had shot it down at that point of time. I think now time has
come for this change.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-07-22 10:32:53 -04:00
Brian Goff
f0d0a52d80 Merge pull request #14817 from runcom/golint-pkg-mount
pkg: mount: golint
2015-07-22 09:23:26 -04:00
Doug Davis
a10cb08bbb Merge pull request #14802 from rhatdan/error
If a user hits this error it would be helpful to know tagstore name.
2015-07-22 06:17:38 -07:00
Doug Davis
5328cc346f Merge pull request #14850 from runcom/14846-fix-get-images-search-content-type
Fix wrong Content-Type returned by /images/search API
2015-07-22 06:16:16 -07:00
Ben Firshman
6b3c928140 Fix golint warnings for integration-cli
Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2015-07-22 14:03:50 +01:00
Dan Walsh
4815fdc334 Merge branch 'master' of github.com:docker/docker into error
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-07-22 08:06:19 -04:00
Antonio Murdaca
1a5d6a94c9 Fix wrong Content-Type returned by /images/search API
/images/search was replying with Content-Type text/plain instead
of application/json.
Fix #14846

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-22 11:07:41 +02:00
Antonio Murdaca
0f5c9d301b pkg: mount: golint
Fix the following warnings:

pkg/mount/mountinfo.go:5:6: type name will be used as mount.MountInfo by other packages, and that stutters; consider calling this Info
pkg/mount/mountinfo.go:7:2: struct field Id should be ID

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-22 10:26:10 +02:00
Sebastiaan van Stijn
757c4f0d5c Merge pull request #14821 from stevvooe/coding-style-guidelines
Adding Go coding style guidelines
2015-07-22 09:08:43 +02:00
Sebastiaan van Stijn
50d2597e49 Merge pull request #13711 from calavera/version_volumes_inspect
Expose new mount points structs in inspect.
2015-07-22 09:02:00 +02:00
Qiang Huang
8c4a282a57 Fix golint warnings for builder
Addresses: #14756

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-22 13:29:03 +08:00
Alexander Morozov
30b951ff08 Merge pull request #14842 from hqhq/hq_remove_rootuid
Remove unused parameter in NewTtyConsole
2015-07-21 21:37:21 -07:00
Jessie Frazelle
ff011ededb Merge pull request #14804 from dave-tucker/golint_nat
golint: Fix issues in pkg/nat
2015-07-21 20:38:40 -07:00
Jessie Frazelle
06162fed8b Merge pull request #14822 from runcom/host-config-links-on-start
Allow starting a container with an existing hostConfig which contains links
2015-07-21 20:06:26 -07:00
Jessie Frazelle
052b23e290 Merge pull request #14770 from albers/completion-log-opt
Bash completion for log drivers and their options
2015-07-21 19:58:12 -07:00
Jessie Frazelle
b6c5f6d075 Merge pull request #14794 from HuKeping/ci
CI: use dockerCmd in integration-cli when possible
2015-07-21 19:57:33 -07:00
Hu Keping
012b67c3ea CI: use dockerCmd in integration-cli when possible
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-07-22 17:55:41 +08:00
Jessie Frazelle
162ae444af Merge pull request #14677 from vincentbernat/fix/zsh-completion-update-4
zsh: update zsh completion for docker command
2015-07-21 19:56:03 -07:00
Jessie Frazelle
5dda570d50 Merge pull request #14688 from Microsoft/10662-hookupmac
Windows: Hook up user supplied MAC
2015-07-21 19:55:21 -07:00
Jessie Frazelle
7a06e85270 Merge pull request #14812 from LK4D4/fix_cgroup_parent_tests
Fix cgroup parent tests
2015-07-21 19:53:48 -07:00
Jessie Frazelle
dda1d66ac7 Merge pull request #14808 from cpuguy83/bump_md2man
Bump go-md2man to 1.0.3
2015-07-21 19:53:26 -07:00
Qiang Huang
af3059855c Remove unused parameter in NewTtyConsole
It's introduced in
68ba5f0b69 (Execdriver implementation on new libcontainer API)

But I don't see reson why we need it.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-22 10:32:31 +08:00
Jessica Frazelle
ca3dae523b better i/o timeout error on pull
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-21 19:08:15 -07:00
Clinton Kitson
ca552a953e added REX-Ray as volume plugin to plugin docs
Signed-off-by: Clinton Kitson <clintonskitson@gmail.com>
2015-07-21 21:00:27 -05:00
Brian Goff
d3b3ebc3a4 remove dead code after decoupling from jsonlog
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-07-21 20:47:35 -04:00
Brian Goff
c0391bf554 Split reader interface from logger interface
Implement new reader interface on jsonfile.
Moves jsonlog decoding from daemon to jsonfile logger.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-07-21 20:47:31 -04:00
Arnaud Porterie
c986f85f73 Merge pull request #13171 from jlhawn/archive_copy
docker cp to and from containers
2015-07-21 16:59:44 -07:00
Dave Tucker
15d01d6e6c golint: Fix issues in pkg/nat
Updates #14756

Signed-off-by: Dave Tucker <dt@docker.com>
2015-07-22 00:47:41 +01:00
John Howard
c923774c41 Windows: CLI Improvement
The Ansi parser and their associated actions have been decoupled. Now
parsing results in call backs to an interface which performs the
appropriate actions depending on the environment.

This improvement provides a functional Vi experience and the vttest no
longer panics.

This PR replaces docker/docker #13224 with the latest console updates.

Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-21 16:38:44 -07:00
Tibor Vass
879f440a99 Merge pull request #14833 from icecrime/14756_update_lint_script
Update validate-lint script
2015-07-21 19:28:19 -04:00
Tibor Vass
42533e323c Merge pull request #14829 from RichardScothern/registry-tls
Configure TLS for private v2 registry mirrors.
2015-07-21 19:23:39 -04:00
David Calavera
36106a20ca Merge pull request #14682 from duglin/Issue14621
Remove panic in nat package on invalid hostport
2015-07-21 15:48:51 -07:00
Antonio Murdaca
d52b2b98ba Merge pull request #14830 from Microsoft/10662-removebadcomment
Windows: Remove erroneous comment only (no code change)
2015-07-22 00:39:58 +02:00
David Calavera
1c3cb2d31e Expose new mount points structs in inspect.
Keep old hashes around for old api version calls.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-21 15:33:05 -07:00
Josh Hawn
e54b1e081a docs: Updated for docker cp and its API changes
Documented changes to API to enable new `docker cp` behavior.

Added documentation on `docker cp` usage and behavior.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-21 15:30:20 -07:00
Richard Scothern
6b36a488e7 Remove v1 registry mirror configuration from LookupEndpoints.
V1 mirrors do not mirror the index and those endpoints should
only be indexes.

Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
2015-07-21 15:21:41 -07:00
Richard Scothern
cb57b25689 Configure TLS for private registry mirrors.
If a registry mirror is using TLS, ensure that certs for it
are picked up from /etc/docker/certs.d

Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
2015-07-21 15:21:25 -07:00
Josh Hawn
418135e7ea integration-cli: New docker cp integration tests
Adds several integration tests for `docker cp` behavior with over a dozen
tests for each of:

  container -> local
  local -> container

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-21 15:19:52 -07:00
Josh Hawn
93c3e6c91e api/client: New and Improved docker cp behavior
Supports copying things INTO a container from a local file or from a tar
archive read from stdin.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-21 15:19:52 -07:00
Josh Hawn
db9cc91a9e api/server: StatPath, ArchivePath, ExtractToDir
Adds http handlers for new API endpoints:

GET ContainersArchivePath
  Return a Tar Archive of the contents at the specified location in a
  container. Deprecates POST ContainersCopy. Use a HEAD request to stat
  the resource.

PUT ContainersExtractToDir
  Extract the Tar Archive from the request body to the directory at the
  specified location inside a container.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-21 15:19:52 -07:00
Arnaud Porterie
7f02cc420a Update validate-lint script
Add a set of newly linted packages, and fix the script.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-21 15:02:46 -07:00
Tibor Vass
0d17cba922 Merge pull request #14820 from aaronlehmann/registry-dead-code
Remove dead code in registry package
2015-07-21 17:45:49 -04:00
Victor Palma
d821426fa0 Cleanup: factor anonymous function out of cli.clientRequestAttemptLogin
Signed-off-by: Victor Palma <palma.victor@gmail.com>
2015-07-21 16:28:41 -05:00
John Howard
bd30d27636 Windows: Remove erroneous comment
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-21 14:25:08 -07:00
Stephen J Day
d57ea8da25 Adding Go coding style guidelines
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-07-21 13:47:02 -07:00
Arnaud Porterie
c88ce893a5 Merge pull request #14805 from dave-tucker/golint_namesgen
golint: Lint pkg/namesgenerator
2015-07-21 13:45:31 -07:00
Antonio Murdaca
65121e5fce Allow starting a container with an existing hostConfig which contains links
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-21 22:10:00 +02:00
Aaron Lehmann
9e76e184e4 Remove unused types in registry package
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-21 11:53:57 -07:00
Aaron Lehmann
962dc622d9 Remove dead code in registry package
The only uses of RequestAuthorization and its associated functions were
removed in 19515a7ad8 ("Update graph to
use vendored distribution client for the v2 codepath")

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-21 11:45:53 -07:00
Josh Hawn
c32dde5baa daemon: container ArchivePath and ExtractToDir
The following methods will deprecate the Copy method and introduce
two new, well-behaved methods for creating a tar archive of a resource
in a container and for extracting a tar archive into a directory in a
container.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-21 11:20:10 -07:00
Josh Hawn
a74799b701 pkg/archive: new utilities for copying resources
Adds TarResource and CopyTo functions to be used for creating
archives for use with the new `docker cp` behavior.

Adds multiple test cases for the CopyFrom and CopyTo
functions in the pkg/archive package.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-07-21 11:03:25 -07:00
David Calavera
3ee15acaad Merge pull request #14659 from calavera/promote_volumes_experimental_to_master
Promote volume drivers from experimental to master.
2015-07-21 10:39:17 -07:00
Antonio Murdaca
d796bb9151 Merge pull request #14815 from LK4D4/remove_tty_terminal
Remove unused TtyTerminal interface
2015-07-21 19:36:43 +02:00
Arnaud Porterie
943bf44686 Merge pull request #13617 from Microsoft/10662-sql
Windows: Statically linkable SQLite3
2015-07-21 10:12:40 -07:00
Alexander Morozov
6ae377ffa0 Remove unused TtyTerminal interface
It was used only by integration tests, which now gone.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-21 09:56:28 -07:00
Alexander Morozov
e4f1cf787c Merge pull request #14780 from icecrime/14756_add_golint
Add golint to the development toolbox
2015-07-21 09:50:58 -07:00
John Howard
10bcaca914 Windows: Statically linkable SQLite3
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-21 09:33:46 -07:00
David Calavera
c4d45b6a29 Promote volume drivers from experimental to master.
Remove volume stubs and use the experimental path as the only path.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-21 09:32:44 -07:00
Antonio Murdaca
06b922c63f Merge pull request #14801 from HuKeping/golint
golint: use golint to check package util
2015-07-21 18:09:39 +02:00
Hu Keping
17ce34116a golint: use golint to check package util
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-07-22 05:34:13 +08:00
Arnaud Porterie
6cce8d1838 Add golint to the development toolbox
Add golint to the Dockerfile, and a `validate-lint` task to the
Makefile. Currently, the linter will process a harcoded list of packages
that will expand as we fix more warnings. Eventually, the linter should
process all subpackages of the repo (excluding vendored code).

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-21 09:00:36 -07:00
Alexander Morozov
844fc5f77c Fix cgroup parent tests
After merging mounting cgroups in container this tests doing wrong
checks. Cgroup paths could be prepended by other cgroups from host.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-21 08:59:17 -07:00
Brian Goff
6c95040e3b Merge pull request #14765 from runcom/fix-dockerCmd-refactor
Refactor missed dockerCmd changes
2015-07-21 11:53:28 -04:00
Alexander Morozov
380959dd68 Merge pull request #14609 from ewindisch/apparmor-policy
Move AppArmor policy to contrib & deb packaging
2015-07-21 08:48:02 -07:00
Antonio Murdaca
9818d8fa22 Merge pull request #14796 from WeiZhang555/golint-network
golint on daemon/network package
2015-07-21 17:37:40 +02:00
Dave Tucker
c5667bc569 golint: Lint pkg/namesgenerator
Also addded a couple more tests

Updates #14756

Signed-off-by: Dave Tucker <dt@docker.com>
2015-07-21 16:33:34 +01:00
Eric Windisch
80d99236c1 Move AppArmor policy to contrib & deb packaging
The automatic installation of AppArmor policies prevents the
management of custom, site-specific apparmor policies for the
default container profile. Furthermore, this change will allow
a future policy for the engine itself to be written without demanding
the engine be able to arbitrarily create and manage AppArmor policies.

- Add deb package suggests for apparmor.
- Ubuntu postinst use aa-status & fix policy path
- Add the policies to the debian packages.
- Add apparmor tests for writing proc files
Additional restrictions against modifying files in proc
are enforced by AppArmor. Ensure that AppArmor is preventing
access to these files, not simply Docker's configuration of proc.
- Remove /proc/k?mem from AA policy
The path to mem and kmem are in /dev, not /proc
and cannot be restricted successfully through AppArmor.
The device cgroup will need to be sufficient here.
- Load contrib/apparmor during integration tests
Note that this is somewhat dirty because we
cannot restore the host to its original configuration.
However, it should be noted that prior to this patch
series, the Docker daemon itself was loading apparmor
policy from within the tests, so this is no dirtier or
uglier than the status-quo.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-21 11:05:53 -04:00
Zhang Wei
7be8336fb5 golint on daemon/network package
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-07-21 22:49:49 +08:00
moxiegirl
1ca737875d Merge pull request #14725 from charleswhchan/issue-14433
Issue #14433
2015-07-21 07:48:54 -07:00
Brian Goff
dd7d4d1101 Bump go-md2man to 1.0.3
Fixes an issue with curly braces being escaped when they should not be.
This was particularly an issue in places where `--format '{{ ...  }}'`
is used in the man docs.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-07-21 10:42:02 -04:00
Arnaud Porterie
a7d61882c0 Merge pull request #14778 from thaJeztah/remove-rhel6-rpm-from-generate
Remove reference to CENTOS6 from generate script
2015-07-21 07:27:29 -07:00
Sebastiaan van Stijn
739f7b1da6 Merge pull request #14731 from Evalle/14729-Fix-ubuntu-doc-issue
Fixing ubuntu doc issue
2015-07-21 15:51:11 +02:00
Brian Goff
5a29f0ac88 Merge pull request #14798 from coolljt0725/minor_fix_TestLogsStderrInStdout
Minor fix of TestLogsStderrInStdout
2015-07-21 09:33:34 -04:00
Dan Walsh
96a4469835 If a user hits this error it would be helpful to know tagstore name.
There are several bug reports on this error happening, and error is
not helpful unless you read the code.  Google brings up removing
the repositories.btrfs file.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-07-21 09:26:27 -04:00
Lei
36cc6a985b Docs: update the devicemapper default basesize from 10G to 100G
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-21 20:46:31 +08:00
Lei
2e7daffd7b Minor fix of TestLogsStderrInStdout
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-21 20:37:14 +08:00
Sebastiaan van Stijn
1e9394103c Merge pull request #14727 from vdemeester/opts-docs-updates
Update documentation according to opts updates (#13694)
2015-07-21 14:19:29 +02:00
Vincent Demeester
dc8b765930 Update documentation according to opts updates
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-21 14:08:19 +02:00
Sebastiaan van Stijn
197c9010bc Merge pull request #14766 from runcom/remove-ref-from-libcontainer
Remove reference to docker/libcontainer
2015-07-21 12:49:36 +02:00
Sebastiaan van Stijn
f0473eaf01 Merge pull request #14744 from gesellix/add-gradle-docker-remote-api-plugin
Add gradle docker remote api plugin
2015-07-21 08:34:08 +02:00
Harald Albers
d5aeb3398b Second level completions for --log-opt
Advanced completion for some log driver options:
gelf-address, syslog-address, syslog-facility.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-21 08:25:14 +02:00
Sven Dowideit
2eda00c861 Merge pull request #14757 from rhatdan/man
Fix man pages
2015-07-21 16:08:02 +10:00
Brian Goff
d241d2f36c vendor fsnotify
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-07-20 22:47:03 -04:00
David Calavera
37209190c7 Docker ps custom formatting.
Docker-DCO-1.1-Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-20 22:46:55 -04:00
Jeff Mickey
de0e883331 docker ps: add fields for ordering and column selection
* api/client/ps.go: Refactor CmdPs to use a fields list of
  characters to determine which columns to print on `docker ps`
  invocation.

This adds an ability for the docker command to print the columns of
output in arbitrary order.

Signed-off-by: Jeff Mickey <j@codemac.net>

Docker-DCO-1.1-Signed-off-by: Jeff Mickey <j@codemac.net>
2015-07-20 22:45:21 -04:00
Tibor Vass
efd56bbe6f Merge pull request #14779 from duglin/BetterErrMsg14774
Add better output for TestLinksEtcHostsContentMatch to help debug #14774
2015-07-20 20:40:06 -04:00
Doug Davis
4d0990a753 Merge pull request #14762 from LK4D4/lint_reexec
Add docstring to reexec.Command
2015-07-20 20:37:27 -04:00
Antonio Murdaca
4c0fb85729 Merge pull request #14776 from MHBauer/cliconfig-lint
golint fixes for cliconfig
2015-07-21 02:22:09 +02:00
Doug Davis
09a3b57f94 Merge pull request #14775 from runcom/move-nat-tests
move nat tests from container's unit test to nat's ones
2015-07-20 20:06:34 -04:00
Alexander Morozov
9738b9319b Add docstring to reexec.Command
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-20 17:00:18 -07:00
Morgan Bauer
dea49b7474 golint for cliconfig
- fully capitalize HTTP in HTTPHeaders
 - comment for CONFIGFILE
 - camelcase and privatize oldConfigfile, defaultIndexserver
 - remove unused var errConfigFileMissing
 - comments for methods and functions throughout
 - external references to renamed variables changed

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-07-20 16:48:58 -07:00
Doug Davis
6751a49d14 Add better output for TestLinksEtcHostsContentMatch to help debug #14774
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-20 16:46:51 -07:00
Sebastiaan van Stijn
18ca5d7c0e Remove reference to CENTOS6 from generate script
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-07-21 01:21:33 +02:00
Antonio Murdaca
37d737fc2c Merge pull request #14691 from Microsoft/10662-start
Windows: hostconfig on start
2015-07-21 00:52:19 +02:00
Antonio Murdaca
f2aff58483 move nat tests from container's unit test to nat's ones
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-21 00:29:24 +02:00
Arnaud Porterie
cc7fe0d2d9 Merge pull request #14771 from Microsoft/10662-image2image
Fixing Image struct to no longer use Graph.
2015-07-20 15:25:06 -07:00
Sebastiaan van Stijn
8b7923620a Merge pull request #14768 from fredlf/style-guide-edits
Small edits and clean up
2015-07-21 00:23:56 +02:00
John Howard
9001ea26e7 Fixing Image struct to no longer use Graph.
Signed-off-by:  John Howard <jhoward@microsoft.com>
2015-07-20 13:59:53 -07:00
David Calavera
bd8386c127 Merge pull request #14764 from sevki/14756-lint
golint fix TLs->TLS in docker/
2015-07-20 13:19:42 -07:00
Harald Albers
38acec94c4 Completion: Add support for '=' in arguments to __docker_pos_first_nonflag
This solves several problems that arise from the special treatment of
"=" in Bash.
The fix was required as some log drivers have options in a key=value
form. It also addresses the --option=value and the negated boolean syntax
(--boolean=false).

Note that this is not a general fix for these problems, it is limited to
the __docker_pos_first_nonflag function.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-20 21:22:56 +02:00
Fred Lifton
6609cfb5e7 Small edits and clean up
Signed-off-by: Fred Lifton <fred.lifton@docker.com>

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2015-07-20 11:59:48 -07:00
Antonio Murdaca
bd328da555 Refactor missed dockerCmd changes
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-20 20:55:57 +02:00
Antonio Murdaca
691e3a3e70 Remove reference to docker/libcontainer
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-20 20:30:22 +02:00
Harald Albers
faa8b658e7 Driver-specific completions for --log-opt
Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-20 20:24:01 +02:00
Sevki Hasirci
ce3156f1eb fix mixed typo TlS -> TLS
Signed-off-by: Sevki Hasirci <s@sevki.org>
2015-07-20 21:14:45 +03:00
Harald Albers
e09d0febe6 Add missing log drivers to bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-20 20:13:59 +02:00
Sevki Hasirci
16ea3cf3a3 golint fix TLs->TLS in docker/
Signed-off-by: Sevki Hasirci <s@sevki.org>
2015-07-20 20:50:03 +03:00
David Calavera
46cbfcb168 Merge pull request #14746 from jfrazelle/remove-rhel-centos-6-rpm
remove centos/rhel 6 from rpm builder
2015-07-20 10:44:18 -07:00
David Calavera
fc2f90fc63 Merge pull request #14741 from HuKeping/ci-refactor
CI: use dockercmd when possible
2015-07-20 09:49:40 -07:00
Hu Keping
27ac154d05 CI: use dockercmd when possible
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-07-21 04:40:15 +08:00
David Calavera
ee7af0d2cb Merge pull request #14671 from hqhq/hq_use_dockerCmd
Use dockerCmd when possible
2015-07-20 09:44:42 -07:00
Dan Walsh
732141442a Fix man pages
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-07-20 11:47:59 -04:00
Tibor Vass
77bbee3d00 Merge pull request #14716 from LK4D4/update_libcontainer
Update libcontainer to v0.0.2
2015-07-20 11:33:19 -04:00
Antonio Murdaca
c6a3517246 Merge pull request #14724 from coolljt0725/14603-dockerCmd-integration-cli-3
Refactor: use dockerCmd when possible in integraiton-cli tests
2015-07-20 16:00:38 +02:00
Flavio Castelli
f95b3a6b6a ZFS driver: raise better errors during init
The ZFS driver should raise proper errors when the ZFS utility is
missing or when there's no zfs partition active on the system. Raising the
proper errors make possible to silently ignore the ZFS storage
driver when no default storage driver is specified.

Previous to this commit it was no longer possible to start the
docker daemon in that way:

  docker -d --storage-opt dm.loopdatasize=2GB

The above command resulted in an exit error because the ZFS driver
tried to use the storage options.

Signed-off-by: Flavio Castelli <fcastelli@suse.com>
2015-07-20 15:24:48 +02:00
Vincent Bernat
3a1596f0f5 zsh: update zsh completion for docker command
zsh completion is updated with the content of
felixr/docker-zsh-completion.

 - felixr/docker-zsh-completion@a93e1cb7bd Fix completion of repositories with tags
 - felixr/docker-zsh-completion@590ea70596 Respect provided `--host` flag when invoking docker
 - felixr/docker-zsh-completion@6c557babaa Several cosmetic improvements
 - felixr/docker-zsh-completion@5b63cc591a Update completion for `inspect`
 - felixr/docker-zsh-completion@b7d8f2f7cc Order completions alphabetically
 - felixr/docker-zsh-completion@63f6a06224 Factor completion for `build`, `create` and `run`
 - felixr/docker-zsh-completion@ade49ee47f Enforce positional arguments being last
 - felixr/docker-zsh-completion@850b6b6d95 Update completion for build/commit/export/exec/history/import
 - felixr/docker-zsh-completion@01bfd8c075 Remove completion for `insert` and duplicate of `import`
 - felixr/docker-zsh-completion@c64a1d730a Update completion for `stats` to add `--no-stream` flag
 - felixr/docker-zsh-completion@5e81d78b52 Update completion for `log` to add `--since` flag
 - felixr/docker-zsh-completion@b3c146a1a2 Update completion for `run` to add `--group-add` flag
 - felixr/docker-zsh-completion@8d4f196ad8 Don't trigger expensive completion function for flags
 - felixr/docker-zsh-completion@bd5aaa124d Add completion for `--help` everywhere
 - felixr/docker-zsh-completion@3a67a0e8c4 Return appropriate status code on completion
 - felixr/docker-zsh-completion@4dfcb450ea Add Steve as a regular contributor.
 - felixr/docker-zsh-completion@996a1c6def Add completion for top-level flags
 - felixr/docker-zsh-completion@b6df75905f Ensure short/long option are not allowed twice
 - felixr/docker-zsh-completion@75b6a500a0 Complete repositories with tags only on repository match
 - felixr/docker-zsh-completion@5e6292135f Factorize completion of images/repositories/tags
 - felixr/docker-zsh-completion@1c504eb677 Handle repositories with ":"
 - felixr/docker-zsh-completion@0a05bf818b Update completion for `pause' and `unpause'
 - felixr/docker-zsh-completion@b3a63253e2 Containers name can include Swarm host

In summary:

 - Swarm support
 - Handling repositories with ":"
 - Rework how completion of images/repositories/tags work:
    - felixr/docker-zsh-completion@5e6292135f
    - felixr/docker-zsh-completion@75b6a500a0
    - felixr/docker-zsh-completion@a93e1cb7bd

The remaining changes are here to sync changes done in Docker repository
(mostly from PR #14074 and #14555, by @sdurrheimer). With some minor changes:

 - boolean flags don't complete their arguments (true/false)
 - reuse of `--host` argument is done with `$opt_arg` to avoid parsing
   error
 - build/create/run common options are factorized out
 - `--help` flag is handled differently
 - `pause` and `unpause` accepts several containers as far as I know, so
   the change is reverted
 - some more, but difficult to notice (more completion for some flags I think)

Some labels are reverted, mostly because I did the merge by copy/pasting
new options instead of modifying existing options.

This commit is partial. The way the `--help` option is handled triggered
a major change due to the way things are quoted. Those changes were
partially and programmaticaly reverted in this commit only to minimize
the changes to review. The next commit will restore the full changes.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2015-07-20 14:25:48 +02:00
Sebastiaan van Stijn
46d7762f26 Merge pull request #14614 from hqhq/hq_simplify_swappiness
Simplify swappiness check
2015-07-20 13:51:39 +02:00
Qiang Huang
6f8ddec1d0 Simplify swappiness check
As suggested in https://github.com/docker/docker/pull/14004/files#r34022527

The concern there is we can't differentiate whether user explicitly
asked for an invalid value of -1 or he did not specify anything.

I don't think this would be a problem, because:
 - like all other default values like zero, we can't differentiate
   user specify it or not, most of which, zeros are also invalid, so
   default is default, we show these default values in help info,
   so users would know if they set value as default, it'll be like
   they set nothing.
 - we can't do this kind of string check in REST api request, so
   it'll make the behave different from docker command and RESTapi.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-20 16:10:10 +08:00
Qiang Huang
668e2369cc dockerCmd when possible
Addresses: #14603

integration-cli/docker_cli_daemon_experimental_test.go (hqhq)
integration-cli/docker_cli_daemon_test.go (hqhq)
integration-cli/docker_cli_diff_test.go (hqhq)
integration-cli/docker_cli_events_test.go (hqhq)
integration-cli/docker_cli_events_unix_test.go (hqhq)
integration-cli/docker_cli_exec_test.go (hqhq)
integration-cli/docker_cli_exec_unix_test.go (hqhq)
integration-cli/docker_cli_experimental_test.go (hqhq)
integration-cli/docker_cli_export_import_test.go (hqhq)
integration-cli/docker_cli_help_test.go (hqhq)
integration-cli/docker_cli_history_test.go (hqhq)
integration-cli/docker_cli_images_test.go (hqhq)
integration-cli/docker_cli_import_test.go (hqhq)
integration-cli/docker_cli_info_test.go (hqhq)
integration-cli/docker_cli_inspect_test.go (hqhq)
integration-cli/docker_cli_kill_test.go (hqhq)

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-20 14:55:40 +08:00
Lei
eef6eda7d2 Recfactor: Use dockerCmd when possible in integration-cli tests
Part of #14603
integration-cli/docker_cli_links_test.go (coolljt0725)
integration-cli/docker_cli_links_unix_test.go (coolljt0725)
integration-cli/docker_cli_logs_test.go (coolljt0725)
integration-cli/docker_cli_nat_test.go (coolljt0725)
integration-cli/docker_cli_network_test.go (coolljt0725)
integration-cli/docker_cli_stats_test.go (coolljt0725)
integration-cli/docker_cli_tag_test.go (coolljt0725)
integration-cli/docker_cli_top_test.go (coolljt0725)
integration-cli/docker_cli_version_test.go (coolljt0725)
integration-cli/docker_cli_wait_test.go (coolljt0725

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-20 14:44:22 +08:00
Sven Dowideit
008d57bf7f Merge pull request #14747 from moxiegirl/update-docs-dockerfile
Updating to use the new base
2015-07-20 12:00:02 +10:00
Ankush Agarwal
9847c0c8b0 Add support for 15.04, add systemd note for 15.04
Fixes #12002

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-07-19 18:33:55 -07:00
Mary Anthony
e0bceb7064 Updating to use the new base
Signed-off-by: Mary Anthony <mary@docker.com>
2015-07-19 15:39:43 -07:00
Jessica Frazelle
af5fb9b7d0 remove centos6 from rpm builder
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-19 14:30:48 -07:00
Arnaud Porterie
ccc78c9968 Merge pull request #14715 from icecrime/14365_remove_rhel6_from_docs
Update RHEL/Centos/Fedora installation docs
2015-07-19 13:00:50 -07:00
Tobias Gesellchen
a51684ff8f add gradle-docker-plugin, update docker-client url
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-07-19 21:28:11 +02:00
Tobias Gesellchen
38e7069668 remove unused row-even and row-odd css classes
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-07-19 21:27:12 +02:00
Charles Chan
08d5424c04 Issue #14433
Try to improve the cache behavior for `ADD` and `COPY` commands.

Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-07-19 12:19:28 -07:00
moxiegirl
32764fe3b9 Merge pull request #14676 from duglin/Issue14675
Add missing 'Names' field to /containers/json API output
2015-07-19 06:53:25 -07:00
evalle
120c21c97c Fixing ubuntu doc issue
Signed-off-by: evalle <shmarnev@gmail.com>
2015-07-18 18:24:45 +02:00
Sebastiaan van Stijn
a89370039a Merge pull request #14667 from charleswhchan/patch-5
Trim excess from image. Based on the context, the email itself is sufficient.
2015-07-18 11:14:28 +02:00
Lei
c6cde91b7d Add dockerCmdWithStdoutStderr function
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-18 10:48:28 +08:00
Alexander Morozov
a0a0b8499e Merge pull request #14722 from duglin/FixInspectExecIDTest
Move inspect into the loop on InspectExecID test
2015-07-17 18:21:49 -07:00
Doug Davis
f06620ece3 Move inspect into the loop on InspectExecID test
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-17 17:30:24 -07:00
David Calavera
7f353a11e4 Merge pull request #13681 from tiborvass/carry-11784
Carry 11784: rmi dangling is unsafe when pulling
2015-07-17 16:17:18 -07:00
Alexander Morozov
f0f261a899 Update libcontainer to v0.0.2
This is fix for proper setup of nested containers cgroups.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-17 15:05:17 -07:00
Jessie Frazelle
465192cb28 Merge pull request #14706 from duglin/FixInspectTest
Fix InspectExecID test
2015-07-17 14:37:23 -07:00
Arnaud Porterie
340bd135dd Update RHEL/Centos/Fedora installation docs
Remove mentions of older systems.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-17 14:04:19 -07:00
Sebastiaan van Stijn
415f744d0c Merge pull request #11485 from wlan0/rollover_log
Add rollover log driver, and --log-driver-opts flag
2015-07-17 22:41:26 +02:00
Arnaud Porterie
a192105d3b Merge pull request #14413 from vbatts/vbatts-graph-cleanup
graph: comment clarification about shadowed `err`
2015-07-17 13:39:27 -07:00
Doug Davis
12b6083c8f Remove panic in nat package on invalid hostport
Closes #14621

This one grew to be much more than I expected so here's the story... :-)
- when a bad port string (e.g. xxx80) is passed into container.create()
  via the API it wasn't being checked until we tried to start the container.
- While starting the container we trid to parse 'xxx80' in nat.Int()
  and would panic on the strconv.ParseUint().  We should (almost) never panic.
- In trying to remove the panic I decided to make it so that we, instead,
  checked the string during the NewPort() constructor.  This means that
  I had to change all casts from 'string' to 'Port' to use NewPort() instead.
  Which is a good thing anyway, people shouldn't assume they know the
  internal format of types like that, in general.
- This meant I had to go and add error checks on all calls to NewPort().
  To avoid changing the testcases too much I create newPortNoError() **JUST**
  for the testcase uses where we know the port string is ok.
- After all of that I then went back and added a check during container.create()
  to check the port string so we'll report the error as soon as we get the
  data.
- If, somehow, the bad string does get into the metadata we will generate
  an error during container.start() but I can't test for that because
  the container.create() catches it now.  But I did add a testcase for that.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-17 13:02:54 -07:00
Arnaud Porterie
98ed9a55f4 Merge pull request #14693 from LK4D4/update_libcontainer
Update libcontainer
2015-07-17 13:02:04 -07:00
David Calavera
25d9f38852 Merge pull request #13680 from jfrazelle/new-apt-yum-repos
WIP: new apt yum repos for release scripts
2015-07-17 12:29:21 -07:00
Sebastiaan van Stijn
a763637eae Merge pull request #13951 from calavera/plugins_path
Separate plugin sockets and specs.
2015-07-17 21:11:31 +02:00
Brian Goff
e939a30039 Merge pull request #14709 from rhvgoyal/base-size-100G
devicemapper: Change default basesize to 100G
2015-07-17 12:41:28 -04:00
Brian Goff
fb34537a99 Merge pull request #14685 from Microsoft/10662-revendorhcsshim
Windows: Revendor hcsshim@f674a70f1306dbe20b3a516bedd3285d85db60d9
2015-07-17 12:31:58 -04:00
Jessie Frazelle
97be366961 Merge pull request #14708 from icecrime/14445_remove_workflow_from_maintainers
Remove reviewing process from MAINTAINERS
2015-07-17 09:03:53 -07:00
Ma Shimiao
1b67c38f6f fix 8926: rmi dangling is unsafe when pulling
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-17 11:39:57 -04:00
David Calavera
ff05f9c285 Merge pull request #14445 from icecrime/reviewing_process_and_labels
Document and adjust reviewing process and labels
2015-07-17 08:25:41 -07:00
David Calavera
7b83b0e15c Merge pull request #14605 from brahmaroutu/gccgo_scheduler
Go Scheduler issue with sync.Mutex
2015-07-17 08:16:32 -07:00
Vivek Goyal
424d5e55a2 devicemapper: Change default basesize to 100G
Current default basesize is 10G. Change it to 100G. Reason being that for
some people 10G is turning out to be too small and we don't have capabilities
to grow it dyamically.

This is just overcommitting and no real space is allocated till container
actually writes data. And this is no different then fs based graphdrivers
where virtual size of a container root is unlimited.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-07-17 11:10:23 -04:00
Brian Goff
b900aaac46 Merge pull request #14701 from charleswhchan/patch-6
Add missing space
2015-07-17 10:42:48 -04:00
Vincent Batts
a40e337882 graph: clarify the need for named error
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-07-17 10:01:52 -04:00
Doug Davis
c5c98c31a1 Fix InspectExecID test
The check for the end of the loop was off by one which is why we saw
errors on the following inpsect() call instead of a timeout

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-17 06:46:37 -07:00
Charles Chan
ceca4109fa Add missing space
Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-07-16 22:49:46 -07:00
Alexander Morozov
ac3f7c71b8 Merge pull request #14698 from duglin/AddErr
Add missing 'err' to Fatalf to help debug an issue
2015-07-16 21:42:42 -07:00
Doug Davis
97c5f64001 Add missing 'err' to Fatalf to help debug an issue
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-16 20:27:14 -07:00
root
9ca913d0f1 Go Scheduler issue with sync.Mutex using gccgo
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-17 01:33:58 +00:00
David Calavera
15cb7dfc9e Merge pull request #14578 from mountkin/fix-rmi-image-not-found
don't allow deleting the image of running containers
2015-07-16 18:02:51 -07:00
Alexander Morozov
c86189d554 Update libcontainer
Replaced github.com/docker/libcontainer with
github.com/opencontainers/runc/libcontaier.
Also I moved AppArmor profile generation to docker.

Main idea of this update is to fix mounting cgroups inside containers.
After updating docker on CI we can even remove dind.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-16 16:02:26 -07:00
Alexander Morozov
8801906ced Merge pull request #14620 from hqhq/hq_cgroup_ro_optional
Remove cgroup read-only flag when privileged
2015-07-16 16:00:02 -07:00
John Howard
39ad38ccf9 Windows: hostconfig on start
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-16 15:33:13 -07:00
David Calavera
5d3043649a Merge pull request #14690 from LK4D4/update_libnetwork
Update libnetwork
2015-07-16 15:13:24 -07:00
David Calavera
6c0795747b Separate plugin sockets and specs.
Check if there is a plugin socket first under `/run/docker/plugins/NAME.sock`.
If there is no socket for a plugin, check `/etc/docker/plugins/NAME.spec` and
`/usr/lib/docker/plugins/NAME.spec` for spec files.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-16 14:20:07 -07:00
Alexander Morozov
b84ceb3d0a Update github.com/docker/libnetwork to 2a5cb84758b5115d99d8f82c84845417c6c345a3
This update includes removal of libcontainer dependency.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-16 13:58:38 -07:00
John Howard
a207ce6ae4 Windows: Hook up user supplied MAC
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-16 13:20:14 -07:00
Stephen Day
212525f951 Merge pull request #14664 from calavera/fix_load_tag_with_digest
Check if a tag name to load is a valid digest.
2015-07-16 12:46:05 -07:00
John Howard
83ad0536c1 Windows: Vendor hcsshim@f674a70f1306dbe20b3a516bedd3285d85db60d9
Signed-off-by: John Howard <John.Howard@microsoft.com>
2015-07-16 12:07:20 -07:00
David Calavera
5365e6b463 Merge pull request #13375 from tiborvass/distribution-refactor
Vendor distribution client v2
2015-07-16 11:54:08 -07:00
David Calavera
1ec25653d8 Check if a tag name to load is a valid digest.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-16 10:53:56 -07:00
Derek McGowan
19515a7ad8 Update graph to use vendored distribution client for the v2 codepath
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-16 13:13:47 -04:00
Tibor Vass
276c640be4 remove pkg/transport and use the one from distribution
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-16 13:13:46 -04:00
Tibor Vass
745820fec0 Vendor docker distribution registry client and dependencies
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-16 13:13:46 -04:00
Tibor Vass
48a01a317c Merge pull request #14679 from tiborvass/fix-docker-py-search-test
Fix issue where Search API endpoint would panic due to empty AuthConfig
2015-07-16 13:12:31 -04:00
Tibor Vass
b32c4cb459 Fix issue where Search API endpoint would panic due to empty AuthConfig
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-07-16 12:38:44 -04:00
Sebastiaan van Stijn
8c77e39627 Merge pull request #14571 from charleswhchan/patch-2
Documentation: Split apt-get example onto multiple lines
2015-07-16 18:32:56 +02:00
David Calavera
ac8299ae15 Merge pull request #14623 from HuKeping/refactor-dockercmd
Refactor : Use dockerCmd in integration-cli tests
2015-07-16 09:24:59 -07:00
Hu Keping
71868228c7 Refactor : Use dockerCmd in integration-cli tests
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-07-17 04:07:12 +08:00
Alexander Morozov
97515a35ca Merge pull request #14604 from Microsoft/10662-addbridge
Windows: Plumb through -b on daemon
2015-07-16 08:44:40 -07:00
Doug Davis
081991c01e Add missing 'Names' field to /containers/json API output
Closes #14675

Wasn't sure how far back I needed to go so I did just a few.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-16 08:23:55 -07:00
James Turnbull
b70428c4dd Merge pull request #14670 from chenchun/fix_fluentd_link
Fix fluentd link name
2015-07-16 10:44:54 -04:00
Charles Chan
c4d2b34d13 Split apt-get example onto multiple lines. Use extra spaces to align the code block.
Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-07-16 06:42:07 -07:00
Robin Schneider
397de38ae6 Updated usage information because of removed short parameters.
Signed-off-by: Robin Schneider <ypid@riseup.net>
2015-07-16 10:44:58 +02:00
Chun Chen
ed23ecd305 Fix fluentd link name
Signed-off-by: Chun Chen <ramichen@tencent.com>
2015-07-16 14:23:56 +08:00
Shijiang Wei
ce6410cd4c don't allow deleting the image of running containers
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-07-16 13:14:48 +08:00
Charles Chan
f373bd97c3 Trim excess from image. Based on the context, the email itself is sufficient.
Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-07-15 20:15:57 -07:00
David Calavera
cd642973fa Merge pull request #14661 from LK4D4/vet_warns
Fix some formatting calls
2015-07-15 16:41:18 -07:00
David Calavera
a81dcaef93 Merge pull request #13993 from Ramzec/index_iteration
graph: use truncindex consistently to iterate graph entries
2015-07-15 16:39:59 -07:00
Jessica Frazelle
c850e97c84 Add release-deb & release-rpm scripts.
These will create the apt & yum repos for the deb/rpms generated by build-deb
and build-rpm.

Adds sign-repo script which signs the repo metadata with a gpg key.

Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-15 15:54:00 -07:00
Arnaud Porterie
57c43960f8 Remove reviewing process from MAINTAINERS
The pull request reviewing process and labeling strategy is described as
part of a dedicated file in `project/REVIEWING.md`: remove the existing
description from the `MAINTAINERS` file.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-15 13:56:04 -07:00
Arnaud Porterie
6157937f67 Document reviewing process and labels
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-15 13:14:21 -07:00
Jessica Frazelle
4a5fd6c0f9 add tianon's suites.sh file
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-15 12:48:49 -07:00
Alexander Morozov
a5142f6ac3 Fix some formatting calls
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-15 12:25:50 -07:00
David Calavera
46aea60fb0 Merge pull request #14332 from ankushagarwal/failedLogin
Add 500 check for registry api call
2015-07-15 11:19:31 -07:00
Brian Goff
e98a881570 Merge pull request #14624 from vdemeester/14603-dockerCmd-integration-cli-1
Integration test refactors to use dockerCmd
2015-07-15 14:03:58 -04:00
Jessie Frazelle
386f11a63d Merge pull request #14555 from sdurrheimer/master
Zsh completion updates and improvements
2015-07-15 10:40:41 -07:00
Jessie Frazelle
308ecafad8 Merge pull request #14655 from duglin/CleanupBuild
Cleanup build tmp dir stuff
2015-07-15 09:42:24 -07:00
Jessie Frazelle
e46c7060cc Merge pull request #14643 from dmcgowan/fix-canonical-repo-info
Set canonical name correctly
2015-07-15 09:39:01 -07:00
David Calavera
e0728035fe Merge pull request #14636 from calavera/bump_changelog
Bump changelog from 1.7.1
2015-07-15 08:56:03 -07:00
Brian Goff
39e380b97a Merge pull request #14657 from anatolyborodin/typo_fix
Fix a typo: change "such Bash" to "such as Bash" in dockerfile_best-practices.md
2015-07-15 11:29:38 -04:00
Anatoly Borodin
5f9d1bc018 Fix a typo: change "such Bash" to "such as Bash"
Signed-off-by: Anatoly Borodin <anatoly.borodin@gmail.com>
2015-07-15 17:10:22 +02:00
Brian Goff
1df7a2f940 Merge pull request #14644 from charleswhchan/patch-4
Remove duplicated period in link
2015-07-15 10:34:01 -04:00
Doug Davis
13c08b898b Cleanup build tmp dir stuff
If there's an error while unpacking the build context then we weren't erasing
the tmp dir created to persist the context.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-15 06:23:19 -07:00
Sven Dowideit
a031b6476c Merge pull request #14574 from SvenDowideit/elastic-ip-webhooks
Trusted build servers moved to AWS and use an elastic IP
2015-07-15 12:20:50 +10:00
Sven Dowideit
174870e64f Trusted build servers moved to AWS and use an elastic IP
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-07-14 19:20:09 -07:00
Sven Dowideit
8e7f2fc2e7 Merge pull request #14584 from Jason-Green-Aver/patch-1
Add missing periods to elements in ROADMAP.md
2015-07-15 12:01:31 +10:00
moxiegirl
35746ef97f Merge pull request #14635 from jfrazelle/update-rpm-url
update urls for rpms
2015-07-14 18:04:17 -07:00
Charles Chan
3a23203255 Remove duplicated period in link
Signed-off-by: Charles Chan <charleswhchan@users.noreply.github.com>
2015-07-14 17:50:19 -07:00
Derek McGowan
7f48cd7dce Set canonical name correctly
Currently canonical name gets set to the local name and displayed in the errors.
Canonical name should be the unique and canonical name for an image.
Use docker.io as the canonical domain for images on the public registry.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-14 17:45:49 -07:00
Jessie Frazelle
8c7cd78650 Merge pull request #14639 from calavera/fix_read_write_check
Fix read-write check for volumes.
2015-07-14 16:36:01 -07:00
Andy Rothfusz
918229cbdf Document that load supports compressed tarballs.
As per
ecdbf86884/pkg/archive/archive.go (L96)

Signed-off-by: Andy Rothfusz <github@developersupport.net>
2015-07-14 15:51:06 -07:00
David Calavera
82a54001fd Fix read-write check for volumes.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-14 15:50:43 -07:00
Stephen Day
c7d4a4b2b4 Merge pull request #14521 from mattmoor/authenticated-search
Add the X-Docker-Token header to the /v1/search requests.
2015-07-14 15:43:28 -07:00
Jessica Frazelle
24bb36297c update urls for rpms
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-14 15:26:11 -07:00
David Calavera
b49cbe289f Bump version to 1.8.0-dev.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-14 15:24:48 -07:00
David Calavera
2932069dc7 Bump to version 1.7.1
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-14 15:23:55 -07:00
David Calavera
ecdbf86884 Merge pull request #13694 from vdemeester/opts-test-coverage
Tests, refactor and coverage on package opts
2015-07-14 15:09:48 -07:00
Jessie Frazelle
4e9280ffdb Merge pull request #14304 from vieux/http_proxy_support
add support for base path in docker cli -H
2015-07-14 13:21:51 -07:00
Vincent Demeester
5c295460da Use dockerCmd when possible (#14603)
- integration-cli/docker_cli_attach_test.go
- integration-cli/docker_cli_attach_unix_test.go
- integration-cli/docker_cli_build_test.go
- integration-cli/docker_cli_build_unix_test.go
- integration-cli/docker_cli_by_digest_test.go
- integration-cli/docker_cli_commit_test.go
- integration-cli/docker_cli_config_test.go
- integration-cli/docker_cli_cp_test.go
- integration-cli/docker_cli_create_test.go
- integration-cli/docker_cli_pause_test.go
- integration-cli/docker_cli_port_test.go
- integration-cli/docker_cli_port_unix_test.go
- integration-cli/docker_cli_proxy_test.go
- integration-cli/docker_cli_ps_test.go
- integration-cli/docker_cli_pull_test.go
- integration-cli/docker_cli_push_test.go

- docker_api_attach_test.go
- docker_api_containers_test.go
- docker_api_events_test.go
- docker_api_exec_resize_test.go
- docker_api_exec_test.go
- docker_api_images_test.go
- docker_api_info_test.go

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-14 21:52:43 +02:00
Phil Estes
d2fe5bd12f Merge pull request #14618 from hqhq/hq_add_check_for_swappiness
Add hostConfig check for MemorySwappiness
2015-07-14 15:24:50 -04:00
Brian Goff
e5fa2a740d Merge pull request #14629 from LK4D4/pubsub_timer_off
pkg/pubsub: Don't use time.After if there is no timeout
2015-07-14 13:06:57 -04:00
Sebastiaan van Stijn
899f6f2a89 Merge pull request #14252 from sallyom/docs-use-lowercase
Modify man pages for image-naming
2015-07-14 18:34:36 +02:00
Alexander Morozov
bc6ad1608c Don't use time.After if there is no timeout
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-14 09:14:51 -07:00
Alexander Morozov
7080f5d1cf Add docstring to pubsub.Publisher
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-14 09:10:14 -07:00
Jessie Frazelle
cf09e435c8 Merge pull request #14608 from vincentbernat/fix/zsh-reviewers
zsh: remove Vincent Bernat from reviewers for ZSH completion
2015-07-14 07:08:06 -07:00
James Turnbull
aaf1426995 Merge pull request #14494 from HuKeping/update-docs
docs: update docs for API history
2015-07-14 08:16:00 -04:00
Hu Keping
29660f263e docs: update docs for API history
The response of hitory API includes more information now.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-07-14 19:54:24 +08:00
Steve Durrheimer
91a2d9cc7d Several cosmetic improvements in zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-07-14 11:34:33 +02:00
Steve Durrheimer
12f67141f9 Zsh completion update for the following commits:
- Add fluentd logging driver to zsh completion #12876
- Add inspect --type flag to zsh completion #13187
- Respect -H option in zsh completion #13195
- Fix number of argument limit for pause and unpause in zsh completion

Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-07-14 11:32:26 +02:00
Qiang Huang
a7f5e1c4c3 Remove cgroup read-only flag when privileged
Fixes: #14543

It needs libcontainer fix from:
https://github.com/opencontainers/runc/pull/91

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-14 15:00:41 +08:00
Vincent Demeester
4290bdefab Add dockerCmdWithError
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-14 08:35:06 +02:00
Sebastiaan van Stijn
daffcc044b Merge pull request #14458 from hqhq/hq_fix_docs_create
Docs: fix commandline doc create.md and run.md
2015-07-14 08:10:41 +02:00
Qiang Huang
19c7b65ea6 Add hostConfig check for MemorySwappiness
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-14 13:52:57 +08:00
Brian Goff
154820aca6 Merge pull request #14595 from LK4D4/pubsub_bench
Benchmark and race test for pkg/pubsub
2015-07-13 23:04:44 -04:00
Jason Green
59aa3b27ca Add missing periods to elements in ROADMAP.md
Signed-off-by: Jason Green <Jason.Green@AverInformatics.Com>
2015-07-13 23:01:34 -04:00
Qiang Huang
c3b77bbe8b Docs: fix commandline doc create.md and run.md
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-14 09:26:59 +08:00
Vincent Batts
5ca3e7c54c Merge pull request #14021 from rhvgoyal/detect-pool-loopback-devices
devicemapper: Check loop devices of existing pool
2015-07-13 21:15:23 -04:00
Jessie Frazelle
35b0223921 Merge pull request #10717 from mrunalp/feature/group_add
Adds support for specifying additional groups.
2015-07-13 17:08:05 -07:00
Jessie Frazelle
e221291a25 Merge pull request #14194 from phemmer/cli-version-format
add --format flag to `docker version`
2015-07-13 17:04:06 -07:00
Patrick Hemmer
41588a5766 add --format flag to docker version
Signed-off-by: Patrick Hemmer <patrick.hemmer@gmail.com>
2015-07-13 19:10:56 -04:00
Alexander Morozov
60b34cb957 Merge pull request #14599 from brahmaroutu/gccgo_timeduration
time duration should be nano seconds, gccgo treats it as zero
2015-07-13 16:44:45 -06:00
moxiegirl
73bd855dcc Merge pull request #14581 from vdemeester/14573-docs-docker-bestpractice-fix
Fixes TOC in dockerfile_best_practices.md
2015-07-13 15:14:56 -07:00
Arnaud Porterie
23d0676c07 Merge pull request #14607 from brahmaroutu/increase_timeout
increase timeout to run tests on slow platforms
2015-07-13 14:56:17 -07:00
Vincent Demeester
d03923732f Fixes TOC in dockerfile_best_practices.md
Decided to put the link in a reference word.

Closes #14573

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-13 23:46:04 +02:00
Jessie Frazelle
5e331ad41a Merge pull request #14343 from Pensu/14232-Add-Warning-To-Ubuntu-Script
14232 add warning to ubuntu script
2015-07-13 14:38:58 -07:00
Jessie Frazelle
4185809659 Merge pull request #14518 from Microsoft/10662-infowarnings
Windows: Remove meaningless warnings on docker info
2015-07-13 14:30:57 -07:00
Jessie Frazelle
363cc51e82 Merge pull request #14205 from YanFeng-Adam/patch
update testcase mount/sharedsubtree_linux_test.go
2015-07-13 14:28:30 -07:00
Vincent Bernat
5dbb217bcb zsh: remove Vincent Bernat from reviewers for ZSH completion
Signed-off-by: Vincent Bernat <vincent@bernat.im>
2015-07-13 23:15:16 +02:00
root
b98edced9e Increase timeout to run tests on slow platforms
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-13 21:13:17 +00:00
Robin Schneider
3f0fa1f643 Removed short parameters and use Bash features to make code shorter. Thanks to @tianon.
Signed-off-by: Robin Schneider <ypid@riseup.net>
2015-07-13 22:56:15 +02:00
Jessie Frazelle
15f9766691 Merge pull request #14567 from Microsoft/10662-fixbuilder
Windows: Fix builder
2015-07-13 13:50:52 -07:00
Alexander Morozov
c2b9fa8c9a Merge pull request #14516 from Microsoft/10662-mergeLXCconf
Windows: Tidy up daemon\utils*.go
2015-07-13 14:47:25 -06:00
Jessie Frazelle
655b1d2367 Merge pull request #14556 from Evalle/14497-fix-install-script
Fix issue with detection logic of Centos in install.sh
2015-07-13 13:47:08 -07:00
Alexander Morozov
1da3843149 Merge pull request #14601 from runcom/cleanup-deleteImages
Cleanup not needed calls to deleteImages
2015-07-13 14:04:20 -06:00
Sally O'Malley
05a86905a2 Modify man pages for image-naming
This PR adds recommendations in man pages to use only [a-z0-9-_.] when
naming and tagging images.  The purpose of this is to add consistency
and to make image naming caps rules seem less arbitrary.

This PR addresses confusion with:
1. BaseImage:Tagged (not allowed)
2. baseimage:Tagged (allowed)
3. baseimage/tagged:V1 (allowed)
4. baseimage/Tagged:V1 (not allowed)

Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-07-13 15:49:41 -04:00
Doug Davis
9158ddef89 Merge pull request #14596 from Microsoft/quieter-clean-exec-commands
Quieter debug logging for clean exec commands
2015-07-13 15:43:27 -04:00
John Howard
e0ec0cc115 Windows: Plumb through -b on daemon
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-13 12:41:48 -07:00
evalle
33039aa129 Fix issue with detection logic of Centos in install.sh
Signed-off-by: evalle <shmarnev@gmail.com>
2015-07-13 20:50:31 +02:00
Mrunal Patel
7fb456589b Fixup rebase.
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-07-13 14:50:30 -04:00
Mrunal Patel
d77d0268eb Adds documentation for additional groups.
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-07-13 14:47:28 -04:00
Mrunal Patel
0b7938e845 Adds test for additional groups.
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-07-13 14:47:28 -04:00
Mrunal Patel
e0d96fb3ef Adds support for specifying additional groups.
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-07-13 14:47:28 -04:00
Antonio Murdaca
d3566fa0b1 Cleanup not needed calls to deleteImages
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-13 20:30:53 +02:00
root
6c4e14b3e2 time duration should be nano seconds, gccgo treats it as zero
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-13 18:01:43 +00:00
Sebastiaan van Stijn
4ef67b79bc Merge pull request #14597 from albers/docs-typo-1
Fix typo in documentation
2015-07-13 19:56:54 +02:00
John Howard
b271593c34 Quieter debug logging for clean exec commands
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-13 10:36:36 -07:00
Alexander Morozov
0f466c36b9 Merge pull request #14500 from runcom/add-diff-emtpy-arg-test
Add diff command with emtpy string testcase
2015-07-13 11:30:31 -06:00
Harald Albers
41def26c1b Fix typo in documentation
Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-13 19:17:33 +02:00
Jessie Frazelle
0badebe734 Merge pull request #14426 from albers/completion-events
Add some missing events to bash completion
2015-07-13 10:05:36 -07:00
Alexander Morozov
b39c330a18 Merge pull request #14587 from rhatdan/man
Man page fixes
2015-07-13 10:59:55 -06:00
Jessie Frazelle
a20994fd54 Merge pull request #14508 from jfrazelle/deb-rpm-make
add deb and rpm targets to makefile
2015-07-13 09:48:43 -07:00
Alexander Morozov
e13f9edfed Merge pull request #14583 from sagarhani/patch-1
Added entry for Sir M.Visvesvaraya
2015-07-13 10:47:08 -06:00
Arnaud Porterie
7ba54a4628 Merge pull request #14569 from vdemeester/pkg-fileutils-tests
Add missing tests and docs for pkg/fileutils
2015-07-13 09:29:30 -07:00
Alexander Morozov
8aa7ba731a Race test for pkg/pubsub package
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-13 09:05:47 -07:00
Arnaud Porterie
161f5b2790 Merge pull request #14554 from Ajeey/added-notable-indian-scientists
Added notable indian scientists to names-generator.go
2015-07-13 09:05:47 -07:00
Alexander Morozov
e5da4d62ef Benchmark for pkg/pubsub package
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-13 09:02:16 -07:00
Arnaud Porterie
eb174dbb1e Merge pull request #14553 from WPH95/fix-install
Fix failure on adding source list for ubuntu
2015-07-13 09:00:26 -07:00
Antonio Murdaca
1f963af697 Merge pull request #14586 from Tenk42/14362-Improve-sockRequestRaw-check
Improve sockRequest and sockRequestRaw check
2015-07-13 15:59:39 +02:00
Brian Goff
24c09006c9 Merge pull request #14588 from rhatdan/ro
We now support multiple roModes
2015-07-13 09:53:55 -04:00
paetling
ca4ff1ae36 add to docs that ports do not get exposed when using --net
Signed-off-by: paetling <paetling@gmail.com>
2015-07-13 09:46:39 -04:00
Phil Estes
441ae6c943 Merge pull request #14004 from ktraghavendra/13938_container_swappiness
Add the memory swappiness tuning option to docker.
2015-07-13 09:22:08 -04:00
Dan Walsh
b28d6eaa94 We now support multiple roModes
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-07-13 09:19:15 -04:00
Dan Walsh
3eea6f753a Robert P.J. Day found this problems in man pages
Example in docker search has an extranious -t
docker rmi has a typo

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-07-13 08:59:03 -04:00
Quentin Tayssier
fa6925aa9b Improve sockRequest and sockRequestRaw check
Signed-off-by: Quentin Tayssier <qtayssier@gmail.com>
2015-07-13 21:49:08 +09:00
Sagar Hani
45dbdabdc7 Added entry for Sir M.Visvesvaraya
Signed-off-by: Sagar Hani <sagarhani33@gmail.com>
2015-07-13 17:20:45 +05:30
Rohit Kadam
d51ae591e0 Update docker_remote_api_v1.17.md
HostConfig had misplaced comma(,) for Devices and SecurityOpt keys. Corrected comma position.

Signed-off-by: rohitkadam19 <rohit.d.kadam@gmail.com>
2015-07-13 15:51:27 +05:30
Qiang Huang
7e0dfbf4cd Set default MemorySwap on Docker side
As discussed in docker/libcontainer#616,
we should move this behavior to Docker side.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-13 15:17:43 +08:00
Arnaud Porterie
b0da494aa3 Merge pull request #14559 from Microsoft/10662-todo1
Windows: Move daemon check back centrally
2015-07-12 21:22:43 -07:00
Jessie Frazelle
b58565e9d6 Merge pull request #14568 from runcom/test-vet-fixes
Add minor vet fixes
2015-07-12 14:00:44 -07:00
Vincent Demeester
09adf87f23 Add missing tests and docs for pkg/fileutils
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-12 22:43:42 +02:00
Antonio Murdaca
26ce3f4c90 Add minor vet fixes
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-12 19:16:38 +02:00
John Howard
2ceb114607 Windows: Fix builder
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-12 09:06:18 -07:00
Vincent Demeester
dfc6c04fa3 Add test coverage to opts and refactor
- Refactor opts.ValidatePath and add an opts.ValidateDevice
  ValidePath will now accept : containerPath:mode, hostPath:containerPath:mode
  and hostPath:containerPath.
  ValidateDevice will have the same behavior as current.

- Refactor opts.ValidateEnv, opts.ParseEnvFile
  Environment variables will now be validated with the following
  definition :
  > Environment variables set by the user must have a name consisting
  > solely of alphabetics, numerics, and underscores - the first of
  > which must not be numeric.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-12 10:33:30 +02:00
Raghavendra K T
921da495d2 Add the memory swappiness tuning option to docker.
Memory swappiness option takes 0-100, and helps to tune swappiness
behavior per container.
For example, When a lower value of swappiness is chosen
the container will see minimum major faults. When no value is
specified for memory-swappiness in docker UI, it is inherited from
parent cgroup. (generally 60 unless it is changed).

Signed-off-by: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
2015-07-12 13:16:33 +05:30
John Howard
62a75fca68 Windows: Move daemon check back centrally
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-11 12:42:46 -07:00
Mohammed Aaqib Ansari
ee685dca0d Fixing dangling link in docs/reference/commandline/run.md
Signed-off-by: Mohammed Aaqib Ansari <maaquib@gmail.com>
2015-07-11 14:10:54 -04:00
Ajey Charantimath
c27b93ea26 Added notable indian scientists to names-generator.go
Signed-off-by: Ajey Charantimath <ajey.charantimath@gmail.com>
2015-07-11 20:11:22 +05:30
Penghan Wang
80e90499aa Fix failure on adding source list for ubuntu
For hybrid cloud, some ubuntu vm images doesn't have the directory
`/etc/apt/sources.list.d` which cause failure on creating
`/etc/apt/sources.list.d/docker.list`.

To fix this issue, create this directory first (if it doesn't exist).

Signed-off-by: Penghan Wang <ph.wang@daocloud.io>
2015-07-11 22:37:02 +08:00
Doug Davis
d841b779fd Return 404 on exec-inspect when container is dead but exec is still around
When a container is removed but it had an exec, that still hasn't been
GC'd per PR #14476, and someone tries to inspect the exec we should
return a 404, not a 500+container not running.  Returning "..not running" is
not only misleading because it could lead people to think the container is
actually still around, but after 5 minutes the error will change to a 404
after the GC. This means that we're externalizing our internall soft-deletion/GC
logic which shouldn't be any of the end user's concern. They should get the
same results immediate or after 5 minutes.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-10 20:19:42 -07:00
Avi Miller
865d3a1488 Updated docker-engine.spec to build on Oracle Linux 6.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-07-11 09:53:00 +10:00
Jessie Frazelle
9264d38424 Merge pull request #14537 from stevvooe/allow-one-character-repository-names
Allow one character repository names
2015-07-10 15:41:53 -07:00
Jessie Frazelle
4aeb84612f Merge pull request #14371 from Microsoft/10662-graphdriver
Windows: Graph driver implementation
2015-07-10 15:35:00 -07:00
Jessie Frazelle
ff8cef3326 Merge pull request #13986 from tg123/master
prompt a cli login if receive 401 from registry v2 auth server
2015-07-10 15:33:42 -07:00
Jessie Frazelle
703248da20 Merge pull request #13669 from ewindisch/readonly-proc
Make /proc, /sys, & /dev readonly for readonly containers
2015-07-10 15:32:13 -07:00
Jessie Frazelle
892ac93ec9 Merge pull request #14501 from duglin/FixCommitDocs
Align 'docker commit' docs with the code
2015-07-10 15:21:29 -07:00
Jessie Frazelle
a828415286 Merge pull request #14533 from natebrennand/update-docker-config-docs
update reference to config file
2015-07-10 15:20:52 -07:00
John Howard
52f4d09ffb Windows: Graph driver implementation
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-10 14:33:11 -07:00
Phil Estes
b7e8169274 Merge pull request #13554 from Microsoft/10662-winexec
Windows: The real Windows exec driver is here.
2015-07-10 17:13:10 -04:00
Sebastiaan van Stijn
5bf98dd997 Merge pull request #12856 from duglin/ConfigLocation
Add support for DOCKER_CONFIG/--config to specify config file dir
2015-07-10 23:05:49 +02:00
John Howard
9ae9d4c87a Windows: Exec driver
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-10 13:36:56 -07:00
Stephen J Day
451789cf88 Allow one character repository name components
The docker/distribution dependency was updated in the previous commit to allow
repository name components to only consist of a single letter. The unit tests
have been updated to cement this change.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-07-10 14:06:15 -06:00
Stephen J Day
bfd5202c17 Update docker/distribution dependency
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-07-10 14:05:38 -06:00
Doug Davis
daced1d303 Add support for DOCKER_CONFIG/--config to specific config file dir
Carry #11675

Aside from what #11675 says, to me a key usecase for this is to support
more than one Docker cli running at the same time but each may have its
own set of config files.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-10 12:51:34 -07:00
Brian Goff
20ac0e6164 Merge pull request #14306 from Microsoft/validatepsfilter
Validate status= filter to docker ps
2015-07-10 15:43:01 -04:00
Nate Brennand
6827782bef update reference to config file
`docker login` in 1.7 produces a config file in `~/docker/config.json`
instead of a `~/.dockercfg`.

Signed-off-by: Nate Brennand <nate.brennand@clever.com>
2015-07-10 18:55:47 +00:00
moxiegirl
5bf335d0a2 Merge pull request #14450 from hqhq/hq_fix_oom_kill_disable_doc
Fix docs for oom-kill-disable
2015-07-10 11:15:02 -07:00
moxiegirl
471fbc9b99 Merge pull request #14478 from atilacamurca/patch-1
Update run.md
2015-07-10 11:13:51 -07:00
Michael Crosby
1dd2fda394 Merge pull request #13312 from hqhq/hq_enable_cgroupfs
Add cgroup bind mount by default
2015-07-10 10:45:05 -07:00
Michael Crosby
c4b85baf3d Merge pull request #14527 from duglin/MoreExecTests
More extensive testing of new GC of execs
2015-07-10 10:42:28 -07:00
John Howard
615681f517 Windows: Remove meaningless warnings on docker info
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-10 10:06:20 -07:00
Doug Davis
72b75cd4e7 More extensive testing of new GC of execs
This is a follow-on to PR #14520.

PR #14520 is the quick fix to get the testing working again.

This PR makes sure that the list of execs associated with  a container goes
from zero to one (as a new exec is run), then back to zero when the exec is
finished.  However, we should be able to query the exec while the container
is still around, and even though the exec isn't listed in the container's
inspect data.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-10 07:27:11 -07:00
Brian Goff
469e234ded Merge pull request #14520 from duglin/FixExecTest
Minor fix to the exec inspect test
2015-07-10 09:57:43 -04:00
Doug Davis
899c85b405 Minor fix to the exec inspect test
Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-10 06:19:03 -07:00
Qiang Huang
f18fb5b3ef Add cgroup bind mount by default
Libcontainer already supported mount container's own cgroup into
container, with this patch, we can see container's own cgroup info
in container.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-10 13:12:09 +08:00
Matt Moore
5a170484d1 Add the X-Docker-Token header to the /v1/search requests.
By adding this header AuthTransport will add Basic authentication to the request and allow 'docker search' results to include private images.

Signed-off-by: Matt Moore <mattmoor@google.com>
2015-07-09 20:56:23 -07:00
Brian Goff
6e64e0548f Merge pull request #14514 from hqhq/hq_fix_file_leak
Fix file leak in integration-cli
2015-07-09 21:52:59 -04:00
John Howard
3875be9830 Windows: Tidy up daemon\utils*.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-09 18:47:32 -07:00
Jessie Frazelle
4893ecc112 Merge pull request #14512 from Microsoft/10662-fixdockerinfo
Windows: Fix docker info not to SIGSEGV
2015-07-09 17:16:49 -07:00
John Howard
4348ad68f8 Windows: Fix docker info not to SIGSEGV
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-09 16:37:54 -07:00
Jessie Frazelle
56e8a99b61 Merge pull request #14480 from Microsoft/fix-windows-ci
Fix Windows CI fail due to GH13866
2015-07-09 16:37:41 -07:00
Michael Crosby
e64af7a70e Merge pull request #14505 from kostickm/12905-port-container-attach-tests
Port POST container attach tests
2015-07-09 16:27:03 -07:00
Arnaud Porterie
7df186dac7 Merge pull request #14509 from Microsoft/10662-remove-linux
Windows: Remove linux
2015-07-09 15:42:53 -07:00
Jessie Frazelle
382799a642 Merge pull request #14476 from crosbymichael/execid-growth-fix
Prevent uncontrolled exec config growth
2015-07-09 15:36:11 -07:00
John Howard
7d3bbe9d34 Windows: Remove linux
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-09 15:15:25 -07:00
Jessie Frazelle
a29af0cc42 Merge pull request #14507 from estesp/remove-old-roadmap
No need for the old project/ROADMAP.md
2015-07-09 15:11:26 -07:00
Phil Estes
548caddaf6 No need for the old project/ROADMAP.md
Now that we have ROADMAP.md in the root of the project, the outdated and
non-specific ROADMAP.md in project/ can be removed.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-07-09 18:05:09 -04:00
Michael Crosby
34ab8c4326 Use mark and sweep for exec command removal
This takes the final removal for exec commands in two steps.  The first
GC tick will mark the exec commands for removal and then the second tick
will remove the config from the daemon.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-07-09 14:51:10 -07:00
Jessica Frazelle
21a07a63c9 add deb and rpm targets to dockerfile
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-09 14:51:02 -07:00
Jessie Frazelle
c9e2a71509 Merge pull request #14484 from LK4D4/check_dockerinit_lxc
Check dockerinit only if lxc driver is used
2015-07-09 14:47:03 -07:00
Jessie Frazelle
0f9c458730 Merge pull request #14457 from Djelibeybi/oraclelinux-rpms
Add support for building docker-engine RPM on Oracle Linux 7.
2015-07-09 14:44:42 -07:00
Avi Miller
f18c4f23cc Change generate.sh so that the yum command for packages remains generic across distros.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-07-10 07:34:47 +10:00
Jessie Frazelle
dce90c0bdd Merge pull request #14502 from calavera/help_release_announce_text
Help the release captain to announce the released packages.
2015-07-09 14:27:24 -07:00
David Calavera
eae99e9da7 Help the release captain to announce the released packages.
Add a few links to the release output that the release captain can use to announce the release.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-09 14:19:05 -06:00
Doug Davis
0bf0e5a6ef Align 'docker commit' docs with the code
It was missing some variants and 'maintainer' isn't actually supported.
Also sorted the list of allowed cmds in the code just to make it easier
to diff with the docs.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-09 13:17:47 -07:00
Megan Kostick
a8715ea220 Port POST container attach tests
Signed-off-by: Megan Kostick <mkostick@us.ibm.com>
2015-07-09 12:52:45 -07:00
John Howard
c1b524486c Fix Windows CI fail due to GH13866 and patch up tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-09 10:09:45 -07:00
Antonio Murdaca
9d84d4c2cc Add diff command with emtpy string testcase
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-09 18:46:38 +02:00
Phil Estes
37771c122b Merge pull request #14498 from calavera/fix_volume_from_references
Fix volumes-from mount references.
2015-07-09 12:34:27 -04:00
Alexander Morozov
5369b6cf29 Merge pull request #14348 from sunyuan3/TestPullImageWithAllTagFromCentralRegistry
Add TestPullImageWithAllTagFromCentralRegistry test case.
2015-07-09 09:56:53 -06:00
David Calavera
3d029c3bf3 Fix volumes-from mount references.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-09 09:01:57 -06:00
Qiang Huang
d28b0ba115 Fix file leak in integration-cli
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-09 18:52:18 +08:00
Doug Davis
0afd7bde02 Merge pull request #14381 from Mashimiao/cleanup-client-unused-code
api/client: unify format of args check
2015-07-09 06:42:57 -04:00
Sebastiaan van Stijn
f0e90606cd Merge pull request #13989 from squaremo/netplugin_docs
Mention network driver plugins and point to protocol docs
2015-07-09 09:27:05 +02:00
Sebastiaan van Stijn
ca3e4ccb80 Merge pull request #14241 from ZJU-SEL/fix-ulimit-usage
Fix ulimit usage of nproc
2015-07-09 08:23:26 +02:00
Harry Zhang
54ac3ad736 Clarify that nproc is not for per container
Fix ulimit nproc spec in daemon

Signed-off-by: Harry Zhang <harryzhang@zju.edu.cn>
2015-07-09 02:40:47 +00:00
Jessie Frazelle
cab02a5bbc Merge pull request #14456 from Djelibeybi/issue14042
Remove RPM specific dependencies
2015-07-08 17:17:55 -07:00
Victor Vieux
d2cde4fa66 update doc
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2015-07-08 15:42:41 -07:00
Victor Vieux
47a7f770f4 add support for base path in docker cli -H
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2015-07-08 15:42:40 -07:00
Jessie Frazelle
885e7f2a1e Merge pull request #14479 from LK4D4/fix_test_inspect
Remove prefix dots from inspects in tests
2015-07-08 15:10:51 -07:00
Phil Estes
2df65c32d7 Merge pull request #14402 from mrjana/mh
Vendoring libnetwork
2015-07-08 17:15:13 -04:00
Alexander Morozov
96bc377a8d Check dockerinit only if lxc driver is used
This allow you to run dynamically linked docker without compiling
dockerinit.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-08 14:12:51 -07:00
Michael Crosby
5f017bba48 Add GC loop to clean exec command refs on daemon
This adds an event loop for running a GC cleanup for exec command
references that are on the daemon.  These cannot be cleaned up
immediately because processes may need to get the exit status of the
exec command but it should not grow out of bounds.  The loop is set to a
default 5 minute interval to perform cleanup.

It should be safe to perform this cleanup because unless the clients are
remembering the exec id of the process they launched they can query for
the status and see that it has exited.  If they don't save the exec id
they will have to do an inspect on the container for all exec instances
and anything that is not live inside that container will not be returned
in the container inspect.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-07-08 13:47:59 -07:00
Alexander Morozov
67058e388b Remove prefix dots from inspects in tests
Dots prepended to key in inspectField function

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-08 12:41:05 -07:00
Brian Goff
42eb82ae92 Merge pull request #14477 from Microsoft/10662-runconfig-oopsie
Windows: Wrong build tag in runconfig
2015-07-08 15:34:05 -04:00
Átila Camurça Alves
7121a2ae46 Update run.md
Put a space after the `###` in the Example section. On the github parser the result file looks ok, but in the docker page (<https://docs.docker.com/reference/run/>) looks ugly.

Signed-off-by: Átila Camurça <camurca.home@gmail.com>
2015-07-08 16:09:40 -03:00
Sebastiaan van Stijn
2f566f747b Merge pull request #14459 from lexandro/add-dockery-to-client-libs
Adding dockery as client lib to the docs
2015-07-08 20:52:24 +02:00
John Howard
4cd9301692 Windows: Wrong build tag in runconfig
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-08 11:38:28 -07:00
Michael Crosby
04c9f86bdc Remove exec config from container after exit
This removes the exec config from the container after the command exits
so that dead exec commands are not displayed in the container inspect.
The commands are still kept on the daemon so that when you inspect the
exec command, not the container, you are still able to get it's exit
status.

This also changes the ProcessConfig to a pointer.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-07-08 10:55:42 -07:00
David Calavera
3833c990e7 Merge pull request #14471 from icecrime/14451_devmapper_startup_panic
Fix panic on devicemapper initialization
2015-07-08 11:18:00 -06:00
Arnaud Porterie
f089899023 Fix panic on devicemapper initialization
The ability to save and verify base device UUID (#13896) introduced a
situation where the initialization would panic when removing the device
returns EBUSY.

Functions `verifyBaseDeviceUUID` and `saveBaseDeviceUUID` now take the
lock on the `DeviceSet`, which solves the problem as `removeDevice`
assumes it owns the lock.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-07-08 09:10:20 -07:00
Yuan Sun
c9a4c1401f Add TestPullImageWithAllTagFromCentralRegistry test case.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-07-08 19:47:33 +08:00
Robert Stern
cd454fef5a Adding dockery as client lib to the docs
Signed-off-by: Robert Stern <lexandro2000@gmail.com>
2015-07-08 12:09:34 +02:00
Ma Shimiao
9a4cbb358d api/client: unify format of args check
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-07-08 17:29:47 +08:00
Peeyush Gupta
7e4725cb66 Adding a warning to Ubuntu script
Signed-off-by: Peeyush Gupta <gpeeyush@linux.vnet.ibm.com>
2015-07-08 12:28:30 +05:30
Avi Miller
0117330ae7 Add support for building docker-engine RPM on Oracle Linux 7.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-07-08 16:12:19 +10:00
Avi Miller
e3b5889783 Remove specific dependencies and let RPM auto-generate the dependencies on libraries during build.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-07-08 15:30:42 +10:00
Alexander Morozov
f5ebcfe1dc Merge pull request #14429 from coolljt0725/fix_cp_created_container
Fix copy from a "created" container. Fixes #14420
2015-07-07 22:27:01 -06:00
David Calavera
159e830068 Merge pull request #14379 from Mashimiao/add-missing-stream-close
api/client: close the returned io.ReadCloser
2015-07-07 21:15:45 -06:00
Lei Jitang
289ee90b04 Fix copy from a "created" container. Fixes #14420
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-08 11:15:09 +08:00
Ma Shimiao
91a496055c api/client: close the returned io.ReadCloser
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-07-08 10:06:25 +08:00
Qiang Huang
c92fb4d517 Fix docs for oom-kill-disable
Addresses: #14440

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-08 09:51:10 +08:00
Jessie Frazelle
2fe51ecee7 Merge pull request #14100 from rhvgoyal/overlay-docker-inspect
overlay: Export metadata for container and image in docker-inspect
2015-07-07 18:11:27 -07:00
Jessie Frazelle
9c96304a86 Merge pull request #14315 from Pensu/14176-fix-run-table-rendering
Fixing the table rendering in reference/run.md
2015-07-07 18:09:53 -07:00
Jessie Frazelle
2cd417df73 Merge pull request #14388 from runcom/14316-fix-events-filters
Fix combined image events filters
2015-07-07 18:08:56 -07:00
Jessie Frazelle
25151eb24e Merge pull request #14417 from crosbymichael/attach-stdin
Always attach STDIN if -i,--interactive is specified
2015-07-07 18:07:46 -07:00
Brian Goff
045ccc4326 Merge pull request #14432 from coolljt0725/umount_rootf_on_cp_fail
Always umount container rootfs and volumes on docker cp failed
2015-07-07 21:04:16 -04:00
Jessie Frazelle
81c30c3303 Merge pull request #14430 from zmarouf/master
fix(docs): Small typoes in the Supported installation page
2015-07-07 18:00:19 -07:00
Jessie Frazelle
16f8afb451 Merge pull request #14369 from maximkulkin/14123-dockerize-disk-with-non-en-locale
Fix dockerize-disk.sh working in non-en locale
2015-07-07 17:51:29 -07:00
Jessie Frazelle
e13b7862ab Merge pull request #14335 from konstruktoid/issue_14263
Mention experimental build
2015-07-07 17:49:37 -07:00
Michael Crosby
806b3fa145 Merge pull request #13835 from cpuguy83/gen-prc
generate plugin clients via template
2015-07-07 17:17:39 -07:00
Michael Crosby
a5283d2ff3 Merge pull request #13866 from brahmaroutu/runOOM_13766
RunOOM test should check to see if Oom Control is enabled
2015-07-07 16:21:46 -07:00
David Calavera
b2b367a6ad Merge pull request #14427 from Evalle/14404-add-Metatag
Adding Group Metatag
2015-07-07 16:43:20 -06:00
Arnaud Porterie
f7ea9114d6 Merge pull request #14415 from calavera/warning_on_no_dev_sync
Put dm.override_udev_sync_check back.
2015-07-07 14:35:49 -07:00
David Calavera
e27131519f Warn when udev_sync is not supported.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-07 15:10:24 -06:00
Arnaud Porterie
e3966c1031 Merge pull request #14380 from sunyuan3/TestRunCapAddCHOWN
add TestRunCapAddCHOWN test case
2015-07-07 12:36:14 -07:00
David Calavera
9af7afb9eb Revert "Fix implicit DeviceMapper selection"
This reverts commit 0a376291b2.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-07 12:27:19 -07:00
James Turnbull
a14b1f1e9d Merge pull request #14441 from embray/patch-1
Update windows.md
2015-07-07 15:14:37 -04:00
Roman Strashkin
cc955ae73c added ability to iterate over all indexes and use index.Iterate() instead of ReadDir() to walk over the graph
Signed-off-by: Roman Strashkin <roman.strashkin@gmail.com>
2015-07-07 22:13:28 +03:00
Michael Crosby
a8f8748f7a Merge pull request #14398 from ankushagarwal/gitignore-iml
Removing .idea from .gitignore
2015-07-07 12:10:54 -07:00
Michael Crosby
bfc5966d0b Merge pull request #14094 from rghv/master
Added entries of a few ancient Indian mathematicians who did cool things centuries ago.
2015-07-07 12:03:28 -07:00
Vivek Goyal
bebf534439 devicemapper: Check loop devices of existing pool
Often it happens that docker is not able to shutdown/remove the thin
pool it created because some device has leaked into some mount name
space. That means device is in use and that means pool can't be removed.

Docker will leave pool as it is and exit. Later when user starts the
docker, it finds pool is already there and docker uses it. But docker
does not know it is same pool which is using the loop devices. Now
docker thinks loop devices are not being used. That means it does not
display the data correctly in "docker info", giving user wrong information.

This patch tries to detect if loop devices as created by docker are
being used for pool and fills in the right details in "docker info".

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-07-07 14:13:29 -04:00
Arnaud Porterie
2ea4d90da4 Merge pull request #14422 from Microsoft/10662-dumpstacks
Windows: Win32 event for sigusr1 linux equivalence
2015-07-07 10:54:00 -07:00
Erik Bray
12c85f3671 Update windows.md
With apologies (it wasn't clear from the contributing guidelines how this project feels about PRs for one or two word doc fixes).

Signed-off-by: Erik M. Bray <erik.m.bray@gmail.com>
2015-07-07 13:51:17 -04:00
Michael Crosby
cd72c7f3bb Merge pull request #14421 from dmcgowan/fix-duplicate-layers
Fix duplicate layers in manifest
2015-07-07 10:50:45 -07:00
Brian Goff
10bbf62081 Merge pull request #14375 from coolljt0725/fix_test_events_default_empty
Fix test TestEventsDefaultEmpty. Fixes #14360
2015-07-07 10:37:40 -04:00
moxiegirl
833cdd28ed Merge pull request #14307 from kolyshkin/readme-fixes
README.md: fix cgroups/namespaces name and link
2015-07-07 06:09:20 -07:00
Antonio Murdaca
61418e39d5 Merge pull request #14428 from sunyuan3/TestPushBusyboxImage
Correct wrong comment of TestPushBusyboxImage.
2015-07-07 14:44:08 +02:00
Lei Jitang
13c36ce65e Always umount container rootfs and volumes on docker cp failed
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-07 20:27:45 +08:00
zmarouf
3bee3a2927 fix(docs): Small typoes in the Supported installation page
-> https://docs.docker.com/installation/

Signed-off-by: Zeid Marouf <zeid.marouf@gmail.com>
2015-07-07 11:09:12 +02:00
Yuan Sun
f244ed2531 Correct wrong comment of TestPushBusyboxImage.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-07-07 16:10:37 +08:00
Sebastiaan van Stijn
270d7e1af8 Merge pull request #14406 from duglin/tweakCmdlineHelp
Fix example in cmdline help text to have correct output
2015-07-07 09:26:13 +02:00
Sebastiaan van Stijn
244141a8aa Merge pull request #13987 from larsks/bug/7583
Update docker commit man page re: volumes
2015-07-07 09:16:54 +02:00
evalle
0db7c2a9a6 Adding Group Metatag
Signed-off-by: evalle <shmarnev@gmail.com>
2015-07-07 09:08:55 +02:00
Harald Albers
ea26b38784 Add some missing events to bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2015-07-07 09:04:15 +02:00
Sebastiaan van Stijn
81964ca555 Merge pull request #14275 from ankushagarwal/runtime-metrics-docs-stats
Add Docker stats to runtime metrics article
2015-07-07 08:21:31 +02:00
Sebastiaan van Stijn
a25ee91f1c Merge pull request #14095 from timwraight/master
Clarify .dockerignore example for Markdown files
2015-07-07 07:59:39 +02:00
Kir Kolyshkin
68efb27e99 daemon.md: fix placement of exec driver heading
Options for zfs storage driver were incorrectly placed
under 'exec driver options' header. Move the header to
the correct place.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
2015-07-06 22:51:31 -07:00
Kir Kolyshkin
7e309aed4e README.md: fix cgroups/namespaces name and link
The features Docker relies on are called "cgroups" and "namespaces",
so fix the language accordingly.

Also for cgroups, provide a link to Linux kernel documentation that
is more relevant (and deep) than the Wikipedia article.

Cc: Ankush Agarwal <ankushagarwal11@gmail.com>
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
2015-07-06 22:45:56 -07:00
Jana Radhakrishnan
c6dc6bcbb8 Vendoring libnetwork
Vendoring libnetwork commit: 8fb0a8bc9e3166216ca3da2d0bb15332f6685745
    - Fixes breakage in k/v store handling logic in experimental
    - Adds back all the fixes that went in 1.7.1 to master
    - Change VXLAN port in overlay driver to IANA assigned port

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-07-06 20:53:03 -07:00
Lei Jitang
2802831218 Fix test TestEventsDefaultEmpty. Fixes #14360
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-07 11:27:00 +08:00
Doug Davis
58edd21c05 Merge pull request #14409 from vdemeester/fix-testRequires-network
Fix integration tests with testRequires(c, Network)
2015-07-06 23:08:34 -04:00
John Howard
f4b08c7f5e Windows: Win32 event for sigusr1 linux equivalence
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-06 18:58:53 -07:00
Doug Davis
aea0fd0115 Fix example in cmdline help text to have correct output
Showing "$$ exit 13" caught my eye and wasn't correct.
While in there I also made it so the following paragraph didn't go past 80 chars

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-06 17:51:09 -07:00
Derek McGowan
35081ea4b6 Fix duplicate layers in manifest
Currently the layer array is initialized with the first layer then the first layer is appened to the layer list. Adding the first layer twice causes the layer to appear twice in the manifest, making a duplicate push and pull attempt occur.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-06 17:31:06 -07:00
David Calavera
2905fe4806 Merge pull request #14414 from jfrazelle/fix-rpms
fix rpms
2015-07-06 17:12:38 -07:00
moxiegirl
6ffce0131c Merge pull request #14154 from chrismckinnel/master
Fix a broken link to .dockerignore
2015-07-06 15:48:25 -07:00
Ankush Agarwal
274c838ced Add Docker stats to runtime metrics article
Fixes #13170

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-07-06 15:40:26 -07:00
Michael Crosby
691b2851f7 Always attach STDIN if -i,--interactive is specified
There is no reason to error out or not do what the user expects when -i
is specified on the cli.  We should always attach to the stdin of the
container in this situation.

Closes #14390

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-07-06 15:24:23 -07:00
Sebastiaan van Stijn
4f69609ac2 Merge pull request #14411 from duglin/Issue14407
Add some missing events to the API docs
2015-07-06 23:29:56 +02:00
root
e7fb38410d RunOOM test should check to see if Oom Control is enabled
closes #13766
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-07-06 21:15:55 +00:00
Jessica Frazelle
76a853de6e fix rpms
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-06 14:14:26 -07:00
Vincent Demeester
6e4c6da819 Fix integration tests with testRequires(c, Network)
It seems http://hub.docker.com is not accessible anymore, so switching
to https://hub.docker.com for testRequires(c, Network).

Adds a Timeout check on the TestRequirement to *panic* if there is a
timeout (fail fast).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-06 22:08:35 +02:00
Doug Davis
4bb3c253e8 Add some missing events to the API docs
Closes #14407

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-07-06 11:39:37 -07:00
Vincent Batts
c7492126ef Merge pull request #14127 from vbatts/vbatts-dm-active-external
pkg/devicemapper: external device activation
2015-07-06 14:07:33 -04:00
Ankush Agarwal
b0f7a1c62c Removing .idea from .gitignore
The project cannot include every editor's
ignore files. Contributers can use a local
global gitignore : https://help.github.com/articles/ignoring-files

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-07-06 10:41:38 -07:00
Lars Kellogg-Stedman
a974789537 Update docker commit man page re: volumes
Update the man page for 'docker commit' to make explicit the fact that
'commit' does not save data in volumes.

Addresses comments in #7583

Signed-off-by: Lars Kellogg-Stedman <lars@redhat.com>
2015-07-06 10:16:21 -04:00
Doug Davis
26a35dd09b Merge pull request #14344 from Mashimiao/add-json-check-for-execcreate
api/server: Add missing json check
2015-07-05 19:04:12 -04:00
Sebastiaan van Stijn
7fde07ea16 Merge pull request #14394 from moxiegirl/carry-pr-13361
Carries and closes 13361
2015-07-05 11:30:17 +02:00
Mary Anthony
2c5e044b59 Carries and closes 13361
Signed-off-by: Mary Anthony <mary@docker.com>
2015-07-04 18:12:52 -07:00
moxiegirl
7aa554c444 Merge pull request #14392 from moxiegirl/fix-fedora-table
Table formatting was broken
2015-07-04 16:30:17 -07:00
Sebastiaan van Stijn
57286aad25 Merge pull request #14235 from mlarcher/mlarcher-patch-2
Add workaround in docs for git bash usage issue
2015-07-04 21:00:53 +02:00
James Turnbull
f240bb5e94 Merge pull request #14309 from Tenk42/14287-wheezy-link-broken-on-debian-page
Fixing Wheezy link on debian installation page
2015-07-04 14:57:00 -04:00
Mary Anthony
762214ccc8 Table formatting was broken
Signed-off-by: Mary Anthony <mary@docker.com>
2015-07-04 07:32:58 -07:00
Antonio Murdaca
36958ba49b Merge pull request #14374 from Mashimiao/clinent-load-tiny-typo-fix
client/load: tiny typo fix
2015-07-04 00:24:21 +02:00
Antonio Murdaca
19e6de2654 Fix combined image events filters
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-04 00:19:08 +02:00
Alexander Morozov
90bc5513a9 Merge pull request #14383 from runcom/runconfig-merge-cleanup
add break after key is found in for loop
2015-07-03 15:18:09 -07:00
Antonio Murdaca
a5be803458 Add break after key is found in for loop
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-03 20:37:34 +02:00
Sebastiaan van Stijn
bca32648f4 Merge pull request #14195 from ch3lo/master
update in Kitematic OS support
2015-07-03 18:05:27 +02:00
Marcelo Salazar
1b3bde47ef update in Kitematic OS support
Kitematic now support Windows

Signed-off-by: Marcelo Salazar R <chelosalazar@gmail.com>
2015-07-03 12:32:00 -03:00
Yuan Sun
230179c8dc add TestRunCapAddCHOWN test case
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-07-03 23:25:52 +08:00
Sebastiaan van Stijn
a89f4e36ab Merge pull request #14159 from tristan0x/patch-1
docker-hub Admin right gives access to build logs
2015-07-03 16:56:04 +02:00
Tristan Carel
515df52f19 Rewrite DockerHub group permissions documentation
On behalf of @moxiegirl
    https://gist.github.com/moxiegirl/1c34957b9edc0f6d528c#file-gistfile1-md

Signed-off-by: Tristan Carel <tristan.carel@gmail.com>
2015-07-03 16:29:30 +02:00
Doug Davis
0dedadd4d6 Merge pull request #14377 from coolljt0725/validate_restart_policy
Validate restart policy. Fixes #14351
2015-07-03 07:01:44 -05:00
Lei Jitang
f3faf59925 Validate restart policy. Fixes #14351
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-07-03 17:33:33 +08:00
mlarcher
33be2c5d2e Add workaround in docs for git bash usage issue
When using boot2docker through git bash, there is a nasty issue when trying to share a folder, due to how git bash parses the URIs. The issue is explained in [issue #12751](https://github.com/docker/docker/issues/12751) but needs more visibility in the docs.

Signed-off-by: Matthieu Larcher <github@ringabell.org>
2015-07-03 09:07:44 +02:00
Sebastiaan van Stijn
7b0666f568 Merge pull request #14378 from airandfingers/patch-2
Edit "Working with Containers" page for readability
2015-07-03 08:43:50 +02:00
ayoshitake
0ed7fd46b6 Edit "Working with Containers" page for readability
Signed-off-by: ayoshitake <airandfingers@gmail.com>
2015-07-02 23:10:36 -07:00
Ma Shimiao
801a7fed19 api/server: Add missing json check
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-07-03 08:52:32 +08:00
Ma Shimiao
87cfc2bc58 client/load: tiny typo fix
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-07-03 08:37:27 +08:00
James Turnbull
d7326bd787 Merge pull request #14190 from ankushagarwal/experimentalDownloadLink
Document the location of experimental binary
2015-07-02 20:14:15 -04:00
James Turnbull
7dc8e77cc7 Merge pull request #14295 from Lennie/patch-1
Fix for broken link
2015-07-02 19:24:57 -04:00
John Howard
7bf26d44b0 Validate status= filter to docker ps
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-07-02 16:12:42 -07:00
Maxim Kulkin
8630ad1530 Fix dockerize-disk.sh working in non-en locale
One part of script relies on messages that are
output by some system tool. In non-en locale
those messages get localized which breaks the
script.
This patch enforces en locale for that system
tool.

Signed-off-by: Maxim Kulkin <maxim.kulkin@gmail.com>
2015-07-02 16:08:12 -07:00
Sebastiaan van Stijn
a45576ab40 Merge pull request #14104 from mariusGundersen/patch-1
Spelling
2015-07-03 01:03:58 +02:00
Ankush Agarwal
01cfb70b0a Document the location of experimental binary
Some devs might want to download the binary directly,
especially for systems where the install script does not
work.

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-07-02 15:59:13 -07:00
David Calavera
5b2d14fbbf Merge pull request #14349 from hqhq/hq_error_for_todisk
Show error message when todisk failed
2015-07-02 15:56:56 -07:00
Jessie Frazelle
9356c76d9f Merge pull request #14064 from jfrazelle/no-cache-for-experimental
add no cache for experimental builds bc cloudfront
2015-07-02 17:24:29 -04:00
Jessica Frazelle
0cc664fae3 add no cache for experimental builds bc cloudfront
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-07-02 13:50:11 -07:00
Ankush Agarwal
88f02c2f33 Add 500 check for registry api call
Partially Addresses #14326

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-07-02 12:41:24 -07:00
Eric Windisch
5400d8873f Make /proc, /sys, /dev readonly for readonly containers
If a container is read-only, also set /proc, /sys,
& /dev to read-only. This should apply to both privileged and
unprivileged containers.

Note that when /dev is read-only, device files may still be
written to. This change will simply prevent the device paths
from being modified, or performing mknod of new devices within
the /dev path.

Tests are included for all cases. Also adds a test to ensure
that /dev/pts is always mounted read/write, even in the case of a
read-write rootfs. The kernel restricts writes here naturally and
bad things will happen if we mount it ro.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-07-02 19:08:00 +00:00
David Calavera
71f8ca30ce Merge pull request #14359 from cpuguy83/14354_events_send_resp_immediately
Send resp immediately on GET /events
2015-07-02 12:00:45 -07:00
Arnaud Porterie
f0ed68f852 Merge pull request #14292 from calavera/fix_driver_detection
Fix implicit DeviceMapper selection
2015-07-02 11:33:55 -07:00
Phil Estes
e3d488e280 Merge pull request #13851 from ewindisch/no-allow-rc4
Remove RC4 from the list of registry cipher suites
2015-07-02 13:11:40 -04:00
Alexander Morozov
36f6b7331e Merge pull request #14350 from moysesb/fixdoc
Fixed outdated comment.
2015-07-02 10:06:31 -07:00
David Calavera
0a376291b2 Fix implicit DeviceMapper selection
DeviceMapper must be explicitly selected because the Docker binary might not be linked to the right devmapper library.

With this change, Docker fails fast if the driver detection finds the devicemapper directory but the driver is not the default option.
The option `override_udev_sync_check` doesn't make sense anymore, since the user must be explicit to select devicemapper, so it's being removed.
Docker fails to use devicemapper only if Docker has been built statically unless the option was explicit.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-07-02 09:21:27 -07:00
Brian Goff
d0a299c027 Send resp immediately on GET /events
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-07-02 11:45:24 -04:00
Alexander Morozov
f58758ce36 Merge pull request #14355 from vdemeester/log-to-logrus
Replace latest log by logrus
2015-07-02 08:20:16 -07:00
Vincent Demeester
10e114fb95 Replace latest log by logrus
Related to #11618 and #11614

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-02 16:11:52 +02:00
Sebastiaan van Stijn
9300eb6684 Merge pull request #13825 from Mashimiao/unify-help-message
Unify docker commands' usage in man and help
2015-07-02 15:31:57 +02:00
wlan0
9b782d3af3 add support for maximum log size, and max number of log files
Signed-off-by: wlan0 <sidharthamn@gmail.com>
2015-07-02 06:26:06 -07:00
Sebastiaan van Stijn
ddc9bc6c56 Merge pull request #14341 from ankushagarwal/ubuntuUglyDocs
Fix missing newline
2015-07-02 15:17:27 +02:00
Moysés Borges
8b0e40bb38 Fixed outdated comment.
Synchronized the comment for httputils/mimetype.DetectContentType
with the actual code.

Signed-off-by: Moysés Borges <moysesb@gmail.com>
2015-07-02 08:17:11 -03:00
Qiang Huang
af7f81878f Show error message when todisk failed
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-07-02 18:24:35 +08:00
Ma Shimiao
f38232b475 Unify docker commands' usage in man and help
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-07-02 10:33:26 +08:00
Ankush Agarwal
942a0f994f Fix missing newline
Fixes #14340

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-07-01 18:16:22 -07:00
Sebastiaan van Stijn
98f988f62c Merge pull request #13187 from shishir-a412ed/docker_inspect_issue
Flag Addition: --type flag added for docker inspect command
2015-07-02 01:31:15 +02:00
Sebastiaan van Stijn
f51d77f86e Merge pull request #12548 from camallen/docker_host_docs
add note in docs about DOCKER_HOST env var overriding unix socket config
2015-07-02 01:27:47 +02:00
Alexander Morozov
75864dcb38 Merge pull request #14324 from aboch/ds
Stats API to retrieve nw stats from libnetwork
2015-07-01 15:19:46 -07:00
Alexander Morozov
9b9a4b2e59 Merge pull request #14329 from runcom/14318-fix-regression-cap-add-drop-as-single-string
Fix regression in parsing capabilities
2015-07-01 13:28:07 -07:00
Brian Goff
1751b40b04 Merge pull request #14333 from LK4D4/fix_tags
Fix windows tag in pkg/term
2015-07-01 16:27:57 -04:00
Thomas Sjögren
9b42de0e57 remove bashism
Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
2015-07-01 22:19:24 +02:00
Alexander Morozov
7b3492df0c Fix windows tag in pkg/term
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-01 13:16:16 -07:00
Thomas Sjögren
21ec389fe1 mention the daily experimental build
Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
2015-07-01 22:12:57 +02:00
Antonio Murdaca
10a3061c5f Fix regression in parsing capabilities list when a single string is given
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-01 21:28:02 +02:00
Alessandro Boch
8b40e44c39 Stats API to retrieve nw stats from libnetwork
- Container networking statistics are no longer
  retrievable from libcontainer after the introduction
  of libnetwork. This change adds the missing code
  for docker daemon to retireve the nw stats from
  Endpoint.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-07-01 11:15:16 -07:00
Alexander Morozov
358c022cac Merge pull request #14321 from MattHauglustaine/14266-return-envfile-parse-bufio-error
Return bufio error when parsing env file
2015-07-01 11:06:33 -07:00
Alexander Morozov
53b897ce9c Merge pull request #13744 from turtlebender/feature/whitelist-label-for-commit
Support LABEL as change for `docker commit`
2015-07-01 10:57:33 -07:00
Brian Goff
5fd0563505 Merge pull request #14322 from runcom/14320-fix-regression-attach-cont-notfound
Return not found before hijacking in attach/wsattach
2015-07-01 13:22:03 -04:00
Alexander Morozov
be5e1498c3 Merge pull request #14134 from vdemeester/runconfig-test-coverage
Refactor and add tests coverage on package runconfig
2015-07-01 10:15:26 -07:00
Antonio Murdaca
88d32a6109 Fix regression in containers attach/wsattach api, return not found before hijacking
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-07-01 18:16:17 +02:00
Shishir Mahajan
2cb74e6915 Flag Addition: --type flag added for docker inspect command
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2015-07-01 12:14:01 -04:00
David Calavera
1d7a62d776 Merge pull request #14314 from sunyuan3/TestRmiBlank
Add the expected error verification for TestRmiBlank.
2015-07-01 09:09:56 -07:00
David Calavera
d02540a44a Merge pull request #14305 from aboch/nwst
Import latest libnetwork
2015-07-01 09:07:40 -07:00
Matthieu Hauglustaine
0dadf11bec Add unit tests for ParseEnvFile.
Add unit tests of the ParseEnvFile function. Test for:
* good file
* empty file
* non existent file
* badly formatted file

Signed-off-by: Matthieu Hauglustaine <matt.hauglustaine@gmail.com>
2015-07-01 17:43:03 +02:00
Matthieu Hauglustaine
e848494017 Return bufio error if set in ParseEnvFile
Return an error value if bufio failed to properly read a token.
Avoids running a container with partial environment.

Fixes: #14266

Signed-off-by: Matthieu Hauglustaine <matt.hauglustaine@gmail.com>
2015-07-01 17:17:48 +02:00
Yuan Sun
2179dd00dd Add the expected error verification for TestRmiBlank.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-07-01 19:34:43 +08:00
Peeyush Gupta
636ec6383b Fixing the table rendering in reference/run.md
Signed-off-by: Peeyush Gupta <gpeeyush@linux.vnet.ibm.com>
2015-07-01 16:07:39 +05:30
Vincent Demeester
d4aec5f0a6 Refactor test and add coverage to runconfig
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-07-01 10:16:36 +02:00
Quentin Tayssier
82b444e3fa Fixing Wheezy link
Signed-off-by: Quentin Tayssier <qtayssier@gmail.com>
2015-07-01 13:01:00 +09:00
Alessandro Boch
126b1b2923 Import latest libnetwork
- To bring in interface which retrieves endpoint statistics

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-30 14:16:16 -07:00
David Calavera
bb2cd98b28 Merge pull request #14238 from rileytg/fix-graphdb-test-typo
fixed typo in graphdb_test failure message
2015-06-30 14:15:02 -07:00
Alexander Morozov
27af9a52a1 Merge pull request #14303 from cpuguy83/fix_nat_import
Nat was moved to pkg/nat
2015-06-30 13:56:11 -07:00
Brian Goff
d9af8551f8 Nat was moved to pkg/nat
Somehow this import was missed

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-30 16:48:17 -04:00
David Calavera
a2621ac6da Merge pull request #14294 from mavenugo/bnone
fixed incorrect assumption on --bridge=none treated as disable network
2015-06-30 13:40:52 -07:00
Alexander Morozov
caa4acc7b1 Merge pull request #14297 from pwaller/move-nat-pkg
Move /nat to /pkg/nat
2015-06-30 13:23:30 -07:00
Madhu Venugopal
c9328c6ccf fixed incorrect assumption on --bridge=none treated as disable network
libnetwork host, none and bridge driver initialization is incorrectly
disabled if the daemon flag --bridge=none. The expected behavior of
setting --bridge as none is to disable the bridge driver alone and let
all other modes to be operational.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-30 13:04:28 -07:00
Sebastiaan van Stijn
a453da2114 Merge pull request #13962 from unclejack/shrink_docs_images
docs: shrink some big images
2015-06-30 21:55:44 +02:00
Brian Goff
2de810df3f Merge pull request #14231 from ankushagarwal/checkValidPort
Validate hostConfig on daemon. Check for invalid port specifications
2015-06-30 15:54:24 -04:00
Arnaud Porterie
2d8dd6b93e Merge pull request #12846 from dave-tucker/network_integration
integration-cli: Add Tests for IPv6 and Fixed CIDR
2015-06-30 12:52:07 -07:00
Brian Goff
f13b40f6e7 Merge pull request #13524 from calavera/plugin_json_spec
Plugins JSON spec.
2015-06-30 15:44:48 -04:00
Ankush Agarwal
477201a295 Validate Port specifications on daemon side
Fixes #14230

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-06-30 12:14:49 -07:00
Alexander Morozov
bb364ff459 Merge pull request #14268 from unclejack/lower_allocations_execdriver
daemon: lower allocations
2015-06-30 12:12:06 -07:00
David Calavera
96417dd6c3 Merge pull request #14211 from icecrime/roadmap
Add ROADMAP.md
2015-06-30 11:40:45 -07:00
Lennie
d6da3736d7 Fix for broken link
The link pointed to experimental.md, but that didn't exist. It looks like README.md was intended. Probably experimental.md was renamed.

Signed-off-by: Leen Besselink <github@consolejunkie.net>
2015-06-30 20:10:12 +02:00
Arnaud Porterie
aa5fb884b4 Add ROADMAP.md
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-30 10:17:08 -07:00
Peter Waller
9c2374d196 Move /nat to /pkg/nat
By convention /pkg is safe to use from outside the docker tree, for example
if you're building a docker orchestrator.

/nat currently doesn't have any dependencies outside of /pkg, so it seems
reasonable to move it there.

This rename was performed with:

```
gomvpkg -vcs_mv_cmd="git mv {{.Src}} {{.Dst}}" \
	-from github.com/docker/docker/nat \
        -to   github.com/docker/docker/pkg/nat

```

Signed-off-by: Peter Waller <p@pwaller.net>
2015-06-30 17:43:17 +01:00
moxiegirl
90024b952c Merge pull request #14267 from ankushagarwal/memory-swap-docs
Typo in memory-swap flag
2015-06-30 05:48:47 -07:00
unclejack
c1477db04f daemon: lower allocations
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2015-06-30 01:45:31 +03:00
Alexander Morozov
20467faf13 Merge pull request #14269 from vdemeester/pkg-parsers-test-coverage
Add and refactor tests for pkg/parsers{,*}
2015-06-29 15:24:14 -07:00
David Calavera
18d5d3ba03 Merge pull request #14133 from Microsoft/10662-netmode
Windows: Refactor network modes
2015-06-29 15:02:42 -07:00
Alexander Morozov
475ae0889e Merge pull request #14218 from calavera/fix_exec_user
Default process user to container config user.
2015-06-29 14:31:45 -07:00
Vincent Demeester
b81472a6d8 Add test coverage to pkg/parsers
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-06-29 22:30:11 +02:00
John Howard
c5e6a4b307 Windows: Refactor network modes
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-29 13:13:55 -07:00
Ankush Agarwal
e7e48bcfdd Typo in memory-swap flag
Fixes #14253

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-06-29 13:12:08 -07:00
David Calavera
0faa4518ed Default process user to container config user.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-29 12:52:05 -07:00
James Turnbull
77396bd66a Merge pull request #14222 from erikdw/fix-casing-of-vmware-in-main-doc
Use proper casing for VMware in README
2015-06-29 15:16:01 -04:00
moxiegirl
4fd284bde0 Merge pull request #14244 from ankushagarwal/patch-1
Update README.md
2015-06-29 11:53:25 -07:00
Michael Bridgen
f05e503aec Mention network driver plugins and point to protocol docs
Signed-off-by: Michael Bridgen <mikeb@squaremobius.net>
Signed-off-by: Tom Denham <tom.denham@metaswitch.com>
2015-06-29 19:08:23 +01:00
Fred Lifton
0aea0e4072 Merge pull request #14261 from jeremyprice/basics-doc-typo-fix
fix(docs): removed extra quote character in heading
2015-06-29 11:05:54 -07:00
David Calavera
d543a01e17 Merge pull request #14061 from runcom/clean-builder-daemon-config
Add struct to configure Builder commit
2015-06-29 11:04:05 -07:00
David Calavera
333ac3a3eb Plugins JSON spec.
Allow full configuration of external plugins via a JSON document.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-29 10:32:18 -07:00
Alexander Morozov
cb2079e218 Merge pull request #14193 from stevvooe/concurrent-pull-fix
Attempt to protect on disk image store with mutex
2015-06-29 10:28:02 -07:00
moxiegirl
985fd1c6cc Merge pull request #14243 from moxiegirl/carry-pr-13323
Closes #13323 and carries
2015-06-29 08:33:34 -07:00
Jeremy Price
d612782023 fix(docs): removed extra quote character in heading
Signed-off-by: Jeremy Price <jprice.rhit@gmail.com>
2015-06-29 09:46:50 -05:00
Phil Estes
a386a00a3c Merge pull request #14147 from ericsage/patch-1
Fix Typo in experimental docs
2015-06-29 10:41:09 -04:00
Antonio Murdaca
e1afbbf247 Merge pull request #13876 from vdemeester/pkg-jsonlog-test-coverage
Add test coverage to pkg/jsonlog
2015-06-29 16:39:56 +02:00
Dave Tucker
2dfb7f3b7d integration-cli: Add Tests for IPv6 and Fixed CIDR
This patch adds tests for the `--ipv6` and `--fixed-cidr` daemon flags

Signed-off-by: Dave Tucker <dt@docker.com>
2015-06-29 14:45:00 +01:00
Mary Anthony
078b23a37d Closes #13323 and carries
Entering comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-29 06:18:41 -07:00
Eric Windisch
37846bff58 Remove RC4 from the list of registry cipher suites
The registry client's TLS configuration used the
default cipher list, including RC4. This change
copies the default cipher list from Golang 1.4 and
removes RC4 from that list. RC4 ciphers are considered
weak and vulnerable to a number of attacks.

Uses the tlsconfig package to define allowed ciphers.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-06-29 09:15:13 -04:00
Ankush Agarwal
9bbdaa9280 Update README.md
cgroups and namespaces links are broken. They point to blog.dotcloud.com which is dead. Updating the links to point to informative pages.

Signed-off-by: Ankush Agarwal <ankushagarwal11@gmail.com>
2015-06-29 01:10:27 -07:00
Doug Davis
40a41ffdf0 Merge pull request #14198 from cpuguy83/14170_fix_entrypoint_as_string
Fix unmarshalling of Command and Entrypoint
2015-06-28 19:47:26 -06:00
Riley Guerin
c9175d681b fixed typo in graphdb_test failure message
Signed-off-by: Riley Guerin <rileytg.dev@gmail.com>
2015-06-28 16:54:05 -07:00
Yan Feng
2cca502c05 update testcase mount/sharedsubtree_linux_test.go
Signed-off-by: Yan Feng <yanfeng2@huawei.com>
2015-06-27 14:34:32 -04:00
Vincent Demeester
e7a9a0bed8 Add test coverage to pkg/jsonlog
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-06-27 10:13:47 +02:00
Erik Weathers
9030f53165 Use proper casing for VMware in README
Signed-off-by: Erik Weathers <erikdw@gmail.com>
2015-06-26 19:16:29 -07:00
Antonio Murdaca
7571e6d900 Merge pull request #13779 from estesp/tls-confusing-error
Add better client-side error for failed certificate verification
2015-06-27 02:08:04 +02:00
Phil Estes
d175ef6773 Add better client error for client certificate failure (missing or denied)
This adds a more meaningful error on the client side so the "bad
certificate" error coming from the TLS dial code has some context for
the user.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-06-26 16:23:05 -07:00
David Calavera
389b806945 Merge pull request #13740 from Microsoft/10662-securitywarning
Windows: Security warning based on server OS
2015-06-26 13:09:03 -07:00
David Calavera
2d15b35f7a Merge pull request #14120 from mdavranche/tempDir
tempDir (in the root dir), must be created after the root dir.
2015-06-26 11:46:55 -07:00
John Howard
126529c6d0 Windows: Security warning based on server OS
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-26 10:33:45 -07:00
moxiegirl
31ae9d876a Merge pull request #14126 from laijs/fix-file-permission
docs: fix file's permissions
2015-06-26 10:08:06 -07:00
Alexander Morozov
f46ac8c51c Merge pull request #14162 from dnozay/patch-1
more friendly message for when docker daemon is not running.
2015-06-26 09:27:21 -07:00
Brian Goff
17d6f00ec2 Fix unmarshalling of Command and Entrypoint
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-26 09:00:57 -07:00
Alexander Morozov
b96f109344 Merge pull request #12876 from tagomoris/logger-driver-fluentd
Add new Logging driver "fluentd"
2015-06-26 08:41:10 -07:00
moxiegirl
b49c9850a6 Merge pull request #14200 from moxiegirl/create-install-index
Adding installation index
2015-06-26 02:14:44 -07:00
Mary Anthony
d5de3ed09e Adding installation index
Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-26 02:12:27 -07:00
Chris McKinnel
3c5b17cf7e Fix a broken anchor tag on the CLI builder page
Signed-off-by: Chris McKinnel <chrismckinnel@gmail.com>
2015-06-26 09:43:30 +01:00
Stephen J Day
7eac23cf8d Attempt to protect on disk image store with mutex
During `(*Graph).Register, there was no protection on adding new layers
concurrently. In some cases, this resulted in corruption of a layer by creating
the directory but not the underlying data. This manifested in several different
IO errors reported in the client.  This attempts to fix this by adding a mutex
by Image ID to protect the Register operation.

We do not completely understand the root cause of this corruption other than
the result is somehow tied to this particular function.  This fix has been
confirmed to address the issue through testing.

Unfortunately, this fix does not address existing corruption. The user will
have to remove and re-pull the corrupt layer to stop the error from happening
in the future. This change only ensures that the layer will not become corrupt.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-06-25 20:16:37 -07:00
Stephen Day
c7ece73fa4 Merge pull request #14046 from mattmoor/token-investigation
Unconditionally use AuthTransport.
2015-06-25 19:07:10 -07:00
TAGOMORI Satoshi
78f4a9dad4 Update English expressions by review comments
Signed-off-by: TAGOMORI Satoshi <tagomoris@gmail.com>
2015-06-26 11:04:26 +09:00
TAGOMORI Satoshi
361a582ba0 Add new logging driver: fluentd
Signed-off-by: TAGOMORI Satoshi <tagomoris@gmail.com>
2015-06-26 11:03:11 +09:00
Tibor Vass
dd408891ba Merge pull request #14139 from jlhawn/fix_build_with_auth
[api, builder] Fix build auth config
2015-06-25 17:39:36 -07:00
moxiegirl
2e078b24b8 Merge pull request #14187 from Microsoft/docs-version
Fix docs for #14047
2015-06-25 16:07:27 -07:00
Vivek Goyal
67473c6d06 overlay: Export metadata for container and image in docker-inspect
Export metadata for container and image in docker-inspect when overlay
graphdriver is in use. Right now it is done only for devicemapper graph
driver.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-06-25 17:33:20 -04:00
John Howard
857e0ba32e Fix docs for #14047
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-25 13:39:12 -07:00
moxiegirl
50a1d0f0ef Merge pull request #14142 from fl0yd/patch-1
Update plugins_volume.md
2015-06-25 13:17:02 -07:00
moxiegirl
be33d13f67 Merge pull request #14183 from ChanderG/master
Fix minor typo in CONTRIBUTING.md
2015-06-25 13:16:04 -07:00
moxiegirl
de9c5473f7 Merge pull request #14178 from csarrazi/patch-1
[Easy-Pick] [Documentation] Fix broken links for Fedora
2015-06-25 13:15:26 -07:00
moxiegirl
15d8e7bc6b Merge pull request #14161 from laijs/man_pages
man: convert `docker/docs/man` to `docker/man`
2015-06-25 13:12:46 -07:00
moxiegirl
8c8e8d624f Merge pull request #14156 from HuKeping/master
Docs: fix wrong example of API Exec
2015-06-25 13:09:36 -07:00
moxiegirl
7201127cfb Merge pull request #14189 from moxiegirl/carry-14079
Splitting out the cli command into parts.
2015-06-25 12:05:56 -07:00
Mary Anthony
561bfb268d Splitting out the cli command into parts.
Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-25 12:02:41 -07:00
Alexander Morozov
c281549610 Merge pull request #14030 from estesp/init-memory-swappiness
Initialize swappiness in libcontainer cgroups template
2015-06-25 11:36:54 -07:00
Phil Estes
e8b87cfce1 Merge pull request #13907 from chenchun/exitcode
Set exit code of old running container as 137
2015-06-25 10:57:48 -07:00
moxiegirl
81d6f60935 Merge pull request #14182 from moxiegirl/fix-logging
Breaking logging driver material out of run
2015-06-25 10:28:36 -07:00
Alexander Morozov
e0cfe36b8e Merge pull request #14163 from mrjana/cnm_integ
Fix endpoint leave failure for --net=host mode
2015-06-25 10:17:03 -07:00
Damien Nozay
e9ac7d24a7 Update utils.go
make error message when running commands while daemon is down more user-friendly.

```
docker@54.175.201.239 ~: sudo service docker stop
docker stop/waiting
docker@54.175.201.239 ~: docker images
Get http:///var/run/docker.sock/v1.19/images/json: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
```

Signed-off-by: Damien Nozay <damien.nozay@gmail.com>
2015-06-25 10:15:52 -07:00
Chun Chen
b0b2f979c7 Set exit code of old running container as 137
Signed-off-by: Chun Chen <chenchun.feed@gmail.com>
2015-06-25 22:30:09 +08:00
ChanderG
e594a2fb54 Fix minor typo in CONTRIBUTING.md
Signed-off-by: ChanderG <chandergovind@gmail.com>
2015-06-25 18:23:38 +05:30
Mary Anthony
31dd97f4ad Breaking logging driver material out of run
- creating index which is overview of configuring logs
- linking to individual journald/fluent material
- leaving behind table and link to index in run

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-25 05:00:49 -07:00
Charles Sarrazin
62213219dc Fix broken fedora documentation
The documentation is currently broken for the fedora page. This PR fixes missing the markup.

Signed-off-by: Charles Sarrazin <charles@sarraz.in>
2015-06-25 10:16:46 +02:00
moxiegirl
4ab8b88286 Merge pull request #13973 from calavera/fix_zfs_options_doc_location
Move zfs options doc to the storage section.
2015-06-24 15:52:13 -07:00
Jana Radhakrishnan
9bb69f9726 Fix endpoint leave failure for --net=host mode
When a container is started with `--net=host` with
a particular name and it is subsequently destroyed,
then all subsequent creations of the container with
the same name will fail. This is because in `--net=host`
the namespace is shared i.e the host namespace so
trying to destroy the host namespace by calling
`LeaveAll` will fail and the endpoint is left with
the dangling state. So the fix is, for this mode, do
not attempt to destroy the namespace but just cleanup
the endpoint state and return.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-06-24 12:33:52 -07:00
Hu Keping
221fa4c3d1 Docs: fix wrong example of API Exec
The last "," should not shown up, otherwise you will get the error
back as below:
- invalid character '}' looking for beginning of object key string.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-06-25 02:03:27 +08:00
Sebastiaan van Stijn
afd4d544cf Merge pull request #14119 from moxiegirl/fix-heading-blanks
Fix heading blanks
2015-06-24 08:35:42 -07:00
Lai Jiangshan
85e2957409 man: convert docker/docs/man to docker/man
Signed-off-by: Lai Jiangshan <jiangshanlai@gmail.com>
2015-06-24 23:31:12 +08:00
unclejack
0a9c580fad Merge pull request #14153 from feixueliantian1/typo
Fix Typo in stdcopy.go
2015-06-24 16:11:20 +03:00
yuchengxia
16be453e0f Fix Typo in stdcopy.go
Signed-off-by: Yu Chengxia <yuchengxia@huawei.com>
2015-06-24 15:00:14 +08:00
Eric Sage
4466d00534 Typo
Signed-off-by: Eric Sage <eric.david.sage@gmail.com>
2015-06-23 19:41:55 -07:00
fl0yd
0835b20ace Update plugins_volume.md
Signed-off-by: Mark Oates <fl0yd@me.com>
2015-06-23 15:30:36 -07:00
Josh Hawn
02c7bbefb8 [api, builder] Fix build auth config
With the 1.7 release, we introduced a change to how we store registry
credentials, but the build API endpoint did not expect a change in the format
of that file. This patch fixes this problem so that you can again pull private
images during `docker build`.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-06-23 12:58:17 -07:00
Alexander Morozov
4dd1d1bfa5 Merge pull request #13810 from d23/syslog-facility
Add syslog-facility option
2015-06-23 12:05:15 -07:00
Alexander Morozov
d5721f0385 Merge pull request #13833 from Microsoft/10662-dockerbuild
Windows: Start docker build working
2015-06-23 11:46:56 -07:00
David Calavera
aa4f495cae Merge pull request #13966 from mountkin/fix-stats-goroutine-leak
fix the goroutine leak in the stats API if the container is not running
2015-06-23 10:06:35 -07:00
Vincent Batts
5c93c265f6 Merge pull request #14047 from Microsoft/10662-versionadd
Add build time to version and tidy output
2015-06-23 09:57:31 -07:00
Lai Jiangshan
f23698bb14 docs: fix file's permissions
The README.md and the *.png should not have the executable
permissions, remove them.

Signed-off-by: Lai Jiangshan <jiangshanlai@gmail.com>
2015-06-24 00:09:27 +08:00
Alexander Morozov
9b5875eb9d Merge pull request #14114 from HuKeping/master
Remove useless conversion
2015-06-23 08:10:34 -07:00
Hu Keping
250ce20fee Remove useless conversion
It is already type float.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-06-24 00:47:08 +08:00
root
41f69883d2 tempDir (in the root dir), must be created after the root dir.
Signed-off-by: mikael.davranche <mikael.davranche@corp.ovh.net>
2015-06-23 14:53:18 +02:00
Mary Anthony
960cbd2c8d Fixes #14117
Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-23 05:17:20 -07:00
Mary Anthony
e81861ea54 Closes #14055 for anchal
Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-23 05:14:53 -07:00
Dennis Docter
609e7b0a55 Add --log-opt to specify facility for syslog driver
Signed-off-by: Dennis Docter <dennis@d23.nl>
2015-06-23 14:04:25 +02:00
Shijiang Wei
1cbf5a54da fix the goroutine leak in the stats API if the container is not running
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-06-23 19:38:15 +08:00
Antonio Murdaca
cb6ca19b53 Merge pull request #14110 from webwurst/patch-2
Typo
2015-06-23 12:34:16 +02:00
Vincent Batts
8861d65e97 pkg/devicemapper: external device activation
Reported-by: Sheng Yang <shend.yang@rancher.com>
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-06-22 20:28:15 -04:00
moxiegirl
51264fa63c Merge pull request #14111 from bfirsh/update-compose-swarm-docs
Fix compose/swarm/network docs
2015-06-22 17:23:57 -07:00
Ben Firshman
fe1f210c42 Update documentation for compose/swarm/network
Thanks to @aanand for help debugging

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2015-06-22 16:45:22 -07:00
Tobias Bradtke
1797f03760 Typo
Signed-off-by: Tobias Bradtke <webwurst@gmail.com>
2015-06-23 00:52:16 +02:00
David Calavera
74be85500a Merge pull request #12812 from sharidas/8373-display-docker-ps-host
Display when a container is in --net=host in docker ps
2015-06-22 14:06:07 -07:00
John Howard
87eae0d659 Add branch and build time to version
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-22 13:00:27 -07:00
Ben Firshman
e02947b236 Add link to compose/swarm/network to readme
Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2015-06-22 11:38:46 -07:00
Marius Gundersen
2e7399a52b spelling
Signed-off-by: Marius Gundersen <me@mariusgundersen.net>
2015-06-22 20:04:06 +02:00
Tim Wraight
182d2668a1 Clarify .dockerignore example for Markdown files
The current documentation correctly states that dockerignore pattern
searches are non-recursive. However, the example given for Markdown
files seems to contradict this by saying that `*.md` will exclude *all*
Markdown files. This commit clarifies the situation by explicitly
specifying that `*.md` will only exclude files in the root directory of
the project.

Signed-off-by: Tim Wraight <tim.wraight@tangentlabs.co.uk>
2015-06-22 17:53:05 +01:00
moxiegirl
a7116c5e2b Merge pull request #14101 from aanand/compose-swarm-networking-guide
Add experimental Compose/Swarm/multi-host networking guide
2015-06-22 09:47:33 -07:00
David Calavera
f39b9a0b0f Merge pull request #14071 from mavenugo/mhnet
Vendoring libnetwork 83743db8ceb2bdbfa0960d9a54ed2f98df4ea846
2015-06-22 08:35:18 -07:00
Aanand Prasad
a5f6407c5b Add experimental Compose/Swarm/multi-host networking guide
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
2015-06-22 08:33:20 -07:00
VinayRaghavanKS
1a28fb7583 Added entries for aryabhata, bhaskara, brahmagupta, mahavira, panini and varahamihira - ancient Indian mathematicians
Signed-off-by: VinayRaghavanKS <raghavan.vinay@gmail.com>
2015-06-22 19:50:07 +05:30
Madhu Venugopal
739996c1d7 Adding container to secondary network to support port mapping
With publish-service and default-network support, a container could be
connected to a user-defined network that is backed by any driver/plugin.
But if the user uses port mapping or expose commands, the expectation
for that container is to behave like existing bridge network.
Thanks to the Libnetwork's CNM model, containers can be connected
to the bridge network as a secondary network in addition to the
user-specified network.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-22 04:15:57 -07:00
Madhu Venugopal
1e59169509 Reworked ReleaseNetwork to make use of libnetwork's new LeaveAll API
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-22 04:15:57 -07:00
Madhu Venugopal
53b0f686f7 Removed the default "bridge" in builder
Now that the default network mode is "default" and this mode is chosen
even if the mode is empty string, it is not correct to have builder
still pointing to "bridge" as default (though this is daemon default).

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-22 04:15:56 -07:00
Madhu Venugopal
508065a7ad Vendoring in libnetwork for native multihost networking
- brings in vxlan based native multihost networking
- added a daemon flag required by libkv for dist kv operations
- moved the daemon flags to experimental

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-22 04:15:41 -07:00
Sujith Haridasan
8a9ed09746 Display when a container is in --net=host in docker ps
Display */tcp, */udp when a container is in --net=host in docker ps

Signed-off-by: Sujith Haridasan <sujith.h@gmail.com>
2015-06-22 11:44:33 +05:30
moxiegirl
abb85f822d Merge pull request #14085 from moxiegirl/1.7-release-notes
Commenting out the release-notes for 1.6
2015-06-21 20:46:45 -07:00
Mary Anthony
efef353a29 Commenting out the release-notes for 1.6
Original text

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-21 20:41:43 -07:00
Alexander Morozov
c782be0e2a Merge pull request #14062 from runcom/cleanup-dead-code
Remove dead code
2015-06-21 16:01:19 -07:00
Arnaud Porterie
4548d3fb77 Merge pull request #14074 from sdurrheimer/master
Update the zsh completion
2015-06-21 15:43:09 -07:00
Brian Goff
7491f9a9c1 Merge pull request #12099 from moysesb/12078-binary_remote_context
Handle binary remote contexts when creating builder jobs.
2015-06-21 13:59:26 -07:00
Steve Durrheimer
b2cc6f1b47 Update the zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-06-21 17:33:07 +02:00
Arnaud Porterie
fef0e84b2d Merge pull request #14051 from mavenugo/services
experimental services ui
2015-06-20 18:24:37 -07:00
Sebastiaan van Stijn
67f9bbcbd4 Merge pull request #11907 from gcuisinier/11094-allow-import-from-file2
fix #11094 - Allow 'docker import' to load from local files
2015-06-20 12:17:58 -07:00
Dave Tucker
4736b17315 Initial Services docs
Signed-off-by: Dave Tucker <dt@docker.com>
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-20 11:04:25 -07:00
Madhu Venugopal
1ac350a0ec Support for --publish-service flag in docker run
This commit makes use of the CNM model supported by LibNetwork and
provides an ability to let a container to publish a specified service.
Behind the scenes, if a service with the given name doesnt exist, it is
automatically created on appropriate network and attach the container.

Signed-off-by: Alessandro Boch <aboch@docker.com>
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-20 11:03:38 -07:00
Antonio Murdaca
927d13bc3c Remove dead code
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-06-20 19:14:15 +02:00
Jessie Frazelle
a93a5ee50a Merge pull request #14054 from konstruktoid/issue_14045
rpm name and location
2015-06-20 07:14:22 -07:00
Antonio Murdaca
7046651b87 Add struct to configure Builder commit instead of using one defined in daemon
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-06-20 12:53:47 +02:00
Robin Schneider
52e193bed7 Implemented as proposed by @tianon and @ypid. Restores the default behavior (using xz compression).
* `--compression=none` and `--no-compression` to disable compression.
* `--compression=auto` to use the default compression (enabled by default).
* `--compression=xz` to use xz compression (default compression).
* `--compression=gz` to use gzip compression.

Signed-off-by: Robin Schneider <ypid@riseup.net>
2015-06-20 12:14:49 +02:00
Gildas Cuisinier
3f64b76d4c work on #11094 allow import from local file
Signed-off-by: Gildas Cuisinier <gildas.cuisinier@gcuisinier.net>
2015-06-20 09:04:43 +02:00
Brian Goff
c3997daeb5 Merge pull request #14052 from Microsoft/10662-fixcgroupcheck
Windows: Fix cgroup regression
2015-06-19 21:17:39 -04:00
Alexander Morozov
e5ded9c378 Merge pull request #13997 from runcom/drop-old-client
Error out if client API version is too old
2015-06-19 17:05:39 -07:00
Thomas Sjögren
a0a010e2e3 rpm name and location
Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
2015-06-20 01:14:58 +02:00
John Howard
9d0ed1dea0 Windows: Fix cgroup regression
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-19 15:29:47 -07:00
David Calavera
7313a9ae9c Merge pull request #14044 from duglin/MakeDocs
Add back top-level "make docs"
2015-06-19 12:42:11 -07:00
Moysés Borges
d48bface59 Support downloading remote tarball contexts in builder jobs.
Signed-off-by: Moysés Borges <moysesb@gmail.com>
2015-06-19 16:35:00 -03:00
David Calavera
7ce20fad99 Merge pull request #13780 from LK4D4/use_checkv
Remove timer and use -check.v for tests formatting
2015-06-19 11:34:31 -07:00
David Calavera
de6d2603f9 Merge pull request #13848 from estesp/tls-server-client-cipher-cleanup
Split client and server cipher suite list in TLS defaults
2015-06-19 11:08:19 -07:00
Alexander Morozov
3ee67caf3b Merge pull request #14032 from lizf-os/fix-sysinfo-regression
Fix sysinfo regression
2015-06-19 11:00:13 -07:00
Matt Moore
c2315102ff Unconditionally add AuthTransport.
Today, endpoints implementing v2 cannot properly fallback to v1 because the underlying transport that deals with authentication (Basic / Token) doesn't get annotated.

This doesn't affect DockerHub because the DockerHub endpoint appears as 'https://index.docker.io/v1/' (in .dockercfg), and the 'v1' tricks this logic just long enough that the transport is always annotated for DockerHub accesses.

Signed-off-by: Matt Moore <mattmoor@google.com>
2015-06-19 10:12:52 -07:00
Doug Davis
2bc0d2bf51 Add back top-level "make docs"
Just to make life easier on devs so they don't need to 'cd' into
the docs dir just to test their docs edits.  This doesn't do anything
more than "cd docs && make docs" so that all of the smarts are still
in the docs's Makefile and not in docker's.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-06-19 09:42:39 -07:00
David Calavera
df73d5e0cd Merge pull request #14023 from mavenugo/net_ui
experimental network ui
2015-06-19 09:26:05 -07:00
Madhu Venugopal
742db1737c attaching services api and UI chain to docker parent
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-19 09:19:09 -07:00
Qiang Huang
fb85a99f58 Add some cgroup related config check
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-06-19 13:47:48 +08:00
Qiang Huang
0c4c830289 Add check config for ext3 file system
Some distros still use ext3 as default file system, we should check
these configs as well.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-06-19 13:45:07 +08:00
Zefan Li
4398693201 Fix sysinfo regression
The cleanup to sysinfo package introduced a regression.

If memory cgroup isn't supported and --memory is specified when
starting a container, we should return info instead of nil in
checkCgroupMem(), otherwise we'll access a nil pointer.

Signed-off-by: Zefan Li <lizefan@huawei.com>
2015-06-19 09:44:23 +08:00
Alexander Morozov
b3254dab49 Merge pull request #14031 from tianon/update-frozen-images
Update frozen busybox and hello-world images
2015-06-18 18:15:45 -07:00
Tianon Gravi
4d171281bf Update frozen busybox and hello-world images
These have both been updated to no longer include the empty "scratch" layer, and `hello-world` has a fix for http->https.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-06-18 17:09:57 -07:00
Phil Estes
9e9d227677 Initialize swappiness in libcontainer cgroups template
By default, the cgroup setting in libcontainer's configs.Cgroup for
memory swappiness will default to 0, which is a valid choice for memory
swappiness, but that means by default every container's memory
swappiness will be set to zero instead of the default 60, which is
probably not what users are expecting.

When the swappiness UI PR comes into Docker, there will be docker run
controls to set this per container, but for now we want to make sure
*not* to change the default, as well as work around an older kernel
issue that refuses to allow it to be set when cgroup hiearchies are in
use.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-06-18 19:27:04 -04:00
Jessie Frazelle
1334a2fc39 Merge pull request #14028 from jfrazelle/fix-index-generation-experimental
fix s3_url for release script for experimental
2015-06-18 15:22:26 -07:00
Jessica Frazelle
0f0f5ecd57 fix s3_url for release script for experimental
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-18 14:54:40 -07:00
Alexander Morozov
4253a1f87e Remove timer and use -check.v for tests formatting
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-18 14:22:40 -07:00
Antonio Murdaca
d7544217dd Merge pull request #13978 from cpuguy83/cleanup_sysinfo
cleanup sysinfo package
2015-06-18 22:27:32 +02:00
David Calavera
b1143f4cb0 Merge pull request #13218 from brahmaroutu/decoder_issue_gccgo
Decoder does not work properly with nested pointers using gcc
2015-06-18 13:22:28 -07:00
James Turnbull
1487350b85 Merge pull request #14016 from vizv/patch-1
fix the url in article "Best practices for writing Dockerfiles"
2015-06-18 13:05:26 -07:00
Brian Goff
ebef527b39 Merge pull request #13976 from icecrime/12934_carry
LXC execdriver compatibility with recent LXC versions
2015-06-18 15:08:55 -04:00
Madhu Venugopal
cca990c67a Network UI / API docs
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-18 12:07:58 -07:00
Madhu Venugopal
da5a3e6dee register libnetwork API and UI with docker parent chain
This commit also brings in the ability to specify a default network and its
corresponding driver as daemon flags. This helps in existing clients to
make use of newer networking features provided by libnetwork.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-18 12:07:58 -07:00
Jessie Frazelle
8ea1b54065 Merge pull request #14019 from jfrazelle/bump-version
Bump version
2015-06-18 11:25:19 -07:00
Jessica Frazelle
53f5f5b7f4 bump version to 1.8.0-dev
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-18 10:47:53 -07:00
Jessica Frazelle
2e0e038fb2 Bump version to v1.7.0
Signed-off-by: Jessica Frazelle <princess@docker.com>
(cherry picked from commit 0baf609845)
2015-06-18 10:47:25 -07:00
Wenxuan Zhao
3dd134ceca Fix the url in comparison of "COPY" and "RUN curl"
From context on next line,`tar -xJC` implies
the file is `big.tar.xz` instead of `big.tar.gz`.

Signed-off-by: Wenxuan Zhao <viz@linux.com>
2015-06-18 12:33:46 -04:00
Tibor Vass
fc793bf1a3 Merge pull request #13830 from clnperez/check-apparmor-file-first
Check for apparmor file before reading it
2015-06-18 08:18:01 -04:00
Antonio Murdaca
910322a893 Error out if client API version is too old
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-06-18 11:03:07 +02:00
Campbell Allen
3cb9f7f6aa add note about DOCKER_HOST env var overriding unix socket config
when trying to use docker without sudo and the DOCKER_HOST env var is set docker tries to connect to the specified host instead of using the unix socket.

Signed-off-by: Campbell Allen <campbell.allen@gmail.com>
2015-06-18 06:51:21 +01:00
Jessie Frazelle
423e6dc333 Merge pull request #14002 from moxiegirl/hugo-test-fixes
Hugo final 1.7 Documentation PR -- please read carefully
2015-06-17 22:00:09 -07:00
Mary Anthony
328dbd0aa2 Fixing seds, deleting old stuff
Signed-off-by: Mary Anthony <mary@docker.com>

Upding sed, adding script to avoid redirects, remove mkdos

Signed-off-by: Mary Anthony <mary@docker.com>

Ignoring graphics with sed

Signed-off-by: Mary Anthony <mary@docker.com>

Fixing kitematic image

Signed-off-by: Mary Anthony <mary@docker.com>

Removing draft

Signed-off-by: Mary Anthony <mary@docker.com>

Fixing link

Signed-off-by: Mary Anthony <mary@docker.com>

removing from the menu

Signed-off-by: Mary Anthony <mary@docker.com>

Updatiing order of project material

Signed-off-by: Mary Anthony <mary@docker.com>

Removing from Regsitry v2 content per Olivier

Signed-off-by: Mary Anthony <mary@docker.com>

tweaking the touchup

Signed-off-by: Mary Anthony <mary@docker.com>

Removing include; only used four places; hugo global var replace

Signed-off-by: Mary Anthony <mary@docker.com>

Entering fixes from page-by-page

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-17 21:05:37 -07:00
Brian Goff
baa1664478 Merge pull request #13991 from LalatenduMohanty/adding_new_scientists
Proposing Chandrasekhar, Khorana, Saha for name-generator
2015-06-17 21:06:24 -04:00
Brian Goff
9b05aa6ee8 cleanup sysinfo package
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-17 20:41:14 -04:00
Sebastiaan van Stijn
206acbcf89 Merge pull request #13070 from shishir-a412ed/cleanup_cmd_tag
Use distribution's ValidateRepositoryName for remote name validation.
2015-06-17 23:26:27 +02:00
Derek McGowan
d86345b9f7 Merge pull request #13575 from mattmoor/consistent-push-fallback
Make v2 push have v1-fallback behavior consistent with pull.
2015-06-17 13:41:58 -07:00
Alexander Morozov
af845d42a5 Merge pull request #13988 from runcom/fix-old-code-path-removal
Remove missed code path for api < 1.12
2015-06-17 12:30:11 -07:00
Phil Estes
c107e9d790 Merge pull request #13870 from lindenlab/pull-single-tag
Only request a single repository tag when pulling a specific image:tag
2015-06-17 15:29:39 -04:00
Lalatendu Mohanty
3fa2ddc452 Proposing Chandrasekhar, Khorana, Saha for name-generator
Signed-off-by: Lalatendu Mohanty <lmohanty@redhat.com>
2015-06-18 00:52:29 +05:30
Shishir Mahajan
b8301005ff Use distribution's ValidateRepositoryName for remote name validation.
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2015-06-17 15:15:16 -04:00
David Calavera
85d3b75dfd Merge pull request #13896 from rhvgoyal/verify-base-uuid
devicemapper: Compare uuid of base device on startup
2015-06-17 11:30:04 -07:00
Michael Crosby
010470dd53 Merge pull request #13893 from mrunalp/update_libcontainer
Updates libcontainer to v2.2.1
2015-06-17 10:47:49 -07:00
John Howard
3c177dc877 Windows: Docker build starting to work
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-17 10:41:28 -07:00
Christy Perez
691ed6ef99 Check for apparmor file before reading it
I ran a single integration test and got an error that the file
/sys/module/apparmor/parameters/enabled doesn't exist. I don't have
apparmor installed. So, just check the file first to avoid a confusing
error.

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-06-17 11:58:17 -05:00
moxiegirl
424bb26b6c Merge pull request #13827 from moxiegirl/rpm-rhel-centos-fedora
RPMs update to installation guides
2015-06-17 08:29:33 -07:00
Antonio Murdaca
b6a6c56915 Remove missed code path for api < 1.12
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-06-17 17:00:48 +02:00
tgic
fe7b3658bd prompt a cli login if receive 401 from registry v2 auth server
Signed-off-by: tgic <farmer1992@gmail.com>
2015-06-17 19:28:13 +08:00
Alexander Morozov
9ad87523c0 Merge pull request #13292 from coolljt0725/add_bridge_nf_to_docker_info
Add bridge-nf-call-iptables/bridge-nf-call-ipv6tables to docker info
2015-06-16 22:15:48 -07:00
Phil Estes
a27d8f9aa4 Merge pull request #13975 from stevvooe/move-setup-init-layer
Move graph.SetupInitLayer to daemon package where it is used
2015-06-16 22:37:51 -04:00
Lei Jitang
57d12a0e0a Add bridge-nf-call-iptables/bridge-nf-call-ipv6tables to docker info
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-06-17 09:19:11 +08:00
Vivek Goyal
c06b05b11e devicemapper: Compare uuid of base device on startup
It is easy for one to use docker for a while, shut it down and restart
docker with different set of storage options for device mapper driver
which will effectively change the thin pool. That means any of the
metadata stored in /var/lib/docker/devicemapper/metadata/ is not valid
for the new pool and user will run into various kind of issues like
container not found in the pool etc.

Users think that their images or containers are lost but it might just
be the case of configuration issue. People might use wrong metadata
with wrong pool.

To detect such situations, save UUID of base image and once docker
starts later, query and compare the UUID of base image with the
stored one. If they don't match, fail the initialization with the
error that UUID failed to match.

That way user will be forced to cleanup /var/lib/docker/ directory
and start docker again.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-06-16 21:12:27 -04:00
Stephen J Day
b7f887a9a2 Move graph.SetupInitLayer to daemon package where it is used
An inspection of the graph package showed this function to be way out of place.
It is only depended upon by the daemon code. The function prepares a top-level
readonly layer used to provide a consistent runtime environment for docker
images.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-06-16 16:50:56 -07:00
David Calavera
ba9db62e68 Merge pull request #13685 from yuchangchun1/tag_regx
add a more accurate error description for invalid tag name
2015-06-16 16:33:17 -07:00
Mary Anthony
f9ab04ad13 First pass of updates
Working docs
Update after check
update to centos 7 after second test
Updating with hopefully correct urls
Adding thaJetzah's comments
Updating with the new images
Updating after a visual check

Signed-off-by: Mary Anthony <mary@docker.com>

Updating with comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-16 16:29:11 -07:00
David Calavera
b6531d4ec3 Merge pull request #13961 from unclejack/linting_changes
linting changes
2015-06-16 15:55:18 -07:00
Arnaud Porterie
cb979edec0 Fix typo in lxc_template.go
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-16 15:19:43 -07:00
Alex Samorukov
6089e679a2 Make LXC exec driver compatible with recent LXC where lxc.autodev is enabled by default
Update LXC to 1.1.2

Signed-off-by: Alex Samorukov <samm@os2.kiev.ua>
2015-06-16 15:19:00 -07:00
unclejack
2f6e4fdb29 linting changes
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2015-06-17 01:16:57 +03:00
Vincent Batts
e69df2589c Merge pull request #13198 from rhvgoyal/extend-docker-inspect
docker-inspect: Extend docker inspect to export image metadata related to graph driver
2015-06-16 15:03:14 -05:00
Tom Howe
6e2662b3ba just adding label to whitelist for commit command (Fixes #13738)
Signed-off-by: Tom Howe <turtlebender@gmail.com>
2015-06-16 13:59:16 -05:00
David Calavera
b1f984a29f Merge pull request #13970 from cpuguy83/13964_fix_tlsverify_env
Fix DOCKER_TLS_VERIFY being ignored
2015-06-16 10:24:41 -07:00
David Calavera
b674ae0639 Move zfs options doc to the storage section.
Zfs options belong to the storage section, but they were added under the exec driver section.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-16 10:12:00 -07:00
Jessie Frazelle
c80256a31d Merge pull request #13915 from tianon/validate-pkg
Add new "validate-pkg" bundlescript
2015-06-16 10:09:11 -07:00
Tibor Vass
952d030be2 Merge pull request #13955 from jfrazelle/update-install-script-w-experimental-gpg
add gpg fingerprint for experimental
2015-06-16 12:44:40 -04:00
Alexander Morozov
2420ef8cf1 Merge pull request #13972 from tiborvass/update-go-net
Update vendored go.net to use golang.org/x/net canonical path
2015-06-16 09:37:07 -07:00
Tibor Vass
de6e6d4b28 Merge pull request #13965 from cpuguy83/fix_windows_vfs_import
Fix circular import for windows vfs graphdriver
2015-06-16 12:32:24 -04:00
Brian Goff
5a6a33f7ac Fix DOCKER_TLS_VERIFY being ignored
DOCEKR_TLS_VERIFY was being ignored because we were just checking if the
`-tlsverify` flag was set, not the actual value, which is defaulted to
the value of `os.Getenv("DOCKER_TLS_VERIFY") != ""`

The problem that this specifically fixes is where the client has set the
`DOCKER_TLS_VERIFY` env var but is connecting to a daemon that is not
verifed.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-16 12:04:00 -04:00
Tibor Vass
d820e00aac Update vendored go.net to use golang.org/x/net canonical path
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-06-16 11:40:04 -04:00
Brian Goff
49834e8d59 Fix circular import for windows vfs graphdriver
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-16 09:08:10 -04:00
moxiegirl
57aa0248af Merge pull request #13960 from yous/fix-static-file-links
Remove `sources/` under `docs` directory
2015-06-16 05:54:23 -07:00
unclejack
b68d0c6612 docs: shrink some big images
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2015-06-16 13:57:42 +03:00
ChaYoung You
3f4eeca68f Remove sources/ under docs directory
See #13936.

Signed-off-by: ChaYoung You <yousbe@gmail.com>
2015-06-16 19:15:48 +09:00
Don Kjer
b349a74c71 Only pulling single repository tag on pull for a specific tag. extending TestGetRemoteTags unit test
Splitting out GetRemoteTag from GetRemoteTags.  Adding registry.ErrRepoNotFound error

Signed-off-by: Don Kjer <don.kjer@gmail.com>
2015-06-16 07:10:09 +00:00
Jessica Frazelle
957622d452 add gpg fingerprint for experimental
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-15 18:49:22 -07:00
Brian Goff
9dffd032f4 Merge pull request #13950 from Microsoft/10662-vfsforreal
Windows - Really fix VFS this time
2015-06-15 21:41:12 -04:00
Jessie Frazelle
b81f2ee5f2 Merge pull request #13953 from crosbymichael/network-mtu
Get Mtu from default route
2015-06-15 17:13:44 -07:00
Michael Crosby
ff4e58ff56 Get Mtu from default route
If no Mtu value is provided to the docker daemon, get the mtu from the
default route's interface.  If there is no default route, default to a
mtu of 1500.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-06-15 16:33:02 -07:00
David Calavera
f48fadd05c Merge pull request #13941 from unclejack/fix_umask
docker/daemon: set umask to the default on startup
2015-06-15 16:19:38 -07:00
Jessie Frazelle
4d23f459ad Merge pull request #13947 from mavenugo/vin
Picking up missed out vendor files via hack/vendor.sh
2015-06-15 16:16:02 -07:00
Jessie Frazelle
748814a97a Merge pull request #13935 from asbjornenge/tm_syntax_updates
TM syntax updates
2015-06-15 16:12:22 -07:00
Mrunal Patel
6d022bda3b Updates libcontainer to v2.2.1
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-06-15 18:18:38 -04:00
John Howard
59cfc08982 Windows - Really fix VFS this time
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-15 15:09:48 -07:00
Antonio Murdaca
835f1c9116 Merge pull request #13547 from coolljt0725/fix_unpause_not_running_container
Correct the message of pause and unpause a non-running container
2015-06-15 23:56:32 +02:00
Josh Hawn
86d6a5b11f Merge pull request #13869 from jlhawn/multi_line_help_usage
api/client: Allow for multi-line usage help
2015-06-15 14:50:17 -07:00
Arnaud Porterie
b3b04fd85a Merge pull request #13945 from dmcgowan/distribution-store-digest-on-pull
Store layer digests on pull
2015-06-15 14:37:30 -07:00
moxiegirl
d409b05970 Merge pull request #13936 from moxiegirl/test-tooling
Updated retooling for Hugo to go out with 1.7
2015-06-15 13:57:12 -07:00
Mary Anthony
f93fee5f48 retooling for hugo
Tweaking for Hugo
Updating the Dockerfile with new sed; fix broken link on Kitematic
Fixing image pull for Dockerfile
Removing docs targets

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-15 13:19:38 -07:00
Madhu Venugopal
dcc4a14ba3 Picking up missed out vendor files via hack/vendor.sh
while wokring on another PR, I noticed that hack/vendor.sh was picking
up unrelated files. Maybe a previous update to the hack/vendor.sh failed
to run the script and push the vendor changes ?

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-15 11:38:06 -07:00
Michael Crosby
3f11e05db2 Merge pull request #13942 from calavera/fix_unshare_mount_regression
Fix regression bind mounting shared.
2015-06-15 11:25:35 -07:00
Derek McGowan
a98ea87e46 Store layer digests on pull
Currently digests are not stored on pull, causing a simple re-tag or re-push to send up all layers. Storing the digests on pull will allow subsequent pushes to the same repository to not push up content.
This does not address pushing content to a new repository. When content is pushed to a new repository, the digest will be recalculated. Since only one digest is currently stored, it may cause a new content push to the original repository.

Fixes #13883

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-06-15 11:08:21 -07:00
Vivek Goyal
407a626be6 docker-inspect: Extend docker inspect to export image/container metadata related to graph driver
Export image/container metadata stored in graph driver. Right now 3 fields
DeviceId, DeviceSize and DeviceName are being exported from devicemapper.
Other graph drivers can export fields as they see fit.

This data can be used to mount the thin device outside of docker and tools
can look into image/container and do some kind of inspection.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-06-15 14:05:10 -04:00
David Calavera
d8592eaff8 Revert "contrib/init: unshare mount namespace for inits"
This reverts commit b6569b6b82.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-15 10:35:17 -07:00
Alexander Morozov
1157fcc4a4 Merge pull request #13926 from Microsoft/10662-createfixup
Windows: Fixup compile in daemon_windows.go
2015-06-15 10:17:24 -07:00
Sebastiaan van Stijn
637023a5f8 Merge pull request #13502 from coolljt0725/conflict_port_and_netmode
Add --net=container with --publish --expose --publish-all error out
2015-06-15 16:25:59 +02:00
unclejack
6578ad90c3 docker/daemon: set umask to the default on startup
This sets up the umask so that it's the same on all systems.

Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2015-06-15 16:47:20 +03:00
Asbjørn Enge
dfec4a48c7 Various cleanups added to asbjornenge/Docker.tmbundle (by the TM maintainer) and support for the LABEL instruction
Docker-DCO-1.1-Signed-off-by: Asbjorn Enge <asbjorn@hanafjedle.net> (github: asbjornenge)
2015-06-15 00:04:05 +02:00
Asbjørn Enge
ac8cbf4952 Updated TextMate install instruction - this bundle is not included in TM 😄 :rocket
Docker-DCO-1.1-Signed-off-by: Asbjorn Enge <asbjorn@hanafjedle.net> (github: asbjornenge)
2015-06-15 00:02:10 +02:00
Robin Schneider
0030df868a Do not compress rootfs archive in mkimage.sh.
* This wastes CPU time for compressing and decompressing.

Signed-off-by: Robin Schneider <ypid@riseup.net>
2015-06-14 20:51:11 +02:00
moxiegirl
ee40f29712 Merge pull request #13927 from moxiegirl/carry-13250
Carry of PR #13520
2015-06-13 10:29:56 -07:00
Tibor Vass
f27c9bc6e7 Merge pull request #13895 from calavera/fix_get_env_split
Correct getEnv split.
2015-06-13 12:43:45 -04:00
Mary Anthony
cd44018856 Carry of PR #13520
Removinig files

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-13 09:27:30 -07:00
Arnaud Porterie
cd36b15ccb Merge pull request #13860 from jlhawn/cli_call_headers
api/client: have cli.call() return headers
2015-06-13 09:14:40 -07:00
John Howard
c7975f12d6 Windows: Fixup compile in daemon_windows.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-13 09:10:54 -07:00
Arnaud Porterie
261af00282 Merge pull request #13682 from mavenugo/ln_vin
Vendoring in libnetwork to 3be488927db8d719568917203deddd630a194564
2015-06-13 09:00:33 -07:00
Doug Davis
f1ea3e5c74 Merge pull request #13504 from coolljt0725/refactor_verifyhostconfig
Refactor verifyHostConfig: change to verifyConfigs and add verify config
2015-06-12 19:59:45 -07:00
Lei Jitang
b37832e353 Add verify config to verifyContainerSettings
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-06-13 09:31:19 +08:00
Arnaud Porterie
422fa7f0a6 Merge pull request #13749 from Microsoft/adduseragent
Add GOOS in User-Agent
2015-06-12 17:19:51 -07:00
Michael Crosby
39bf57e085 Merge pull request #13344 from hqhq/hq_fix_arm64_test
Fix unit-test build error on ARM64
2015-06-12 17:11:18 -07:00
Arnaud Porterie
6a7a7570bb Merge pull request #12833 from burke/faster-changes
Optimize archive.ChangesDirs on Linux
2015-06-12 17:05:34 -07:00
Madhu Venugopal
083300168f Vendoring in libnetwork to 3be488927db8d719568917203deddd630a194564
This PR brings the vendored libnetwork code to
3be488927db8d719568917203deddd630a194564, which pulls in quite a few
fixes to support kvstore, windows daemon compilation fixes,
multi-network support for Bridge driver, etc...

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-12 16:10:40 -07:00
Jessie Frazelle
cd71c5ed43 Merge pull request #13836 from amylindburg/master
Update plugins.md
2015-06-12 15:40:20 -07:00
Amy Lindburg
0a529b6e7a Update plugins.md
Fixed broken link.

Signed-off-by: Amy Lindburg <amy.lindburg@docker.com>

Update plugins.md

Some other broken links!

Signed-off-by: Amy Lindburg <amy.lindburg@docker.com>

Update plugin_api.md

FIxing broken links.

Signed-off-by: Amy Lindburg <amy.lindburg@docker.com>

Update plugins_volume.md

Fixing more links.

Signed-off-by: Amy Lindburg <amy.lindburg@docker.com>
2015-06-12 15:38:15 -07:00
David Calavera
421b9b6859 Merge pull request #13916 from Microsoft/10662-compileserver
Windows: Patch up compile after adjustCpuShares
2015-06-12 13:48:22 -07:00
John Howard
d2c5fcc8d5 Windows: Patch up compile after adjustCpuShares
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-12 13:00:59 -07:00
Tianon Gravi
9465272c28 Add new "validate-pkg" bundlescript
This helps ensure that `github.com/docker/docker/pkg/...` is actually safe to use in isolation (ie, doesn't import anything from `github.com/docker/docker` except other things from `pkg` or vendored dependencies).

Adding `github.com/docker/docker/utils` to the imports of `pkg/version/version.go`:

```
---> Making bundle: validate-pkg (in bundles/1.7.0-dev/validate-pkg)
These files import internal code: (either directly or indirectly)
 - pkg/version/version.go imports github.com/docker/docker/autogen/dockerversion
 - pkg/version/version.go imports github.com/docker/docker/utils
```

And then removing it again:

```
---> Making bundle: validate-pkg (in bundles/1.7.0-dev/validate-pkg)
Congratulations! "./pkg/..." is safely isolated from internal code.
```

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-06-12 12:28:23 -07:00
Antonio Murdaca
5bddafe169 Merge pull request #13912 from icecrime/13902_improve_test
Replace "sleep" by "top" in test implementation
2015-06-12 20:24:31 +02:00
David Calavera
e7533d7f81 Merge pull request #13494 from Microsoft/10662-vfsdriveroption
Windows: Allow VFS
2015-06-12 11:12:32 -07:00
Antonio Murdaca
27e2837c6c Merge pull request #13911 from cpuguy83/13910_fix_stats_nostream_resp
Fixes content-type/length for stats stream=false
2015-06-12 19:53:18 +02:00
Arnaud Porterie
e5b7f61f09 Replace "sleep" by "top" in test implementation
Eliminate any chance of race condition by replacing a call to sleep by a
call to top, and rely on test cleanup logic to have it exit cleanly.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-12 10:45:42 -07:00
Arnaud Porterie
2351557607 Merge pull request #13902 from ibuildthecloud/api-fixes
Set omitempty for IP and PublicPort to conform w/ API 1.18
2015-06-12 10:42:07 -07:00
Brian Goff
855a056af7 Fixes content-type/length for stats stream=false
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-12 13:06:06 -04:00
Darren Shepherd
09de92b891 Set omitempty for IP and PublicPort to conform w/ API 1.18
Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-06-12 09:49:53 -07:00
John Howard
e89f837bc6 Windows: Allow VFS
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-12 09:21:17 -07:00
Arnaud Porterie
5a02d0727b Merge pull request #13899 from mavenugo/hp
Vendoring in libnetwork to fix #13873.
2015-06-12 07:27:07 -07:00
Brian Goff
c98eafe564 Merge pull request #13906 from chenchun/closed_chan
Fix send on closed channel bug
2015-06-12 09:37:53 -04:00
Brian Goff
e70d680d72 Merge pull request #13903 from dqminh/fix-cli-exec-output
TestExecStopNotHanging: log output as string
2015-06-12 09:23:45 -04:00
Madhu Venugopal
f3d1826350 Vendoring in libnetwork to fix #13873.
Libnetwork sha# e578e95aa101441481411ff1d620f343895f24fe

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-12 04:58:37 -07:00
Chun Chen
a408790de8 Fix send on closed channel bug
Signed-off-by: Chun Chen <chenchun.feed@gmail.com>
2015-06-12 15:42:34 +08:00
Daniel, Dao Quang Minh
d898372568 TestExecStopNotHanging: log output as string
When cmd failed, log its ouput as string instead of byte array to prevent test
log like: [49 53 ....] exit status 1

Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com>
2015-06-11 22:53:55 -04:00
Arnaud Porterie
00b8fec75f Merge pull request #13773 from dmcgowan/refactor-1-image-graph-separation
refactor: separate graph from image
2015-06-11 17:44:37 -07:00
David Calavera
85f895ce68 Correct getEnv split.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-11 14:40:46 -07:00
Arnaud Porterie
71ead0ef5c Merge pull request #13722 from samuelkarp/CpuShareRemoteAPI
Adjust disallowed CpuShares in /containers/create
2015-06-11 14:20:50 -07:00
Jessie Frazelle
0de7065897 Merge pull request #13801 from bexelbie/bex_manpage_indention
Updates man page generation to use go-md2man v1.0.2
2015-06-11 14:12:17 -07:00
Jessie Frazelle
98391f0a39 Merge pull request #13890 from moxiegirl/vieux-fix
Updating with fix for first line and the vieux/amy comment on website
2015-06-11 13:22:03 -07:00
Mary Anthony
566466e714 Updating with fix for first line and the vieux/amy comment on website
Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-11 12:48:01 -07:00
Jessie Frazelle
cada9b54b5 Merge pull request #13865 from Mic92/zfs-selinux
zfs: correctly apply selinux context
2015-06-11 12:42:06 -07:00
Phil Estes
9b43f5a3a1 Split client and server cipher suite list in TLS defaults
Per @ewindisch, removing the CBC ciphers from the client preferred TLS
cipher suites.  This will allow a future version of the server to also
remove the CBC ciphers from the accepted list.

This changes the server default to client + additional CBC cipher list,
and client default to the non-CBC ciphers.

Also, cipher order preference is modified so that best and highest-bit count
ciphers are most preferred.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-06-11 14:00:31 -04:00
Jessie Frazelle
e3821feb13 Merge pull request #13783 from tianon/vendor-pruning
Add intelligent vendor pruning (via "go list")
2015-06-11 10:32:53 -07:00
Tianon Gravi
b0d748325f Update "vendor/"
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-06-11 09:59:12 -07:00
Tianon Gravi
9e4ee3dea5 Add intelligent vendor pruning (via "go list")
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-06-11 09:59:12 -07:00
Tianon Gravi
f61d595b55 Adjust "Dockerfile" to build tools we need in isolated mktemp GOPATHs
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-06-11 09:59:12 -07:00
Srini Brahmaroutu
eb97de7dee Decoder does not work properly with nested pointers using gcc
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-06-11 16:45:54 +00:00
Doug Davis
b27f960504 Merge pull request #13879 from eolamey/13878-nil-ip-opt-as-empty-string
Display empty string instead of <nil> when IP opt is nil.
2015-06-11 09:30:52 -07:00
moxiegirl
9001c4bc48 Merge pull request #13839 from eolamey/13838-fix-docs-url
Fix docs URL not using https.
2015-06-11 08:59:35 -07:00
Brian Goff
4fc6449944 Merge pull request #13861 from mrjana/cnm_integ
Vendoring libnetwork to fix stale arp cache issue
2015-06-11 09:12:34 -04:00
Eric-Olivier Lamey
9ad89281ae Display empty string instead of <nil> when IP opt is nil.
Fixes #13878.

Signed-off-by: Eric-Olivier Lamey <eo@lamey.me>
2015-06-11 11:14:28 +00:00
Vincent Batts
ef171afdbb Merge pull request #13590 from mountkin/fix-archive-tests
Add the parent directory to changes set if new files are generated
2015-06-11 05:12:45 -04:00
Jörg Thalheim
19c31a703f zfs: correctly apply selinux context
fixes #13858

Signed-off-by: Jörg Thalheim <joerg@higgsboson.tk>
2015-06-11 11:11:37 +02:00
Brian (bex) Exelbierd
5d51118c7c Update man page Dockerfile to use go-md2man v1.0.1 and go-lang 1.4
The main Dockerfile to was updated - this update brings the
sub-directory specific file inline with it.

Fixes #12866

Signed-off-by: Brian Exelbierd <bex@pobox.com>
2015-06-11 08:36:21 +02:00
Antonio Murdaca
2b27fe17a1 Merge pull request #13862 from Microsoft/10662-fixelementsrestored
Show actual number of elements restored
2015-06-11 07:13:19 +02:00
Eric-Olivier Lamey
212dfb45de Fix docs URL not using https.
Fixes #13838.

Signed-off-by: Eric-Olivier Lamey <eo@lamey.me>
2015-06-11 04:50:50 +00:00
Jana Radhakrishnan
386ab25137 Vendoring libnetwork to fix stale arp cache issue
Vendoring in libnetwork 90638ec9cf7fa7b7f5d0e96b0854f136d66bff92

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-06-10 19:29:10 -07:00
Arnaud Porterie
883d661b69 Merge pull request #13867 from calavera/fix_daemon_cleanup_order
Cleanup driver and graph db after stopping containers.
2015-06-10 17:05:41 -07:00
David Calavera
ad9080a87c Merge pull request #13868 from jfrazelle/update-gitignore-man
update gitignore for new manpages
2015-06-10 16:55:15 -07:00
Josh Hawn
0cdc3b7539 api/client: have cli.call() return headers
Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-06-10 16:20:13 -07:00
Josh Hawn
4cb0c93f92 api/client: Allow for multi-line usage help
Subcommands can provide multiple usage synopses.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-06-10 16:14:45 -07:00
David Calavera
0964a664e8 Cleanup driver and graph db after stopping containers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-10 16:11:50 -07:00
Jessica Frazelle
f88e620359 update gitignore for new manpages
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-10 16:11:15 -07:00
Doug Davis
466efebf0e Merge pull request #13863 from Microsoft/typoclientutils
Typo fix in api\client\utils.go
2015-06-10 15:57:37 -07:00
John Howard
84aec1e8e6 Typo fix in api\client\utils.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-10 15:24:53 -07:00
John Howard
141cd2a1f2 Show actual number of elements restored
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-10 15:18:51 -07:00
David Calavera
b6049b5c49 Merge pull request #13804 from moxiegirl/proposal-man-pages
PROPOSAL: Moving man pages out of docs
2015-06-10 15:04:19 -07:00
Arnaud Porterie
9da65ed84f Merge pull request #13854 from crosbymichael/revert-shared-root
Revert shared container rootfs
2015-06-10 14:12:14 -07:00
Mary Anthony
eacae64bd8 Moving man pages out of docs
Adding in other areas per comments
Updating with comments; equalizing generating man page info
Updating with duglin's comments
Doug is right here again;fixing.

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-10 13:43:35 -07:00
Tibor Vass
add64dc297 Merge pull request #13832 from mapk0y/fix-error-msg
fix typo.
2015-06-10 16:38:07 -04:00
Brian Goff
05644ccea9 Merge pull request #13272 from Microsoft/10662-daemonrefactorv2
Windows: Refactor daemon
2015-06-10 16:28:56 -04:00
David Calavera
17324c91e3 Merge pull request #13015 from mariussturm/master
Add logging driver for GELF via UDP
2015-06-10 12:45:12 -07:00
John Howard
8fb0ca2c35 Windows: Refactor daemon
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-10 12:42:43 -07:00
Jessie Frazelle
65d0670d65 Merge pull request #13853 from jfrazelle/fix-hack-make
ugh typo in hack scripts fix, introduced by 2b4facdf
2015-06-10 11:53:47 -07:00
Michael Crosby
c9d71317be Revert shared container rootfs
This is breaking various setups where the host's rootfs is mount shared
correctly and breaks live migration with bind mounts.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-06-10 11:29:27 -07:00
Marius Sturm
96d06e106f add UDP GELF logging-driver
allows to send container logs to Graylog or Logstash.

Signed-off-by: Marius Sturm <marius@graylog.com>
2015-06-10 20:21:50 +02:00
Jessica Frazelle
c5f49886fa ugh typo in hack scripts fix, introduced by 2b4facdf
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-10 11:00:59 -07:00
Jessie Frazelle
12149e8293 Merge pull request #13754 from cpuguy83/13753_fix_events_64
Default events since to current time
2015-06-10 10:34:13 -07:00
Brian Goff
74c12aa429 Default events since to current time
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-10 12:37:40 -04:00
Brian Goff
88e4dff9a9 use go-generate to build volume/driver/proxy.go
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-10 11:42:15 -04:00
James Turnbull
5821f13b8c Merge pull request #13844 from ponsfrilus/master
Typo psuedo - pseudo
2015-06-10 11:41:44 -04:00
Brian Goff
4c81c9dddc generate plugin clients via template
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-10 11:41:40 -04:00
Doug Davis
46af724e81 Merge pull request #12371 from rhatdan/kill
docker kill should return error if container is not running.
2015-06-10 08:32:57 -07:00
Tibor Vass
de90aef411 Merge pull request #12813 from Microsoft/10662-nolinuxgraph
Windows: Don't build Linux graph drivers
2015-06-10 10:01:50 -04:00
Shijiang Wei
e2c6a8be7c Add the parent directory to changes set if new files are generated
The "TestChangesWithChanges" case randomlly fails on my development
VM with the following errors:
```
--- FAIL: TestChangesWithChanges (0.00s)
        changes_test.go:201: no change for expected change C /dir1/subfolder != A /dir1/subfolder/newFile
```

If I apply the following patch to changes_test.go, the test passes.

```diff
diff --git a/pkg/archive/changes_test.go b/pkg/archive/changes_test.go
index 290b2dd..ba1aca0 100644
--- a/pkg/archive/changes_test.go
+++ b/pkg/archive/changes_test.go
@@ -156,6 +156,7 @@ func TestChangesWithChanges(t *testing.T) {
        }
        defer os.RemoveAll(layer)
        createSampleDir(t, layer)
+       time.Sleep(5 * time.Millisecond)
        os.MkdirAll(path.Join(layer, "dir1/subfolder"), 0740)

        // Let's modify modtime for dir1 to be sure it's the same for the two layer (to not having false positive)
```

It seems that if a file is created immediately after the directory is created,
the `archive.Changes` function could't recognize that the parent directory of
the new file is modified.

Perhaps the problem may reproduce on machines with low time precision?
I had successfully reproduced the failure on my development VM as well as
a VM on DigitalOcean.

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-06-10 20:29:29 +08:00
Nicolas Borboën
e12839fa5a Typo psuedo - pseudo
Signed-off-by: ponsfrilus <ponsfrilus@gmail.com>
2015-06-10 13:27:55 +02:00
Arnaud Porterie
55bdb51659 Merge pull request #13699 from calavera/volume_backwards
Allow to downgrade local volumes from > 1.7 to 1.6.
2015-06-09 19:51:06 -07:00
David Calavera
bd9814f0db Allow to downgrade local volumes from > 1.7 to 1.6.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-09 18:04:59 -07:00
Michael Crosby
4750e1f77e Merge pull request #13784 from mrjana/cnm_integ
libnetwork: Add garbage collection trigger
2015-06-09 17:24:30 -07:00
Arnaud Porterie
c3b962d327 Merge pull request #13831 from LK4D4/update_libcontainer
Update libcontainer to v2.1.1
2015-06-09 17:12:20 -07:00
Arnaud Porterie
13baeb3b70 Merge pull request #13815 from tiborvass/do-not-send-basic-auth-on-302
Do not set auth headers for registry v1 if 302
2015-06-09 15:34:53 -07:00
Jessie Frazelle
ceee2595b6 Merge pull request #12583 from Mic92/hack/explicit-bundles
Hack/explicit bundles
2015-06-09 14:34:52 -07:00
mapk0y
416e855e9b fix typo.
Signed-off-by: mapk0y <mapk0y@gmail.com>
2015-06-10 06:26:07 +09:00
Alexander Morozov
38acd31e8a Update libcontainer to v2.1.1
It includes fix for mounting / as volume on SELinux.
docker/libcontainer#619

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-09 13:54:57 -07:00
Alexander Morozov
5e86b818ed Merge pull request #13828 from calavera/plugin_fixes
Fix volume plugin serialization.
2015-06-09 13:30:55 -07:00
David Calavera
18ddc2728d Merge pull request #13805 from aboch/czo
Add integ test for unpublished ports in ps o/p
2015-06-09 11:30:06 -07:00
Alexander Morozov
06aef2b5c2 Merge pull request #13819 from Mashimiao/optimize-logic-of-get-container
daemon: cleanup getting container logic
2015-06-09 10:42:24 -07:00
David Calavera
30448166de Fix volume plugin serialization.
Unmarshal errors into strings.
Fix `omit` typos.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-09 10:39:46 -07:00
Alessandro Boch
7b9ae696d8 Add integ test for unpublished ports in ps o/p
- This is a test to assert the fix #13734

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-09 09:40:19 -07:00
Sebastiaan van Stijn
90259fed2e Merge pull request #12031 from jlhawn/build_cache_ignore_mtime
Make build cache ignore mtime
2015-06-09 18:26:07 +02:00
James Turnbull
3b01dac44d Merge pull request #13814 from duglin/DocTweak
Fix COPY/ADD quoted/json form
2015-06-09 04:56:35 -04:00
Ma Shimiao
73bc885b23 daemon: cleanup getting container logic
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-06-09 14:47:07 +08:00
Jörg Thalheim
2b4facdf2e hack: explicit bundles for integration-cli prequisites
no longer load hide critical code such as in .integration-daemon-{start,stop},
if this step failed, it will had logged the corresponding module before:

---> Making bundle: .integration-daemon-start (in bundles/1.7.0-dev/daemon-start)

which is nicer to debug.

This will make it also easier to execute a single tests in an interactive shell.

$ make shell
docker> . hack/make.sh binary .integration-daemon-start .integration-daemon-setup
docker> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED STATUS              PORTS               NAMES
docker> go test github.com/docker/docker/integration-cli

Signed-off-by: Jörg Thalheim <joerg@higgsboson.tk>
2015-06-09 07:22:26 +02:00
Alexander Morozov
7f6aa3b783 Merge pull request #13816 from xiekeyang/remove
Registry: remove unwanted return variable name
2015-06-08 20:38:30 -07:00
xiekeyang
a31be25121 Registry: remove unwanted return variable name
Signed-off-by: xiekeyang <xiekeyang@huawei.com>
2015-06-09 10:58:33 +08:00
Jessie Frazelle
5e0e71bbe0 Merge pull request #13714 from flavio/add-suse-support-to-docker-installer
Added openSUSE and SUSE Linux Enterprise support to install.sh
2015-06-08 17:20:33 -07:00
Tibor Vass
123a0582b2 Do not set auth headers if 302
This patch ensures no auth headers are set for v1 registries if there
was a 302 redirect.

This also ensures v2 does not use authTransport.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-06-08 19:59:39 -04:00
Doug Davis
f4a3e8bef0 Fix COPY/ADD quoted/json form
Minor tweak to the quoted/json form and made man page look like the Dockerfile
docs.  W/o the `,` people may think there should be a space delimited list.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-06-08 16:40:20 -07:00
Jessie Frazelle
a2ab067b3c Merge pull request #13022 from Microsoft/10662-addrsrc
Windows: Add resources for manifest and icon
2015-06-08 15:16:10 -07:00
Jessie Frazelle
75f63499a0 Merge pull request #12992 from aidanhs/aphs-easy-debug-build
Allow passing DOCKER_DEBUG= to `make`
2015-06-08 15:15:49 -07:00
John Howard
9a9dc5ba96 Windows: Don't build Linux graph drivers
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-08 15:09:33 -07:00
David Calavera
4ad05ed985 Merge pull request #13808 from Microsoft/10662-volumefixcompile
Windows: Fix PR13278 compile break
2015-06-08 15:02:47 -07:00
Tianon Gravi
969cb545ae Merge pull request #13546 from hqhq/hq_checkconfig_rescount
Don't check RESOURCE_COUNTERS in new kernel
2015-06-08 14:43:17 -07:00
Tianon Gravi
c69d3b749d Merge pull request #13790 from jfrazelle/update-authors-mailmap
update authors and mailmap
2015-06-08 14:24:32 -07:00
Josh Hawn
cd7e2a6b2b [docs] Update builder docs on last-modified times
Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-06-08 13:55:02 -07:00
Josh Hawn
0e10507a1c [builder] Make build cache ignore mtime
Build cache uses pgk/tarsum to get a digest of content which is
ADD'd or COPY'd during a build. The builder has always used v0 of
the tarsum algorithm which includes mtimes however since the whole
file is hashed anyway, the mtime doesn't really provide any extra
information about whether the file has changed and many version
control tools like Git strip mtime from files when they are cloned.

This patch updates the build subsystem to use v1 of Tarsum which
explicitly ignores mtime when calculating a digest. Now ADD and
COPY will result in a cache hit if only the mtime and not the file
contents have changed.

NOTE: Tarsum is NOT a meant to be a cryptographically secure hash
function. It is a best-effort approach to determining if two sets of
filesystem content are different.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-06-08 13:54:47 -07:00
John Howard
71eadd4176 Windows: Fix PR13278 compile break
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-08 13:47:09 -07:00
Michael Crosby
b099eb796a Merge pull request #13800 from eolamey/13799-fix-docs-url-in-systemd-service-file
Fix docs URL in systemd service file.
2015-06-08 09:36:36 -07:00
Sebastiaan van Stijn
875eafb00b Merge pull request #13713 from draghuram/manport
Fix examples in "docker port" man page.
2015-06-08 17:08:37 +02:00
Raghuram Devarakonda
bf6492e689 Fix examples in "docker port" man page.
Closes #13667.

Signed-off-by: Raghuram Devarakonda <draghuram@gmail.com>
2015-06-08 10:40:24 -04:00
James Turnbull
c622ca6d4b Merge pull request #13797 from eolamey/13796-tiny-systemd-docs-improvements
Tiny improvements to systemd docs.
2015-06-08 08:57:13 -04:00
Eric-Olivier Lamey
68bfd9e3ae Tiny improvements to systemd docs.
Show how to use `systemctl show` and recommend against modifying
system unit files in `/usr` and `/lib`.

Fixes #13796.

Signed-off-by: Eric-Olivier Lamey <eo@lamey.me>
2015-06-08 12:05:34 +00:00
Eric-Olivier Lamey
dbf5e36fd6 Fix docs URL in systemd service file.
Fixes #13799.

Signed-off-by: Eric-Olivier Lamey <eo@lamey.me>
2015-06-08 10:21:43 +00:00
Alexander Morozov
a63c7c7be6 Merge pull request #13582 from coolljt0725/remove_useless_code
Cleanup: remove some useless code
2015-06-07 23:01:39 -07:00
Jana Radhakrishnan
c68e7f96f9 libnetwork: Add garbage collection trigger
When the daemon is going down trigger immediate
garbage collection of libnetwork resources deleted
like namespace path since there will be no way to
remove them when the daemon restarts.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-06-07 21:33:51 -07:00
Lei Jitang
67552fb22d Cleanup: remove some useless code and change verifyHostConfig to verifyContainerSetting
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-06-08 09:06:58 +08:00
Doug Davis
5d22afc54e Merge pull request #13795 from michael-k/daemonFolder
[integration-cli] Made doc consistent with code
2015-06-07 16:57:54 -04:00
Michael Käufl
54ac3d9c76 Made doc consistent with code
The name of the folder was shortened in a1ea562

Signed-off-by: Michael Käufl <docker@c.michael-kaeufl.de>
2015-06-07 22:32:29 +02:00
Doug Davis
07b22fcf50 Merge pull request #13787 from runcom/check-nil-Config
Avoid nil pointer dereference while creating a container with an empty Config
2015-06-07 12:28:41 -04:00
James Turnbull
3c37a307bc Merge pull request #13791 from eolamey/minor-docs-fixes
Fix a typo and a minor formatting issue in the docs.
2015-06-07 09:25:15 -04:00
Eric-Olivier Lamey
173d0918a8 Fix a typo and a minor formatting issue in the docs.
Signed-off-by: Eric-Olivier Lamey <eo@lamey.me>
2015-06-07 12:49:03 +00:00
Jessica Frazelle
ae68dfe31b update authors and mailmap
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-06 21:42:14 -07:00
Alexander Morozov
3d10540bc3 Merge pull request #13757 from eolamey/13755-we-would-like-default-gateway-back-please
Restore --default-gateway{,-v6} daemon options.
2015-06-06 16:02:59 -07:00
Antonio Murdaca
4ce817796e Avoid nil pointer dereference while creating a container with an empty Config
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-06-06 20:07:32 +02:00
James Turnbull
3c132ff62d Merge pull request #13764 from bcexelbi/bexelbie_man_typo
Fixing typo in Dockerfile manpage
2015-06-06 08:50:27 -04:00
moxiegirl
ffd74e74b1 Merge pull request #13776 from duglin/MinorVolDocEdit
Minor doc edit to add clarity around the --volume path format
2015-06-05 18:41:37 -07:00
Derek McGowan
c0b4421819 Update graph to use digest type
Update get and set functions to use digests.
Update push code to use the digest type instead of string

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-06-05 18:07:41 -07:00
Derek McGowan
bb50a4159b Update graph walkhistory to pass by value
Remove unused graph history function

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-06-05 18:06:09 -07:00
Derek McGowan
2b58b677a5 Separate graph from image
Move graph related functions in image to graph package.
Consolidating graph functionality is the first step in refactoring graph into an image store model.
Subsequent refactors will involve breaking up graph into multiple types with a strongly defined interface.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-06-05 18:06:09 -07:00
Jessie Frazelle
f20863929b Merge pull request #13778 from LK4D4/rename_file
Rename test file to have _test postfix
2015-06-05 15:43:55 -07:00
Doug Davis
3fcf53db92 Minor doc edit to add clarity around the --volume path format
Also add a comment to the ValidatePath func so devs/reviewers
know exactly what its looking for.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-06-05 15:11:42 -07:00
Alexander Morozov
ff9877ccc4 Rename test file to have _test postfix
Without this go test was unable to find line number of error in that
file.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-05 13:49:58 -07:00
moxiegirl
7c64ed5c8c Merge pull request #12573 from clnperez/doc-article-baseimage
Update doc with usage of the scratch image
2015-06-05 13:36:33 -07:00
Jessie Frazelle
af29aff53c Merge pull request #13772 from icecrime/13770_image_labels_to_containers
Container don't inherit from image labels
2015-06-05 13:25:34 -07:00
Christy Perez
77bd53adfe Update doc with usage of the scratch image
The scratch image used to be a regular image, but as of
commit 8936789919 it is a
special case, and cannot be used with 'docker pull.'

Update this doc to reflect the new behavior and clear up
confusion surrounding this image.

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-06-05 14:47:03 -05:00
Arnaud Porterie
79621c7728 Container don't inherit from image labels
Labels are metadata that apply to a particular resource: image,
container, maybe volumes and networks in the future. We shouldn't have
containers inherit from its image labels: they are not the same obejcts,
and labels cannot be interpreted in the way.

It remains possible to apply metadata to an image using the LABEL
Dockerfile instruction, to query them using `docker inspect <img>`, or
to filter images on them using `docker images --filter <key>=<value>`.

Fixes #13770.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-05 11:11:22 -07:00
Jessie Frazelle
5c051e2e26 Merge pull request #13767 from duglin/TweakInNetOpts
Remove duplicate call to net.ParseIP
2015-06-05 10:46:31 -07:00
Alexander Morozov
078b8e54e4 Merge pull request #13768 from jfrazelle/fix-lxc-again-bleh
fix lxc build
2015-06-05 10:27:58 -07:00
Arnaud Porterie
efe5c64768 Merge pull request #13636 from tiborvass/refactor-tls
Refactor TLS code with a new `tlsconfig` package
2015-06-05 10:16:24 -07:00
Sebastiaan van Stijn
69c2f5649a Merge pull request #13748 from icecrime/experimental_docs
Minor changes to experimental docs
2015-06-05 19:11:51 +02:00
Jessica Frazelle
0adfb908a6 fix lxc build
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-05 09:50:30 -07:00
Doug Davis
b180de55ca Remove duplicate call to net.ParseIP
and a little cleanup

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-06-05 09:44:10 -07:00
Tibor Vass
bfed4b7cc3 Refactor TLS code with a new tlsconfig package
This patch creates a new `tlsconfig` package to handle creation of
secure-enough TLS configurations for clients and servers.

The package was created by refactoring TLS code in the client and the
daemon. After this patch, it is expected that all code creating TLS
configurations use this `tlsconfig` package for greater security,
consistency and readability.

On the server side, this fixes a bug where --tlsverify was not taken
into account. Now, if specified, it will require the client to
authenticate.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-06-05 12:38:38 -04:00
Phil Estes
edb7e84ddb Merge pull request #13751 from cpuguy83/use_closenotifier_for_logs
Fix goroutine leak on logs -f with no output
2015-06-05 11:43:47 -04:00
Brian (bex) Exelbierd
d32e01be1a Fixing typo in Dockerfile manpage
Signed-off-by: Brian Exelbierd <bex@pobox.com>
2015-06-05 16:33:11 +02:00
Sven Dowideit
159f5e0137 Merge pull request #13760 from SvenDowideit/update-dhe-docs-jun-5
Bring over DHE docs updates for publishing
2015-06-05 21:07:57 +10:00
Sven Dowideit
9ed2cb300b Bring over DHE docs updates for publishing
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-06-05 21:06:59 +10:00
Eric-Olivier Lamey
5fa60149e2 Restore --default-gateway{,-v6} daemon options.
This was added before the libnetwork merge, and then lost. Fixes #13755.

Signed-off-by: Eric-Olivier Lamey <eo@lamey.me>
2015-06-05 06:21:22 +00:00
Samuel Karp
ed39fbeb2a Adjust disallowed CpuShares in /containers/create
Previous versions of libcontainer allowed CpuShares that were greater
than the maximum or less than the minimum supported by the kernel, and
relied on the kernel to do the right thing. Newer libcontainer fails
after creating the container if the requested CpuShares is different
from what was actually created by the kernel, which breaks compatibility
with earlier Docker Remote API versions. This change explicitly adjusts
the requested CpuShares in API versions < 1.20.

Signed-off-by: Samuel Karp <skarp@amazon.com>
2015-06-04 17:19:39 -07:00
Jessie Frazelle
cd1a1ee972 Merge pull request #13752 from tianon/fix-release-debs
Fix release script to release _both_ .deb files
2015-06-04 16:37:59 -07:00
David Calavera
e33aeac708 Merge pull request #13640 from Microsoft/10662-implementmeminfo
Windows: Implement ReadMemInfo()
2015-06-04 16:09:24 -07:00
Tianon Gravi
4572329d4b Fix release script to release _both_ .deb files
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-06-04 16:08:12 -07:00
Antonio Murdaca
a06e0bb8b4 Merge pull request #13648 from tiborvass/print-debugtransport-to-test-output
registry: debugTransport should print with testing.T.Log
2015-06-05 00:42:22 +02:00
Brian Goff
a2602c617d Merge pull request #13684 from lizf-os/cleanup-verify-volumes-info
Cleanup Daemon.verifyVolumesInfo() a bit
2015-06-04 15:39:31 -07:00
Brian Goff
0c84604f54 Fix goroutine leak on logs -f with no output
Also noticed potential hang when only stdout or stderr are used with
follow=1

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-06-04 13:56:40 -07:00
John Howard
543cf79ffb Add GOOS in User-Agent
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-04 13:37:41 -07:00
Arnaud Porterie
b63ec6e4b1 Merge pull request #13734 from aboch/master
Fix for #13720. Unpublished ports missing in docker ps
2015-06-04 12:05:47 -07:00
John Howard
fd935ee63d Windows: Build docker.exe manifested and with icon
Signed-off-by: John Howard <John.Howard@microsoft.com>
2015-06-04 11:49:10 -07:00
Michael Crosby
b26428257f Merge pull request #13728 from calavera/copy_old_volume_content
Migrate data from old vfs paths to new local volumes path.
2015-06-04 11:14:34 -07:00
Tianon Gravi
7c2178b358 Merge pull request #13736 from SvenDowideit/double-the-double-the-lines
Tiny spelling issue in the debian control file :)
2015-06-04 11:10:55 -07:00
Alexander Morozov
cbe120db58 Merge pull request #13745 from icecrime/test_import_path
Fix kr/pty import path in test-integration-cli
2015-06-04 10:59:37 -07:00
Arnaud Porterie
d8680f7beb Remove reference to experimental release
Remove reference to experimental releases as it is really a nightly
channel rather than a scheduled release.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-04 10:33:20 -07:00
Arnaud Porterie
8352f2e264 Rename EXPERIMENTAL.md to README.md
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-04 10:32:50 -07:00
David Calavera
16a5590c5b Migrate data from old vfs paths to new local volumes path.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-04 10:16:19 -07:00
Alexander Morozov
9069cded57 Merge pull request #13586 from kvasdopil/zfs-88chars
Avoid 88-chars mountpoint length limit on freebsd
2015-06-04 10:05:01 -07:00
David Calavera
2c09dbb7dd Merge pull request #13733 from lizf-os/discovery-test-remove-tmpdir
Don't forget to clenaup tmpdir in TestFileSpecPlugin()
2015-06-04 09:21:53 -07:00
moxiegirl
4efedb3fba Merge pull request #13716 from moxiegirl/move-experimental
Moving experimental
2015-06-04 09:11:00 -07:00
Arnaud Porterie
9ec5e4f7df Fix kr/pty import path
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-04 09:02:14 -07:00
Zefan Li
d31224743b Don't forget to clenaup tmpdir in TestFileSpecPlugin()
Also remove redundant code.

Signed-off-by: Zefan Li <lizefan@huawei.com>
2015-06-04 21:26:15 +08:00
Sven Dowideit
318defe1de Tiny spelling issue in the debian control file :)
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-06-04 18:16:24 +10:00
Alessandro Boch
ea180a73bc Fix for #13720
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-06-03 23:39:27 -07:00
Jessie Frazelle
ef3e956aa2 Merge pull request #13704 from tianon/build-utc
Swap build-* to use UTC instead of local time
2015-06-03 22:05:09 -07:00
Arnaud Porterie
57bba29f79 Merge pull request #13732 from mavenugo/netdisabled
Using container NetworkDisabled to fix #13725
2015-06-03 21:40:15 -07:00
Madhu Venugopal
83208a531d Using container NetworkDisabled to fix #13725
container.config.NetworkDisabled is set for both daemon's
DisableNetwork and --networking=false case. Hence using
this flag instead to fix #13725.

There is an existing integration-test to catch this issue,
but it is working for the wrong reasons.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-06-03 17:31:22 -07:00
Arnaud Porterie
f37e6e180f Merge pull request #13731 from jfrazelle/fix-version-on-old-versions
fix version struct on old versions
2015-06-03 17:24:53 -07:00
Jessie Frazelle
fdd6175bca Merge pull request #13718 from runcom/fix-containers-json
SizeRW & SizeRootFs omitted if empty in /container/json call
2015-06-03 17:14:58 -07:00
Jessica Frazelle
229b599259 fix version struct on old versions
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-03 16:56:50 -07:00
Arnaud Porterie
babf751e1b Merge pull request #13715 from LK4D4/update_logrus
Update github.com/Sirupsen/logrus to 0.8.2
2015-06-03 14:24:37 -07:00
Jessie Frazelle
ca66419522 Merge pull request #13709 from jfrazelle/update-url
Update urls from .com to .org.
2015-06-03 14:21:38 -07:00
Antonio Murdaca
6945ac2d02 SizeRW & SizeRootFs omitted if empty in /container/json call
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-06-03 23:13:56 +02:00
Arnaud Porterie
ad56d797d3 Merge pull request #13712 from LK4D4/fix_leak_events
Support CloseNotifier for events
2015-06-03 13:43:39 -07:00
Mary Anthony
95dfc4c4a5 Moving experimental
Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-03 13:43:27 -07:00
Jessica Frazelle
7943bce894 Update urls from .com to .org.
I added 301 redirects from dockerproject.com to dockerproject.org but may as
well make sure everything is updated anyways.

Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-06-03 13:28:47 -07:00
Alexander Morozov
fa020341e4 Update github.com/Sirupsen/logrus to 0.8.2
Fix #13708

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-03 13:22:56 -07:00
Antonio Murdaca
f18ce101fb Merge pull request #13165 from ahmetalpbalkan/durations
Allow duration strings as --since/--until
2015-06-03 22:14:42 +02:00
Flavio Castelli
d0c4c7c83f Added openSUSE and SUSE Linux Enterprise support to install.sh
Handle docker installation on openSUSE and SUSE Linux Enterprise
via https://get.docker.io/

Signed-off-by: Flavio Castelli <fcastelli@suse.com>
2015-06-03 21:56:27 +02:00
Arnaud Porterie
a29633f687 Merge pull request #13703 from runcom/13691-container-ps-regression
Do not omit empty json field in /containers/json api response
2015-06-03 12:30:12 -07:00
Sebastiaan van Stijn
b30121984e Merge pull request #13702 from BenSeverson/patch-1
quick doc fix for windows versions
2015-06-03 21:24:13 +02:00
David Calavera
c962f53a3e Merge pull request #13645 from calavera/fix_stats_flaky_test
Fix stats flaky test.
2015-06-03 12:05:43 -07:00
Alexander Morozov
9e7fc245a7 Support CloseNotifier for events
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-03 11:42:51 -07:00
Ben Severson
a448b7aff2 quick doc fix for windows versions
Signed-off-by: Ben Severson <BenSeverson@users.noreply.github.com>
2015-06-03 10:28:11 -07:00
Tianon Gravi
aa54a93f74 Swap build-* to use UTC instead of local time
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-06-03 09:56:46 -07:00
Alexander Morozov
521926f6c4 Merge pull request #13231 from Microsoft/10662-chrootarchive
Windows: chrootarchive refactor
2015-06-03 09:54:42 -07:00
Antonio Murdaca
725f34151c Do not omit empty json field in /containers/json api response
Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-06-03 18:53:40 +02:00
Sebastiaan van Stijn
0636bb7b73 Merge pull request #13672 from LK4D4/syslog_tag
Add syslog-tag option
2015-06-03 17:04:59 +02:00
moxiegirl
641f3e0932 Merge pull request #13205 from hqhq/hq_fix_ipforward_doc
Add docs for ip-forward
2015-06-03 07:50:19 -07:00
Antonio Murdaca
f03daf29dc Merge pull request #13696 from hqhq/hq_add_comment_inspect
Add comment about inspect output
2015-06-03 13:36:00 +02:00
Qiang Huang
01a9a9284f Add comment about inspect output
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-06-03 17:35:57 +08:00
Qiang Huang
8bfc8102be Don't check RESOURCE_COUNTERS in new kernel
Closes: #13543

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-06-03 17:26:39 +08:00
Qiang Huang
85fffe1341 Add docs for ip-forward
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-06-03 16:37:40 +08:00
Matt Moore
bd2575cc4f Make the v2 logic fallback on v1 when v2 requests cannot be authorized.
Signed-off-by: Matt Moore <mattmoor@google.com>
2015-06-02 21:22:59 -07:00
Jessie Frazelle
63823cd6c1 Merge pull request #13683 from crosbymichael/nat-test-fixes
Fix nat integration tests
2015-06-02 18:54:17 -07:00
yuchangchun
e0475d331b add a more accurate error description for invalid tag name
Signed-off-by: yuchangchun <yuchangchun1@huawei.com>
2015-06-03 09:38:39 +08:00
Michael Crosby
4f42097883 Fix nat integration tests
This removes complexity of current implementation and makes the test
correct and assert the right things.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-06-02 18:21:16 -07:00
Zefan Li
8b4c0decfc Cleanup Daemon.verifyVolumesInfo() a bit
vols.VolumesRW has been initialized so it can't be nil. Furthermore
it's ok to read a nil map.

Signed-off-by: Zefan Li <lizefan@huawei.com>
2015-06-03 09:19:16 +08:00
Jessie Frazelle
25376c652d Merge pull request #13679 from icecrime/update_vendoring
Update vendoring
2015-06-02 17:41:48 -07:00
Arnaud Porterie
1664d6cd66 Update vendoring
Update libnetwork to 005bc475ee49a36ef2ad9c112d1b5ccdaba277d4
Synchronize changes to distribution (was missing _test.go file)

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-02 16:41:02 -07:00
David Calavera
af09b06dfa Merge pull request #13675 from runcom/13663-config-regression
Expose old config field for api < 1.19
2015-06-02 15:23:51 -07:00
Antonio Murdaca
6deaa58ba5 Expose old config field for api < 1.19
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-06-02 23:37:59 +02:00
David Calavera
6c42b3947a Merge pull request #12838 from fntlnz/test-cmd
Using dockerCmd when possible
2015-06-02 14:12:22 -07:00
Alexander Morozov
3f26066425 Merge pull request #13591 from kvasdopil/update-go-zfs
Update go-zfs to last version
2015-06-02 14:05:29 -07:00
Ahmet Alp Balkan
4e3b21f99e Allow duration strings as --since/--until
Fixes #13107. This change enables Go duration strings
computed relative to the client machine’s time to be used
as input parameters to `docker events --since/--until`
and `docker logs --since` arguments.

Added unit tests for pkg/timeutils.GetTimestamp as well.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
2015-06-02 21:02:47 +00:00
Doug Davis
da255ec962 Merge pull request #13661 from vdemeester/pkg-jsonmessage-test-coverage
Add test coverage to pkg/jsonmessage
2015-06-02 16:54:50 -04:00
Sebastiaan van Stijn
7e8639a9df Merge pull request #13671 from moxiegirl/carry-13147-fix
Tweaking text identified in PR #13147
2015-06-02 21:48:47 +02:00
Alexander Morozov
3df19749d4 Wrap lines for journald docs
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-02 12:46:51 -07:00
Mary Anthony
cb4af853f6 Tweaking text identified in PR #13147
Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-02 12:44:47 -07:00
Alexander Morozov
8979fe4d8a Change address to syslog-address in syslog docs
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-02 12:44:23 -07:00
Alexander Morozov
a81af2e26a Add syslog-tag option for syslog log-driver
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-02 12:43:00 -07:00
Vincent Demeester
e6bd8c1e19 Add test coverage to pkg/jsonmessage
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-06-02 21:19:38 +02:00
Phil Estes
63b5d5fadc Merge pull request #13668 from calavera/bump_libnetwork
Bump libnetwork for 1.7 release.
2015-06-02 15:04:38 -04:00
David Calavera
ad244668c3 Update libnetwork to 4ded6fe3641b71863cc5985652930ce40efc3af4
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-02 11:30:36 -07:00
Phil Estes
278798236b Merge pull request #13650 from jvgogh/master
Upon HTTP 302 redirect do not include "Authorization" header on 'untr…
2015-06-02 14:23:20 -04:00
Arnaud Porterie
274baf70bf Merge pull request #13576 from stevvooe/verify-digests
Properly verify manifests and layer digests on pull
2015-06-02 11:16:23 -07:00
Jessie Frazelle
7d33bc0bec Merge pull request #13656 from lizf-os/13641-skip-test-on-lxc
test: Skip TestDevicePermissions on lxc
2015-06-02 11:05:22 -07:00
David Calavera
ad41efd9a2 Bump libnetwork for 1.7 release.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-02 11:00:54 -07:00
David Calavera
814a92c5a1 Merge pull request #13607 from vieux/PrintfIfNotEmpty
do not print empty values in docker info
2015-06-02 10:52:45 -07:00
Sebastiaan van Stijn
bdb6fad34c Merge pull request #13654 from porjo/netipv6
Networking docs: add reference to ndppd
2015-06-02 19:06:17 +02:00
Arnaud Porterie
2de2782fe8 Merge pull request #13666 from runcom/13665-kill-signal-wrong-handled
Fix wrong kill signal parsing
2015-06-02 09:40:55 -07:00
Alexander Morozov
9f098cabfc Merge pull request #13664 from runcom/dead-code
Remove old struct
2015-06-02 09:37:55 -07:00
Sebastiaan van Stijn
fbadf11d20 Merge pull request #13633 from ZJU-SEL/fix-doc
fix typo.
2015-06-02 18:36:52 +02:00
Antonio Murdaca
39eec4c25b Fix wrong kill signal parsing
Signed-off-by: Antonio Murdaca <antonio.murdaca@gmail.com>
2015-06-02 18:01:19 +02:00
Vincent Batts
d13af493f8 Merge pull request #13630 from vdemeester/pkg-tarsum-test-coverage
Add test coverage for pkg/tarsum
2015-06-02 11:44:42 -04:00
Phil Estes
8a11b40fea Merge pull request #13553 from Microsoft/10662-revert908db
Windows: Undo 908db518 for Windows daemon
2015-06-02 10:22:39 -04:00
Antonio Murdaca
da1a77defd Remove old struct
Signed-off-by: Antonio Murdaca <antonio.murdaca@gmail.com>
2015-06-02 16:10:39 +02:00
James Turnbull
879f0fb338 Merge pull request #13657 from chriswahl/patch-1
Corrected VMWare to VMware
2015-06-02 07:41:25 -04:00
Alexey Guskov
ea5ce27564 update go-zfs to last version
Signed-off-by: Alexey Guskov <lexag@mail.ru>
2015-06-02 10:37:38 +03:00
Vincent Demeester
25f7d7822d Add test coverage for pkg/tarsum
And removing unused code.
- tarsum.go :
  NewTarSumHash could be non exported (for now)
  NewTarSumForLabel is never used, except for the tests
- fileinfosums.go:
  SortByPos is never used, except for the tests
- versionning.go:
  GetVersions is never used, expect for the tests

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-06-02 09:08:01 +02:00
Ian Bishop
b1a1cff368 Networking docs: add reference to ndppd
Signed-off-by: Ian Bishop <ianbishop@pace7.com>
2015-06-02 15:56:24 +10:00
Chris Wahl
55cea4952b Corrected VMWare to VMware
Corrected spelling of VMware.

Signed-off-by: Chris Wahl <github@wahlnetwork.com>
2015-06-01 22:34:43 -05:00
Zefan Li
e55649192e test: Skip TestDevicePermissions on lxc
Closes: #13641

Signed-off-by: Zefan Li <lizefan@huawei.com>
2015-06-02 10:27:54 +08:00
He Simei
0d72772c37 fix typo.
Signed-off-by: He Simei <hesimei@zju.edu.cn>
2015-06-02 09:44:52 +08:00
Tibor Vass
1f903f652c Merge pull request #13651 from RichardScothern/v1-mirror-fix
Fallback to pull from hub if mirrors unavailable.
2015-06-01 21:09:54 -04:00
moxiegirl
cd79751cfa Merge pull request #13644 from mchiang0610/patch-1
Fix - Download button does not download
2015-06-01 17:33:38 -07:00
Arnaud Porterie
05b1d02423 Merge pull request #13609 from Microsoft/10662-refixserverwindows
Windows: Fix windows to match linux after compile break
2015-06-01 17:03:13 -07:00
Jeffrey van Gogh
65c5105fcc Upon HTTP 302 redirect do not include "Authorization" header on 'untrusted' registries.
Refactoring in Docker 1.7 changed the behavior to add this header where as Docker <= 1.6 wouldn't emit this Header on a HTTP 302 redirect.

This closes #13649

Signed-off-by: Jeffrey van Gogh <jvg@google.com>
2015-06-01 16:12:56 -07:00
Jessie Frazelle
aa8d8fdc0c Merge pull request #13611 from duglin/Issue13417a
Allow .dockerignore to ignore everything
2015-06-01 15:59:57 -07:00
Jessie Frazelle
1f472c3768 Merge pull request #13536 from Mic92/master
remove redundant mount/unmount calls on commit
2015-06-01 15:57:14 -07:00
Jessie Frazelle
f358b39521 Merge pull request #13597 from sanketsaurav/master
Proposing Bose, Raman and Ramanujan
2015-06-01 15:56:16 -07:00
Richard
6e4ff1bb13 If no endpoint could be established with the given mirror configuration,
fallback to pulling from the hub as per v1 behavior.

Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
2015-06-01 15:18:56 -07:00
Victor Vieux
c790aa36ea no not print empty keys in docker info
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2015-06-01 15:05:20 -07:00
Tibor Vass
78bc233a01 registry: debugTransport should print with testing.T.Log
It should not print to STDOUT so that it only prints the debugTransport
output if there was an error in one of the registry tests.

Signed-off-by: Tibor Vass <tibor@docker.com>
2015-06-01 17:48:30 -04:00
Jessie Frazelle
488c355d94 Merge pull request #13643 from LK4D4/fix_registry_race
Fix race condition in registry/session
2015-06-01 14:44:12 -07:00
David Calavera
4fde1cb695 Fix stats flaky test.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-06-01 14:05:26 -07:00
Alexander Morozov
b7101d528d Merge pull request #13638 from icecrime/maintainers_add_calavera
Add @calavera to maintainers
2015-06-01 14:05:12 -07:00
Alexander Morozov
cd80a61cc1 Merge pull request #13443 from duglin/CleanupEvents
Cleanup container LogEvent calls
2015-06-01 14:04:33 -07:00
Michael Chiang
5606f32eec Fix - Download button does not download
Fix - Download button does not download

Users got confused when Kitematic is not being downloaded after clicking on the download button, and instead got brought to a screen to teach them how to download Kitematic.

The additional step caused a significant drop in Kitematic downloads. This pull request fixes the issue, to allow users to directly download Kitematic after clicking on the Download button. 

Signed-off-by: Michael Chiang <michael.chiang@docker.com>
2015-06-01 13:29:44 -07:00
Alexander Morozov
9d98c28855 Fix race condition in registry/session
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-01 13:25:18 -07:00
David Calavera
64a7431663 Merge pull request #13639 from tonistiigi/fix-git-escape
Make sure git remote subdirs don't escape git root
2015-06-01 13:04:39 -07:00
Stephen J Day
84413be3c9 Break down loadManifest function into constituent parts
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-06-01 13:02:50 -07:00
Phil Estes
71d960d455 Merge pull request #13557 from ewindisch/apparmor-unshare-priv
Expand unshare test to include privileged test
2015-06-01 15:43:37 -04:00
John Howard
22b195f241 Windows: Implement ReadMemInfo()
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-01 12:40:33 -07:00
Doug Davis
8232312c1e Cleanup container LogEvent calls
Move some calls to container.LogEvent down lower so that there's
less of a chance of them being missed. Also add a few more events
that appear to have been missed.

Added testcases for new events: commit, copy, resize, attach, rename, top

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-06-01 12:39:28 -07:00
Tonis Tiigi
7f7ebeffe8 Fix breakouts from git root during build
Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com>
2015-06-01 22:10:55 +03:00
Arnaud Porterie
62afcbc6d4 Add @calavera to maintainers
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-06-01 12:02:12 -07:00
Alexander Morozov
24fbcffeac Merge pull request #13560 from Microsoft/10662-statscollector
Windows: Factor out stat collector
2015-06-01 11:39:19 -07:00
Brian Goff
d156bc9dd4 Merge pull request #13637 from LK4D4/remove_debug
Remove useless debug message
2015-06-01 11:38:05 -07:00
Alexander Morozov
f1b59d64d2 Remove useless debug message
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-06-01 11:15:15 -07:00
Brian Goff
a7005c44b5 Merge pull request #13320 from coolljt0725/add_stats_no_stream_show_cpu_usage
Add docker stats --no-stream show cpu usage
2015-06-01 09:40:04 -07:00
David Calavera
6fb454b9f0 Merge pull request #13464 from davidrjenni/10184-fix-auto-created-devices
Fixes issue #10184.
2015-06-01 09:30:04 -07:00
Phil Estes
d37aad170f Merge pull request #13568 from jfrazelle/fix-release-script-for-experimental
fix release script for experimental
2015-06-01 12:29:45 -04:00
moxiegirl
7c190b9556 Merge pull request #13523 from moxiegirl/carry-12572-fix
Updating after the pr went through
2015-06-01 09:21:12 -07:00
Mary Anthony
3ce2797541 Updating after the pr went through
Updating with comments.

Signed-off-by: Mary Anthony <mary@docker.com>
2015-06-01 09:20:31 -07:00
John Howard
68c879406b Windows: Factor out stat collector
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-06-01 09:11:03 -07:00
Sebastiaan van Stijn
09bfbfd74e Merge pull request #13615 from gesellix/docs-container-create-start
indicate HostConfig to be used for "create container"
2015-06-01 17:46:32 +02:00
Brian Goff
b445004364 Merge pull request #13390 from mrjana/cnm_integ
Do not attempt releasing network when not attached to any network
2015-06-01 08:25:20 -07:00
Tobias Gesellchen
16e649c589 indicate HostConfig to be used for "create container"
Closes #13614

Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-06-01 07:04:41 +02:00
Sven Dowideit
4caa9392f8 Merge pull request #13622 from jogo/spelling
Fix spelling mistakes in documentation
2015-06-01 11:37:48 +10:00
Joe Gordon
3d87b80b46 Fix spelling mistakes in documentation
While reading  some of the docs I noticed a few errors, so I ran
misspellings (https://pypi.python.org/pypi/misspellings) on markdown files

Signed-off-by: Joe Gordon <joe.gordon0@gmail.com>
2015-05-31 11:53:23 -07:00
moxiegirl
093f57a261 Merge pull request #13460 from moxiegirl/add-created-state-diagram
Updating event diagram with the created state. Cool, thank you.
2015-05-30 19:47:24 -07:00
Jessie Frazelle
0ea14e5c6d Merge pull request #13603 from tianon/consistent-dest
Make "DEST" a make.sh construct instead of ad-hoc
2015-05-30 16:42:10 -07:00
James Turnbull
73683e807d Merge pull request #13616 from konstruktoid/docs_openssl
Docs: sha256 and 4096 when using openssl
2015-05-30 19:20:21 -04:00
Thomas Sjögren
5cd64cb93f aes256 and 4096 bits
squashing down to a single commit and change back to cert.pem

Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
2015-05-31 01:05:49 +02:00
Lei Jitang
20927ffbe7 Correct the error message of pause and unpause non-running container
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-05-31 03:32:29 +08:00
Aidan Hobson Sayers
a121ac858e Restore DEBUG as DOCKER_DEBUG (removed in #10665), add as make variable
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-05-30 19:37:36 +01:00
Tianon Gravi
ac3388367b Make "DEST" a make.sh construct instead of ad-hoc
Using "DEST" for our build artifacts inside individual bundlescripts was already well-established convention, but this officializes it by having `make.sh` itself set the variable and create the directory, also handling CYGWIN oddities in a single central place (instead of letting them spread outward from `hack/make/binary` like was definitely on their roadmap, whether they knew it or not; sneaky oddities).

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-05-30 11:16:43 -07:00
Sebastiaan van Stijn
f2154a5a6b Merge pull request #13367 from duglin/Issue13353
Add a "Created" state for new containers that haven't been run yet
2015-05-30 19:49:38 +02:00
Lei Jitang
96123a1fd5 Add docker stats --no-stream show cpu usage
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-05-31 01:25:51 +08:00
Doug Davis
dc697b1c9f Add a "Created" state for new containers that haven't been run yet
Closes #13353

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-05-30 07:48:46 -07:00
Sebastiaan van Stijn
279c877451 Merge pull request #13580 from vdemeester/update-api-commit
Update api documentation to add labels in commit
2015-05-30 14:44:05 +02:00
James Turnbull
18c11dc264 Merge pull request #13612 from duglin/DocsNewLine
Premature newline insertions
2015-05-30 08:33:46 -04:00
Doug Davis
e51b311129 Premature newline insertions
Noticed that there were a few newlines in the middle of a \`...\` blocks that
made the text look funny when displayed in HTML.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-05-30 04:46:24 -07:00
Doug Davis
82ea6ed2bc Allow .dockerignore to ignore everything
Change CLI error msg because it was too specific and didn't make sense
when there were errors not related to inaccessible files.

Removed some log.Error() calls since they're not really errors we should
log. Returning the error will be enough.

Closes: #13417

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-05-30 04:16:00 -07:00
Vincent Demeester
c61fa8471a Update api documentation to add labels in commit
It is already possible to set labels at commit when using the API. But
it is not present in the API documentation. Added an integration test
too, to validate this work (and will be in the future).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-05-30 11:31:51 +02:00
David R. Jenni
c913c9921b Fix issue #10184.
Merge user specified devices correctly with default devices.
Otherwise the user specified devices end up without permissions.

Signed-off-by: David R. Jenni <david.r.jenni@gmail.com>
2015-05-30 11:09:47 +02:00
John Howard
2b7569ccc3 Windows: Refix server_windows to match linux
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-29 21:25:27 -07:00
David Calavera
04c6f09fbd Merge pull request #12400 from coolljt0725/kill_all_containers_on_daemon_shutdown
Ensure all the running containers are killed on daemon shutdown
2015-05-29 16:45:57 -07:00
Stephen J Day
74528be903 Add tests for loadManifest digest verification
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-05-29 16:30:21 -07:00
Sebastiaan van Stijn
1613897d2d Merge pull request #13561 from icecrime/warn_overlay_docs
Add note about overlay not being production ready
2015-05-30 01:24:02 +02:00
Sanket Saurav
a18c0b3b3c Proposing Bose, Raman and Ramanujan
Signed-off-by: Sanket Saurav <sanketsaurav@gmail.com>
2015-05-30 04:14:11 +05:30
Jessie Frazelle
3aa4a3a0c5 Merge pull request #13606 from runcom/revert-doc-in-api-1-19
Revert api doc for 1.19 about PortSpecs removal
2015-05-29 15:42:56 -07:00
Antonio Murdaca
c42ede311b Revert api doc for 1.19 about PortSpecs removal
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-30 00:32:03 +02:00
Stephen J Day
1e653ab645 Attempt to retain tagging behavior
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-05-29 15:20:37 -07:00
Stephen J Day
06612cc0fe Properly verify manifests and layer digests on pull
To ensure manifest integrity when pulling by digest, this changeset ensures
that not only the remote digest provided by the registry is verified but also
that the digest provided on the command line is checked, as well. If this check
fails, the pull is cancelled as with an error. Inspection also should that
while layers were being verified against their digests, the error was being
treated as tech preview image signing verification error. This, in fact, is not
a tech preview and opens up the docker daemon to man in the middle attacks that
can be avoided with the v2 registry protocol.

As a matter of cleanliness, the digest package from the distribution project
has been updated to latest version. There were some recent improvements in the
digest package.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-05-29 15:20:28 -07:00
David Calavera
eaa9c1b97e Merge pull request #13596 from jfrazelle/11414-fix-once-and-for-all
fix bug with rmi multiple tag
2015-05-29 15:10:22 -07:00
David Calavera
4389fc8bf9 Merge pull request #13425 from runcom/13421-stats-default-stream
Fix regression in stats API endpoint
2015-05-29 15:05:21 -07:00
Antonio Murdaca
d79654d0f6 Merge pull request #13567 from draghuram/apiver
Make the version mismatch message more explicit.
2015-05-29 23:39:48 +02:00
Jessie Frazelle
d96ca04f24 Merge pull request #13601 from tianon/precise
Finally add precise/12.04 as a build-deb target
2015-05-29 14:35:07 -07:00
David Calavera
ec167972bf Merge pull request #13446 from runcom/remove-PortSpecs
Remove PortSpecs from Config
2015-05-29 14:31:48 -07:00
Jessie Frazelle
4d9191e15d Merge pull request #13604 from tianon/vim-embedded-shell
Add embedded shell script highlight to vim syntax
2015-05-29 14:17:07 -07:00
Jessie Frazelle
e2524d8ace Merge pull request #13605 from tianon/vim-dockerfile
Adjust vim ftdetect to match "Dockerfile", "dockerfile", and "Dockerfile.*" which are all reasonably safe to assume "this is a Dockerfile"
2015-05-29 14:16:50 -07:00
Jessie Frazelle
a39de41871 Merge pull request #13527 from duglin/FixImagesPrefixNotFound
Fix error when trying to delete an image due to a bad container
2015-05-29 14:09:26 -07:00
Jessica Frazelle
185f392691 fix bug with rmi multiple tag
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-05-29 14:04:06 -07:00
Phil Estes
1680c78e63 Merge pull request #13577 from WeiZhang555/httpClose
bug fix: close http response body no longer in use
2015-05-29 16:59:17 -04:00
Phil Estes
8d726709ad Merge pull request #13578 from WeiZhang555/errRet
return error when failed to read http response body
2015-05-29 16:57:27 -04:00
Arnaud Porterie
67cb748e26 Add note about overlay not being production ready
Add a paragraph in cli.md mentioning that overlay is not a production
ready graphdriver.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-05-29 13:53:09 -07:00
Tianon Gravi
e02744404d Adjust vim ftdetect to match "Dockerfile", "dockerfile", and "Dockerfile.*" which are all reasonably safe to assume "this is a Dockerfile"
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-05-29 13:46:51 -07:00
Tianon Gravi
62d3b1bf2e Add embedded shell script highlight to vim syntax
This highlights `RUN`, `CMD`, and `ENTRYPOINT` lines using shell highlighting.  It doesn't bother detecting the JSON forms, but that's OK because JSON arrays highlight pretty reasonably with shell highlights. :)

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-05-29 13:39:37 -07:00
Antonio Murdaca
ec97f41465 Fix regression in stats API endpoint where stream query param default is true
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-29 22:38:36 +02:00
Alexander Morozov
3b831a2f3a Merge pull request #13589 from vdemeester/pkg-stringutils-test-coverage
Add test coverage for pkg/stringutils
2015-05-29 13:38:12 -07:00
Antonio Murdaca
15134a3320 Remove PortSpecs from Config
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-29 22:38:09 +02:00
Alexander Morozov
c42810fe99 Merge pull request #13564 from burke/fix-memory-leak
Use bufio.Reader instead of bufio.Scanner for logger.Copier
2015-05-29 13:37:15 -07:00
Alexander Morozov
04a451998f Merge pull request #13255 from vdemeester/11588-pkg-pools-test-coverage
Add test coverage for pkg/pools (#11588)
2015-05-29 13:36:20 -07:00
David Calavera
4c9fd72a91 Merge pull request #13598 from calavera/fix_windows_build
Do not require cgroups capabilities on windows to run the integration tests.
2015-05-29 12:57:40 -07:00
Tianon Gravi
98180b8954 Finally add precise/12.04 as a build-deb target
Ubuntu Precise has a number of warts that made it non-trivial to add initially, but I've managed to work through some of them and come up with a working build.  Two important parts to note are that it has neither the `btrfs` nor the `devicemapper` graphdriver backends since `btrfs-tools` and `libdevmapper-dev` in the precise repositories are too ancient for them to even compile.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-05-29 12:55:58 -07:00
Jessie Frazelle
b21ef2d1d3 Merge pull request #13581 from s7v7nislands/fix_lxc_url
update lxc url
2015-05-29 11:48:44 -07:00
David Calavera
a914101296 Do not require cgroups capabilities on windows to run the integration tests.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-05-29 11:42:40 -07:00
Alexander Morozov
6d8e517bce Merge pull request #13482 from boucher/criu-libcontainer-update
Update vendored libcontainer
2015-05-29 10:28:58 -07:00
David Calavera
f1fed87fc0 Merge pull request #13392 from runcom/syslog-connection-url-log-opt
Add syslog-address log-opt
2015-05-29 10:21:57 -07:00
Jessica Frazelle
b372f9f224 fix experimental version and release script
add api version experimental

Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-05-29 10:00:22 -07:00
Tianon Gravi
24d9edd8d1 Merge pull request #13585 from albers/completion-1.7
Update bash completion for 1.7.0
2015-05-29 09:43:44 -07:00
Burke Libbey
f779cfc5d8 Use bufio.Reader instead of bufio.Scanner for logger.Copier
When using a scanner, log lines over 64K will crash the Copier with
bufio.ErrTooLong. Subsequently, the ioutils.bufReader will grow without
bound as the logs are no longer being flushed to disk.

Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-05-29 12:29:42 -04:00
moxiegirl
87d36079a7 Merge pull request #13574 from anchal-agrawal/13345-fix-mac-install-docs
Fixing Mac Boot2Docker installation doc  Your fix has left the building.
2015-05-29 09:13:04 -07:00
Brian Goff
00b8d37084 Merge pull request #13563 from calavera/fix_bind_mount_regression
Mount bind volumes coming from the old volumes configuration.
2015-05-29 11:13:33 -04:00
Vincent Demeester
6c36572e8b Add test coverage for pkg/stringutils
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-05-29 15:49:29 +02:00
Doug Davis
34342e9cef Merge pull request #13583 from vdemeester/pkg-timeutils-test-coverage
Add test coverage to pkg/timeutils
2015-05-29 09:35:34 -04:00
Alexey Guskov
112b7e6546 avoid 88-chars mountpoint length limit on freebsd
Signed-off-by: Alexey Guskov <lexag@mail.ru>
2015-05-29 16:33:04 +03:00
moxiegirl
059dc15ab9 Merge pull request #12773 from HuKeping/update-docs
Fix inconsistent of remote API and document
2015-05-29 06:27:15 -07:00
Hu Keping
22fda380a9 Fix inconsistent of remote API and document
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-05-29 22:56:35 +08:00
Vincent Demeester
9aa8a590b7 Add test coverage to pkg/timeutils
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-05-29 15:09:35 +02:00
Harald Albers
b2832dffe5 Update bash completion for 1.7.0
Signed-off-by: Harald Albers <github@albersweb.de>
2015-05-29 12:42:59 +02:00
XiaoBing Jiang
2b69b326bc update lxc url
Signed-off-by: XiaoBing Jiang <s7v7nislands@gmail.com>
2015-05-29 16:10:57 +08:00
Zhang Wei
de225b5d13 return error when failed to read http response body
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-05-29 12:52:51 +08:00
Zhang Wei
6c49576a86 bug fix: close http response body no longer in use
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-05-29 12:03:40 +08:00
Anchal Agrawal
27ffccf540 Fixing Mac Boot2Docker installation doc
Signed-off-by: Anchal Agrawal <aagrawa4@illinois.edu>
2015-05-28 22:53:54 -05:00
Jessie Frazelle
7f6a7973cd Merge pull request #13566 from jfrazelle/fix-lxc-tests
skip test on lxc
2015-05-28 16:19:21 -07:00
Jessie Frazelle
fcdea09ea5 Merge pull request #13530 from jfrazelle/bump-api-version
bump api version to 1.20
2015-05-28 16:14:30 -07:00
David Calavera
7317b84ce0 Merge pull request #13558 from calavera/doc_ulimit
Add comment about ulimit format.
2015-05-28 15:51:06 -07:00
Antonio Murdaca
e8c88d2533 Add syslog-address log-opt
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-29 00:42:11 +02:00
Jessica Frazelle
e76d0f5571 bump api version to 1.20
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-05-28 15:32:05 -07:00
moxiegirl
742a8a6cff Merge pull request #13562 from moxiegirl/fixes-to-119-api
Fixes to the 1.19 version Thank you @thaJeztah and @jfrazelle!
2015-05-28 15:25:08 -07:00
Raghuram Devarakonda
7b6f9da52c Make the version mismatch message more explicit.
Signed-off-by: Raghuram Devarakonda <draghuram@gmail.com>
2015-05-28 17:54:48 -04:00
Jessica Frazelle
1392f99a97 skip test on lxc
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-05-28 14:54:12 -07:00
Mary Anthony
30901609a8 Fixes to the 1.19 version
updating with changes to this instant
Signed-off-by: Mary Anthony <mary@docker.com>
2015-05-28 14:25:26 -07:00
Jessie Frazelle
1f22676fcb Merge pull request #13559 from LK4D4/fix_systemd_listen
Treat systemd listeners as all other
2015-05-28 14:15:34 -07:00
David Calavera
9292859fce Add comment about ulimit format.
Fixes #12116

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-05-28 14:14:07 -07:00
David Calavera
53d9609de4 Mount bind volumes coming from the old volumes configuration.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-05-28 14:06:17 -07:00
Eric Windisch
e58161fedc Expand unshare test to include privileged test
This ensures that AppArmor, not other mechanisms used
by Docker or the kernel is restricting the mount.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-05-28 16:49:48 -04:00
Alexander Morozov
6f9fa64645 Treat systemd listeners as all other
Fix #13549

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-05-28 12:15:03 -07:00
John Howard
d66ae67418 Windows: Undo 908db518 for Windows daemon
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-28 12:04:09 -07:00
Alexander Morozov
3bda841e3e Merge pull request #13430 from runcom/fix-race-modify-request
Fix race in httpsRequestModifier.ModifyRequest when writing tlsConfig
2015-05-28 11:31:04 -07:00
David Calavera
37cc42ee0e Merge pull request #13416 from Microsoft/10662-fixintegrationtests
Windows: Pass temp environment through
2015-05-28 11:22:37 -07:00
David Calavera
617a0c2fde Merge pull request #13428 from duglin/niceHelp2
Nice help2
2015-05-28 11:09:02 -07:00
David Calavera
f99a962742 Merge pull request #13539 from tianon/deb-ubuntu-wily
Add Ubuntu Wily (15.10) as a build-deb target
2015-05-28 11:01:27 -07:00
David Calavera
24a0800d87 Merge pull request #13551 from albers/pgp-over-http
Use http for PGP key download
2015-05-28 10:59:14 -07:00
Jessie Frazelle
5bb6262d88 Merge pull request #13529 from hqhq/hq_skip_cgroup_test
Skip test if not have Cpu quota or Cpu period
2015-05-28 10:57:32 -07:00
David Calavera
85096cfd4f Merge pull request #13512 from moysesb/progressreader_close_silently
Close progressreader silently when read is complete.
2015-05-28 10:54:08 -07:00
David Calavera
0256bbdebb Merge pull request #13039 from stevenbrichards/13031-Upstart
Fix check for upstart not detecting properly
2015-05-28 10:38:55 -07:00
Alexander Morozov
b90732f801 Merge pull request #13548 from kvasdopil/zfs_magicnum
ZFS filesystem magic number check is fixed on FreeBSD
2015-05-28 10:27:12 -07:00
Moysés Borges
709fa2ad87 Modified progress reader to close silently when read is complete.
Closes #13432

Signed-off-by: Moysés Borges <moysesb@gmail.com>
2015-05-28 14:09:30 -03:00
Brian Goff
45488f9dc0 Merge pull request #13259 from Microsoft/10662-configbridge
Windows: factor out bridgeConfig from server+config
2015-05-28 12:59:57 -04:00
David Calavera
70bedc8ee5 Merge pull request #13538 from tianon/rpm-fedora-22
Add fedora:22 to our rpm targets
2015-05-28 09:55:09 -07:00
Steven Richards
e5ff643aed Fixes #13031 - Check for upstart or init is not detecting properly
This will now properly check whether /etc/init.d/docker or service docker is
invoking the script and respond to the user accordingly.

Signed-off-by: Steven Richards <steven@axiomzen.co>
2015-05-28 09:52:05 -07:00
Brian Goff
27919bab2d Merge pull request #13269 from Microsoft/10662-statsrefactor
Windows: refactor stats
2015-05-28 12:46:34 -04:00
Brian Goff
33c7c01a62 Merge pull request #13055 from Microsoft/10662-internalsfixperms
Windows: Fixup builder/internals.go
2015-05-28 12:31:45 -04:00
Brian Goff
a364dd8fc6 Merge pull request #13535 from coolljt0725/fix_automatically_publish_without_publish
Fix automatically publish ports without --publish-all or --publish
2015-05-28 11:49:53 -04:00
Alexey Guskov
36bf6e4440 zfs magicnumber check on freebsd is fixed
Signed-off-by: Alexey Guskov <lexag@mail.ru>
2015-05-28 18:38:08 +03:00
Harald Albers
c1c5d760a6 Use http for PGP key download
Signed-off-by: Harald Albers <github@albersweb.de>
2015-05-28 16:43:36 +02:00
Brian Goff
ac7a33b45c Merge pull request #13541 from coolljt0725/remove_reduntant_enter_create
Clean up: remove redundant '\n' in Create
2015-05-28 10:30:07 -04:00
Lei Jitang
bcd076b5fe Clean up: remove redundant '\n' in Create
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-05-28 17:08:55 +08:00
Tianon Gravi
38c77ba876 Add Ubuntu Wily (15.10) as a build-deb target
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-05-28 01:06:11 -07:00
Tianon Gravi
96903c837f Add fedora:22 to our rpm targets
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-05-28 01:01:45 -07:00
Sebastiaan van Stijn
7011d9ee8a Merge pull request #13515 from lloydde/doc-cli-lint
doc cli lint.
2015-05-28 09:13:25 +02:00
Qiang Huang
34e5b6af19 Skip test if not have Cpu quota or Cpu period
Closes: #13522

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-05-28 14:59:58 +08:00
Jörg Thalheim
6473b0f127 remove redundant mount/unmount calls on commit
daemon.Diff already implements mounting for naivegraphdriver and
aufs which does diffing on its owns does not need the container to be mounted.
So new filesystem driver should mount filesystems on their own if it is needed
to implement Diff(). This issue was reported by @kvasdopil while working on a
freebsd port, because freebsd does not allow mount an already mounted
filesystem. Also it saves some cycles for other operating systems as well.

Signed-off-by: Jörg Thalheim <joerg@higgsboson.tk>
2015-05-28 08:43:31 +02:00
Tianon Gravi
15b45113eb Merge pull request #13532 from jfrazelle/fix-fix-release-script
fix release script
2015-05-27 23:17:45 -06:00
Jessica Frazelle
9f619282db fix release script
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-05-27 20:57:46 -07:00
Doug Davis
71a4990229 Fix error when trying to delete an image due to a bad container
I ran into a situation where I was trying:
	`docker rmi busybox`
and it kept failing saying:
    `could not find image: Prefix can't be empty`

While I have no idea how I got into this situation, it turns out this is
error message is from `daemon.canDeleteImage()`. In that func we loop over
all containers checking to see if they're using the image we're trying to
delete.  In my case though, I had a container with no ImageID. So the code
would die tryig to find that image (hence the "Prefix can't be empty" err).
This would stop all processing despite the fact that the container we're
checking had nothing to do with 'busybox'.

My change logs the bad situation in the logs and then skips that container.
There's no reason to fail all `docker rmi ...` calls just because of one
bad container.

Will continue to try to figure out how I got a container w/o an ImageID
but as of now I have no idea, I didn't do anything but normal docker cli
commands.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-05-27 19:19:43 -07:00
Lloyd Dewolf
b4a52fc4e9 doc cli lint.
- 79 char line length (non-command).
- Consistent single space between sentences.
- Replace start of line tabs with spaces.
- Remove trailing white space.
- Consistent "**Note:**" style.
  https://docs.docker.com/project/doc-style/#notes
- Replace the ``` sections with indented code.

Signed-off-by: Lloyd Dewolf <foolswisdom@gmail.com>
2015-05-27 15:07:57 -07:00
Dan Walsh
35a7f0c59e Merge branch 'master' of github.com:docker/docker into kill
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-05-27 16:37:32 -04:00
Dan Walsh
66121d1b45 Merge branch 'master' of github.com:docker/docker into kill
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-05-27 11:00:12 -04:00
Lei Jitang
13f2aa7068 Add --net=container with --publish --publish-all --expose error out
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-05-27 15:31:06 +08:00
Lei Jitang
bdb77078b5 Ensure all the running containers are killed on daemon shutdown
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-05-27 09:09:25 +08:00
boucher
4509f91b26 Update vendored libcontainer to v2.1
Docker-DCO-1.1-Signed-off-by: Ross Boucher <rboucher@gmail.com> (github: boucher)
2015-05-26 12:47:57 -07:00
Mary Anthony
9c65862cd6 Updating with the created state
Signed-off-by: Mary Anthony <mary@docker.com>
2015-05-25 07:33:01 -07:00
John Howard
ead2f80073 Windows: factor out bridge server+config
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-23 19:22:06 -07:00
Antonio Murdaca
a27395e6df Fix race in httpsRequestModifier.ModifyRequest when writing tlsConfig
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-23 23:50:08 +02:00
Doug Davis
8324d7918b Carry #11858
Continues 11858 by:
- Making sure the exit code is always zero when we ask for help
- Making sure the exit code isn't zero when we print help on error cases
- Making sure both short and long usage go to the same stream (stdout vs stderr)
- Making sure all docker commands support --help
- Test that all cmds send --help to stdout, exit code 0, show full usage, no blank lines at end
- Test that all cmds (that support it) show short usage on bad arg to stderr, no blank line at end
- Test that all cmds complain about a bad option, no blank line at end
- Test that docker (w/o subcmd) does the same stuff mentioned above properly

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-05-23 09:14:18 -07:00
John Howard
fba44a7ccf Windows: Pass temp environment through
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-22 15:14:22 -07:00
Jana Radhakrishnan
6cdf8623d5 Do not attempt releasing network when not attached to any network
Sometimes container.cleanup() can be called from multiple paths
for the same container during error conditions from monitor and
regular startup path. So if the container network has been already
released do not try to release it again.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-05-21 18:57:17 +00:00
John Howard
48f1cb4ebe Windows: refactor stats
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-20 09:08:45 -07:00
John Howard
62f648b061 Windows: chrootarchive refactor
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-20 08:56:42 -07:00
John Howard
010e3e046b Windows: Fixup builder\internals.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-20 08:55:13 -07:00
Qiang Huang
c646e514db Fix unit-test build error on ARM64
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-05-20 10:45:04 +08:00
Lorenzo Fontana
a2787469ac Using dockerCmd when possible
Signed-off-by: Lorenzo Fontana <fontanalorenzo@me.com>
2015-05-19 20:33:59 +02:00
Jason Shepherd
48231d623f adding nicer help when missing arguments (#11858)
Signed-off-by: Jason Shepherd <jason@jasonshepherd.net>
2015-05-19 12:02:13 +10:00
Lei Jitang
9a09664b51 Fix automatically publish ports without --publish-all
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-05-18 02:57:17 +08:00
Vincent Demeester
07a75c48fd Add tests for pkg/pools
Fixes #11588

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-05-16 10:39:24 +02:00
Burke Libbey
03956610e5 ino and dev must both match for a file to be identical.
This case is triggered frequently on ZFS.

Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-05-05 11:06:54 -04:00
Dan Walsh
d0a4f310ef Merge branch 'master' of github.com:docker/docker into kill
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2015-04-29 15:06:47 -04:00
Burke Libbey
45c45a2c9a archive: Optimize ChangesDirs on Linux
If we tear through a few layers of abstraction, we can get at the inodes
contained in a directory without having to stat all the files. This
allows us to eliminate identical files much earlier in the changelist
generation process.

Signed-off-by: Burke Libbey <burke@libbey.me>
2015-04-27 21:26:13 -04:00
Regan McCooey
c92377e300 docker kill should return error if container is not running.
Assuming that docker kill is trying to actually kill the container
is a mistake.  If the container is not running we should report it
back to the caller as a error.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
Docker-DCO-1.1-Signed-off-by: Regan McCooey <rmccooey27@aol.com> (github: rmccooey27)

Docker-DCO-1.1-Signed-off-by: Regan McCooey <rmccooey27@aol.com> (github: rhatdan)
2015-04-24 08:33:21 -04:00
2756 changed files with 403309 additions and 150536 deletions

6
.gitignore vendored
View File

@@ -2,6 +2,7 @@
# if you want to ignore files created by your editor/tools,
# please consider a global .gitignore https://help.github.com/articles/ignoring-files
*.exe
*.exe~
*.orig
*.rej
*.test
@@ -13,7 +14,6 @@
.git/
.gopath/
.hg/
.idea
.vagrant*
Vagrantfile
a.out
@@ -30,5 +30,9 @@ docs/_build
docs/_static
docs/_templates
docs/changed-files
# generated by man/md2man-all.sh
man/man1
man/man5
man/man8
pyenv
vendor/pkg/

View File

@@ -142,3 +142,30 @@ Jessica Frazelle <jess@docker.com> Jessie Frazelle <jfrazelle@users.noreply.gith
Thomas LEVEIL <thomasleveil@gmail.com> Thomas LÉVEIL <thomasleveil@users.noreply.github.com>
<oi@truffles.me.uk> <timruffles@googlemail.com>
<Vincent.Bernat@exoscale.ch> <bernat@luffy.cx>
Antonio Murdaca <antonio.murdaca@gmail.com> <me@runcom.ninja>
Antonio Murdaca <antonio.murdaca@gmail.com> <runcom@linux.com>
Antonio Murdaca <antonio.murdaca@gmail.com> <runcom@users.noreply.github.com>
Darren Shepherd <darren.s.shepherd@gmail.com> <darren@rancher.com>
Deshi Xiao <dxiao@redhat.com> <dsxiao@dataman-inc.com>
Deshi Xiao <dxiao@redhat.com> <xiaods@gmail.com>
Doug Davis <dug@us.ibm.com> <duglin@users.noreply.github.com>
Jacob Atzen <jacob@jacobatzen.dk> <jatzen@gmail.com>
Jeff Nickoloff <jeff.nickoloff@gmail.com> <jeff@allingeek.com>
<jess@docker.com> <princess@docker.com>
John Howard (VM) <John.Howard@microsoft.com> John Howard <jhoward@microsoft.com>
Madhu Venugopal <madhu@socketplane.io> <madhu@docker.com>
Mary Anthony <mary.anthony@docker.com> <mary@docker.com>
Mary Anthony <mary.anthony@docker.com> moxiegirl <mary@docker.com>
Mary Anthony <mary.anthony@docker.com> <moxieandmore@gmail.com>
mattyw <mattyw@me.com> <gh@mattyw.net>
resouer <resouer@163.com> <resouer@gmail.com>
AJ Bowen <aj@gandi.net> soulshake <amy@gandi.net>
AJ Bowen <aj@gandi.net> soulshake <aj@gandi.net>
Tibor Vass <teabee89@gmail.com> <tibor@docker.com>
Tibor Vass <teabee89@gmail.com> <tiborvass@users.noreply.github.com>
Vincent Bernat <bernat@luffy.cx> <Vincent.Bernat@exoscale.ch>
Yestin Sun <sunyi0804@gmail.com> <yestin.sun@polyera.com>
bin liu <liubin0329@users.noreply.github.com> <liubin0329@gmail.com>
John Howard (VM) <John.Howard@microsoft.com> jhowardmsft <jhoward@microsoft.com>
Ankush Agarwal <ankushagarwal11@gmail.com> <ankushagarwal@users.noreply.github.com>
Tangi COLIN <tangicolin@gmail.com> tangicolin <tangicolin@gmail.com>

264
AUTHORS
View File

@@ -2,14 +2,18 @@
# For how it is generated, see `hack/generate-authors.sh`.
Aanand Prasad <aanand.prasad@gmail.com>
Aaron Davidson <aaron@databricks.com>
Aaron Feng <aaron.feng@gmail.com>
Aaron Huslage <huslage@gmail.com>
Aaron Welch <welch@packet.net>
Abel Muiño <amuino@gmail.com>
Abhinav Ajgaonkar <abhinav316@gmail.com>
Abhishek Chanda <abhishek.becs@gmail.com>
Abin Shahab <ashahab@altiscale.com>
Adam Miller <admiller@redhat.com>
Adam Singer <financeCoding@gmail.com>
Aditya <aditya@netroy.in>
Adria Casas <adriacasas88@gmail.com>
Adrian Mouat <adrian.mouat@gmail.com>
Adrien Folie <folie.adrien@gmail.com>
Ahmed Kamal <email.ahmedkamal@googlemail.com>
@@ -23,6 +27,9 @@ Albert Callarisa <shark234@gmail.com>
Albert Zhang <zhgwenming@gmail.com>
Aleksa Sarai <cyphar@cyphar.com>
Aleksandrs Fadins <aleks@s-ko.net>
Alena Prokharchyk <alena@rancher.com>
Alessandro Boch <aboch@docker.com>
Alessio Biancalana <dottorblaster@gmail.com>
Alex Gaynor <alex.gaynor@gmail.com>
Alex Warhawk <ax.warhawk@gmail.com>
Alexander Boyd <alex@opengroove.org>
@@ -30,14 +37,20 @@ Alexander Larsson <alexl@redhat.com>
Alexander Morozov <lk4d4@docker.com>
Alexander Shopov <ash@kambanaria.org>
Alexandr Morozov <lk4d4@docker.com>
Alexey Guskov <lexag@mail.ru>
Alexey Kotlyarov <alexey@infoxchange.net.au>
Alexey Shamrin <shamrin@gmail.com>
Alexis THOMAS <fr.alexisthomas@gmail.com>
Allen Madsen <blatyo@gmail.com>
almoehi <almoehi@users.noreply.github.com>
Alvin Richards <alvin.richards@docker.com>
amangoel <amangoel@gmail.com>
Amit Bakshi <ambakshi@gmail.com>
Amy Lindburg <amy.lindburg@docker.com>
Anand Patil <anand.prabhakar.patil@gmail.com>
AnandkumarPatel <anandkumarpatel@gmail.com>
Anchal Agrawal <aagrawa4@illinois.edu>
Anders Janmyr <anders@janmyr.com>
Andre Dublin <81dublin@gmail.com>
Andrea Luzzardi <aluzzardi@gmail.com>
Andrea Turli <andrea.turli@gmail.com>
@@ -45,15 +58,19 @@ Andreas Köhler <andi5.py@gmx.net>
Andreas Savvides <andreas@editd.com>
Andreas Tiefenthaler <at@an-ti.eu>
Andrew C. Bodine <acbodine@us.ibm.com>
Andrew Clay Shafer <andrewcshafer@gmail.com>
Andrew Duckworth <grillopress@gmail.com>
Andrew France <andrew@avito.co.uk>
Andrew Kuklewicz <kookster@gmail.com>
Andrew Macgregor <andrew.macgregor@agworld.com.au>
Andrew Martin <sublimino@gmail.com>
Andrew Munsell <andrew@wizardapps.net>
Andrew Weiss <andrew.weiss@outlook.com>
Andrew Williams <williams.andrew@gmail.com>
Andrews Medina <andrewsmedina@gmail.com>
Andrey Petrov <andrey.petrov@shazow.net>
Andrey Stolbovsky <andrey.stolbovsky@gmail.com>
André Martins <martins@noironetworks.com>
Andy Chambers <anchambers@paypal.com>
andy diller <dillera@gmail.com>
Andy Goldstein <agoldste@redhat.com>
@@ -61,18 +78,23 @@ Andy Kipp <andy@rstudio.com>
Andy Rothfusz <github@developersupport.net>
Andy Smith <github@anarkystic.com>
Andy Wilson <wilson.andrew.j+github@gmail.com>
Anes Hasicic <anes.hasicic@gmail.com>
Ankush Agarwal <ankushagarwal11@gmail.com>
Anthony Baire <Anthony.Baire@irisa.fr>
Anthony Bishopric <git@anthonybishopric.com>
Anton Löfgren <anton.lofgren@gmail.com>
Anton Nikitin <anton.k.nikitin@gmail.com>
Anton Tiurin <noxiouz@yandex.ru>
Antonio Murdaca <antonio.murdaca@gmail.com>
Antony Messerli <amesserl@rackspace.com>
apocas <petermdias@gmail.com>
ArikaChen <eaglesora@gmail.com>
Arnaud Porterie <arnaud.porterie@docker.com>
Arthur Barr <arthur.barr@uk.ibm.com>
Arthur Gautier <baloo@gandi.net>
Asbjørn Enge <asbjorn@hanafjedle.net>
averagehuman <averagehuman@users.noreply.github.com>
Avi Das <andas222@gmail.com>
Avi Miller <avi.miller@oracle.com>
Barnaby Gray <barnaby@pickle.me.uk>
Barry Allard <barry.allard@gmail.com>
@@ -80,22 +102,31 @@ Bartłomiej Piotrowski <b@bpiotrowski.pl>
bdevloed <boris.de.vloed@gmail.com>
Ben Firshman <ben@firshman.co.uk>
Ben Sargent <ben@brokendigits.com>
Ben Severson <BenSeverson@users.noreply.github.com>
Ben Toews <mastahyeti@gmail.com>
Ben Wiklund <ben@daisyowl.com>
Benjamin Atkin <ben@benatkin.com>
Benoit Chesneau <bchesneau@gmail.com>
Bernerd Schaefer <bj.schaefer@gmail.com>
Bert Goethals <bert@bertg.be>
Bharath Thiruveedula <bharath_ves@hotmail.com>
Bhiraj Butala <abhiraj.butala@gmail.com>
bin liu <liubin0329@users.noreply.github.com>
Blake Geno <blakegeno@gmail.com>
bobby abbott <ttobbaybbob@gmail.com>
boucher <rboucher@gmail.com>
Bouke Haarsma <bouke@webatoom.nl>
Boyd Hemphill <boyd@feedmagnet.com>
Bradley Cicenas <bradley.cicenas@gmail.com>
Bradley Wright <brad@intranation.com>
Brandon Liu <bdon@bdon.org>
Brandon Philips <brandon@ifup.org>
Brandon Rhodes <brandon@rhodesmill.org>
Brendan Dixon <brendand@microsoft.com>
Brent Salisbury <brent.salisbury@docker.com>
Brett Kochendorfer <brett.kochendorfer@gmail.com>
Brian (bex) Exelbierd <bexelbie@redhat.com>
Brian DeHamer <brian@dehamer.com>
Brian Dorsey <brian@dorseys.org>
Brian Flad <bflad417@gmail.com>
Brian Goff <cpuguy83@gmail.com>
@@ -106,48 +137,67 @@ Brice Jaglin <bjaglin@teads.tv>
Briehan Lombaard <briehan.lombaard@gmail.com>
Bruno Bigras <bigras.bruno@gmail.com>
Bruno Binet <bruno.binet@gmail.com>
Bruno Gazzera <bgazzera@paginar.com>
Bruno Renié <brutasse@gmail.com>
Bryan Bess <squarejaw@bsbess.com>
Bryan Boreham <bjboreham@gmail.com>
Bryan Matsuo <bryan.matsuo@gmail.com>
Bryan Murphy <bmurphy1976@gmail.com>
buddhamagnet <buddhamagnet@gmail.com>
Burke Libbey <burke@libbey.me>
Byung Kang <byung.kang.ctr@amrdec.army.mil>
Caleb Spare <cespare@gmail.com>
Calen Pennington <cale@edx.org>
Cameron Boehmer <cameron.boehmer@gmail.com>
Carl X. Su <bcbcarl@gmail.com>
Cary <caryhartline@users.noreply.github.com>
Casey Bisson <casey.bisson@joyent.com>
Charles Hooper <charles.hooper@dotcloud.com>
Charles Lindsay <chaz@chazomatic.us>
Charles Merriam <charles.merriam@gmail.com>
Charlie Lewis <charliel@lab41.org>
Chen Chao <cc272309126@gmail.com>
Chen Hanxiao <chenhanxiao@cn.fujitsu.com>
cheney90 <cheney-90@hotmail.com>
Chewey <prosto-chewey@users.noreply.github.com>
Chia-liang Kao <clkao@clkao.org>
chli <chli@freewheel.tv>
Chris Alfonso <calfonso@redhat.com>
Chris Armstrong <chris@opdemand.com>
Chris Khoo <chris.khoo@gmail.com>
Chris Snow <chsnow123@gmail.com>
Chris St. Pierre <chris.a.st.pierre@gmail.com>
Chris Stivers <chris@stivers.us>
Chris Wahl <github@wahlnetwork.com>
chrismckinnel <chris.mckinnel@tangentlabs.co.uk>
Christian Berendt <berendt@b1-systems.de>
Christian Simon <simon@swine.de>
Christian Stefanescu <st.chris@gmail.com>
ChristoperBiscardi <biscarch@sketcht.com>
Christophe Troestler <christophe.Troestler@umons.ac.be>
Christopher Currie <codemonkey+github@gmail.com>
Christopher Latham <sudosurootdev@gmail.com>
Christopher Rigor <crigor@gmail.com>
Christy Perez <christy@linux.vnet.ibm.com>
Chun Chen <chenchun.feed@gmail.com>
Ciro S. Costa <ciro.costa@usp.br>
Clayton Coleman <ccoleman@redhat.com>
Coenraad Loubser <coenraad@wish.org.za>
Colin Dunklau <colin.dunklau@gmail.com>
Colin Rice <colin@daedrum.net>
Colin Walters <walters@verbum.org>
Colm Hally <colmhally@gmail.com>
Cory Forsyth <cory.forsyth@gmail.com>
cressie176 <github@stephen-cresswell.net>
Cristian Staretu <cristian.staretu@gmail.com>
Cruceru Calin-Cristian <crucerucalincristian@gmail.com>
Cyril F <cyrilf7x@gmail.com>
Daan van Berkel <daan.v.berkel.1980@gmail.com>
Daehyeok Mun <daehyeok@gmail.com>
Dafydd Crosby <dtcrsby@gmail.com>
dalanlan <dalanlan925@gmail.com>
Damjan Georgievski <gdamjan@gmail.com>
Dan Anolik <dan@anolik.net>
Dan Buch <d.buch@modcloth.com>
Dan Cotora <dan@bluevision.ro>
Dan Griffin <dgriffin@peer1.com>
@@ -157,35 +207,46 @@ Dan McPherson <dmcphers@redhat.com>
Dan Stine <sw@stinemail.com>
Dan Walsh <dwalsh@redhat.com>
Dan Williams <me@deedubs.com>
Daniel Antlinger <d.antlinger@gmx.at>
Daniel Exner <dex@dragonslave.de>
Daniel Farrell <dfarrell@redhat.com>
Daniel Garcia <daniel@danielgarcia.info>
Daniel Gasienica <daniel@gasienica.ch>
Daniel Menet <membership@sontags.ch>
Daniel Mizyrycki <daniel.mizyrycki@dotcloud.com>
Daniel Nephin <dnephin@gmail.com>
Daniel Norberg <dano@spotify.com>
Daniel Nordberg <dnordberg@gmail.com>
Daniel Robinson <gottagetmac@gmail.com>
Daniel S <dan.streby@gmail.com>
Daniel Von Fange <daniel@leancoder.com>
Daniel YC Lin <dlin.tw@gmail.com>
Daniel Zhang <jmzwcn@gmail.com>
Daniel, Dao Quang Minh <dqminh89@gmail.com>
Danny Berger <dpb587@gmail.com>
Danny Yates <danny@codeaholics.org>
Darren Coxall <darren@darrencoxall.com>
Darren Shepherd <darren.s.shepherd@gmail.com>
Dave Henderson <Dave.Henderson@ca.ibm.com>
David Anderson <dave@natulte.net>
David Calavera <david.calavera@gmail.com>
David Corking <dmc-source@dcorking.com>
David Davis <daviddavis@redhat.com>
David Gageot <david@gageot.net>
David Gebler <davidgebler@gmail.com>
David Mackey <tdmackey@booleanhaiku.com>
David Mat <david@davidmat.com>
David Mcanulty <github@hellspark.com>
David Pelaez <pelaez89@gmail.com>
David R. Jenni <david.r.jenni@gmail.com>
David Röthlisberger <david@rothlis.net>
David Sissitka <me@dsissitka.com>
David Xia <dxia@spotify.com>
David Young <yangboh@cn.ibm.com>
Davide Ceretti <davide.ceretti@hogarthww.com>
Dawn Chen <dawnchen@google.com>
decadent <decadent@users.noreply.github.com>
Deng Guangxing <dengguangxing@huawei.com>
Deni Bertovic <deni@kset.org>
Derek <crq@kernel.org>
Derek <crquan@gmail.com>
@@ -193,39 +254,53 @@ Derek McGowan <derek@mcgstyle.net>
Deric Crago <deric.crago@gmail.com>
Deshi Xiao <dxiao@redhat.com>
Dinesh Subhraveti <dineshs@altiscale.com>
DiuDiugirl <sophia.wang@pku.edu.cn>
Djibril Koné <kone.djibril@gmail.com>
dkumor <daniel@dkumor.com>
Dmitry Demeshchuk <demeshchuk@gmail.com>
Dmitry Gusev <dmitry.gusev@gmail.com>
Dmitry V. Krivenok <krivenok.dmitry@gmail.com>
Dolph Mathews <dolph.mathews@gmail.com>
Dominik Finkbeiner <finkes93@gmail.com>
Dominik Honnef <dominik@honnef.co>
Don Kirkby <donkirkby@users.noreply.github.com>
Don Kjer <don.kjer@gmail.com>
Don Spaulding <donspauldingii@gmail.com>
Doug Davis <dug@us.ibm.com>
Doug MacEachern <dougm@vmware.com>
doug tangren <d.tangren@gmail.com>
Dr Nic Williams <drnicwilliams@gmail.com>
dragon788 <dragon788@users.noreply.github.com>
Dražen Lučanin <kermit666@gmail.com>
Dustin Sallings <dustin@spy.net>
Ed Costello <epc@epcostello.com>
Edmund Wagner <edmund-wagner@web.de>
Eiichi Tsukata <devel@etsukata.com>
Eike Herzbach <eike@herzbach.net>
Eivind Uggedal <eivind@uggedal.com>
Elias Probst <mail@eliasprobst.eu>
Elijah Zupancic <elijah@zupancic.name>
eluck <mail@eluck.me>
Emil Hernvall <emil@quench.at>
Emily Maier <emily@emilymaier.net>
Emily Rose <emily@contactvibe.com>
Emir Ozer <emirozer@yandex.com>
Enguerran <engcolson@gmail.com>
Eohyung Lee <liquidnuker@gmail.com>
Eric Hanchrow <ehanchrow@ine.com>
Eric Lee <thenorthsecedes@gmail.com>
Eric Myhre <hash@exultant.us>
Eric Paris <eparis@redhat.com>
Eric Rafaloff <erafaloff@gmail.com>
Eric Windisch <ewindisch@docker.com>
Eric-Olivier Lamey <eo@lamey.me>
Erik Dubbelboer <erik@dubbelboer.com>
Erik Hollensbe <github@hollensbe.org>
Erik Inge Bolsø <knan@redpill-linpro.com>
Erik Kristensen <erik@erikkristensen.com>
Erno Hopearuoho <erno.hopearuoho@gmail.com>
Erwin van der Koogh <info@erronis.nl>
Euan <euank@amazon.com>
Eugene Yakubovich <eugene.yakubovich@coreos.com>
eugenkrizo <eugen.krizo@gmail.com>
Evan Carmi <carmi@users.noreply.github.com>
@@ -233,58 +308,78 @@ Evan Hazlett <ejhazlett@gmail.com>
Evan Krall <krall@yelp.com>
Evan Phoenix <evan@fallingsnow.net>
Evan Wies <evan@neomantra.net>
Evgeny Vereshchagin <evvers@ya.ru>
Eystein Måløy Stenberg <eystein.maloy.stenberg@cfengine.com>
ezbercih <cem.ezberci@gmail.com>
Fabiano Rosas <farosas@br.ibm.com>
Fabio Falci <fabiofalci@gmail.com>
Fabio Rehm <fgrehm@gmail.com>
Fabrizio Regini <freegenie@gmail.com>
Faiz Khan <faizkhan00@gmail.com>
falmp <chico.lopes@gmail.com>
Fareed Dudhia <fareeddudhia@googlemail.com>
Felix Rabe <felix@rabe.io>
Felix Schindler <fschindler@weluse.de>
Ferenc Szabo <pragmaticfrank@gmail.com>
Fernando <fermayo@gmail.com>
Filipe Brandenburger <filbranden@google.com>
Flavio Castelli <fcastelli@suse.com>
FLGMwt <ryan.stelly@live.com>
Florian Weingarten <flo@hackvalue.de>
Francisco Carriedo <fcarriedo@gmail.com>
Francisco Souza <f@souza.cc>
Frank Herrmann <fgh@4gh.tv>
Frank Macreery <frank@macreery.com>
Frank Rosquin <frank.rosquin+github@gmail.com>
Fred Lifton <fred.lifton@docker.com>
Frederick F. Kautz IV <fkautz@alumni.cmu.edu>
Frederik Loeffert <frederik@zitrusmedia.de>
Freek Kalter <freek@kalteronline.org>
Félix Baylac-Jacqué <baylac.felix@gmail.com>
Gabe Rosenhouse <gabe@missionst.com>
Gabor Nagy <mail@aigeruth.hu>
Gabriel Monroy <gabriel@opdemand.com>
Galen Sampson <galen.sampson@gmail.com>
Gareth Rushgrove <gareth@morethanseven.net>
Gaurav <gaurav.gosec@gmail.com>
gautam, prasanna <prasannagautam@gmail.com>
GennadySpb <lipenkov@gmail.com>
Geoffrey Bachelet <grosfrais@gmail.com>
George MacRorie <gmacr31@gmail.com>
George Xie <georgexsh@gmail.com>
Gereon Frey <gereon.frey@dynport.de>
German DZ <germ@ndz.com.ar>
Gert van Valkenhoef <g.h.m.van.valkenhoef@rug.nl>
Gianluca Borello <g.borello@gmail.com>
Giuseppe Mazzotta <gdm85@users.noreply.github.com>
Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
Gleb M Borisov <borisov.gleb@gmail.com>
Glyn Normington <gnormington@gopivotal.com>
Goffert van Gool <goffert@phusion.nl>
golubbe <ben.golub@dotcloud.com>
Gosuke Miyashita <gosukenator@gmail.com>
Graydon Hoare <graydon@pobox.com>
Greg Fausak <greg@tacodata.com>
Greg Thornton <xdissent@me.com>
grossws <grossws@gmail.com>
grunny <mwgrunny@gmail.com>
Guilherme Salgado <gsalgado@gmail.com>
Guillaume Dufour <gdufour.prestataire@voyages-sncf.com>
Guillaume J. Charmes <guillaume.charmes@docker.com>
guoxiuyan <guoxiuyan@huawei.com>
Gurjeet Singh <gurjeet@singh.im>
Guruprasad <lgp171188@gmail.com>
Günter Zöchbauer <guenter@gzoechbauer.com>
Hans Rødtang <hansrodtang@gmail.com>
Harald Albers <github@albersweb.de>
Harley Laue <losinggeneration@gmail.com>
Harry Zhang <harryzhang@zju.edu.cn>
He Simei <hesimei@zju.edu.cn>
Hector Castro <hectcastro@gmail.com>
Henning Sprang <henning.sprang@gmail.com>
Hobofan <goisser94@gmail.com>
Hollie Teal <hollie@docker.com>
Hong Xu <hong@topbug.net>
Hu Keping <hukeping@huawei.com>
Hu Tao <hutao@cn.fujitsu.com>
Huayi Zhang <irachex@gmail.com>
@@ -292,21 +387,28 @@ Hugo Duncan <hugo@hugoduncan.org>
Hunter Blanks <hunter@twilio.com>
Huu Nguyen <huu@prismskylabs.com>
hyeongkyu.lee <hyeongkyu.lee@navercorp.com>
hyp3rdino <markus.kortlang@lhsystems.com>
Ian Babrou <ibobrik@gmail.com>
Ian Bishop <ianbishop@pace7.com>
Ian Bull <irbull@gmail.com>
Ian Calvert <ianjcalvert@gmail.com>
Ian Main <imain@redhat.com>
Ian Truslove <ian.truslove@gmail.com>
Iavael <iavaelooeyt@gmail.com>
Igor Dolzhikov <bluesriverz@gmail.com>
ILYA Khlopotov <ilya.khlopotov@gmail.com>
imre Fitos <imre.fitos+github@gmail.com>
inglesp <peter.inglesby@gmail.com>
Isaac Dupree <antispam@idupree.com>
Isabel Jimenez <contact.isabeljimenez@gmail.com>
Isao Jonas <isao.jonas@gmail.com>
Ivan Fraixedes <ifcdev@gmail.com>
J Bruni <joaohbruni@yahoo.com.br>
J. Nunn <jbnunn@gmail.com>
Jack Danger Canty <jackdanger@squareup.com>
Jacob Atzen <jacob@jacobatzen.dk>
Jacob Edelman <edelman.jd@gmail.com>
Jake Champlin <jake.champlin.27@gmail.com>
Jake Moshenko <jake@devtable.com>
jakedt <jake@devtable.com>
James Allen <jamesallen0108@gmail.com>
@@ -314,41 +416,67 @@ James Carr <james.r.carr@gmail.com>
James DeFelice <james.defelice@ishisystems.com>
James Harrison Fisher <jameshfisher@gmail.com>
James Kyle <james@jameskyle.org>
James Lal <james@lightsofapollo.com>
James Mills <prologic@shortcircuit.net.au>
James Turnbull <james@lovedthanlost.net>
Jamie Hannaford <jamie.hannaford@rackspace.com>
Jamshid Afshar <jafshar@yahoo.com>
Jan Keromnes <janx@linux.com>
Jan Koprowski <jan.koprowski@gmail.com>
Jan Pazdziora <jpazdziora@redhat.com>
Jan Toebes <jan@toebes.info>
Jan-Jaap Driessen <janjaapdriessen@gmail.com>
Jana Radhakrishnan <mrjana@docker.com>
Jared Biel <jared.biel@bolderthinking.com>
Jaroslaw Zabiello <hipertracker@gmail.com>
jaseg <jaseg@jaseg.net>
Jason Divock <jdivock@gmail.com>
Jason Giedymin <jasong@apache.org>
Jason Hall <imjasonh@gmail.com>
Jason Livesay <ithkuil@gmail.com>
Jason McVetta <jason.mcvetta@gmail.com>
Jason Plum <jplum@devonit.com>
Jason Shepherd <jason@jasonshepherd.net>
Jason Smith <jasonrichardsmith@gmail.com>
Jason Sommer <jsdirv@gmail.com>
Jason Stangroome <jason@codeassassin.com>
Jay <teguhwpurwanto@gmail.com>
Jean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
Jean-Baptiste Dalido <jeanbaptiste@appgratis.com>
Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jean-Tiare Le Bigot <jt@yadutaf.fr>
Jeff Anderson <jeff@docker.com>
Jeff Lindsay <progrium@gmail.com>
Jeff Nickoloff <jeff.nickoloff@gmail.com>
Jeff Welch <whatthejeff@gmail.com>
Jeffrey Bolle <jeffreybolle@gmail.com>
Jeffrey Morgan <jmorganca@gmail.com>
Jeffrey van Gogh <jvg@google.com>
Jeremy Grosser <jeremy@synack.me>
Jesse Dearing <jesse.dearing@gmail.com>
Jesse Dubay <jesse@thefortytwo.net>
Jessica Frazelle <jess@docker.com>
Jezeniel Zapanta <jpzapanta22@gmail.com>
jianbosun <wonderflow.sun@gmail.com>
Jilles Oldenbeuving <ojilles@gmail.com>
Jim Alateras <jima@comware.com.au>
Jim Perrin <jperrin@centos.org>
Jimmy Cuadra <jimmy@jimmycuadra.com>
Jimmy Puckett <jimmy.puckett@spinen.com>
jimmyxian <jimmyxian2004@yahoo.com.cn>
Jinsoo Park <cellpjs@gmail.com>
Jiri Popelka <jpopelka@redhat.com>
Jiří Župka <jzupka@redhat.com>
jjy <jiangjinyang@outlook.com>
jmzwcn <jmzwcn@gmail.com>
Joe Beda <joe.github@bedafamily.com>
Joe Ferguson <joe@infosiftr.com>
Joe Gordon <joe.gordon0@gmail.com>
Joe Shaw <joe@joeshaw.org>
Joe Van Dyk <joe@tanga.com>
Joel Friedly <joelfriedly@gmail.com>
Joel Handwell <joelhandwell@gmail.com>
Joey Gibson <joey@joeygibson.com>
Joffrey F <joffrey@docker.com>
Johan Euphrosine <proppy@google.com>
Johan Rydberg <johan.rydberg@gmail.com>
@@ -357,13 +485,17 @@ John Costa <john.costa@gmail.com>
John Feminella <jxf@jxf.me>
John Gardiner Myers <jgmyers@proofpoint.com>
John Gossman <johngos@microsoft.com>
John Howard (VM) <John.Howard@microsoft.com>
John OBrien III <jobrieniii@yahoo.com>
John Tims <john.k.tims@gmail.com>
John Warwick <jwarwick@gmail.com>
John Willis <john.willis@docker.com>
Jon Wedaman <jweede@gmail.com>
Jonas Pfenniger <jonas@pfenniger.name>
Jonathan A. Sternberg <jonathansternberg@gmail.com>
Jonathan Boulle <jonathanboulle@gmail.com>
Jonathan Camp <jonathan@irondojo.com>
Jonathan Dowland <jon+github@alcopop.org>
Jonathan McCrohan <jmccrohan@gmail.com>
Jonathan Mueller <j.mueller@apoveda.ch>
Jonathan Pares <jonathanpa@users.noreply.github.com>
@@ -373,15 +505,18 @@ Jordan Arentsen <blissdev@gmail.com>
Jordan Sissel <jls@semicomplete.com>
Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
Joseph Hager <ajhager@gmail.com>
Joseph Kern <jkern@semafour.net>
Josh <jokajak@gmail.com>
Josh Hawn <josh.hawn@docker.com>
Josh Poimboeuf <jpoimboe@redhat.com>
Josiah Kiehl <jkiehl@riotgames.com>
José Tomás Albornoz <jojo@eljojo.net>
JP <jpellerin@leapfrogonline.com>
Julian Taylor <jtaylor.debian@googlemail.com>
Julien Barbier <write0@gmail.com>
Julien Bordellier <julienbordellier@gmail.com>
Julien Dubois <julien.dubois@gmail.com>
Jun-Ru Chang <jrjang@gmail.com>
Justin Force <justin.force@gmail.com>
Justin Plock <jplock@users.noreply.github.com>
Justin Simonelis <justin.p.simonelis@gmail.com>
@@ -390,22 +525,28 @@ Jérôme Petazzoni <jerome.petazzoni@dotcloud.com>
Jörg Thalheim <joerg@higgsboson.tk>
Kamil Domanski <kamil@domanski.co>
Karan Lyons <karan@karanlyons.com>
kargakis <kargakis@users.noreply.github.com>
Karl Grzeszczak <karlgrz@gmail.com>
Katie McLaughlin <katie@glasnt.com>
Kato Kazuyoshi <kato.kazuyoshi@gmail.com>
Katrina Owen <katrina.owen@gmail.com>
Kawsar Saiyeed <kawsar.saiyeed@projiris.com>
Keli Hu <dev@keli.hu>
Ken Cochrane <kencochrane@gmail.com>
Ken ICHIKAWA <ichikawa.ken@jp.fujitsu.com>
Kent Johnson <kentoj@gmail.com>
Kevin "qwazerty" Houdebert <kevin.houdebert@gmail.com>
Kevin Clark <kevin.clark@gmail.com>
Kevin J. Lynagh <kevin@keminglabs.com>
Kevin Menard <kevin@nirvdrum.com>
Kevin Wallace <kevin@pentabarf.net>
Kevin Yap <me@kevinyap.ca>
Keyvan Fatehi <keyvanfatehi@gmail.com>
kies <lleelm@gmail.com>
Kim BKC Carlbacker <kim.carlbacker@gmail.com>
Kimbro Staken <kstaken@kstaken.com>
Kiran Gangadharan <kiran.daredevil@gmail.com>
Kirill SIbirev <l0kix2@gmail.com>
knappe <tyler.knappe@gmail.com>
Kohei Tsuruta <coheyxyz@gmail.com>
Konrad Kleine <konrad.wilhelm.kleine@gmail.com>
@@ -419,6 +560,8 @@ Lajos Papp <lajos.papp@sequenceiq.com>
Lakshan Perera <lakshan@laktek.com>
lalyos <lalyos@yahoo.com>
Lance Chen <cyen0312@gmail.com>
Lance Kinley <lkinley@loyaltymethods.com>
Lars Kellogg-Stedman <lars@redhat.com>
Lars R. Damerow <lars@pixar.com>
Laurie Voss <github@seldo.com>
leeplay <hyeongkyu.lee@navercorp.com>
@@ -428,17 +571,26 @@ Leszek Kowalski <github@leszekkowalski.pl>
Levi Gross <levi@levigross.com>
Lewis Marshall <lewis@lmars.net>
Lewis Peckover <lew+github@lew.io>
Liana Lo <liana.lixia@gmail.com>
Liang-Chi Hsieh <viirya@gmail.com>
limsy <seongyeol37@gmail.com>
Liu Hua <sdu.liu@huawei.com>
Lloyd Dewolf <foolswisdom@gmail.com>
Lokesh Mandvekar <lsm5@fedoraproject.org>
Lorenz Leutgeb <lorenz.leutgeb@gmail.com>
Lorenzo Fontana <fontanalorenzo@me.com>
Louis Opter <kalessin@kalessin.fr>
Luis Martínez de Bartolomé Izquierdo <lmartinez@biicode.com>
lukaspustina <lukas.pustina@centerdevice.com>
lukemarsden <luke@digital-crocus.com>
Lénaïc Huard <lhuard@amadeus.com>
Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
Mabin <bin.ma@huawei.com>
Madhu Venugopal <madhu@socketplane.io>
Mahesh Tiyyagura <tmahesh@gmail.com>
malnick <malnick@gmail..com>
Malte Janduda <mail@janduda.net>
Manfred Touron <m@42.am>
Manfred Zabarauskas <manfredas@zabarauskas.com>
Manuel Meurer <manuel@krautcomputing.com>
Manuel Woelker <github@manuel.woelker.org>
@@ -450,38 +602,52 @@ Marcus Farkas <toothlessgear@finitebox.com>
Marcus Linke <marcus.linke@gmx.de>
Marcus Ramberg <marcus@nordaaker.com>
Marek Goldmann <marek.goldmann@gmail.com>
Marian Marinov <mm@yuhu.biz>
Marianna <mtesselh@gmail.com>
Marius Voila <marius.voila@gmail.com>
Mark Allen <mrallen1@yahoo.com>
Mark McGranaghan <mmcgrana@gmail.com>
Mark West <markewest@gmail.com>
Marko Mikulicic <mmikulicic@gmail.com>
Marko Tibold <marko@tibold.nl>
Markus Fix <lispmeister@gmail.com>
Martijn Dwars <ikben@martijndwars.nl>
Martijn van Oosterhout <kleptog@svana.org>
Martin Honermeyer <maze@strahlungsfrei.de>
Martin Redmond <martin@tinychat.com>
Mary Anthony <moxieandmore@gmail.com>
Mary Anthony <mary.anthony@docker.com>
Masahito Zembutsu <zembutsu@users.noreply.github.com>
Mason Malone <mason.malone@gmail.com>
Mateusz Sulima <sulima.mateusz@gmail.com>
Mathias Monnerville <mathias@monnerville.com>
Mathieu Le Marec - Pasquet <kiorky@cryptelium.net>
Matt Apperson <me@mattapperson.com>
Matt Bachmann <bachmann.matt@gmail.com>
Matt Bentley <mbentley@mbentley.net>
Matt Haggard <haggardii@gmail.com>
Matt McCormick <matt.mccormick@kitware.com>
Matthew Heon <mheon@redhat.com>
Matthew Mayer <matthewkmayer@gmail.com>
Matthew Mueller <mattmuelle@gmail.com>
Matthew Riley <mattdr@google.com>
Matthias Klumpp <matthias@tenstral.net>
Matthias Kühnle <git.nivoc@neverbox.com>
mattymo <raytrac3r@gmail.com>
mattyw <mattyw@me.com>
mauriyouth <mauriyouth@gmail.com>
Max Shytikov <mshytikov@gmail.com>
Maxim Kulkin <mkulkin@mirantis.com>
Maxim Treskin <zerthurd@gmail.com>
Maxime Petazzoni <max@signalfuse.com>
Meaglith Ma <genedna@gmail.com>
meejah <meejah@meejah.ca>
Megan Kostick <mkostick@us.ibm.com>
Mehul Kar <mehul.kar@gmail.com>
Mengdi Gao <usrgdd@gmail.com>
Mert Yazıcıoğlu <merty@users.noreply.github.com>
Michael A. Smith <michael@smith-li.com>
Michael Brown <michael@netdirect.ca>
Michael Chiang <mchiang@docker.com>
Michael Crosby <michael@docker.com>
Michael Gorsuch <gorsuch@github.com>
Michael Hudson-Doyle <michael.hudson@linaro.org>
@@ -491,26 +657,35 @@ Michael Scharf <github@scharf.gr>
Michael Stapelberg <michael+gh@stapelberg.de>
Michael Steinert <mike.steinert@gmail.com>
Michael Thies <michaelthies78@gmail.com>
Michael West <mwest@mdsol.com>
Michal Fojtik <mfojtik@redhat.com>
Michal Jemala <michal.jemala@gmail.com>
Michal Minar <miminar@redhat.com>
Michaël Pailloncy <mpapo.dev@gmail.com>
Michiel@unhosted <michiel@unhosted.org>
Miguel Angel Fernández <elmendalerenda@gmail.com>
Mihai Borobocea <MihaiBorobocea@gmail.com>
Mike Chelen <michael.chelen@gmail.com>
Mike Dillon <mike@embody.org>
Mike Gaffney <mike@uberu.com>
Mike Leone <mleone896@gmail.com>
Mike MacCana <mike.maccana@gmail.com>
Mike Naberezny <mike@naberezny.com>
Mike Snitzer <snitzer@redhat.com>
Mikhail Sobolev <mss@mawhrin.net>
Mingzhen Feng <fmzhen@zju.edu.cn>
Mitch Capper <mitch.capper@gmail.com>
Mohit Soni <mosoni@ebay.com>
Morgante Pell <morgante.pell@morgante.net>
Morten Siebuhr <sbhr@sbhr.dk>
Moysés Borges <moyses.furtado@wplex.com.br>
Mrunal Patel <mrunalp@gmail.com>
mschurenko <matt.schurenko@gmail.com>
Mustafa Akın <mustafa91@gmail.com>
Médi-Rémi Hashim <medimatrix@users.noreply.github.com>
Nan Monnand Deng <monnand@gmail.com>
Naoki Orii <norii@cs.cmu.edu>
Natalie Parker <nparker@omnifone.com>
Nate Eagleson <nate@nateeag.com>
Nate Jones <nate@endot.org>
Nathan Hsieh <hsieh.nathan@gmail.com>
@@ -518,8 +693,11 @@ Nathan Kleyn <nathan@nathankleyn.com>
Nathan LeClaire <nathan.leclaire@docker.com>
Neal McBurnett <neal@mcburnett.org>
Nelson Chen <crazysim@gmail.com>
Nghia Tran <nghia@google.com>
Niall O'Higgins <niallo@unworkable.org>
Nicholas E. Rabenau <nerab@gmx.at>
Nick Irvine <nfirvine@nfirvine.com>
Nick Parker <nikaios@gmail.com>
Nick Payne <nick@kurai.co.uk>
Nick Stenning <nick.stenning@digital.cabinet-office.gov.uk>
Nick Stinemates <nick@stinemates.org>
@@ -528,8 +706,11 @@ Nicolas Dudebout <nicolas.dudebout@gatech.edu>
Nicolas Goy <kuon@goyman.com>
Nicolas Kaiser <nikai@nikai.net>
NikolaMandic <mn080202@gmail.com>
nikolas <nnyby@columbia.edu>
noducks <onemannoducks@gmail.com>
Nolan Darilek <nolan@thewordnerd.info>
nponeccop <andy.melnikov@gmail.com>
Nuutti Kotivuori <naked@iki.fi>
nzwsch <hi@nzwsch.com>
O.S. Tezer <ostezer@gmail.com>
OddBloke <daniel@daniel-watkins.co.uk>
@@ -542,11 +723,14 @@ pandrew <letters@paulnotcom.se>
panticz <mail@konczalski.de>
Pascal Borreli <pascal@borreli.com>
Pascal Hartig <phartig@rdrei.net>
Patrick Devine <patrick.devine@docker.com>
Patrick Hemmer <patrick.hemmer@gmail.com>
Patrick Stapleton <github@gdi2290.com>
pattichen <craftsbear@gmail.com>
Paul <paul9869@gmail.com>
paul <paul@inkling.com>
Paul Annesley <paul@annesley.cc>
Paul Bellamy <paul.a.bellamy@gmail.com>
Paul Bowsher <pbowsher@globalpersonals.co.uk>
Paul Hammond <paul@paulhammond.org>
Paul Jimenez <pj@place.org>
@@ -554,11 +738,18 @@ Paul Lietar <paul@lietar.net>
Paul Morie <pmorie@gmail.com>
Paul Nasrat <pnasrat@gmail.com>
Paul Weaver <pauweave@cisco.com>
Pavel Lobashov <ShockwaveNN@gmail.com>
Pavel Tikhomirov <ptikhomirov@parallels.com>
Pavlos Ratis <dastergon@gentoo.org>
Peggy Li <peggyli.224@gmail.com>
Peter Bourgon <peter@bourgon.org>
Peter Braden <peterbraden@peterbraden.co.uk>
Peter Choi <reikani@Peters-MacBook-Pro.local>
Peter Dave Hello <PeterDaveHello@users.noreply.github.com>
Peter Ericson <pdericson@gmail.com>
Peter Esbensen <pkesbensen@gmail.com>
Peter Salvatore <peter@psftw.com>
Peter Volpe <petervo@redhat.com>
Peter Waller <p@pwaller.net>
Phil <underscorephil@gmail.com>
Phil Estes <estesp@linux.vnet.ibm.com>
@@ -572,6 +763,7 @@ Pierre-Alain RIVIERE <pariviere@ippon.fr>
Piotr Bogdan <ppbogdan@gmail.com>
pixelistik <pixelistik@users.noreply.github.com>
Porjo <porjo38@yahoo.com.au>
Pradeep Chhetri <pradeep@indix.com>
Prasanna Gautam <prasannagautam@gmail.com>
Przemek Hejman <przemyslaw.hejman@gmail.com>
pysqz <randomq@126.com>
@@ -580,6 +772,7 @@ Quentin Brossard <qbrossard@gmail.com>
r0n22 <cameron.regan@gmail.com>
Rafal Jeczalik <rjeczalik@gmail.com>
Rafe Colton <rafael.colton@gmail.com>
Raghuram Devarakonda <draghuram@gmail.com>
Rajat Pandit <rp@rajatpandit.com>
Rajdeep Dua <dua_rajdeep@yahoo.com>
Ralph Bean <rbean@redhat.com>
@@ -588,13 +781,19 @@ Ramon van Alteren <ramon@vanalteren.nl>
Recursive Madman <recursive.madman@gmx.de>
Remi Rampin <remirampin@gmail.com>
Renato Riccieri Santos Zannon <renato.riccieri@gmail.com>
resouer <resouer@163.com>
rgstephens <greg@udon.org>
Rhys Hiltner <rhys@twitch.tv>
Rich Seymour <rseymour@gmail.com>
Richard <richard.scothern@gmail.com>
Richard Burnison <rburnison@ebay.com>
Richard Harvey <richard@squarecows.com>
Richard Metzler <richard@paadee.com>
Richo Healey <richo@psych0tik.net>
Rick Bradley <rick@users.noreply.github.com>
Rick van de Loo <rickvandeloo@gmail.com>
Rick Wieman <git@rickw.nl>
Rik Nijessen <rik@keefo.nl>
Robert Bachmann <rb@robertbachmann.at>
Robert Bittle <guywithnose@gmail.com>
Robert Obryk <robryk@gmail.com>
@@ -608,6 +807,7 @@ Rohit Jnagal <jnagal@google.com>
Roland Huß <roland@jolokia.org>
Roland Moriz <rmoriz@users.noreply.github.com>
Ron Smits <ron.smits@gmail.com>
root <docker-dummy@example.com>
Rovanion Luckey <rovanion.luckey@gmail.com>
Rudolph Gottesheim <r.gottesheim@loot.at>
Ryan Anderson <anderson.ryanc@gmail.com>
@@ -618,6 +818,11 @@ Ryan O'Donnell <odonnellryanc@gmail.com>
Ryan Seto <ryanseto@yak.net>
Ryan Thomas <rthomas@atlassian.com>
Rémy Greinhofer <remy.greinhofer@livelovely.com>
s. rannou <mxs@sbrk.org>
s00318865 <sunyuan3@huawei.com>
Sabin Basyal <sabin.basyal@gmail.com>
Sachin Joshi <sachin_jayant_joshi@hotmail.com>
Sam Abed <sam.abed@gmail.com>
Sam Alba <sam.alba@gmail.com>
Sam Bailey <cyprix@cyprix.com.au>
Sam J Sharpe <sam.sharpe@digital.cabinet-office.gov.uk>
@@ -626,6 +831,9 @@ Sam Rijs <srijs@airpost.net>
Sami Wagiaalla <swagiaal@redhat.com>
Samuel Andaya <samuel@andaya.net>
Samuel PHAN <samuel-phan@users.noreply.github.com>
Sankar சங்கர் <sankar.curiosity@gmail.com>
Sanket Saurav <sanketsaurav@gmail.com>
sapphiredev <se.imas.kr@gmail.com>
Satnam Singh <satnam@raintown.org>
satoru <satorulogic@gmail.com>
Satoshi Amemiya <satoshi_amemiya@voyagegroup.com>
@@ -634,26 +842,35 @@ Scott Collier <emailscottcollier@gmail.com>
Scott Johnston <scott@docker.com>
Scott Stamp <scottstamp851@gmail.com>
Scott Walls <sawalls@umich.edu>
sdreyesg <sdreyesg@gmail.com>
Sean Cronin <seancron@gmail.com>
Sean P. Kane <skane@newrelic.com>
Sebastiaan van Steenis <mail@superseb.nl>
Sebastiaan van Stijn <github@gone.nl>
Senthil Kumar Selvaraj <senthil.thecoder@gmail.com>
SeongJae Park <sj38.park@gmail.com>
Seongyeol Lim <seongyeol37@gmail.com>
Sergey Alekseev <sergey.alekseev.minsk@gmail.com>
Sergey Evstifeev <sergey.evstifeev@gmail.com>
Shane Canon <scanon@lbl.gov>
shaunol <shaunol@gmail.com>
Shawn Landden <shawn@churchofgit.com>
Shawn Siefkas <shawn.siefkas@meredith.com>
Shih-Yuan Lee <fourdollars@gmail.com>
Shijiang Wei <mountkin@gmail.com>
Shishir Mahajan <shishir.mahajan@redhat.com>
shuai-z <zs.broccoli@gmail.com>
sidharthamani <sid@rancher.com>
Silas Sewell <silas@sewell.org>
Simei He <hesimei@zju.edu.cn>
Simon Eskildsen <sirup@sirupsen.com>
Simon Leinen <simon.leinen@gmail.com>
Simon Taranto <simon.taranto@gmail.com>
Sindhu S <sindhus@live.in>
Sjoerd Langkemper <sjoerd-github@linuxonly.nl>
Solomon Hykes <solomon@docker.com>
Song Gao <song@gao.io>
Soulou <leo@unbekandt.eu>
soulshake <amy@gandi.net>
Sridatta Thatipamala <sthatipamala@gmail.com>
Sridhar Ratnakumar <sridharr@activestate.com>
Srini Brahmaroutu <sbrahma@us.ibm.com>
@@ -661,20 +878,30 @@ Srini Brahmaroutu <srbrahma@us.ibm.com>
Steeve Morin <steeve.morin@gmail.com>
Stefan Praszalowicz <stefan@greplin.com>
Stephen Crosby <stevecrozz@gmail.com>
Stephen J Day <stephen.day@docker.com>
Steve Francia <steve.francia@gmail.com>
Steve Koch <stevekochscience@gmail.com>
Steven Burgess <steven.a.burgess@hotmail.com>
Steven Merrill <steven.merrill@gmail.com>
Steven Richards <steven@axiomzen.co>
Steven Taylor <steven.taylor@me.com>
Sven Dowideit <SvenDowideit@home.org.au>
Swapnil Daingade <swapnil.daingade@gmail.com>
Sylvain Baubeau <sbaubeau@redhat.com>
Sylvain Bellemare <sylvain.bellemare@ezeep.com>
Sébastien <sebastien@yoozio.com>
Sébastien Luttringer <seblu@seblu.net>
Sébastien Stormacq <sebsto@users.noreply.github.com>
tang0th <tang0th@gmx.com>
Tangi COLIN <tangicolin@gmail.com>
Tatsuki Sugiura <sugi@nemui.org>
Tatsushi Inagaki <e29253@jp.ibm.com>
Ted M. Young <tedyoung@gmail.com>
Tehmasp Chaudhri <tehmasp@gmail.com>
Tejesh Mehta <tejesh.mehta@gmail.com>
Thatcher Peskens <thatcher@docker.com>
theadactyl <thea.lamkin@gmail.com>
Thell 'Bo' Fowler <thell@tbfowler.name>
Thermionix <bond711@gmail.com>
Thijs Terlouw <thijsterlouw@gmail.com>
Thomas Bikeev <thomas.bikeev@mac.com>
@@ -683,8 +910,11 @@ Thomas Hansen <thomas.hansen@gmail.com>
Thomas LEVEIL <thomasleveil@gmail.com>
Thomas Orozco <thomas@orozco.fr>
Thomas Schroeter <thomas@cliqz.com>
Thomas Sjögren <konstruktoid@users.noreply.github.com>
Thomas Texier <sharkone@en-mousse.org>
Tianon Gravi <admwiggin@gmail.com>
Tibor Vass <teabee89@gmail.com>
Tiffany Low <tiffany@box.com>
Tim Bosse <taim@bosboot.org>
Tim Hockin <thockin@google.com>
Tim Ruffles <oi@truffles.me.uk>
@@ -698,6 +928,7 @@ Tobias Gesellchen <tobias@gesellix.de>
Tobias Schmidt <ts@soundcloud.com>
Tobias Schwab <tobias.schwab@dynport.de>
Todd Lunter <tlunter@gmail.com>
Todd Whiteman <todd.whiteman@joyent.com>
Tom Fotherby <tom+github@peopleperhour.com>
Tom Hulihan <hulihan.tom159@gmail.com>
Tom Maaswinkel <tom.maaswinkel@12wiki.eu>
@@ -705,16 +936,22 @@ Tomas Tomecek <ttomecek@redhat.com>
Tomasz Lipinski <tlipinski@users.noreply.github.com>
Tomasz Nurkiewicz <nurkiewicz@gmail.com>
Tommaso Visconti <tommaso.visconti@gmail.com>
Tomáš Hrčka <thrcka@redhat.com>
Tonis Tiigi <tonistiigi@gmail.com>
Tonny Xu <tonny.xu@gmail.com>
Tony Daws <tony@daws.ca>
Tony Miller <mcfiredrill@gmail.com>
Torstein Husebø <torstein@huseboe.net>
tpng <benny.tpng@gmail.com>
Travis Cline <travis.cline@gmail.com>
Travis Thieman <travis.thieman@gmail.com>
Trent Ogren <tedwardo2@gmail.com>
Tristan Carel <tristan.carel@gmail.com>
Tyler Brock <tyler.brock@gmail.com>
Tzu-Jung Lee <roylee17@gmail.com>
Ulysse Carion <ulyssecarion@gmail.com>
unknown <sebastiaan@ws-key-sebas3.dpi1.dpi>
vagrant <vagrant@ubuntu-14.04-amd64-vbox>
Vaidas Jablonskis <jablonskis@gmail.com>
vgeta <gopikannan.venugopalsamy@gmail.com>
Victor Coisne <victor.coisne@dotcloud.com>
@@ -725,6 +962,7 @@ Viktor Vojnovski <viktor.vojnovski@amadeus.com>
Vincent Batts <vbatts@redhat.com>
Vincent Bernat <bernat@luffy.cx>
Vincent Bernat <Vincent.Bernat@exoscale.ch>
Vincent Demeester <vincent@sbr.pm>
Vincent Giersch <vincent.giersch@ovh.net>
Vincent Mayers <vincent.mayers@inbloom.org>
Vincent Woo <me@vincentwoo.com>
@@ -738,6 +976,7 @@ Vivek Goyal <vgoyal@redhat.com>
Vladimir Bulyga <xx@ccxx.cc>
Vladimir Kirillov <proger@wilab.org.ua>
Vladimir Rutsky <altsysrq@gmail.com>
VladimirAus <v_roudakov@yahoo.com>
Vojtech Vitek (V-Teq) <vvitek@redhat.com>
waitingkuo <waitingkuo0527@gmail.com>
Walter Leibbrandt <github@wrl.co.za>
@@ -745,25 +984,46 @@ Walter Stanish <walter@pratyeka.org>
Ward Vandewege <ward@jhvc.com>
WarheadsSE <max@warheads.net>
Wayne Chang <wayne@neverfear.org>
Wei-Ting Kuo <waitingkuo0527@gmail.com>
Wes Morgan <cap10morgan@gmail.com>
Will Dietz <w@wdtz.org>
Will Rouesnel <w.rouesnel@gmail.com>
Will Weaver <monkey@buildingbananas.com>
willhf <willhf@gmail.com>
William Delanoue <william.delanoue@gmail.com>
William Henry <whenry@redhat.com>
William Riancho <wr.wllm@gmail.com>
William Thurston <thurstw@amazon.com>
WiseTrem <shepelyov.g@gmail.com>
wlan0 <sidharthamn@gmail.com>
Wolfgang Powisch <powo@powo.priv.at>
wonderflow <wonderflow.sun@gmail.com>
xamyzhao <x.amy.zhao@gmail.com>
XiaoBing Jiang <s7v7nislands@gmail.com>
Xinzi Zhou <imdreamrunner@gmail.com>
Xiuming Chen <cc@cxm.cc>
xuzhaokui <cynicholas@gmail.com>
y00277921 <yuchangchun1@huawei.com>
Yahya <ya7yaz@gmail.com>
YAMADA Tsuyoshi <tyamada@minimum2scp.org>
Yan Feng <yanfeng2@huawei.com>
Yang Bai <hamo.by@gmail.com>
Yasunori Mahata <nori@mahata.net>
Yestin Sun <sunyi0804@gmail.com>
Yihang Ho <hoyihang5@gmail.com>
Yohei Ueda <yohei@jp.ibm.com>
Yongzhi Pan <panyongzhi@gmail.com>
Yuan Sun <sunyuan3@huawei.com>
Yurii Rashkovskii <yrashk@gmail.com>
Zac Dover <zdover@redhat.com>
Zach Borboa <zachborboa@gmail.com>
Zain Memon <zain@inzain.net>
Zaiste! <oh@zaiste.net>
Zane DeGraffenried <zane.deg@gmail.com>
Zefan Li <lizefan@huawei.com>
Zen Lin(Zhinan Lin) <linzhinan@huawei.com>
Zhang Wei <zhangwei555@huawei.com>
Zhang Wentao <zhangwentao234@huawei.com>
Zilin Du <zilin.du@gmail.com>
zimbatm <zimbatm@zimbatm.com>
Zoltan Tombol <zoltan.tombol@gmail.com>

View File

@@ -1,5 +1,303 @@
# Changelog
Items starting with `DEPRECATE` are important deprecation notices. For more
information on the list of deprecated flags and APIs please have a look at
https://docs.docker.com/misc/deprecated/ where target removal dates can also
be found.
## 1.9.0 (2015-11-03)
## Runtime
+ `docker stats` now returns block IO metrics (#15005)
+ `docker stats` now details network stats per interface (#15786)
+ Add `ancestor=<image>` filter to `docker ps --filter` flag to filter
containers based on their ancestor images (#14570)
+ Add `label=<somelabel>` filter to `docker ps --filter` to filter containers
based on label (#16530)
+ Add `--kernel-memory` flag to `docker run` (#14006)
+ Add `--message` flag to `docker import` allowing to specify an optional
message (#15711)
+ Add `--privileged` flag to `docker exec` (#14113)
+ Add `--stop-signal` flag to `docker run` allowing to replace the container
process stopping signal (#15307)
+ Add a new `unless-stopped` restart policy (#15348)
+ Inspecting an image now returns tags (#13185)
+ Add container size information to `docker inspect` (#15796)
+ Add `RepoTags` and `RepoDigests` field to `/images/{name:.*}/json` (#17275)
- Remove the deprecated `/container/ps` endpoint from the API (#15972)
- Send and document correct HTTP codes for `/exec/<name>/start` (#16250)
- Share shm and mqueue between containers sharing IPC namespace (#15862)
- Event stream now shows OOM status when `--oom-kill-disable` is set (#16235)
- Ensure special network files (/etc/hosts etc.) are read-only if bind-mounted
with `ro` option (#14965)
- Improve `rmi` performance (#16890)
- Do not update /etc/hosts for the default bridge network, except for links (#17325)
- Fix conflict with duplicate container names (#17389)
- Fix an issue with incorrect template execution in `docker inspect` (#17284)
- DEPRECATE `-c` short flag variant for `--cpu-shares` in docker run (#16271)
## Client
+ Allow `docker import` to import from local files (#11907)
## Builder
+ Add a `STOPSIGNAL` Dockerfile instruction allowing to set a different
stop-signal for the container process (#15307)
+ Add an `ARG` Dockerfile instruction and a `--build-arg` flag to `docker build`
that allows to add build-time environment variables (#15182)
- Improve cache miss performance (#16890)
## Storage
- devicemapper: Implement deferred deletion capability (#16381)
## Networking
+ `docker network` exits experimental and is part of standard release (#16645)
+ New network top-level concept, with associated subcommands and API (#16645)
WARNING: the API is different from the experimental API
+ Support for multiple isolated/micro-segmented networks (#16645)
+ Built-in multihost networking using VXLAN based overlay driver (#14071)
+ Support for third-party network plugins (#13424)
+ Ability to dynamically connect containers to multiple networks (#16645)
+ Support for user-defined IP address management via pluggable IPAM drivers (#16910)
+ Add daemon flags `--cluster-store` and `--cluster-advertise` for built-in nodes discovery (#16229)
+ Add `--cluster-store-opt` for setting up TLS settings (#16644)
+ Add `--dns-opt` to the daemon (#16031)
- DEPRECATE following container `NetworkSettings` fields in API v1.21: `EndpointID`, `Gateway`,
`GlobalIPv6Address`, `GlobalIPv6PrefixLen`, `IPAddress`, `IPPrefixLen`, `IPv6Gateway` and `MacAddress`.
Those are now specific to the `bridge` network. Use `NetworkSettings.Networks` to inspect
the networking settings of a container per network.
## Volumes
+ New top-level `volume` subcommand and API (#14242)
- Move API volume driver settings to host-specific config (#15798)
- Print an error message if volume name is not unique (#16009)
- Ensure volumes created from Dockerfiles always use the local volume driver
(#15507)
- DEPRECATE auto-creating missing host paths for bind mounts (#16349)
## Logging
+ Add `awslogs` logging driver for Amazon CloudWatch (#15495)
+ Add generic `tag` log option to allow customizing container/image
information passed to driver (e.g. show container names) (#15384)
- Implement the `docker logs` endpoint for the journald driver (#13707)
- DEPRECATE driver-specific log tags (e.g. `syslog-tag`, etc.) (#15384)
## Distribution
+ `docker search` now works with partial names (#16509)
- Push optimization: avoid buffering to file (#15493)
- The daemon will display progress for images that were already being pulled
by another client (#15489)
- Only permissions required for the current action being performed are requested (#)
+ Renaming trust keys (and respective environment variables) from `offline` to
`root` and `tagging` to `repository` (#16894)
- DEPRECATE trust key environment variables
`DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE` and
`DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE` (#16894)
## Security
+ Add SELinux profiles to the rpm package (#15832)
- Fix various issues with AppArmor profiles provided in the deb package
(#14609)
- Add AppArmor policy that prevents writing to /proc (#15571)
## 1.8.3 (2015-10-12)
### Distribution
- Fix layer IDs lead to local graph poisoning (CVE-2014-8178)
- Fix manifest validation and parsing logic errors allow pull-by-digest validation bypass (CVE-2014-8179)
+ Add `--disable-legacy-registry` to prevent a daemon from using a v1 registry
## 1.8.2 (2015-09-10)
### Distribution
- Fixes rare edge case of handling GNU LongLink and LongName entries.
- Fix ^C on docker pull.
- Fix docker pull issues on client disconnection.
- Fix issue that caused the daemon to panic when loggers weren't configured properly.
- Fix goroutine leak pulling images from registry V2.
### Runtime
- Fix a bug mounting cgroups for docker daemons running inside docker containers.
- Initialize log configuration properly.
### Client:
- Handle `-q` flag in `docker ps` properly when there is a default format.
### Networking
- Fix several corner cases with netlink.
### Contrib
- Fix several issues with bash completion.
## 1.8.1 (2015-08-12)
### Distribution
* Fix a bug where pushing multiple tags would result in invalid images
## 1.8.0 (2015-08-11)
### Distribution
+ Trusted pull, push and build, disabled by default
* Make tar layers deterministic between registries
* Don't allow deleting the image of running containers
* Check if a tag name to load is a valid digest
* Allow one character repository names
* Add a more accurate error description for invalid tag name
* Make build cache ignore mtime
### Cli
+ Add support for DOCKER_CONFIG/--config to specify config file dir
+ Add --type flag for docker inspect command
+ Add formatting options to `docker ps` with `--format`
+ Replace `docker -d` with new subcommand `docker daemon`
* Zsh completion updates and improvements
* Add some missing events to bash completion
* Support daemon urls with base paths in `docker -H`
* Validate status= filter to docker ps
* Display when a container is in --net=host in docker ps
* Extend docker inspect to export image metadata related to graph driver
* Restore --default-gateway{,-v6} daemon options
* Add missing unpublished ports in docker ps
* Allow duration strings in `docker events` as --since/--until
* Expose more mounts information in `docker inspect`
### Runtime
+ Add new Fluentd logging driver
+ Allow `docker import` to load from local files
+ Add logging driver for GELF via UDP
+ Allow to copy files from host to containers with `docker cp`
+ Promote volume drivers from experimental to master
+ Add rollover options to json-file log driver, and --log-driver-opts flag
+ Add memory swappiness tuning options
* Remove cgroup read-only flag when privileged
* Make /proc, /sys, & /dev readonly for readonly containers
* Add cgroup bind mount by default
* Overlay: Export metadata for container and image in `docker inspect`
* Devicemapper: external device activation
* Devicemapper: Compare uuid of base device on startup
* Remove RC4 from the list of registry cipher suites
* Add syslog-facility option
* LXC execdriver compatibility with recent LXC versions
* Mark LXC execriver as deprecated (to be removed with the migration to runc)
### Plugins
* Separate plugin sockets and specs locations
* Allow TLS connections to plugins
### Bug fixes
- Add missing 'Names' field to /containers/json API output
- Make `docker rmi` of dangling images safe while pulling
- Devicemapper: Change default basesize to 100G
- Go Scheduler issue with sync.Mutex and gcc
- Fix issue where Search API endpoint would panic due to empty AuthConfig
- Set image canonical names correctly
- Check dockerinit only if lxc driver is used
- Fix ulimit usage of nproc
- Always attach STDIN if -i,--interactive is specified
- Show error messages when saving container state fails
- Fixed incorrect assumption on --bridge=none treated as disable network
- Check for invalid port specifications in host configuration
- Fix endpoint leave failure for --net=host mode
- Fix goroutine leak in the stats API if the container is not running
- Check for apparmor file before reading it
- Fix DOCKER_TLS_VERIFY being ignored
- Set umask to the default on startup
- Correct the message of pause and unpause a non-running container
- Adjust disallowed CpuShares in container creation
- ZFS: correctly apply selinux context
- Display empty string instead of <nil> when IP opt is nil
- `docker kill` returns error when container is not running
- Fix COPY/ADD quoted/json form
- Fix goroutine leak on logs -f with no output
- Remove panic in nat package on invalid hostport
- Fix container linking in Fedora 22
- Fix error caused using default gateways outside of the allocated range
- Format times in inspect command with a template as RFC3339Nano
- Make registry client to accept 2xx and 3xx http status responses as successful
- Fix race issue that caused the daemon to crash with certain layer downloads failed in a specific order.
- Fix error when the docker ps format was not valid.
- Remove redundant ip forward check.
- Fix issue trying to push images to repository mirrors.
- Fix error cleaning up network entrypoints when there is an initialization issue.
## 1.7.1 (2015-07-14)
#### Runtime
- Fix default user spawning exec process with `docker exec`
- Make `--bridge=none` not to configure the network bridge
- Publish networking stats properly
- Fix implicit devicemapper selection with static binaries
- Fix socket connections that hung intermittently
- Fix bridge interface creation on CentOS/RHEL 6.6
- Fix local dns lookups added to resolv.conf
- Fix copy command mounting volumes
- Fix read/write privileges in volumes mounted with --volumes-from
#### Remote API
- Fix unmarshalling of Command and Entrypoint
- Set limit for minimum client version supported
- Validate port specification
- Return proper errors when attach/reattach fail
#### Distribution
- Fix pulling private images
- Fix fallback between registry V2 and V1
## 1.7.0 (2015-06-16)
#### Runtime
+ Experimental feature: support for out-of-process volume plugins
* The userland proxy can be disabled in favor of hairpin NAT using the daemons `--userland-proxy=false` flag
* The `exec` command supports the `-u|--user` flag to specify the new process owner
+ Default gateway for containers can be specified daemon-wide using the `--default-gateway` and `--default-gateway-v6` flags
+ The CPU CFS (Completely Fair Scheduler) quota can be set in `docker run` using `--cpu-quota`
+ Container block IO can be controlled in `docker run` using`--blkio-weight`
+ ZFS support
+ The `docker logs` command supports a `--since` argument
+ UTS namespace can be shared with the host with `docker run --uts=host`
#### Quality
* Networking stack was entirely rewritten as part of the libnetwork effort
* Engine internals refactoring
* Volumes code was entirely rewritten to support the plugins effort
+ Sending SIGUSR1 to a daemon will dump all goroutines stacks without exiting
#### Build
+ Support ${variable:-value} and ${variable:+value} syntax for environment variables
+ Support resource management flags `--cgroup-parent`, `--cpu-period`, `--cpu-quota`, `--cpuset-cpus`, `--cpuset-mems`
+ git context changes with branches and directories
* The .dockerignore file support exclusion rules
#### Distribution
+ Client support for v2 mirroring support for the official registry
#### Bugfixes
* Firewalld is now supported and will automatically be used when available
* mounting --device recursively
## 1.6.2 (2015-05-13)
#### Runtime
@@ -15,7 +313,7 @@
- Prohibit mount of /sys
#### Runtime
- Update Apparmor policy to not allow mounts
- Update AppArmor policy to not allow mounts
## 1.6.0 (2015-04-07)
@@ -86,7 +384,7 @@
#### Notable Features since 1.3.0
+ Set key=value labels to the daemon (displayed in `docker info`), applied with
new `-label` daemon flag
+ Add support for `ENV` in Dockerfile of the form:
+ Add support for `ENV` in Dockerfile of the form:
`ENV name=value name2=value2...`
+ New Overlayfs Storage Driver
+ `docker info` now returns an `ID` and `Name` field
@@ -309,7 +607,7 @@
#### Hack
* Clean up "go test" output from "make test" to be much more readable/scannable.
* Excluse more "definitely not unit tested Go source code" directories from hack/make/test.
* Exclude more "definitely not unit tested Go source code" directories from hack/make/test.
+ Generate md5 and sha256 hashes when building, and upload them via hack/release.sh.
- Include contributed completions in Ubuntu PPA.
+ Add cli integration tests.
@@ -548,7 +846,7 @@
- Fix broken images API for version less than 1.7
- Use the right encoding for all API endpoints which return JSON
- Move remote api client to api/
- Queue calls to the API using generic socket wait
- Queue calls to the API using generic socket wait
#### Runtime
@@ -589,7 +887,7 @@ With the ongoing changes to the networking and execution subsystems of docker te
* The ADD instruction now supports caching, which avoids unnecessarily re-uploading the same source content again and again when it hasnt changed
* The new ONBUILD instruction adds to your image a “trigger” instruction to be executed at a later time, when the image is used as the base for another build
* Docker now ships with an experimental storage driver which uses the BTRFS filesystem for copy-on-write
* Docker is officially supported on Mac OSX
* Docker is officially supported on Mac OS X
* The Docker daemon supports systemd socket activation
## 0.7.6 (2014-01-14)
@@ -628,7 +926,7 @@ With the ongoing changes to the networking and execution subsystems of docker te
- Do not add hostname when networking is disabled
* Return most recent image from the cache by date
- Return all errors from docker wait
* Add Content-Type Header "application/json" to GET /version and /info responses
* Add Content-Type Header "application/json" to GET /version and /info responses
#### Other
@@ -643,12 +941,12 @@ With the ongoing changes to the networking and execution subsystems of docker te
- Fix ADD caching issue with . prefixed path
- Fix docker build on devicemapper by reverting sparse file tar option
- Fix issue with file caching and prevent wrong cache hit
* Use same error handling while unmarshalling CMD and ENTRYPOINT
* Use same error handling while unmarshalling CMD and ENTRYPOINT
#### Documentation
* Simplify and streamline Amazon Quickstart
* Install instructions use unprefixed fedora image
* Install instructions use unprefixed Fedora image
* Update instructions for mtu flag for Docker on GCE
+ Add Ubuntu Saucy to installation
- Fix for wrong version warning on master instead of latest
@@ -656,7 +954,7 @@ With the ongoing changes to the networking and execution subsystems of docker te
#### Runtime
- Only get the image's rootfs when we need to calculate the image size
- Correctly handle unmapping UDP ports
- Correctly handle unmapping UDP ports
* Make CopyFileWithTar use a pipe instead of a buffer to save memory on docker build
- Fix login message to say pull instead of push
- Fix "docker load" help by removing "SOURCE" prompt and mentioning STDIN
@@ -823,7 +1121,7 @@ With the ongoing changes to the networking and execution subsystems of docker te
* Improve unit tests
* The test suite now runs all tests even if one fails
* Refactor C in Go (Devmapper)
- Fix OSX compilation
- Fix OS X compilation
## 0.7.0 (2013-11-25)
@@ -841,7 +1139,7 @@ With the ongoing changes to the networking and execution subsystems of docker te
#### Runtime
* Improve stability, fixes some race conditons
* Improve stability, fixes some race conditions
* Skip the volumes mounted when deleting the volumes of container.
* Fix layer size computation: handle hard links correctly
* Use the work Path for docker cp CONTAINER:PATH

View File

@@ -4,7 +4,7 @@ Want to hack on Docker? Awesome! We have a contributor's guide that explains
[setting up a Docker development environment and the contribution
process](https://docs.docker.com/project/who-written-for/).
![Contributors guide](docs/sources/static_files/contributors.png)
![Contributors guide](docs/static_files/contributors.png)
This page contains information about reporting issues as well as some tips and
guidelines useful to experienced open source contributors. Finally, make sure
@@ -25,11 +25,11 @@ The Docker maintainers take security seriously. If you discover a security
issue, please bring it to their attention right away!
Please **DO NOT** file a public issue, instead send your report privately to
[security@docker.com](mailto:security@docker.com),
[security@docker.com](mailto:security@docker.com).
Security reports are greatly appreciated and we will publicly thank you for it.
We also like to send gifts&mdash;if you're into Docker schwag make sure to let
us know We currently do not offer a paid security bounty program, but are not
We also like to send gifts&mdash;if you're into Docker schwag, make sure to let
us know. We currently do not offer a paid security bounty program, but are not
ruling it out in the future.
@@ -42,14 +42,17 @@ and will thank you for it!
Check that [our issue database](https://github.com/docker/docker/issues)
doesn't already include that problem or suggestion before submitting an issue.
If you find a match, add a quick "+1" or "I have this problem too." Doing this
helps prioritize the most common problems and requests.
helps prioritize the most common problems and requests. **DO NOT DO THAT** to
subscribe to the issue unless you have something meaningful to add to the
conversation. The best way to subscribe the issue is by clicking Subscribe
button in top right of the page.
When reporting issues, please include your host OS (Ubuntu 12.04, Fedora 19,
etc). Please include:
* The output of `uname -a`.
* The output of `docker version`.
* The output of `docker -D info`.
* The output of `docker info`.
Please also include the steps required to reproduce the problem if possible and
applicable. This information will help us review and fix your issue faster.
@@ -220,11 +223,11 @@ set of patches that should be reviewed together: for example, upgrading the
version of a vendored dependency and taking advantage of its now available new
feature constitute two separate units of work. Implementing a new function and
calling it in another file constitute a single logical unit of work. The very
high majory of submissions should have a single commit, so if in doubt: squash
high majority of submissions should have a single commit, so if in doubt: squash
down to one.
After every commit, [make sure the test suite passes]
((https://docs.docker.com/project/test-and-docs/)). Include documentation
(https://docs.docker.com/project/test-and-docs/). Include documentation
changes in the same pull request so that a revert would remove all traces of
the feature or fix.
@@ -234,6 +237,8 @@ close an issue. Including references automatically closes the issue on a merge.
Please do not add yourself to the `AUTHORS` file, as it is regenerated regularly
from the Git history.
Please see the [Coding Style](#coding-style) for further guidelines.
### Merge approval
Docker maintainers use LGTM (Looks Good To Me) in comments on the code review to
@@ -317,7 +322,7 @@ maintainer to make a difference on the project!
### IRC meetings
There are two monthly meetings taking place on #docker-dev IRC to accomodate all
There are two monthly meetings taking place on #docker-dev IRC to accommodate all
timezones. Anybody can propose a topic for discussion prior to the meeting.
If you feel the conversation is going off-topic, feel free to point it out.
@@ -385,3 +390,49 @@ do need a fair way to deal with people who are making our community suck.
appeals, we know that mistakes happen, and we'll work with you to come up with a
fair solution if there has been a misunderstanding.
## Coding Style
Unless explicitly stated, we follow all coding guidelines from the Go
community. While some of these standards may seem arbitrary, they somehow seem
to result in a solid, consistent codebase.
It is possible that the code base does not currently comply with these
guidelines. We are not looking for a massive PR that fixes this, since that
goes against the spirit of the guidelines. All new contributions should make a
best effort to clean up and make the code base better than they left it.
Obviously, apply your best judgement. Remember, the goal here is to make the
code base easier for humans to navigate and understand. Always keep that in
mind when nudging others to comply.
The rules:
1. All code should be formatted with `gofmt -s`.
2. All code should pass the default levels of
[`golint`](https://github.com/golang/lint).
3. All code should follow the guidelines covered in [Effective
Go](http://golang.org/doc/effective_go.html) and [Go Code Review
Comments](https://github.com/golang/go/wiki/CodeReviewComments).
4. Comment the code. Tell us the why, the history and the context.
5. Document _all_ declarations and methods, even private ones. Declare
expectations, caveats and anything else that may be important. If a type
gets exported, having the comments already there will ensure it's ready.
6. Variable name length should be proportional to it's context and no longer.
`noCommaALongVariableNameLikeThisIsNotMoreClearWhenASimpleCommentWouldDo`.
In practice, short methods will have short variable names and globals will
have longer names.
7. No underscores in package names. If you need a compound name, step back,
and re-examine why you need a compound name. If you still think you need a
compound name, lose the underscore.
8. No utils or helpers packages. If a function is not general enough to
warrant it's own package, it has not been written generally enough to be a
part of a util package. Just leave it unexported and well-documented.
9. All tests should run with `go test` and outside tooling should not be
required. No, we don't need another unit testing framework. Assertion
packages are acceptable if they provide _real_ incremental value.
10. Even though we call these "rules" above, they are actually just
guidelines. Since you've read all the rules, you now know that.
If you are having trouble getting into the mood of idiomatic Go, we recommend
reading through [Effective Go](http://golang.org/doc/effective_go.html). The
[Go Blog](http://blog.golang.org/) is also a great resource. Drinking the
kool-aid is a lot easier than going thirsty.

View File

@@ -19,14 +19,14 @@
# -e GPG_PASSPHRASE=gloubiboulga \
# docker hack/release.sh
#
# Note: Apparmor used to mess with privileged mode, but this is no longer
# Note: AppArmor used to mess with privileged mode, but this is no longer
# the case. Therefore, you don't have to disable it anymore.
#
FROM ubuntu:14.04
MAINTAINER Tianon Gravi <admwiggin@gmail.com> (@tianon)
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net --recv-keys E871F18B51E0147C77796AC81196BA81F6B0FC61
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys E871F18B51E0147C77796AC81196BA81F6B0FC61
RUN echo deb http://ppa.launchpad.net/zfs-native/stable/ubuntu trusty main > /etc/apt/sources.list.d/zfs.list
# Packaged dependencies
@@ -37,15 +37,19 @@ RUN apt-get update && apt-get install -y \
bash-completion \
btrfs-tools \
build-essential \
createrepo \
curl \
dpkg-sig \
gcc-mingw-w64 \
git \
iptables \
libapparmor-dev \
libcap-dev \
libsqlite3-dev \
libsystemd-journal-dev \
mercurial \
parallel \
pkg-config \
python-mock \
python-pip \
python-websocket \
@@ -69,7 +73,7 @@ RUN cd /usr/local/lvm2 \
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# Install lxc
ENV LXC_VERSION 1.0.7
ENV LXC_VERSION 1.1.2
RUN mkdir -p /usr/src/lxc \
&& curl -sSL https://linuxcontainers.org/downloads/lxc/lxc-${LXC_VERSION}.tar.gz | tar -v -C /usr/src/lxc/ -xz --strip-components=1
RUN cd /usr/src/lxc \
@@ -79,7 +83,7 @@ RUN cd /usr/src/lxc \
&& ldconfig
# Install Go
ENV GO_VERSION 1.4.2
ENV GO_VERSION 1.4.3
RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/local -xz \
&& mkdir -p /go/bin
ENV PATH /go/bin:/usr/local/go/bin:$PATH
@@ -116,24 +120,41 @@ RUN git clone https://github.com/golang/tools.git /go/src/golang.org/x/tools \
&& (cd /go/src/golang.org/x/tools && git checkout -q $GO_TOOLS_COMMIT) \
&& go install -v golang.org/x/tools/cmd/cover \
&& go install -v golang.org/x/tools/cmd/vet
# Grab Go's lint tool
ENV GO_LINT_COMMIT f42f5c1c440621302702cb0741e9d2ca547ae80f
RUN git clone https://github.com/golang/lint.git /go/src/github.com/golang/lint \
&& (cd /go/src/github.com/golang/lint && git checkout -q $GO_LINT_COMMIT) \
&& go install -v github.com/golang/lint/golint
# TODO replace FPM with some very minimal debhelper stuff
RUN gem install --no-rdoc --no-ri fpm --version 1.3.2
# Install registry
ENV REGISTRY_COMMIT d957768537c5af40e4f4cd96871f7b2bde9e2923
ENV REGISTRY_COMMIT ec87e9b6971d831f0eff752ddb54fb64693e51cd
RUN set -x \
&& git clone https://github.com/docker/distribution.git /go/src/github.com/docker/distribution \
&& (cd /go/src/github.com/docker/distribution && git checkout -q $REGISTRY_COMMIT) \
&& GOPATH=/go/src/github.com/docker/distribution/Godeps/_workspace:/go \
go build -o /go/bin/registry-v2 github.com/docker/distribution/cmd/registry \
&& rm -rf /go/src/github.com/docker/distribution/
&& export GOPATH="$(mktemp -d)" \
&& git clone https://github.com/docker/distribution.git "$GOPATH/src/github.com/docker/distribution" \
&& (cd "$GOPATH/src/github.com/docker/distribution" && git checkout -q "$REGISTRY_COMMIT") \
&& GOPATH="$GOPATH/src/github.com/docker/distribution/Godeps/_workspace:$GOPATH" \
go build -o /usr/local/bin/registry-v2 github.com/docker/distribution/cmd/registry \
&& rm -rf "$GOPATH"
# Install notary server
ENV NOTARY_COMMIT 8e8122eb5528f621afcd4e2854c47302f17392f7
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone https://github.com/docker/notary.git "$GOPATH/src/github.com/docker/notary" \
&& (cd "$GOPATH/src/github.com/docker/notary" && git checkout -q "$NOTARY_COMMIT") \
&& GOPATH="$GOPATH/src/github.com/docker/notary/Godeps/_workspace:$GOPATH" \
go build -o /usr/local/bin/notary-server github.com/docker/notary/cmd/notary-server \
&& rm -rf "$GOPATH"
# Get the "docker-py" source so we can run their integration tests
ENV DOCKER_PY_COMMIT 91985b239764fe54714fa0a93d52aa362357d251
ENV DOCKER_PY_COMMIT 47ab89ec2bd3bddf1221b856ffbaff333edeabb4
RUN git clone https://github.com/docker/docker-py.git /docker-py \
&& cd /docker-py \
&& git checkout -q $DOCKER_PY_COMMIT
&& git checkout -q $DOCKER_PY_COMMIT \
&& pip install -r test-requirements.txt
# Setup s3cmd config
RUN { \
@@ -162,26 +183,36 @@ RUN ln -sv $PWD/contrib/completion/bash/docker /etc/bash_completion.d/docker
# Get useful and necessary Hub images so we can "docker load" locally instead of pulling
COPY contrib/download-frozen-image.sh /go/src/github.com/docker/docker/contrib/
RUN ./contrib/download-frozen-image.sh /docker-frozen-images \
busybox:latest@4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125 \
hello-world:frozen@e45a5af57b00862e5ef5782a9925979a02ba2b12dff832fd0991335f4a11e5c5 \
busybox:latest@8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55 \
hello-world:frozen@91c95931e552b11604fea91c2f537284149ec32fff0f700a4769cfd31d7696ae \
jess/unshare@5c9f6ea50341a2a8eb6677527f2bdedbf331ae894a41714fda770fb130f3314d
# see also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
# Download man page generator
RUN set -x \
&& git clone -b v1.0.1 https://github.com/cpuguy83/go-md2man.git /go/src/github.com/cpuguy83/go-md2man \
&& git clone -b v1.2 https://github.com/russross/blackfriday.git /go/src/github.com/russross/blackfriday
&& export GOPATH="$(mktemp -d)" \
&& git clone -b v1.0.3 https://github.com/cpuguy83/go-md2man.git "$GOPATH/src/github.com/cpuguy83/go-md2man" \
&& git clone -b v1.2 https://github.com/russross/blackfriday.git "$GOPATH/src/github.com/russross/blackfriday" \
&& go get -v -d github.com/cpuguy83/go-md2man \
&& go build -v -o /usr/local/bin/go-md2man github.com/cpuguy83/go-md2man \
&& rm -rf "$GOPATH"
# Download toml validator
ENV TOMLV_COMMIT 9baf8a8a9f2ed20a8e54160840c492f937eeaf9a
RUN set -x \
&& git clone https://github.com/BurntSushi/toml.git /go/src/github.com/BurntSushi/toml \
&& (cd /go/src/github.com/BurntSushi/toml && git checkout -q $TOMLV_COMMIT)
&& export GOPATH="$(mktemp -d)" \
&& git clone https://github.com/BurntSushi/toml.git "$GOPATH/src/github.com/BurntSushi/toml" \
&& (cd "$GOPATH/src/github.com/BurntSushi/toml" && git checkout -q "$TOMLV_COMMIT") \
&& go build -v -o /usr/local/bin/tomlv github.com/BurntSushi/toml/cmd/tomlv \
&& rm -rf "$GOPATH"
# copy vendor/ because go-md2man needs golang.org/x/net
COPY vendor /go/src/github.com/docker/docker/vendor
RUN go install -v github.com/cpuguy83/go-md2man \
github.com/BurntSushi/toml/cmd/tomlv
# Build/install the tool for embedding resources in Windows binaries
ENV RSRC_COMMIT e48dbf1b7fc464a9e85fcec450dddf80816b76e0
RUN set -x \
&& git clone https://github.com/akavel/rsrc.git /go/src/github.com/akavel/rsrc \
&& cd /go/src/github.com/akavel/rsrc \
&& git checkout -q $RSRC_COMMIT \
&& go install -v
# Wrap all commands in the "docker-in-docker" script to allow nested containers
ENTRYPOINT ["hack/dind"]

72
Dockerfile.gccgo Normal file
View File

@@ -0,0 +1,72 @@
# This file describes the standard way to build Docker, using docker
#
# Usage:
#
# # Assemble the full dev environment. This is slow the first time.
# docker build -t docker -f Dockerfile.gccgo .
#
FROM gcc:5.2
# Packaged dependencies
RUN apt-get update && apt-get install -y \
apparmor \
aufs-tools \
btrfs-tools \
build-essential \
curl \
git \
iptables \
net-tools \
libapparmor-dev \
libcap-dev \
libsqlite3-dev \
mercurial \
parallel \
python-mock \
python-pip \
python-websocket \
--no-install-recommends
# Get lvm2 source for compiling statically
RUN git clone -b v2_02_103 https://git.fedorahosted.org/git/lvm2.git /usr/local/lvm2
# see https://git.fedorahosted.org/cgit/lvm2.git/refs/tags for release tags
# Compile and install lvm2
RUN cd /usr/local/lvm2 \
&& ./configure --enable-static_link \
&& make device-mapper \
&& make install_device-mapper
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# Install lxc
ENV LXC_VERSION 1.1.2
RUN mkdir -p /usr/src/lxc \
&& curl -sSL https://linuxcontainers.org/downloads/lxc/lxc-${LXC_VERSION}.tar.gz | tar -v -C /usr/src/lxc/ -xz --strip-components=1
RUN cd /usr/src/lxc \
&& ./configure \
&& make \
&& make install \
&& ldconfig
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
# Get the "docker-py" source so we can run their integration tests
ENV DOCKER_PY_COMMIT 139850f3f3b17357bab5ba3edfb745fb14043764
RUN git clone https://github.com/docker/docker-py.git /docker-py \
&& cd /docker-py \
&& git checkout -q $DOCKER_PY_COMMIT
# Add an unprivileged user to be used for tests which need it
RUN groupadd -r docker
RUN useradd --create-home --gid docker unprivilegeduser
VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor selinux
# Wrap all commands in the "docker-in-docker" script to allow nested containers
ENTRYPOINT ["hack/dind"]
# Upload docker source
COPY . /go/src/github.com/docker/docker

View File

@@ -124,98 +124,8 @@ the relevant operators.
* If the change affects the governance, philosophy, goals or principles of the project,
it must be approved by BDFL.
* A pull request can be in 1 of 5 distinct states, for each of which there is a corresponding label
that needs to be applied. `Rules.review.states` contains the list of states with possible targets
for each.
"""
# Triage
[Rules.review.states.0-needs-triage]
# Maintainers are expected to triage new incoming pull requests by removing
# the `0-triage` label and adding the correct labels (e.g. `1-design-review`)
# potentially skipping some steps depending on the kind of pull request.
# Use common sense for judging.
#
# Checking for DCO should be done at this stage.
#
# If an owner, responsible for closing or merging, can be assigned to the PR,
# the better.
close = "e.g. unresponsive contributor without DCO"
3-docs-review = "non-proposal documentation-only change"
2-code-review = "e.g. trivial bugfix"
1-design-review = "general case"
# Design review
[Rules.review.states.1-needs-design-review]
# Maintainers are expected to comment on the design of the pull request.
# Review of documentation is expected only in the context of design validation,
# not for stylistic changes.
#
# Ideally, documentation should reflect the expected behavior of the code.
# No code review should take place in this step.
#
# Once design is approved, a maintainer should make sure to remove this label
# and add the next one.
close = "design rejected"
3-docs-review = "proposals with only documentation changes"
2-code-review = "general case"
# Code review
[Rules.review.states.2-needs-code-review]
# Maintainers are expected to review the code and ensure that it is good
# quality and in accordance with the documentation in the PR.
#
# If documentation is absent but expected, maintainers should ask for documentation.
#
# All tests should pass.
#
# Once code is approved according to the rules of the subsystem, a maintainer
# should make sure to remove this label and add the next one.
close = ""
1-design-review = "raises design concerns"
4-merge = "trivial change not impacting documentation"
3-docs-review = "general case"
# Docs review
[Rules.review.states.3-needs-docs-review]
# Maintainers are expected to review the documentation in its bigger context,
# ensuring consistency, completeness, validity, and breadth of coverage across
# all extent and new documentation.
#
# They should ask for any editorial change that makes the documentation more
# consistent and easier to understand.
#
# Changes and additions to docs must be reviewed and approved (LGTM'd) by a minimum of
# two docs sub-project maintainers. If the docs change originates with a docs
# maintainer, only one additional LGTM is required (since we assume a docs maintainer
# approves of their own PR).
#
# Once documentation is approved (see below), a maintainer should make sure to remove this
# label and add the next one.
close = ""
2-code-review = "requires more code changes"
1-design-review = "raises design concerns"
4-merge = "general case"
# Merge
[Rules.review.states.4-needs-merge]
# Maintainers are expected to merge this pull request as soon as possible.
# They can ask for a rebase, or carry the pull request themselves.
# These should be the easy PRs to merge.
close = "carry PR"
merge = ""
[Rules.DCO]
title = "Helping contributors with the DCO"
@@ -231,7 +141,7 @@ editor, and thus asking them to `git commit --amend -s` is not the best way forw
In this case, maintainers can update the commits based on clause (c) of the DCO. The
most trivial way for a contributor to allow the maintainer to do this, is to add
a DCO signature in a Pull Requests's comment, or a maintainer can simply note that
the change is sufficiently trivial that it does not substantivly change the existing
the change is sufficiently trivial that it does not substantially change the existing
contribution - i.e., a spelling change.
When you add someone's DCO, please also add your own to keep a log.
@@ -273,16 +183,6 @@ made through a pull request.
# be approved by the chief architect.
"Chief Architect" = "shykes"
# The Chief Operator is responsible for the day-to-day operations of the project including:
# - facilitating communications amongst all the contributors;
# - tracking release schedules;
# - managing the relationship with downstream distributions and upstream dependencies;
# - helping new contributors to get involved and become successful contributors and maintainers
#
# The role is also responsible for managing and measuring the success of the overall project
# and ensuring it is governed properly working in concert with the Docker Governance Advisory Board (DGAB).
"Chief Operator" = "spf13"
[Org.Operators]
# The operators make sure the trains run on time. They are responsible for overall operations
@@ -314,7 +214,7 @@ made through a pull request.
"jfrazelle",
"crosbymichael"
]
[Org.Operators.community]
people = [
"theadactyl"
@@ -326,7 +226,7 @@ made through a pull request.
# day of a new maintainer, the best advice should be "follow the C.M.'s example and you'll
# be fine".
"Chief Maintainer" = "crosbymichael"
# The community manager is responsible for serving the project community, including users,
# contributors and partners. This involves:
# - facilitating communication between maintainers, contributors and users
@@ -335,7 +235,7 @@ made through a pull request.
# - anything the project community needs to be successful
#
# The community manager is a point of contact for any contributor who has questions, concerns
# or feedback about project operations.
# or feedback about project operations.
"Community Manager" = "theadactyl"
[Org."Core maintainers"]
@@ -354,9 +254,8 @@ made through a pull request.
#
# It is common for core maintainers to "branch out" to join or start a subsystem.
people = [
"calavera",
"crosbymichael",
"erikh",
"estesp",
@@ -367,11 +266,11 @@ made through a pull request.
"tibor",
"unclejack",
"vbatts",
"vdemeester",
"vieux",
"vishh"
]
[Org.Subsystems]
# As the project grows, it gets separated into well-defined subsystems. Each subsystem
@@ -398,7 +297,7 @@ made through a pull request.
# - If the pull request has some small problems that need to be changed, make
# a comment adressing the issues.
# - If the changes needed to a PR are small, you can add a "LGTM once the
# following comments are adressed..." this will reduce needless back and
# following comments are addressed..." this will reduce needless back and
# forth.
# - If the PR only needs a few changes before being merged, any MAINTAINER can
# make a replacement PR that incorporates the existing commits and fixes the
@@ -425,12 +324,10 @@ made through a pull request.
[Org.Subsystems.Documentation]
people = [
"fredlf",
"james",
"moxiegirl",
"thaJeztah",
"jamtur01",
"spf13",
"sven"
]
@@ -536,6 +433,11 @@ made through a pull request.
Email = "ben@firshman.co.uk"
GitHub = "bfirsh"
[people.calavera]
Name = "David Calavera"
Email = "david.calavera@gmail.com"
GitHub = "calavera"
[people.cpuguy83]
Name = "Brian Goff"
Email = "cpuguy83@gmail.com"
@@ -586,11 +488,6 @@ made through a pull request.
Email = "estesp@linux.vnet.ibm.com"
GitHub = "estesp"
[people.fredlf]
Name = "Fred Lifton"
Email = "fred.lifton@docker.com"
GitHub = "fredlf"
[people.icecrime]
Name = "Arnaud Porterie"
Email = "arnaud@docker.com"
@@ -606,6 +503,11 @@ made through a pull request.
Email = "josh.hawn@docker.com"
Github = "jlhawn"
[people.jnagal]
Name = "Rohit Jnagal"
Email = "jnagal@google.com"
GitHub = "rjnagal"
[people.lk4d4]
Name = "Alexander Morozov"
Email = "lk4d4@docker.com"
@@ -616,6 +518,11 @@ made through a pull request.
Email = "mary.anthony@docker.com"
GitHub = "moxiegirl"
[people.mpatel]
Name = "Mrunal Patel"
Email = "mpatel@redhat.com"
GitHub = "mrunalp"
[people.nathanmccauley]
Name = "Nathan McCauley"
Email = "nathan.mccauley@docker.com"
@@ -636,11 +543,6 @@ made through a pull request.
Email = "solomon@docker.com"
GitHub = "shykes"
[people.spf13]
Name = "Steve Francia"
Email = "steve.francia@gmail.com"
GitHub = "spf13"
[people.sven]
Name = "Sven Dowideit"
Email = "SvenDowideit@home.org.au"
@@ -650,7 +552,7 @@ made through a pull request.
Name = "Sebastiaan van Stijn"
Email = "github@gone.nl"
GitHub = "thaJeztah"
[people.theadactyl]
Name = "Thea Lamkin"
Email = "thea@docker.com"
@@ -666,37 +568,32 @@ made through a pull request.
Email = "tibor@docker.com"
GitHub = "tiborvass"
[people.unclejack]
Name = "Cristian Staretu"
Email = "cristian.staretu@gmail.com"
GitHub = "unclejack"
[people.vbatts]
Name = "Vincent Batts"
Email = "vbatts@redhat.com"
GitHub = "vbatts"
[people.vdemeester]
Name = "Vincent Demeester"
Email = "vincent@sbr.pm"
GitHub = "vdemeester"
[people.vieux]
Name = "Victor Vieux"
Email = "vieux@docker.com"
GitHub = "vieux"
[people.vmarmol]
Name = "Victor Marmol"
Email = "vmarmol@google.com"
GitHub = "vmarmol"
[people.jnagal]
Name = "Rohit Jnagal"
Email = "jnagal@google.com"
GitHub = "rjnagal"
[people.mpatel]
Name = "Mrunal Patel"
Email = "mpatel@redhat.com"
GitHub = "mrunalp"
[people.unclejack]
Name = "Cristian Staretu"
Email = "cristian.staretu@gmail.com"
GitHub = "unclejack"
[people.vishh]
Name = "Vishnu Kannan"
Email = "vishnuk@google.com"
GitHub = "vishh"
[people.vmarmol]
Name = "Victor Marmol"
Email = "vmarmol@google.com"
GitHub = "vmarmol"

View File

@@ -6,8 +6,10 @@
DOCKER_ENVS := \
-e BUILDFLAGS \
-e DOCKER_CLIENTONLY \
-e DOCKER_DEBUG \
-e DOCKER_EXECDRIVER \
-e DOCKER_EXPERIMENTAL \
-e DOCKER_REMAP_ROOT \
-e DOCKER_GRAPHDRIVER \
-e DOCKER_STORAGE_OPTS \
-e DOCKER_USERLANDPROXY \
@@ -22,11 +24,6 @@ DOCKER_ENVS := \
BIND_DIR := $(if $(BINDDIR),$(BINDDIR),$(if $(DOCKER_HOST),,bundles))
DOCKER_MOUNT := $(if $(BIND_DIR),-v "$(CURDIR)/$(BIND_DIR):/go/src/github.com/docker/docker/$(BIND_DIR)")
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
# to allow `make DOCSPORT=9000 docs`
DOCSPORT := 8000
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
DOCKER_IMAGE := docker-dev$(if $(GIT_BRANCH),:$(GIT_BRANCH))
@@ -50,19 +47,11 @@ binary: build
cross: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary cross
docs: docs-build
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" mkdocs serve
deb: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary build-deb
docs-shell: docs-build
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
docs-release: docs-build
$(DOCKER_RUN_DOCS) -e OPTIONS -e BUILD_ROOT -e DISTRIBUTION_ID \
-v $(CURDIR)/docs/awsconfig:/docs/awsconfig \
"$(DOCKER_DOCS_IMAGE)" ./release.sh
docs-test: docs-build
$(DOCKER_RUN_DOCS) "$(DOCKER_DOCS_IMAGE)" ./test.sh
rpm: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary build-rpm
test: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary cross test-unit test-integration-cli test-docker-py
@@ -77,7 +66,7 @@ test-docker-py: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary test-docker-py
validate: build
$(DOCKER_RUN_DOCKER) hack/make.sh validate-dco validate-gofmt validate-test validate-toml validate-vet
$(DOCKER_RUN_DOCKER) hack/make.sh validate-dco validate-gofmt validate-pkg validate-lint validate-test validate-toml validate-vet
shell: build
$(DOCKER_RUN_DOCKER) bash
@@ -85,13 +74,8 @@ shell: build
build: bundles
docker build -t "$(DOCKER_IMAGE)" .
docs-build:
cp ./VERSION docs/VERSION
echo "$(GIT_BRANCH)" > docs/GIT_BRANCH
# echo "$(AWS_S3_BUCKET)" > docs/AWS_S3_BUCKET
echo "$(GITCOMMIT)" > docs/GITCOMMIT
docker pull docs/base
docker build -t "$(DOCKER_DOCS_IMAGE)" docs
bundles:
mkdir bundles
docs:
$(MAKE) -C docs docs

View File

@@ -1,24 +1,24 @@
Docker: the Linux container engine
==================================
Docker: the container engine [![Release](https://img.shields.io/github/release/docker/docker.svg)](https://github.com/docker/docker/releases/latest)
============================
Docker is an open source project to pack, ship and run any application
as a lightweight container.
Docker containers are both *hardware-agnostic* and *platform-agnostic*.
This means they can run anywhere, from your laptop to the largest
EC2 compute instance and everything in between - and they don't require
cloud compute instance and everything in between - and they don't require
you to use a particular language, framework or packaging system. That
makes them great building blocks for deploying and scaling web apps,
databases, and backend services without depending on a particular stack
or provider.
Docker began as an open-source implementation of the deployment engine which
powers [dotCloud](https://dotcloud.com), a popular Platform-as-a-Service.
powers [dotCloud](https://www.dotcloud.com), a popular Platform-as-a-Service.
It benefits directly from the experience accumulated over several years
of large-scale operation and support of hundreds of thousands of
applications and databases.
![Docker L](docs/sources/static_files/docker-logo-compressed.png "Docker")
![Docker L](docs/static_files/docker-logo-compressed.png "Docker")
## Security Disclosure
@@ -30,7 +30,7 @@ security@docker.com and not by creating a github issue.
A common method for distributing applications and sandboxing their
execution is to use virtual machines, or VMs. Typical VM formats are
VMWare's vmdk, Oracle Virtualbox's vdi, and Amazon EC2's ami. In theory
VMware's vmdk, Oracle VirtualBox's vdi, and Amazon EC2's ami. In theory
these formats should allow every developer to automatically package
their application into a "machine" for easy distribution and deployment.
In practice, that almost never happens, for a few reasons:
@@ -58,7 +58,7 @@ takes place at the kernel level. Most modern operating system kernels
now support the primitives necessary for containerization, including
Linux with [openvz](https://openvz.org),
[vserver](http://linux-vserver.org) and more recently
[lxc](http://lxc.sourceforge.net), Solaris with
[lxc](https://linuxcontainers.org/), Solaris with
[zones](https://docs.oracle.com/cd/E26502_01/html/E29024/preface-1.html#scrolltoc),
and FreeBSD with
[Jails](https://www.freebsd.org/doc/handbook/jails.html).
@@ -168,22 +168,23 @@ Under the hood
Under the hood, Docker is built on the following components:
* The
[cgroup](http://blog.dotcloud.com/kernel-secrets-from-the-paas-garage-part-24-c)
[cgroups](https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt)
and
[namespacing](http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part)
[namespaces](http://man7.org/linux/man-pages/man7/namespaces.7.html)
capabilities of the Linux kernel
* The [Go](https://golang.org) programming language
* The [Docker Image Specification](https://github.com/docker/docker/blob/master/image/spec/v1.md)
* The [Libcontainer Specification](https://github.com/docker/libcontainer/blob/master/SPEC.md)
* The [Libcontainer Specification](https://github.com/opencontainers/runc/blob/master/libcontainer/SPEC.md)
Contributing to Docker
Contributing to Docker [![GoDoc](https://godoc.org/github.com/docker/docker?status.svg)](https://godoc.org/github.com/docker/docker)
======================
[![GoDoc](https://godoc.org/github.com/docker/docker?status.svg)](https://godoc.org/github.com/docker/docker)
[![Jenkins Build Status](https://jenkins.dockerproject.com/job/Docker%20Master/badge/icon)](https://jenkins.dockerproject.com/job/Docker%20Master/)
| **Master** (Linux) | **Experimental** (linux) | **Windows** | **FreeBSD** |
|------------------|----------------------|---------|---------|
| [![Jenkins Build Status](https://jenkins.dockerproject.org/view/Docker/job/Docker%20Master/badge/icon)](https://jenkins.dockerproject.org/view/Docker/job/Docker%20Master/) | [![Jenkins Build Status](https://jenkins.dockerproject.org/view/Docker/job/Docker%20Master%20%28experimental%29/badge/icon)](https://jenkins.dockerproject.org/view/Docker/job/Docker%20Master%20%28experimental%29/) | [![Build Status](http://jenkins.dockerproject.org/job/Docker%20Master%20(windows)/badge/icon)](http://jenkins.dockerproject.org/job/Docker%20Master%20(windows)/) | [![Build Status](http://jenkins.dockerproject.org/job/Docker%20Master%20(freebsd)/badge/icon)](http://jenkins.dockerproject.org/job/Docker%20Master%20(freebsd)/) |
Want to hack on Docker? Awesome! We have [instructions to help you get
started contributing code or documentation.](https://docs.docker.com/project/who-written-for/).
started contributing code or documentation](https://docs.docker.com/project/who-written-for/).
These instructions are probably not perfect, please let us know if anything
feels wrong or incomplete. Better yet, submit a PR and improve them yourself.
@@ -192,12 +193,12 @@ Getting the development builds
==============================
Want to run Docker from a master build? You can download
master builds at [master.dockerproject.com](https://master.dockerproject.com).
master builds at [master.dockerproject.org](https://master.dockerproject.org).
They are updated with each commit merged into the master branch.
Don't know how to use that super cool new feature in the master build? Check
out the master docs at
[docs.master.dockerproject.com](http://docs.master.dockerproject.com).
[docs.master.dockerproject.org](http://docs.master.dockerproject.org).
How the project is run
======================
@@ -247,7 +248,7 @@ We are always open to suggestions on process improvements, and are always lookin
<tr>
<td>Stack Overflow</td>
<td>
Stack Overflow has over 7000K Docker questions listed. We regularly
Stack Overflow has over 7000 Docker questions listed. We regularly
monitor <a href="https://stackoverflow.com/search?tab=newest&q=docker" target="_blank">Docker questions</a>
and so do many other knowledgeable Docker users.
</td>
@@ -289,7 +290,11 @@ system
* [Docker Compose](https://github.com/docker/compose) (formerly Fig):
Define and run multi-container apps
* [Kitematic](https://github.com/kitematic/kitematic): The easiest way to use
Docker on a Mac
Docker on Mac and Windows
If you know of another project underway that should be listed here, please help
us keep this list up-to-date by submitting a PR.
Awesome-Docker
==============
You can find more projects, tools and articles related to Docker on the [awesome-docker list](https://github.com/veggiemonk/awesome-docker). Add your project there.

183
ROADMAP.md Normal file
View File

@@ -0,0 +1,183 @@
Docker Engine Roadmap
=====================
### How should I use this document?
This document provides description of items that the project decided to prioritize. This should
serve as a reference point for Docker contributors to understand where the project is going, and
help determine if a contribution could be conflicting with some longer terms plans.
The fact that a feature isn't listed here doesn't mean that a patch for it will automatically be
refused (except for those mentioned as "frozen features" below)! We are always happy to receive
patches for new cool features we haven't thought about, or didn't judge priority. Please however
understand that such patches might take longer for us to review.
### How can I help?
Short term objectives are listed in the [wiki](https://github.com/docker/docker/wiki) and described
in [Issues](https://github.com/docker/docker/issues?q=is%3Aopen+is%3Aissue+label%3Aroadmap). Our
goal is to split down the workload in such way that anybody can jump in and help. Please comment on
issues if you want to take it to avoid duplicating effort! Similarly, if a maintainer is already
assigned on an issue you'd like to participate in, pinging him on IRC or GitHub to offer your help is
the best way to go.
### How can I add something to the roadmap?
The roadmap process is new to the Docker Engine: we are only beginning to structure and document the
project objectives. Our immediate goal is to be more transparent, and work with our community to
focus our efforts on fewer prioritized topics.
We hope to offer in the near future a process allowing anyone to propose a topic to the roadmap, but
we are not quite there yet. For the time being, the BDFL remains the keeper of the roadmap, and we
won't be accepting pull requests adding or removing items from this file.
# 1. Features and refactoring
## 1.1 Security
Security is a top objective for the Docker Engine. The most notable items we intend to provide in
the near future are:
- Trusted distribution of images: the effort is driven by the [distribution](https://github.com/docker/distribution)
group but will have significant impact on the Engine
- [User namespaces](https://github.com/docker/docker/pull/12648)
- [Seccomp support](https://github.com/docker/libcontainer/pull/613)
## 1.2 Plumbing project
We define a plumbing tool as a standalone piece of software usable and meaningful on its own. In
the current state of the Docker Engine, most subsystems provide independent functionalities (such
the builder, pushing and pulling images, running applications in a containerized environment, etc)
but all are coupled in a single binary. We want to offer the users to flexibility to use only the
pieces they need, and we will also gain in maintainability by splitting the project among multiple
repositories.
As it currently stands, the rough design outlines is to have:
- Low level plumbing tools, each dealing with one responsibility (e.g., [runC](https://runc.io))
- Docker subsystems services, each exposing an elementary concept over an API, and relying on one or
multiple lower level plumbing tools for their implementation (e.g., network management)
- Docker Engine to expose higher level actions (e.g., create a container with volume `V` and network
`N`), while still providing pass-through access to the individual subsystems.
The architectural details are still being worked on, but one thing we know for sure is that we need
to technically decouple the pieces.
### 1.2.1 Runtime
A Runtime tool already exists today in the form of [runC](https://github.com/opencontainers/runc).
We intend to modify the Engine to directly call out to a binary implementing the Open Containers
Specification such as runC rather than relying on libcontainer to set the container runtime up.
This plan will deprecate the existing [`execdriver`](https://github.com/docker/docker/tree/master/daemon/execdriver)
as different runtime backends will be implemented as separated binaries instead of being compiled
into the Engine.
### 1.2.2 Builder
The Builder (i.e., the ability to build an image from a Dockerfile) is already nicely decoupled,
but would benefit from being entirely separated from the Engine, and rely on the standard Engine
API for its operations.
### 1.2.3 Distribution
Distribution already has a [dedicated repository](https://github.com/docker/distribution) which
holds the implementation for Registry v2 and client libraries. We could imagine going further by
having the Engine call out to a binary providing image distribution related functionalities.
There are two short term goals related to image distribution. The first is stabilize and simplify
the push/pull code. Following that is the conversion to the more secure Registry V2 protocol.
### 1.2.4 Networking
Most of networking related code was already decoupled today in [libnetwork](https://github.com/docker/libnetwork).
As with other ingredients, we might want to take it a step further and make it a meaningful utility
that the Engine would call out to instead of a library.
## 1.3 Plugins
An initiative around plugins started with Docker 1.7.0, with the goal of allowing for out of
process extensibility of some Docker functionalities, starting with volumes and networking. The
approach is to provide specific extension points rather than generic hooking facilities. We also
deliberately keep the extensions API the simplest possible, expanding as we discover valid use
cases that cannot be implemented.
At the time of writing:
- Plugin support is merged as an experimental feature: real world use cases and user feedback will
help us refine the UX to make the feature more user friendly.
- There are no immediate plans to expand on the number of pluggable subsystems.
- Golang 1.5 might add language support for [plugins](https://docs.google.com/document/d/1nr-TQHw_er6GOQRsF6T43GGhFDelrAP0NqSS_00RgZQ)
which we consider supporting as an alternative to JSON/HTTP.
## 1.4 Volume management
Volumes are not a first class citizen in the Engine today: we would like better volume management,
similar to the way network are managed in the new [CNM](https://github.com/docker/docker/issues/9983).
## 1.5 Better API implementation
The current Engine API is insufficiently typed, versioned, and ultimately hard to maintain. We
also suffer from the lack of a common implementation with [Swarm](https://github.com/docker/swarm).
## 1.6 Checkpoint/restore
Support for checkpoint/restore was [merged](https://github.com/docker/libcontainer/pull/479) in
[libcontainer](https://github.com/docker/libcontainer) and made available through [runC](https://runc.io):
we intend to take advantage of it in the Engine.
# 2 Frozen features
## 2.1 Docker exec
We won't accept patches expanding the surface of `docker exec`, which we intend to keep as a
*debugging* feature, as well as being strongly dependent on the Runtime ingredient effort.
## 2.2 Dockerfile syntax
The Dockerfile syntax as we know it is simple, and has proven successful in supporting all our
[official images](https://github.com/docker-library/official-images). Although this is *not* a
definitive move, we temporarily won't accept more patches to the Dockerfile syntax for several
reasons:
- Long term impact of syntax changes is a sensitive matter that require an amount of attention
the volume of Engine codebase and activity today doesn't allow us to provide.
- Allowing the Builder to be implemented as a separate utility consuming the Engine's API will
open the door for many possibilities, such as offering alternate syntaxes or DSL for existing
languages without cluttering the Engine's codebase.
- A standalone Builder will also offer the opportunity for a better dedicated group of maintainers
to own the Dockerfile syntax and decide collectively on the direction to give it.
- Our experience with official images tend to show that no new instruction or syntax expansion is
*strictly* necessary for the majority of use cases, and although we are aware many things are still
lacking for many, we cannot make it a priority yet for the above reasons.
Again, this is not about saying that the Dockerfile syntax is done, it's about making choices about
what we want to do first!
## 2.3 Remote Registry Operations
A large amount of work is ongoing in the area of image distribution and
provenance. This includes moving to the V2 Registry API and heavily
refactoring the code that powers these features. The desired result is more
secure, reliable and easier to use image distribution.
Part of the problem with this part of the code base is the lack of a stable
and flexible interface. If new features are added that access the registry
without solidifying these interfaces, achieving feature parity will continue
to be elusive. While we get a handle on this situation, we are imposing a
moratorium on new code that accesses the Registry API in commands that don't
already make remote calls.
Currently, only the following commands cause interaction with a remote
registry:
- push
- pull
- run
- build
- search
- login
In the interest of stabilizing the registry access model during this ongoing
work, we are not accepting additions to other commands that will cause remote
interaction with the Registry API. This moratorium will lift when the goals of
the distribution project have been met.

View File

@@ -1 +1 @@
1.7.0-dev
1.9.0

View File

@@ -1,19 +0,0 @@
package api
import (
"testing"
)
func TestJsonContentType(t *testing.T) {
if !MatchesContentType("application/json", "application/json") {
t.Fail()
}
if !MatchesContentType("application/json; charset=utf-8", "application/json") {
t.Fail()
}
if MatchesContentType("dockerapplication/json", "application/json") {
t.Fail()
}
}

View File

@@ -8,6 +8,7 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/signal"
)
@@ -16,23 +17,23 @@ import (
//
// Usage: docker attach [OPTIONS] CONTAINER
func (cli *DockerCli) CmdAttach(args ...string) error {
var (
cmd = cli.Subcmd("attach", "CONTAINER", "Attach to a running container", true)
noStdin = cmd.Bool([]string{"#nostdin", "-no-stdin"}, false, "Do not attach STDIN")
proxy = cmd.Bool([]string{"#sig-proxy", "-sig-proxy"}, true, "Proxy all received signals to the process")
)
cmd := Cli.Subcmd("attach", []string{"CONTAINER"}, Cli.DockerCommands["attach"].Description, true)
noStdin := cmd.Bool([]string{"#nostdin", "-no-stdin"}, false, "Do not attach STDIN")
proxy := cmd.Bool([]string{"#sig-proxy", "-sig-proxy"}, true, "Proxy all received signals to the process")
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
name := cmd.Arg(0)
stream, _, err := cli.call("GET", "/containers/"+name+"/json", nil, nil)
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
var c types.ContainerJSON
if err := json.NewDecoder(stream).Decode(&c); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return err
}
@@ -76,7 +77,7 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
return err
}
if status != 0 {
return StatusError{StatusCode: status}
return Cli.StatusError{StatusCode: status}
}
return nil

View File

@@ -1,6 +1,7 @@
package client
import (
"archive/tar"
"bufio"
"encoding/base64"
"encoding/json"
@@ -11,25 +12,29 @@ import (
"net/url"
"os"
"os/exec"
"path"
"path/filepath"
"regexp"
"runtime"
"strconv"
"strings"
"github.com/docker/docker/api"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/graph/tags"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/fileutils"
"github.com/docker/docker/pkg/httputils"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/progressreader"
"github.com/docker/docker/pkg/streamformatter"
"github.com/docker/docker/pkg/symlink"
"github.com/docker/docker/pkg/ulimit"
"github.com/docker/docker/pkg/units"
"github.com/docker/docker/pkg/urlutil"
"github.com/docker/docker/registry"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/utils"
)
@@ -43,7 +48,7 @@ const (
//
// Usage: docker build [OPTIONS] PATH | URL | -
func (cli *DockerCli) CmdBuild(args ...string) error {
cmd := cli.Subcmd("build", "PATH | URL | -", "Build a new image from the source code at PATH", true)
cmd := Cli.Subcmd("build", []string{"PATH | URL | -"}, Cli.DockerCommands["build"].Description, true)
tag := cmd.String([]string{"t", "-tag"}, "", "Repository name (and optionally a tag) for the image")
suppressOutput := cmd.Bool([]string{"q", "-quiet"}, false, "Suppress the verbose output generated by the containers")
noCache := cmd.Bool([]string{"#no-cache", "-no-cache"}, false, "Do not use cache when building the image")
@@ -53,161 +58,133 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
dockerfileName := cmd.String([]string{"f", "-file"}, "", "Name of the Dockerfile (Default is 'PATH/Dockerfile')")
flMemoryString := cmd.String([]string{"m", "-memory"}, "", "Memory limit")
flMemorySwap := cmd.String([]string{"-memory-swap"}, "", "Total memory (memory + swap), '-1' to disable swap")
flCPUShares := cmd.Int64([]string{"c", "-cpu-shares"}, 0, "CPU shares (relative weight)")
flCpuPeriod := cmd.Int64([]string{"-cpu-period"}, 0, "Limit the CPU CFS (Completely Fair Scheduler) period")
flCpuQuota := cmd.Int64([]string{"-cpu-quota"}, 0, "Limit the CPU CFS (Completely Fair Scheduler) quota")
flCPUShares := cmd.Int64([]string{"#c", "-cpu-shares"}, 0, "CPU shares (relative weight)")
flCPUPeriod := cmd.Int64([]string{"-cpu-period"}, 0, "Limit the CPU CFS (Completely Fair Scheduler) period")
flCPUQuota := cmd.Int64([]string{"-cpu-quota"}, 0, "Limit the CPU CFS (Completely Fair Scheduler) quota")
flCPUSetCpus := cmd.String([]string{"-cpuset-cpus"}, "", "CPUs in which to allow execution (0-3, 0,1)")
flCPUSetMems := cmd.String([]string{"-cpuset-mems"}, "", "MEMs in which to allow execution (0-3, 0,1)")
flCgroupParent := cmd.String([]string{"-cgroup-parent"}, "", "Optional parent cgroup for the container")
flBuildArg := opts.NewListOpts(opts.ValidateEnv)
cmd.Var(&flBuildArg, []string{"-build-arg"}, "Set build-time variables")
ulimits := make(map[string]*ulimit.Ulimit)
flUlimits := opts.NewUlimitOpt(&ulimits)
cmd.Var(flUlimits, []string{"-ulimit"}, "Ulimit options")
cmd.Require(flag.Exact, 1)
// For trusted pull on "FROM <image>" instruction.
addTrustedFlags(cmd, true)
cmd.ParseFlags(args, true)
var (
context archive.Archive
context io.ReadCloser
isRemote bool
err error
)
_, err = exec.LookPath("git")
hasGit := err == nil
if cmd.Arg(0) == "-" {
// As a special case, 'docker build -' will build from either an empty context with the
// contents of stdin as a Dockerfile, or a tar-ed context from stdin.
buf := bufio.NewReader(cli.in)
magic, err := buf.Peek(tarHeaderSize)
if err != nil && err != io.EOF {
return fmt.Errorf("failed to peek context header from STDIN: %v", err)
}
if !archive.IsArchive(magic) {
dockerfile, err := ioutil.ReadAll(buf)
if err != nil {
return fmt.Errorf("failed to read Dockerfile from STDIN: %v", err)
}
// -f option has no meaning when we're reading it from stdin,
// so just use our default Dockerfile name
*dockerfileName = api.DefaultDockerfileName
context, err = archive.Generate(*dockerfileName, string(dockerfile))
} else {
context = ioutil.NopCloser(buf)
}
} else if urlutil.IsURL(cmd.Arg(0)) && (!urlutil.IsGitURL(cmd.Arg(0)) || !hasGit) {
isRemote = true
} else {
root := cmd.Arg(0)
if urlutil.IsGitURL(root) {
root, err = utils.GitClone(root)
if err != nil {
return err
}
defer os.RemoveAll(root)
}
if _, err := os.Stat(root); err != nil {
return err
}
specifiedContext := cmd.Arg(0)
absRoot, err := filepath.Abs(root)
if err != nil {
return err
}
var (
contextDir string
tempDir string
relDockerfile string
)
filename := *dockerfileName // path to Dockerfile
switch {
case specifiedContext == "-":
tempDir, relDockerfile, err = getContextFromReader(cli.in, *dockerfileName)
case urlutil.IsGitURL(specifiedContext) && hasGit:
tempDir, relDockerfile, err = getContextFromGitURL(specifiedContext, *dockerfileName)
case urlutil.IsURL(specifiedContext):
tempDir, relDockerfile, err = getContextFromURL(cli.out, specifiedContext, *dockerfileName)
default:
contextDir, relDockerfile, err = getContextFromLocalDir(specifiedContext, *dockerfileName)
}
if *dockerfileName == "" {
// No -f/--file was specified so use the default
*dockerfileName = api.DefaultDockerfileName
filename = filepath.Join(absRoot, *dockerfileName)
if err != nil {
return fmt.Errorf("unable to prepare context: %s", err)
}
// Just to be nice ;-) look for 'dockerfile' too but only
// use it if we found it, otherwise ignore this check
if _, err = os.Lstat(filename); os.IsNotExist(err) {
tmpFN := path.Join(absRoot, strings.ToLower(*dockerfileName))
if _, err = os.Lstat(tmpFN); err == nil {
*dockerfileName = strings.ToLower(*dockerfileName)
filename = tmpFN
}
}
}
if tempDir != "" {
defer os.RemoveAll(tempDir)
contextDir = tempDir
}
origDockerfile := *dockerfileName // used for error msg
if filename, err = filepath.Abs(filename); err != nil {
return err
}
// Resolve the FROM lines in the Dockerfile to trusted digest references
// using Notary. On a successful build, we must tag the resolved digests
// to the original name specified in the Dockerfile.
newDockerfile, resolvedTags, err := rewriteDockerfileFrom(filepath.Join(contextDir, relDockerfile), cli.trustedReference)
if err != nil {
return fmt.Errorf("unable to process Dockerfile: %v", err)
}
defer newDockerfile.Close()
// Verify that 'filename' is within the build context
filename, err = symlink.FollowSymlinkInScope(filename, absRoot)
if err != nil {
return fmt.Errorf("The Dockerfile (%s) must be within the build context (%s)", origDockerfile, root)
}
// And canonicalize dockerfile name to a platform-independent one
relDockerfile, err = archive.CanonicalTarNameForPath(relDockerfile)
if err != nil {
return fmt.Errorf("cannot canonicalize dockerfile path %s: %v", relDockerfile, err)
}
// Now reset the dockerfileName to be relative to the build context
*dockerfileName, err = filepath.Rel(absRoot, filename)
if err != nil {
return err
}
// And canonicalize dockerfile name to a platform-independent one
*dockerfileName, err = archive.CanonicalTarNameForPath(*dockerfileName)
if err != nil {
return fmt.Errorf("Cannot canonicalize dockerfile path %s: %v", *dockerfileName, err)
}
f, err := os.Open(filepath.Join(contextDir, ".dockerignore"))
if err != nil && !os.IsNotExist(err) {
return err
}
if _, err = os.Lstat(filename); os.IsNotExist(err) {
return fmt.Errorf("Cannot locate Dockerfile: %s", origDockerfile)
}
var includes = []string{"."}
excludes, err := utils.ReadDockerIgnore(path.Join(root, ".dockerignore"))
if err != nil {
return err
}
// If .dockerignore mentions .dockerignore or the Dockerfile
// then make sure we send both files over to the daemon
// because Dockerfile is, obviously, needed no matter what, and
// .dockerignore is needed to know if either one needs to be
// removed. The deamon will remove them for us, if needed, after it
// parses the Dockerfile.
keepThem1, _ := fileutils.Matches(".dockerignore", excludes)
keepThem2, _ := fileutils.Matches(*dockerfileName, excludes)
if keepThem1 || keepThem2 {
includes = append(includes, ".dockerignore", *dockerfileName)
}
if err := utils.ValidateContextDirectory(root, excludes); err != nil {
return fmt.Errorf("Error checking context is accessible: '%s'. Please check permissions and try again.", err)
}
options := &archive.TarOptions{
Compression: archive.Uncompressed,
ExcludePatterns: excludes,
IncludeFiles: includes,
}
context, err = archive.TarWithOptions(root, options)
var excludes []string
if err == nil {
excludes, err = utils.ReadDockerIgnore(f)
if err != nil {
return err
}
}
// windows: show error message about modified file permissions
// FIXME: this is not a valid warning when the daemon is running windows. should be removed once docker engine for windows can build.
if runtime.GOOS == "windows" {
fmt.Fprintln(cli.err, `SECURITY WARNING: You are building a Docker image from Windows against a Linux Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.`)
if err := utils.ValidateContextDirectory(contextDir, excludes); err != nil {
return fmt.Errorf("Error checking context: '%s'.", err)
}
var body io.Reader
// If .dockerignore mentions .dockerignore or the Dockerfile
// then make sure we send both files over to the daemon
// because Dockerfile is, obviously, needed no matter what, and
// .dockerignore is needed to know if either one needs to be
// removed. The deamon will remove them for us, if needed, after it
// parses the Dockerfile. Ignore errors here, as they will have been
// caught by ValidateContextDirectory above.
var includes = []string{"."}
keepThem1, _ := fileutils.Matches(".dockerignore", excludes)
keepThem2, _ := fileutils.Matches(relDockerfile, excludes)
if keepThem1 || keepThem2 {
includes = append(includes, ".dockerignore", relDockerfile)
}
context, err = archive.TarWithOptions(contextDir, &archive.TarOptions{
Compression: archive.Uncompressed,
ExcludePatterns: excludes,
IncludeFiles: includes,
})
if err != nil {
return err
}
// Wrap the tar archive to replace the Dockerfile entry with the rewritten
// Dockerfile which uses trusted pulls.
context = replaceDockerfileTarWrapper(context, newDockerfile, relDockerfile)
// Setup an upload progress bar
// FIXME: ProgressReader shouldn't be this annoying to use
if context != nil {
sf := streamformatter.NewStreamFormatter()
body = progressreader.New(progressreader.Config{
In: context,
Out: cli.out,
Formatter: sf,
NewLines: true,
ID: "",
Action: "Sending build context to Docker daemon",
})
}
sf := streamformatter.NewStreamFormatter()
var body io.Reader = progressreader.New(progressreader.Config{
In: context,
Out: cli.out,
Formatter: sf,
NewLines: true,
ID: "",
Action: "Sending build context to Docker daemon",
})
var memory int64
if *flMemoryString != "" {
@@ -274,13 +251,28 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
v.Set("cpusetcpus", *flCPUSetCpus)
v.Set("cpusetmems", *flCPUSetMems)
v.Set("cpushares", strconv.FormatInt(*flCPUShares, 10))
v.Set("cpuquota", strconv.FormatInt(*flCpuQuota, 10))
v.Set("cpuperiod", strconv.FormatInt(*flCpuPeriod, 10))
v.Set("cpuquota", strconv.FormatInt(*flCPUQuota, 10))
v.Set("cpuperiod", strconv.FormatInt(*flCPUPeriod, 10))
v.Set("memory", strconv.FormatInt(memory, 10))
v.Set("memswap", strconv.FormatInt(memorySwap, 10))
v.Set("cgroupparent", *flCgroupParent)
v.Set("dockerfile", *dockerfileName)
v.Set("dockerfile", relDockerfile)
ulimitsVar := flUlimits.GetList()
ulimitsJSON, err := json.Marshal(ulimitsVar)
if err != nil {
return err
}
v.Set("ulimits", string(ulimitsJSON))
// collect all the build-time environment variables for the container
buildArgs := runconfig.ConvertKVStringsToMap(flBuildArg.GetAll())
buildArgsJSON, err := json.Marshal(buildArgs)
if err != nil {
return err
}
v.Set("buildargs", string(buildArgsJSON))
headers := http.Header(make(map[string][]string))
buf, err := json.Marshal(cli.configFile.AuthConfigs)
@@ -288,23 +280,395 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
return err
}
headers.Add("X-Registry-Config", base64.URLEncoding.EncodeToString(buf))
headers.Set("Content-Type", "application/tar")
if context != nil {
headers.Set("Content-Type", "application/tar")
}
sopts := &streamOpts{
rawTerminal: true,
in: body,
out: cli.out,
headers: headers,
}
err = cli.stream("POST", fmt.Sprintf("/build?%s", v.Encode()), sopts)
serverResp, err := cli.stream("POST", fmt.Sprintf("/build?%s", v.Encode()), sopts)
// Windows: show error message about modified file permissions.
if runtime.GOOS == "windows" {
h, err := httputils.ParseServerHeader(serverResp.header.Get("Server"))
if err == nil {
if h.OS != "windows" {
fmt.Fprintln(cli.err, `SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.`)
}
}
}
if jerr, ok := err.(*jsonmessage.JSONError); ok {
// If no error code is set, default to 1
if jerr.Code == 0 {
jerr.Code = 1
}
return StatusError{Status: jerr.Message, StatusCode: jerr.Code}
return Cli.StatusError{Status: jerr.Message, StatusCode: jerr.Code}
}
return err
if err != nil {
return err
}
// Since the build was successful, now we must tag any of the resolved
// images from the above Dockerfile rewrite.
for _, resolved := range resolvedTags {
if err := cli.tagTrusted(resolved.repoInfo, resolved.digestRef, resolved.tagRef); err != nil {
return err
}
}
return nil
}
// isUNC returns true if the path is UNC (one starting \\). It always returns
// false on Linux.
func isUNC(path string) bool {
return runtime.GOOS == "windows" && strings.HasPrefix(path, `\\`)
}
// getDockerfileRelPath uses the given context directory for a `docker build`
// and returns the absolute path to the context directory, the relative path of
// the dockerfile in that context directory, and a non-nil error on success.
func getDockerfileRelPath(givenContextDir, givenDockerfile string) (absContextDir, relDockerfile string, err error) {
if absContextDir, err = filepath.Abs(givenContextDir); err != nil {
return "", "", fmt.Errorf("unable to get absolute context directory: %v", err)
}
// The context dir might be a symbolic link, so follow it to the actual
// target directory.
//
// FIXME. We use isUNC (always false on non-Windows platforms) to workaround
// an issue in golang. On Windows, EvalSymLinks does not work on UNC file
// paths (those starting with \\). This hack means that when using links
// on UNC paths, they will not be followed.
if !isUNC(absContextDir) {
absContextDir, err = filepath.EvalSymlinks(absContextDir)
if err != nil {
return "", "", fmt.Errorf("unable to evaluate symlinks in context path: %v", err)
}
}
stat, err := os.Lstat(absContextDir)
if err != nil {
return "", "", fmt.Errorf("unable to stat context directory %q: %v", absContextDir, err)
}
if !stat.IsDir() {
return "", "", fmt.Errorf("context must be a directory: %s", absContextDir)
}
absDockerfile := givenDockerfile
if absDockerfile == "" {
// No -f/--file was specified so use the default relative to the
// context directory.
absDockerfile = filepath.Join(absContextDir, api.DefaultDockerfileName)
// Just to be nice ;-) look for 'dockerfile' too but only
// use it if we found it, otherwise ignore this check
if _, err = os.Lstat(absDockerfile); os.IsNotExist(err) {
altPath := filepath.Join(absContextDir, strings.ToLower(api.DefaultDockerfileName))
if _, err = os.Lstat(altPath); err == nil {
absDockerfile = altPath
}
}
}
// If not already an absolute path, the Dockerfile path should be joined to
// the base directory.
if !filepath.IsAbs(absDockerfile) {
absDockerfile = filepath.Join(absContextDir, absDockerfile)
}
// Evaluate symlinks in the path to the Dockerfile too.
//
// FIXME. We use isUNC (always false on non-Windows platforms) to workaround
// an issue in golang. On Windows, EvalSymLinks does not work on UNC file
// paths (those starting with \\). This hack means that when using links
// on UNC paths, they will not be followed.
if !isUNC(absDockerfile) {
absDockerfile, err = filepath.EvalSymlinks(absDockerfile)
if err != nil {
return "", "", fmt.Errorf("unable to evaluate symlinks in Dockerfile path: %v", err)
}
}
if _, err := os.Lstat(absDockerfile); err != nil {
if os.IsNotExist(err) {
return "", "", fmt.Errorf("Cannot locate Dockerfile: %q", absDockerfile)
}
return "", "", fmt.Errorf("unable to stat Dockerfile: %v", err)
}
if relDockerfile, err = filepath.Rel(absContextDir, absDockerfile); err != nil {
return "", "", fmt.Errorf("unable to get relative Dockerfile path: %v", err)
}
if strings.HasPrefix(relDockerfile, ".."+string(filepath.Separator)) {
return "", "", fmt.Errorf("The Dockerfile (%s) must be within the build context (%s)", givenDockerfile, givenContextDir)
}
return absContextDir, relDockerfile, nil
}
// writeToFile copies from the given reader and writes it to a file with the
// given filename.
func writeToFile(r io.Reader, filename string) error {
file, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.FileMode(0600))
if err != nil {
return fmt.Errorf("unable to create file: %v", err)
}
defer file.Close()
if _, err := io.Copy(file, r); err != nil {
return fmt.Errorf("unable to write file: %v", err)
}
return nil
}
// getContextFromReader will read the contents of the given reader as either a
// Dockerfile or tar archive to be extracted to a temporary directory used as
// the context directory. Returns the absolute path to the temporary context
// directory, the relative path of the dockerfile in that context directory,
// and a non-nil error on success.
func getContextFromReader(r io.Reader, dockerfileName string) (absContextDir, relDockerfile string, err error) {
buf := bufio.NewReader(r)
magic, err := buf.Peek(tarHeaderSize)
if err != nil && err != io.EOF {
return "", "", fmt.Errorf("failed to peek context header from STDIN: %v", err)
}
if absContextDir, err = ioutil.TempDir("", "docker-build-context-"); err != nil {
return "", "", fmt.Errorf("unbale to create temporary context directory: %v", err)
}
defer func(d string) {
if err != nil {
os.RemoveAll(d)
}
}(absContextDir)
if !archive.IsArchive(magic) { // Input should be read as a Dockerfile.
// -f option has no meaning when we're reading it from stdin,
// so just use our default Dockerfile name
relDockerfile = api.DefaultDockerfileName
return absContextDir, relDockerfile, writeToFile(buf, filepath.Join(absContextDir, relDockerfile))
}
if err := archive.Untar(buf, absContextDir, nil); err != nil {
return "", "", fmt.Errorf("unable to extract stdin to temporary context directory: %v", err)
}
return getDockerfileRelPath(absContextDir, dockerfileName)
}
// getContextFromGitURL uses a Git URL as context for a `docker build`. The
// git repo is cloned into a temporary directory used as the context directory.
// Returns the absolute path to the temporary context directory, the relative
// path of the dockerfile in that context directory, and a non-nil error on
// success.
func getContextFromGitURL(gitURL, dockerfileName string) (absContextDir, relDockerfile string, err error) {
if absContextDir, err = utils.GitClone(gitURL); err != nil {
return "", "", fmt.Errorf("unable to 'git clone' to temporary context directory: %v", err)
}
return getDockerfileRelPath(absContextDir, dockerfileName)
}
// getContextFromURL uses a remote URL as context for a `docker build`. The
// remote resource is downloaded as either a Dockerfile or a context tar
// archive and stored in a temporary directory used as the context directory.
// Returns the absolute path to the temporary context directory, the relative
// path of the dockerfile in that context directory, and a non-nil error on
// success.
func getContextFromURL(out io.Writer, remoteURL, dockerfileName string) (absContextDir, relDockerfile string, err error) {
response, err := httputils.Download(remoteURL)
if err != nil {
return "", "", fmt.Errorf("unable to download remote context %s: %v", remoteURL, err)
}
defer response.Body.Close()
// Pass the response body through a progress reader.
progReader := &progressreader.Config{
In: response.Body,
Out: out,
Formatter: streamformatter.NewStreamFormatter(),
Size: response.ContentLength,
NewLines: true,
ID: "",
Action: fmt.Sprintf("Downloading build context from remote url: %s", remoteURL),
}
return getContextFromReader(progReader, dockerfileName)
}
// getContextFromLocalDir uses the given local directory as context for a
// `docker build`. Returns the absolute path to the local context directory,
// the relative path of the dockerfile in that context directory, and a non-nil
// error on success.
func getContextFromLocalDir(localDir, dockerfileName string) (absContextDir, relDockerfile string, err error) {
// When using a local context directory, when the Dockerfile is specified
// with the `-f/--file` option then it is considered relative to the
// current directory and not the context directory.
if dockerfileName != "" {
if dockerfileName, err = filepath.Abs(dockerfileName); err != nil {
return "", "", fmt.Errorf("unable to get absolute path to Dockerfile: %v", err)
}
}
return getDockerfileRelPath(localDir, dockerfileName)
}
var dockerfileFromLinePattern = regexp.MustCompile(`(?i)^[\s]*FROM[ \f\r\t\v]+(?P<image>[^ \f\r\t\v\n#]+)`)
type trustedDockerfile struct {
*os.File
size int64
}
func (td *trustedDockerfile) Close() error {
td.File.Close()
return os.Remove(td.File.Name())
}
// resolvedTag records the repository, tag, and resolved digest reference
// from a Dockerfile rewrite.
type resolvedTag struct {
repoInfo *registry.RepositoryInfo
digestRef, tagRef registry.Reference
}
// rewriteDockerfileFrom rewrites the given Dockerfile by resolving images in
// "FROM <image>" instructions to a digest reference. `translator` is a
// function that takes a repository name and tag reference and returns a
// trusted digest reference.
func rewriteDockerfileFrom(dockerfileName string, translator func(string, registry.Reference) (registry.Reference, error)) (newDockerfile *trustedDockerfile, resolvedTags []*resolvedTag, err error) {
dockerfile, err := os.Open(dockerfileName)
if err != nil {
return nil, nil, fmt.Errorf("unable to open Dockerfile: %v", err)
}
defer dockerfile.Close()
scanner := bufio.NewScanner(dockerfile)
// Make a tempfile to store the rewritten Dockerfile.
tempFile, err := ioutil.TempFile("", "trusted-dockerfile-")
if err != nil {
return nil, nil, fmt.Errorf("unable to make temporary trusted Dockerfile: %v", err)
}
trustedFile := &trustedDockerfile{
File: tempFile,
}
defer func() {
if err != nil {
// Close the tempfile if there was an error during Notary lookups.
// Otherwise the caller should close it.
trustedFile.Close()
}
}()
// Scan the lines of the Dockerfile, looking for a "FROM" line.
for scanner.Scan() {
line := scanner.Text()
matches := dockerfileFromLinePattern.FindStringSubmatch(line)
if matches != nil && matches[1] != "scratch" {
// Replace the line with a resolved "FROM repo@digest"
repo, tag := parsers.ParseRepositoryTag(matches[1])
if tag == "" {
tag = tags.DefaultTag
}
repoInfo, err := registry.ParseRepositoryInfo(repo)
if err != nil {
return nil, nil, fmt.Errorf("unable to parse repository info: %v", err)
}
ref := registry.ParseReference(tag)
if !ref.HasDigest() && isTrusted() {
trustedRef, err := translator(repo, ref)
if err != nil {
return nil, nil, err
}
line = dockerfileFromLinePattern.ReplaceAllLiteralString(line, fmt.Sprintf("FROM %s", trustedRef.ImageName(repo)))
resolvedTags = append(resolvedTags, &resolvedTag{
repoInfo: repoInfo,
digestRef: trustedRef,
tagRef: ref,
})
}
}
n, err := fmt.Fprintln(tempFile, line)
if err != nil {
return nil, nil, err
}
trustedFile.size += int64(n)
}
tempFile.Seek(0, os.SEEK_SET)
return trustedFile, resolvedTags, scanner.Err()
}
// replaceDockerfileTarWrapper wraps the given input tar archive stream and
// replaces the entry with the given Dockerfile name with the contents of the
// new Dockerfile. Returns a new tar archive stream with the replaced
// Dockerfile.
func replaceDockerfileTarWrapper(inputTarStream io.ReadCloser, newDockerfile *trustedDockerfile, dockerfileName string) io.ReadCloser {
pipeReader, pipeWriter := io.Pipe()
go func() {
tarReader := tar.NewReader(inputTarStream)
tarWriter := tar.NewWriter(pipeWriter)
defer inputTarStream.Close()
for {
hdr, err := tarReader.Next()
if err == io.EOF {
// Signals end of archive.
tarWriter.Close()
pipeWriter.Close()
return
}
if err != nil {
pipeWriter.CloseWithError(err)
return
}
var content io.Reader = tarReader
if hdr.Name == dockerfileName {
// This entry is the Dockerfile. Since the tar archive was
// generated from a directory on the local filesystem, the
// Dockerfile will only appear once in the archive.
hdr.Size = newDockerfile.size
content = newDockerfile
}
if err := tarWriter.WriteHeader(hdr); err != nil {
pipeWriter.CloseWithError(err)
return
}
if _, err := io.Copy(tarWriter, content); err != nil {
pipeWriter.CloseWithError(err)
return
}
}
}()
return pipeReader
}

View File

@@ -2,31 +2,34 @@ package client
import (
"crypto/tls"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"net/url"
"os"
"path/filepath"
"reflect"
"strings"
"text/template"
"github.com/docker/docker/cli"
"github.com/docker/docker/cliconfig"
"github.com/docker/docker/pkg/homedir"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/sockets"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/utils"
"github.com/docker/docker/pkg/tlsconfig"
)
// DockerCli represents the docker command line client.
// Instances of the client can be returned from NewDockerCli.
type DockerCli struct {
// initializing closure
init func() error
// proto holds the client protocol i.e. unix.
proto string
// addr holds the client address.
addr string
// basePath holds the path to prepend to the requests
basePath string
// configFile has the client configuration file
configFile *cliconfig.ConfigFile
@@ -49,88 +52,19 @@ type DockerCli struct {
outFd uintptr
// isTerminalIn indicates whether the client's STDIN is a TTY
isTerminalIn bool
// isTerminalOut dindicates whether the client's STDOUT is a TTY
// isTerminalOut indicates whether the client's STDOUT is a TTY
isTerminalOut bool
// transport holds the client transport instance.
transport *http.Transport
}
var funcMap = template.FuncMap{
"json": func(v interface{}) string {
a, _ := json.Marshal(v)
return string(a)
},
}
func (cli *DockerCli) Out() io.Writer {
return cli.out
}
func (cli *DockerCli) Err() io.Writer {
return cli.err
}
func (cli *DockerCli) getMethod(args ...string) (func(...string) error, bool) {
camelArgs := make([]string, len(args))
for i, s := range args {
if len(s) == 0 {
return nil, false
}
camelArgs[i] = strings.ToUpper(s[:1]) + strings.ToLower(s[1:])
// Initialize calls the init function that will setup the configuration for the client
// such as the TLS, tcp and other parameters used to run the client.
func (cli *DockerCli) Initialize() error {
if cli.init == nil {
return nil
}
methodName := "Cmd" + strings.Join(camelArgs, "")
method := reflect.ValueOf(cli).MethodByName(methodName)
if !method.IsValid() {
return nil, false
}
return method.Interface().(func(...string) error), true
}
// Cmd executes the specified command.
func (cli *DockerCli) Cmd(args ...string) error {
if len(args) > 1 {
method, exists := cli.getMethod(args[:2]...)
if exists {
return method(args[2:]...)
}
}
if len(args) > 0 {
method, exists := cli.getMethod(args[0])
if !exists {
return fmt.Errorf("docker: '%s' is not a docker command. See 'docker --help'.", args[0])
}
return method(args[1:]...)
}
return cli.CmdHelp()
}
// Subcmd is a subcommand of the main "docker" command.
// A subcommand represents an action that can be performed
// from the Docker command line client.
//
// To see all available subcommands, run "docker --help".
func (cli *DockerCli) Subcmd(name, signature, description string, exitOnError bool) *flag.FlagSet {
var errorHandling flag.ErrorHandling
if exitOnError {
errorHandling = flag.ExitOnError
} else {
errorHandling = flag.ContinueOnError
}
flags := flag.NewFlagSet(name, errorHandling)
flags.Usage = func() {
options := ""
if signature != "" {
signature = " " + signature
}
if flags.FlagCountUndeprecated() > 0 {
options = " [OPTIONS]"
}
fmt.Fprintf(cli.out, "\nUsage: docker %s%s%s\n\n%s\n\n", name, options, signature, description)
flags.SetOutput(cli.out)
flags.PrintDefaults()
os.Exit(0)
}
return flags
return cli.init()
}
// CheckTtyInput checks if we are trying to attach to a container tty
@@ -145,59 +79,91 @@ func (cli *DockerCli) CheckTtyInput(attachStdin, ttyMode bool) error {
return nil
}
// PsFormat returns the format string specified in the configuration.
// String contains columns and format specification, for example {{ID}\t{{Name}}.
func (cli *DockerCli) PsFormat() string {
return cli.configFile.PsFormat
}
// NewDockerCli returns a DockerCli instance with IO output and error streams set by in, out and err.
// The key file, protocol (i.e. unix) and address are passed in as strings, along with the tls.Config. If the tls.Config
// is set the client scheme will be set to https.
// The client will be given a 32-second timeout (see https://github.com/docker/docker/pull/8035).
func NewDockerCli(in io.ReadCloser, out, err io.Writer, keyFile string, proto, addr string, tlsConfig *tls.Config) *DockerCli {
var (
inFd uintptr
outFd uintptr
isTerminalIn = false
isTerminalOut = false
scheme = "http"
)
if tlsConfig != nil {
scheme = "https"
}
if in != nil {
inFd, isTerminalIn = term.GetFdInfo(in)
func NewDockerCli(in io.ReadCloser, out, err io.Writer, clientFlags *cli.ClientFlags) *DockerCli {
cli := &DockerCli{
in: in,
out: out,
err: err,
keyFile: clientFlags.Common.TrustKey,
}
if out != nil {
outFd, isTerminalOut = term.GetFdInfo(out)
cli.init = func() error {
clientFlags.PostParse()
hosts := clientFlags.Common.Hosts
switch len(hosts) {
case 0:
hosts = []string{os.Getenv("DOCKER_HOST")}
case 1:
// only accept one host to talk to
default:
return errors.New("Please specify only one -H")
}
defaultHost := opts.DefaultTCPHost
if clientFlags.Common.TLSOptions != nil {
defaultHost = opts.DefaultTLSHost
}
var e error
if hosts[0], e = opts.ParseHost(defaultHost, hosts[0]); e != nil {
return e
}
protoAddrParts := strings.SplitN(hosts[0], "://", 2)
cli.proto, cli.addr = protoAddrParts[0], protoAddrParts[1]
if cli.proto == "tcp" {
// error is checked in pkg/parsers already
parsed, _ := url.Parse("tcp://" + cli.addr)
cli.addr = parsed.Host
cli.basePath = parsed.Path
}
if clientFlags.Common.TLSOptions != nil {
cli.scheme = "https"
var e error
cli.tlsConfig, e = tlsconfig.Client(*clientFlags.Common.TLSOptions)
if e != nil {
return e
}
} else {
cli.scheme = "http"
}
if cli.in != nil {
cli.inFd, cli.isTerminalIn = term.GetFdInfo(cli.in)
}
if cli.out != nil {
cli.outFd, cli.isTerminalOut = term.GetFdInfo(cli.out)
}
// The transport is created here for reuse during the client session.
cli.transport = &http.Transport{
TLSClientConfig: cli.tlsConfig,
}
sockets.ConfigureTCPTransport(cli.transport, cli.proto, cli.addr)
configFile, e := cliconfig.Load(cliconfig.ConfigDir())
if e != nil {
fmt.Fprintf(cli.err, "WARNING: Error loading config file:%v\n", e)
}
cli.configFile = configFile
return nil
}
if err == nil {
err = out
}
// The transport is created here for reuse during the client session.
tr := &http.Transport{
TLSClientConfig: tlsConfig,
}
utils.ConfigureTCPTransport(tr, proto, addr)
configFile, e := cliconfig.Load(filepath.Join(homedir.Get(), ".docker"))
if e != nil {
fmt.Fprintf(err, "WARNING: Error loading config file:%v\n", e)
}
return &DockerCli{
proto: proto,
addr: addr,
configFile: configFile,
in: in,
out: out,
err: err,
keyFile: keyFile,
inFd: inFd,
outFd: outFd,
isTerminalIn: isTerminalIn,
isTerminalOut: isTerminalOut,
tlsConfig: tlsConfig,
scheme: scheme,
transport: tr,
}
return cli
}

View File

@@ -3,15 +3,3 @@
// Run "docker help SUBCOMMAND" or "docker SUBCOMMAND --help" to see more information on any Docker subcommand, including the full list of options supported for the subcommand.
// See https://docs.docker.com/installation/ for instructions on installing Docker.
package client
import "fmt"
// An StatusError reports an unsuccessful exit by a command.
type StatusError struct {
Status string
StatusCode int
}
func (e StatusError) Error() string {
return fmt.Sprintf("Status: %s, Code: %d", e.Status, e.StatusCode)
}

View File

@@ -6,6 +6,7 @@ import (
"net/url"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
@@ -17,7 +18,7 @@ import (
//
// Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
func (cli *DockerCli) CmdCommit(args ...string) error {
cmd := cli.Subcmd("commit", "CONTAINER [REPOSITORY[:TAG]]", "Create a new image from a container's changes", true)
cmd := Cli.Subcmd("commit", []string{"CONTAINER [REPOSITORY[:TAG]]"}, Cli.DockerCommands["commit"].Description, true)
flPause := cmd.Bool([]string{"p", "-pause"}, true, "Pause container during commit")
flComment := cmd.String([]string{"m", "-message"}, "", "Commit message")
flAuthor := cmd.String([]string{"a", "#author", "-author"}, "", "Author (e.g., \"John Hannibal Smith <hannibal@a-team.com>\")")
@@ -27,6 +28,7 @@ func (cli *DockerCli) CmdCommit(args ...string) error {
flConfig := cmd.String([]string{"#run", "#-run"}, "", "This option is deprecated and will be removed in a future version in favor of inline Dockerfile-compatible commands")
cmd.Require(flag.Max, 2)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
var (
@@ -66,12 +68,14 @@ func (cli *DockerCli) CmdCommit(args ...string) error {
return err
}
}
stream, _, err := cli.call("POST", "/commit?"+v.Encode(), config, nil)
serverResp, err := cli.call("POST", "/commit?"+v.Encode(), config, nil)
if err != nil {
return err
}
if err := json.NewDecoder(stream).Decode(&response); err != nil {
defer serverResp.body.Close()
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
return err
}

View File

@@ -1,57 +1,325 @@
package client
import (
"encoding/base64"
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
"os"
"path/filepath"
"strings"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/archive"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/system"
)
// CmdCp copies files/folders from a path on the container to a directory on the host running the command.
//
// If HOSTDIR is '-', the data is written as a tar file to STDOUT.
//
// Usage: docker cp CONTAINER:PATH HOSTDIR
func (cli *DockerCli) CmdCp(args ...string) error {
cmd := cli.Subcmd("cp", "CONTAINER:PATH HOSTDIR|-", "Copy files/folders from a PATH on the container to a HOSTDIR on the host\nrunning the command. Use '-' to write the data as a tar file to STDOUT.", true)
cmd.Require(flag.Exact, 2)
type copyDirection int
const (
fromContainer copyDirection = (1 << iota)
toContainer
acrossContainers = fromContainer | toContainer
)
// CmdCp copies files/folders to or from a path in a container.
//
// When copying from a container, if LOCALPATH is '-' the data is written as a
// tar archive file to STDOUT.
//
// When copying to a container, if LOCALPATH is '-' the data is read as a tar
// archive file from STDIN, and the destination CONTAINER:PATH, must specify
// a directory.
//
// Usage:
// docker cp CONTAINER:PATH LOCALPATH|-
// docker cp LOCALPATH|- CONTAINER:PATH
func (cli *DockerCli) CmdCp(args ...string) error {
cmd := Cli.Subcmd(
"cp",
[]string{"CONTAINER:PATH LOCALPATH|-", "LOCALPATH|- CONTAINER:PATH"},
strings.Join([]string{
Cli.DockerCommands["cp"].Description,
"\nUse '-' as the source to read a tar archive from stdin\n",
"and extract it to a directory destination in a container.\n",
"Use '-' as the destination to stream a tar archive of a\n",
"container source to stdout.",
}, ""),
true,
)
cmd.Require(flag.Exact, 2)
cmd.ParseFlags(args, true)
// deal with path name with `:`
info := strings.SplitN(cmd.Arg(0), ":", 2)
if len(info) != 2 {
return fmt.Errorf("Error: Path not specified")
if cmd.Arg(0) == "" {
return fmt.Errorf("source can not be empty")
}
if cmd.Arg(1) == "" {
return fmt.Errorf("destination can not be empty")
}
cfg := &types.CopyConfig{
Resource: info[1],
srcContainer, srcPath := splitCpArg(cmd.Arg(0))
dstContainer, dstPath := splitCpArg(cmd.Arg(1))
var direction copyDirection
if srcContainer != "" {
direction |= fromContainer
}
stream, statusCode, err := cli.call("POST", "/containers/"+info[0]+"/copy", cfg, nil)
if stream != nil {
defer stream.Close()
if dstContainer != "" {
direction |= toContainer
}
if statusCode == 404 {
return fmt.Errorf("No such container: %v", info[0])
switch direction {
case fromContainer:
return cli.copyFromContainer(srcContainer, srcPath, dstPath)
case toContainer:
return cli.copyToContainer(srcPath, dstContainer, dstPath)
case acrossContainers:
// Copying between containers isn't supported.
return fmt.Errorf("copying between containers is not supported")
default:
// User didn't specify any container.
return fmt.Errorf("must specify at least one container source")
}
}
// We use `:` as a delimiter between CONTAINER and PATH, but `:` could also be
// in a valid LOCALPATH, like `file:name.txt`. We can resolve this ambiguity by
// requiring a LOCALPATH with a `:` to be made explicit with a relative or
// absolute path:
// `/path/to/file:name.txt` or `./file:name.txt`
//
// This is apparently how `scp` handles this as well:
// http://www.cyberciti.biz/faq/rsync-scp-file-name-with-colon-punctuation-in-it/
//
// We can't simply check for a filepath separator because container names may
// have a separator, e.g., "host0/cname1" if container is in a Docker cluster,
// so we have to check for a `/` or `.` prefix. Also, in the case of a Windows
// client, a `:` could be part of an absolute Windows path, in which case it
// is immediately proceeded by a backslash.
func splitCpArg(arg string) (container, path string) {
if system.IsAbs(arg) {
// Explicit local absolute path, e.g., `C:\foo` or `/foo`.
return "", arg
}
parts := strings.SplitN(arg, ":", 2)
if len(parts) == 1 || strings.HasPrefix(parts[0], ".") {
// Either there's no `:` in the arg
// OR it's an explicit local relative path like `./file:name.txt`.
return "", arg
}
return parts[0], parts[1]
}
func (cli *DockerCli) statContainerPath(containerName, path string) (types.ContainerPathStat, error) {
var stat types.ContainerPathStat
query := make(url.Values, 1)
query.Set("path", filepath.ToSlash(path)) // Normalize the paths used in the API.
urlStr := fmt.Sprintf("/containers/%s/archive?%s", containerName, query.Encode())
response, err := cli.call("HEAD", urlStr, nil, nil)
if err != nil {
return err
return stat, err
}
defer response.body.Close()
if response.statusCode != http.StatusOK {
return stat, fmt.Errorf("unexpected status code from daemon: %d", response.statusCode)
}
hostPath := cmd.Arg(1)
if statusCode == 200 {
if hostPath == "-" {
_, err = io.Copy(cli.out, stream)
} else {
err = archive.Untar(stream, hostPath, &archive.TarOptions{NoLchown: true})
}
return getContainerPathStatFromHeader(response.header)
}
func getContainerPathStatFromHeader(header http.Header) (types.ContainerPathStat, error) {
var stat types.ContainerPathStat
encodedStat := header.Get("X-Docker-Container-Path-Stat")
statDecoder := base64.NewDecoder(base64.StdEncoding, strings.NewReader(encodedStat))
err := json.NewDecoder(statDecoder).Decode(&stat)
if err != nil {
err = fmt.Errorf("unable to decode container path stat header: %s", err)
}
return stat, err
}
func resolveLocalPath(localPath string) (absPath string, err error) {
if absPath, err = filepath.Abs(localPath); err != nil {
return
}
return archive.PreserveTrailingDotOrSeparator(absPath, localPath), nil
}
func (cli *DockerCli) copyFromContainer(srcContainer, srcPath, dstPath string) (err error) {
if dstPath != "-" {
// Get an absolute destination path.
dstPath, err = resolveLocalPath(dstPath)
if err != nil {
return err
}
}
query := make(url.Values, 1)
query.Set("path", filepath.ToSlash(srcPath)) // Normalize the paths used in the API.
urlStr := fmt.Sprintf("/containers/%s/archive?%s", srcContainer, query.Encode())
response, err := cli.call("GET", urlStr, nil, nil)
if err != nil {
return err
}
defer response.body.Close()
if response.statusCode != http.StatusOK {
return fmt.Errorf("unexpected status code from daemon: %d", response.statusCode)
}
if dstPath == "-" {
// Send the response to STDOUT.
_, err = io.Copy(os.Stdout, response.body)
return err
}
// In order to get the copy behavior right, we need to know information
// about both the source and the destination. The response headers include
// stat info about the source that we can use in deciding exactly how to
// copy it locally. Along with the stat info about the local destination,
// we have everything we need to handle the multiple possibilities there
// can be when copying a file/dir from one location to another file/dir.
stat, err := getContainerPathStatFromHeader(response.header)
if err != nil {
return fmt.Errorf("unable to get resource stat from response: %s", err)
}
// Prepare source copy info.
srcInfo := archive.CopyInfo{
Path: srcPath,
Exists: true,
IsDir: stat.Mode.IsDir(),
}
// See comments in the implementation of `archive.CopyTo` for exactly what
// goes into deciding how and whether the source archive needs to be
// altered for the correct copy behavior.
return archive.CopyTo(response.body, srcInfo, dstPath)
}
func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string) (err error) {
if srcPath != "-" {
// Get an absolute source path.
srcPath, err = resolveLocalPath(srcPath)
if err != nil {
return err
}
}
// In order to get the copy behavior right, we need to know information
// about both the source and destination. The API is a simple tar
// archive/extract API but we can use the stat info header about the
// destination to be more informed about exactly what the destination is.
// Prepare destination copy info by stat-ing the container path.
dstInfo := archive.CopyInfo{Path: dstPath}
dstStat, err := cli.statContainerPath(dstContainer, dstPath)
// If the destination is a symbolic link, we should evaluate it.
if err == nil && dstStat.Mode&os.ModeSymlink != 0 {
linkTarget := dstStat.LinkTarget
if !system.IsAbs(linkTarget) {
// Join with the parent directory.
dstParent, _ := archive.SplitPathDirEntry(dstPath)
linkTarget = filepath.Join(dstParent, linkTarget)
}
dstInfo.Path = linkTarget
dstStat, err = cli.statContainerPath(dstContainer, linkTarget)
}
// Ignore any error and assume that the parent directory of the destination
// path exists, in which case the copy may still succeed. If there is any
// type of conflict (e.g., non-directory overwriting an existing directory
// or vice versia) the extraction will fail. If the destination simply did
// not exist, but the parent directory does, the extraction will still
// succeed.
if err == nil {
dstInfo.Exists, dstInfo.IsDir = true, dstStat.Mode.IsDir()
}
var (
content io.Reader
resolvedDstPath string
)
if srcPath == "-" {
// Use STDIN.
content = os.Stdin
resolvedDstPath = dstInfo.Path
if !dstInfo.IsDir {
return fmt.Errorf("destination %q must be a directory", fmt.Sprintf("%s:%s", dstContainer, dstPath))
}
} else {
// Prepare source copy info.
srcInfo, err := archive.CopyInfoSourcePath(srcPath)
if err != nil {
return err
}
srcArchive, err := archive.TarResource(srcInfo)
if err != nil {
return err
}
defer srcArchive.Close()
// With the stat info about the local source as well as the
// destination, we have enough information to know whether we need to
// alter the archive that we upload so that when the server extracts
// it to the specified directory in the container we get the disired
// copy behavior.
// See comments in the implementation of `archive.PrepareArchiveCopy`
// for exactly what goes into deciding how and whether the source
// archive needs to be altered for the correct copy behavior when it is
// extracted. This function also infers from the source and destination
// info which directory to extract to, which may be the parent of the
// destination that the user specified.
dstDir, preparedArchive, err := archive.PrepareArchiveCopy(srcArchive, srcInfo, dstInfo)
if err != nil {
return err
}
defer preparedArchive.Close()
resolvedDstPath = dstDir
content = preparedArchive
}
query := make(url.Values, 2)
query.Set("path", filepath.ToSlash(resolvedDstPath)) // Normalize the paths used in the API.
// Do not allow for an existing directory to be overwritten by a non-directory and vice versa.
query.Set("noOverwriteDirNonDir", "true")
urlStr := fmt.Sprintf("/containers/%s/archive?%s", dstContainer, query.Encode())
response, err := cli.stream("PUT", urlStr, &streamOpts{in: content})
if err != nil {
return err
}
defer response.body.Close()
if response.statusCode != http.StatusOK {
return fmt.Errorf("unexpected status code from daemon: %d", response.statusCode)
}
return nil
}

View File

@@ -10,11 +10,11 @@ import (
"strings"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/graph/tags"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/registry"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/utils"
)
func (cli *DockerCli) pullImage(image string) error {
@@ -26,7 +26,7 @@ func (cli *DockerCli) pullImageCustomOut(image string, out io.Writer) error {
repos, tag := parsers.ParseRepositoryTag(image)
// pull only the image tagged 'latest' if no tag was specified
if tag == "" {
tag = tags.DEFAULTTAG
tag = tags.DefaultTag
}
v.Set("fromImage", repos)
v.Set("tag", tag)
@@ -52,7 +52,7 @@ func (cli *DockerCli) pullImageCustomOut(image string, out io.Writer) error {
out: out,
headers: map[string][]string{"X-Registry-Auth": registryAuthHeader},
}
if err := cli.stream("POST", "/images/create?"+v.Encode(), sopts); err != nil {
if _, err := cli.stream("POST", "/images/create?"+v.Encode(), sopts); err != nil {
return err
}
return nil
@@ -94,30 +94,54 @@ func (cli *DockerCli) createContainer(config *runconfig.Config, hostConfig *runc
defer containerIDFile.Close()
}
//create the container
stream, statusCode, err := cli.call("POST", "/containers/create?"+containerValues.Encode(), mergedConfig, nil)
//if image not found try to pull it
if statusCode == 404 && strings.Contains(err.Error(), config.Image) {
repo, tag := parsers.ParseRepositoryTag(config.Image)
if tag == "" {
tag = tags.DEFAULTTAG
repo, tag := parsers.ParseRepositoryTag(config.Image)
if tag == "" {
tag = tags.DefaultTag
}
ref := registry.ParseReference(tag)
var trustedRef registry.Reference
if isTrusted() && !ref.HasDigest() {
var err error
trustedRef, err = cli.trustedReference(repo, ref)
if err != nil {
return nil, err
}
fmt.Fprintf(cli.err, "Unable to find image '%s' locally\n", utils.ImageReference(repo, tag))
config.Image = trustedRef.ImageName(repo)
}
//create the container
serverResp, err := cli.call("POST", "/containers/create?"+containerValues.Encode(), mergedConfig, nil)
//if image not found try to pull it
if serverResp.statusCode == 404 && strings.Contains(err.Error(), config.Image) {
fmt.Fprintf(cli.err, "Unable to find image '%s' locally\n", ref.ImageName(repo))
// we don't want to write to stdout anything apart from container.ID
if err = cli.pullImageCustomOut(config.Image, cli.err); err != nil {
return nil, err
}
if trustedRef != nil && !ref.HasDigest() {
repoInfo, err := registry.ParseRepositoryInfo(repo)
if err != nil {
return nil, err
}
if err := cli.tagTrusted(repoInfo, trustedRef, ref); err != nil {
return nil, err
}
}
// Retry
if stream, _, err = cli.call("POST", "/containers/create?"+containerValues.Encode(), mergedConfig, nil); err != nil {
if serverResp, err = cli.call("POST", "/containers/create?"+containerValues.Encode(), mergedConfig, nil); err != nil {
return nil, err
}
} else if err != nil {
return nil, err
}
defer serverResp.body.Close()
var response types.ContainerCreateResponse
if err := json.NewDecoder(stream).Decode(&response); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
return nil, err
}
for _, warning := range response.Warnings {
@@ -135,7 +159,8 @@ func (cli *DockerCli) createContainer(config *runconfig.Config, hostConfig *runc
//
// Usage: docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
func (cli *DockerCli) CmdCreate(args ...string) error {
cmd := cli.Subcmd("create", "IMAGE [COMMAND] [ARG...]", "Create a new container", true)
cmd := Cli.Subcmd("create", []string{"IMAGE [COMMAND] [ARG...]"}, Cli.DockerCommands["create"].Description, true)
addTrustedFlags(cmd, true)
// These are flags not stored in Config/HostConfig
var (
@@ -145,6 +170,7 @@ func (cli *DockerCli) CmdCreate(args ...string) error {
config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
if err != nil {
cmd.ReportError(err.Error(), true)
os.Exit(1)
}
if config.Image == "" {
cmd.Usage()

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/archive"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -17,21 +18,24 @@ import (
//
// Usage: docker diff CONTAINER
func (cli *DockerCli) CmdDiff(args ...string) error {
cmd := cli.Subcmd("diff", "CONTAINER", "Inspect changes on a container's filesystem", true)
cmd := Cli.Subcmd("diff", []string{"CONTAINER"}, Cli.DockerCommands["diff"].Description, true)
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
if cmd.Arg(0) == "" {
return fmt.Errorf("Container name cannot be empty")
}
rdr, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/changes", nil, nil)
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/changes", nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
changes := []types.ContainerChange{}
if err := json.NewDecoder(rdr).Decode(&changes); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&changes); err != nil {
return err
}

View File

@@ -2,7 +2,9 @@ package client
import (
"net/url"
"time"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers/filters"
@@ -13,7 +15,7 @@ import (
//
// Usage: docker events [OPTIONS]
func (cli *DockerCli) CmdEvents(args ...string) error {
cmd := cli.Subcmd("events", "", "Get real time events from the server", true)
cmd := Cli.Subcmd("events", nil, Cli.DockerCommands["events"].Description, true)
since := cmd.String([]string{"#since", "-since"}, "", "Show all events created since timestamp")
until := cmd.String([]string{"-until"}, "", "Stream events until this timestamp")
flFilter := opts.NewListOpts(nil)
@@ -36,11 +38,12 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
return err
}
}
ref := time.Now()
if *since != "" {
v.Set("since", timeutils.GetTimestamp(*since))
v.Set("since", timeutils.GetTimestamp(*since, ref))
}
if *until != "" {
v.Set("until", timeutils.GetTimestamp(*until))
v.Set("until", timeutils.GetTimestamp(*until, ref))
}
if len(eventFilterArgs) > 0 {
filterJSON, err := filters.ToParam(eventFilterArgs)
@@ -53,7 +56,7 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
rawTerminal: true,
out: cli.out,
}
if err := cli.stream("GET", "/events?"+v.Encode(), sopts); err != nil {
if _, err := cli.stream("GET", "/events?"+v.Encode(), sopts); err != nil {
return err
}
return nil

View File

@@ -7,6 +7,7 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/promise"
"github.com/docker/docker/runconfig"
)
@@ -15,21 +16,23 @@ import (
//
// Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
func (cli *DockerCli) CmdExec(args ...string) error {
cmd := cli.Subcmd("exec", "CONTAINER COMMAND [ARG...]", "Run a command in a running container", true)
cmd := Cli.Subcmd("exec", []string{"CONTAINER COMMAND [ARG...]"}, Cli.DockerCommands["exec"].Description, true)
execConfig, err := runconfig.ParseExec(cmd, args)
// just in case the ParseExec does not exit
if execConfig.Container == "" || err != nil {
return StatusError{StatusCode: 1}
return Cli.StatusError{StatusCode: 1}
}
stream, _, err := cli.call("POST", "/containers/"+execConfig.Container+"/exec", execConfig, nil)
serverResp, err := cli.call("POST", "/containers/"+execConfig.Container+"/exec", execConfig, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
var response types.ContainerExecCreateResponse
if err := json.NewDecoder(stream).Decode(&response); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
return err
}
@@ -124,7 +127,7 @@ func (cli *DockerCli) CmdExec(args ...string) error {
}
if status != 0 {
return StatusError{StatusCode: status}
return Cli.StatusError{StatusCode: status}
}
return nil

View File

@@ -2,9 +2,9 @@ package client
import (
"errors"
"io"
"os"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -14,14 +14,14 @@ import (
//
// Usage: docker export [OPTIONS] CONTAINER
func (cli *DockerCli) CmdExport(args ...string) error {
cmd := cli.Subcmd("export", "CONTAINER", "Export a filesystem as a tar archive (streamed to STDOUT by default)", true)
cmd := Cli.Subcmd("export", []string{"CONTAINER"}, Cli.DockerCommands["export"].Description, true)
outfile := cmd.String([]string{"o", "-output"}, "", "Write to a file, instead of STDOUT")
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
var (
output io.Writer = cli.out
output = cli.out
err error
)
if *outfile != "" {
@@ -38,7 +38,7 @@ func (cli *DockerCli) CmdExport(args ...string) error {
rawTerminal: true,
out: output,
}
if err := cli.stream("GET", "/containers/"+image+"/export", sopts); err != nil {
if _, err := cli.stream("GET", "/containers/"+image+"/export", sopts); err != nil {
return err
}

View File

@@ -1,34 +0,0 @@
package client
import (
"fmt"
flag "github.com/docker/docker/pkg/mflag"
)
// CmdHelp displays information on a Docker command.
//
// If more than one command is specified, information is only shown for the first command.
//
// Usage: docker help COMMAND or docker COMMAND --help
func (cli *DockerCli) CmdHelp(args ...string) error {
if len(args) > 1 {
method, exists := cli.getMethod(args[:2]...)
if exists {
method("--help")
return nil
}
}
if len(args) > 0 {
method, exists := cli.getMethod(args[0])
if !exists {
return fmt.Errorf("docker: '%s' is not a docker command. See 'docker --help'.", args[0])
}
method("--help")
return nil
}
flag.Usage()
return nil
}

View File

@@ -16,7 +16,6 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/promise"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/term"
)
@@ -138,24 +137,31 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
if err != nil {
return err
}
req, err := http.NewRequest(method, fmt.Sprintf("/v%s%s", api.APIVERSION, path), params)
req, err := http.NewRequest(method, fmt.Sprintf("%s/v%s%s", cli.basePath, api.Version, path), params)
if err != nil {
return err
}
// Add CLI Config's HTTP Headers BEFORE we set the Docker headers
// then the user can't change OUR headers
for k, v := range cli.configFile.HttpHeaders {
for k, v := range cli.configFile.HTTPHeaders {
req.Header.Set(k, v)
}
req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION)
req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION+" ("+runtime.GOOS+")")
req.Header.Set("Content-Type", "text/plain")
req.Header.Set("Connection", "Upgrade")
req.Header.Set("Upgrade", "tcp")
req.Host = cli.addr
dial, err := cli.dial()
if err != nil {
if strings.Contains(err.Error(), "connection refused") {
return fmt.Errorf("Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?")
}
return err
}
// When we set up a TCP connection for hijack, there could be long periods
// of inactivity (a long running command with no output) that in certain
// network setups may cause ECONNTIMEOUT, leaving the client in an unknown
@@ -165,12 +171,7 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
tcpConn.SetKeepAlive(true)
tcpConn.SetKeepAlivePeriod(30 * time.Second)
}
if err != nil {
if strings.Contains(err.Error(), "connection refused") {
return fmt.Errorf("Cannot connect to the Docker daemon. Is 'docker -d' running on this host?")
}
return err
}
clientconn := httputil.NewClientConn(dial, nil)
defer clientconn.Close()
@@ -184,8 +185,6 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
started <- rwc
}
var receiveStdout chan error
var oldState *term.State
if in != nil && setRawTerminal && cli.isTerminalIn && os.Getenv("NORAW") == "" {
@@ -196,19 +195,15 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
defer term.RestoreTerminal(cli.inFd, oldState)
}
receiveStdout := make(chan error, 1)
if stdout != nil || stderr != nil {
receiveStdout = promise.Go(func() (err error) {
go func() {
defer func() {
if in != nil {
if setRawTerminal && cli.isTerminalIn {
term.RestoreTerminal(cli.inFd, oldState)
}
// For some reason this Close call blocks on darwin..
// As the client exists right after, simply discard the close
// until we find a better solution.
if runtime.GOOS != "darwin" {
in.Close()
}
in.Close()
}
}()
@@ -219,11 +214,12 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
_, err = stdcopy.StdCopy(stdout, stderr, br)
}
logrus.Debugf("[hijack] End of stdout")
return err
})
receiveStdout <- err
}()
}
sendStdin := promise.Go(func() error {
stdinDone := make(chan struct{})
go func() {
if in != nil {
io.Copy(rwc, in)
logrus.Debugf("[hijack] End of stdin")
@@ -236,22 +232,23 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
logrus.Debugf("Couldn't send EOF: %s", err)
}
}
// Discard errors due to pipe interruption
return nil
})
close(stdinDone)
}()
if stdout != nil || stderr != nil {
if err := <-receiveStdout; err != nil {
select {
case err := <-receiveStdout:
if err != nil {
logrus.Debugf("Error receiveStdout: %s", err)
return err
}
}
if !cli.isTerminalIn {
if err := <-sendStdin; err != nil {
logrus.Debugf("Error sendStdin: %s", err)
return err
case <-stdinDone:
if stdout != nil || stderr != nil {
if err := <-receiveStdout; err != nil {
logrus.Debugf("Error receiveStdout: %s", err)
return err
}
}
}
return nil
}

View File

@@ -3,10 +3,12 @@ package client
import (
"encoding/json"
"fmt"
"strings"
"text/tabwriter"
"time"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/pkg/stringutils"
@@ -17,20 +19,23 @@ import (
//
// Usage: docker history [OPTIONS] IMAGE
func (cli *DockerCli) CmdHistory(args ...string) error {
cmd := cli.Subcmd("history", "IMAGE", "Show the history of an image", true)
cmd := Cli.Subcmd("history", []string{"IMAGE"}, Cli.DockerCommands["history"].Description, true)
human := cmd.Bool([]string{"H", "-human"}, true, "Print sizes and dates in human readable format")
quiet := cmd.Bool([]string{"q", "-quiet"}, false, "Only show numeric IDs")
noTrunc := cmd.Bool([]string{"#notrunc", "-no-trunc"}, false, "Don't truncate output")
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
rdr, _, err := cli.call("GET", "/images/"+cmd.Arg(0)+"/history", nil, nil)
serverResp, err := cli.call("GET", "/images/"+cmd.Arg(0)+"/history", nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
history := []types.ImageHistory{}
if err := json.NewDecoder(rdr).Decode(&history); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&history); err != nil {
return err
}
@@ -53,9 +58,9 @@ func (cli *DockerCli) CmdHistory(args ...string) error {
}
if *noTrunc {
fmt.Fprintf(w, "%s\t", entry.CreatedBy)
fmt.Fprintf(w, "%s\t", strings.Replace(entry.CreatedBy, "\t", " ", -1))
} else {
fmt.Fprintf(w, "%s\t", stringutils.Truncate(entry.CreatedBy, 45))
fmt.Fprintf(w, "%s\t", stringutils.Truncate(strings.Replace(entry.CreatedBy, "\t", " ", -1), 45))
}
if *human {

View File

@@ -8,6 +8,7 @@ import (
"time"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
@@ -21,7 +22,7 @@ import (
//
// Usage: docker images [OPTIONS] [REPOSITORY]
func (cli *DockerCli) CmdImages(args ...string) error {
cmd := cli.Subcmd("images", "[REPOSITORY]", "List images", true)
cmd := Cli.Subcmd("images", []string{"[REPOSITORY[:TAG]]"}, Cli.DockerCommands["images"].Description, true)
quiet := cmd.Bool([]string{"q", "-quiet"}, false, "Only show numeric IDs")
all := cmd.Bool([]string{"a", "-all"}, false, "Show all images (default hides intermediate images)")
noTrunc := cmd.Bool([]string{"#notrunc", "-no-trunc"}, false, "Don't truncate output")
@@ -30,6 +31,7 @@ func (cli *DockerCli) CmdImages(args ...string) error {
flFilter := opts.NewListOpts(nil)
cmd.Var(&flFilter, []string{"f", "-filter"}, "Filter output based on conditions provided")
cmd.Require(flag.Max, 1)
cmd.ParseFlags(args, true)
// Consolidate all filter flags, and sanity check them early.
@@ -61,13 +63,15 @@ func (cli *DockerCli) CmdImages(args ...string) error {
v.Set("all", "1")
}
rdr, _, err := cli.call("GET", "/images/json?"+v.Encode(), nil, nil)
serverResp, err := cli.call("GET", "/images/json?"+v.Encode(), nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
images := []types.Image{}
if err := json.NewDecoder(rdr).Decode(&images); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&images); err != nil {
return err
}

View File

@@ -4,22 +4,26 @@ import (
"fmt"
"io"
"net/url"
"os"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/urlutil"
"github.com/docker/docker/registry"
)
// CmdImport creates an empty filesystem image, imports the contents of the tarball into the image, and optionally tags the image.
//
// The URL argument is the address of a tarball (.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) file. If the URL is '-', then the tar file is read from STDIN.
// The URL argument is the address of a tarball (.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) file or a path to local file relative to docker client. If the URL is '-', then the tar file is read from STDIN.
//
// Usage: docker import [OPTIONS] URL [REPOSITORY[:TAG]]
// Usage: docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
func (cli *DockerCli) CmdImport(args ...string) error {
cmd := cli.Subcmd("import", "URL|- [REPOSITORY[:TAG]]", "Create an empty filesystem image and import the contents of the\ntarball (.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) into it, then\noptionally tag it.", true)
cmd := Cli.Subcmd("import", []string{"file|URL|- [REPOSITORY[:TAG]]"}, Cli.DockerCommands["import"].Description, true)
flChanges := opts.NewListOpts(nil)
cmd.Var(&flChanges, []string{"c", "-change"}, "Apply Dockerfile instruction to the created image")
message := cmd.String([]string{"m", "-message"}, "", "Set commit message for imported image")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
@@ -32,11 +36,12 @@ func (cli *DockerCli) CmdImport(args ...string) error {
v.Set("fromSrc", src)
v.Set("repo", repository)
v.Set("message", *message)
for _, change := range flChanges.GetAll() {
v.Add("changes", change)
}
if cmd.NArg() == 3 {
fmt.Fprintf(cli.err, "[DEPRECATED] The format 'URL|- [REPOSITORY [TAG]]' has been deprecated. Please use URL|- [REPOSITORY[:TAG]]\n")
fmt.Fprintf(cli.err, "[DEPRECATED] The format 'file|URL|- [REPOSITORY [TAG]]' has been deprecated. Please use file|URL|- [REPOSITORY[:TAG]]\n")
v.Set("tag", cmd.Arg(2))
}
@@ -52,6 +57,15 @@ func (cli *DockerCli) CmdImport(args ...string) error {
if src == "-" {
in = cli.in
} else if !urlutil.IsURL(src) {
v.Set("fromSrc", "-")
file, err := os.Open(src)
if err != nil {
return err
}
defer file.Close()
in = file
}
sopts := &streamOpts{
@@ -60,5 +74,6 @@ func (cli *DockerCli) CmdImport(args ...string) error {
out: cli.out,
}
return cli.stream("POST", "/images/create?"+v.Encode(), sopts)
_, err := cli.stream("POST", "/images/create?"+v.Encode(), sopts)
return err
}

View File

@@ -5,6 +5,9 @@ import (
"fmt"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/httputils"
"github.com/docker/docker/pkg/ioutils"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/units"
)
@@ -13,57 +16,55 @@ import (
//
// Usage: docker info
func (cli *DockerCli) CmdInfo(args ...string) error {
cmd := cli.Subcmd("info", "", "Display system-wide information", true)
cmd := Cli.Subcmd("info", nil, Cli.DockerCommands["info"].Description, true)
cmd.Require(flag.Exact, 0)
cmd.ParseFlags(args, false)
rdr, _, err := cli.call("GET", "/info", nil, nil)
cmd.ParseFlags(args, true)
serverResp, err := cli.call("GET", "/info", nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
info := &types.Info{}
if err := json.NewDecoder(rdr).Decode(info); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(info); err != nil {
return fmt.Errorf("Error reading remote info: %v", err)
}
fmt.Fprintf(cli.out, "Containers: %d\n", info.Containers)
fmt.Fprintf(cli.out, "Images: %d\n", info.Images)
fmt.Fprintf(cli.out, "Storage Driver: %s\n", info.Driver)
ioutils.FprintfIfNotEmpty(cli.out, "Server Version: %s\n", info.ServerVersion)
ioutils.FprintfIfNotEmpty(cli.out, "Storage Driver: %s\n", info.Driver)
if info.DriverStatus != nil {
for _, pair := range info.DriverStatus {
fmt.Fprintf(cli.out, " %s: %s\n", pair[0], pair[1])
}
}
fmt.Fprintf(cli.out, "Execution Driver: %s\n", info.ExecutionDriver)
fmt.Fprintf(cli.out, "Logging Driver: %s\n", info.LoggingDriver)
fmt.Fprintf(cli.out, "Kernel Version: %s\n", info.KernelVersion)
fmt.Fprintf(cli.out, "Operating System: %s\n", info.OperatingSystem)
ioutils.FprintfIfNotEmpty(cli.out, "Execution Driver: %s\n", info.ExecutionDriver)
ioutils.FprintfIfNotEmpty(cli.out, "Logging Driver: %s\n", info.LoggingDriver)
ioutils.FprintfIfNotEmpty(cli.out, "Kernel Version: %s\n", info.KernelVersion)
ioutils.FprintfIfNotEmpty(cli.out, "Operating System: %s\n", info.OperatingSystem)
fmt.Fprintf(cli.out, "CPUs: %d\n", info.NCPU)
fmt.Fprintf(cli.out, "Total Memory: %s\n", units.BytesSize(float64(info.MemTotal)))
fmt.Fprintf(cli.out, "Name: %s\n", info.Name)
fmt.Fprintf(cli.out, "ID: %s\n", info.ID)
ioutils.FprintfIfNotEmpty(cli.out, "Name: %s\n", info.Name)
ioutils.FprintfIfNotEmpty(cli.out, "ID: %s\n", info.ID)
if info.Debug {
fmt.Fprintf(cli.out, "Debug mode (server): %v\n", info.Debug)
fmt.Fprintf(cli.out, "File Descriptors: %d\n", info.NFd)
fmt.Fprintf(cli.out, "Goroutines: %d\n", info.NGoroutines)
fmt.Fprintf(cli.out, "System Time: %s\n", info.SystemTime)
fmt.Fprintf(cli.out, "EventsListeners: %d\n", info.NEventsListener)
fmt.Fprintf(cli.out, "Init SHA1: %s\n", info.InitSha1)
fmt.Fprintf(cli.out, "Init Path: %s\n", info.InitPath)
fmt.Fprintf(cli.out, "Docker Root Dir: %s\n", info.DockerRootDir)
fmt.Fprintf(cli.out, " File Descriptors: %d\n", info.NFd)
fmt.Fprintf(cli.out, " Goroutines: %d\n", info.NGoroutines)
fmt.Fprintf(cli.out, " System Time: %s\n", info.SystemTime)
fmt.Fprintf(cli.out, " EventsListeners: %d\n", info.NEventsListener)
fmt.Fprintf(cli.out, " Init SHA1: %s\n", info.InitSha1)
fmt.Fprintf(cli.out, " Init Path: %s\n", info.InitPath)
fmt.Fprintf(cli.out, " Docker Root Dir: %s\n", info.DockerRootDir)
}
if info.HttpProxy != "" {
fmt.Fprintf(cli.out, "Http Proxy: %s\n", info.HttpProxy)
}
if info.HttpsProxy != "" {
fmt.Fprintf(cli.out, "Https Proxy: %s\n", info.HttpsProxy)
}
if info.NoProxy != "" {
fmt.Fprintf(cli.out, "No Proxy: %s\n", info.NoProxy)
}
ioutils.FprintfIfNotEmpty(cli.out, "Http Proxy: %s\n", info.HTTPProxy)
ioutils.FprintfIfNotEmpty(cli.out, "Https Proxy: %s\n", info.HTTPSProxy)
ioutils.FprintfIfNotEmpty(cli.out, "No Proxy: %s\n", info.NoProxy)
if info.IndexServerAddress != "" {
u := cli.configFile.AuthConfigs[info.IndexServerAddress].Username
@@ -72,15 +73,28 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
fmt.Fprintf(cli.out, "Registry: %v\n", info.IndexServerAddress)
}
}
if !info.MemoryLimit {
fmt.Fprintf(cli.err, "WARNING: No memory limit support\n")
}
if !info.SwapLimit {
fmt.Fprintf(cli.err, "WARNING: No swap limit support\n")
}
if !info.IPv4Forwarding {
fmt.Fprintf(cli.err, "WARNING: IPv4 forwarding is disabled.\n")
// Only output these warnings if the server does not support these features
if h, err := httputils.ParseServerHeader(serverResp.header.Get("Server")); err == nil {
if h.OS != "windows" {
if !info.MemoryLimit {
fmt.Fprintf(cli.err, "WARNING: No memory limit support\n")
}
if !info.SwapLimit {
fmt.Fprintf(cli.err, "WARNING: No swap limit support\n")
}
if !info.IPv4Forwarding {
fmt.Fprintf(cli.err, "WARNING: IPv4 forwarding is disabled\n")
}
if !info.BridgeNfIptables {
fmt.Fprintf(cli.err, "WARNING: bridge-nf-call-iptables is disabled\n")
}
if !info.BridgeNfIP6tables {
fmt.Fprintf(cli.err, "WARNING: bridge-nf-call-ip6tables is disabled\n")
}
}
}
if info.Labels != nil {
fmt.Fprintln(cli.out, "Labels:")
for _, attribute := range info.Labels {
@@ -88,9 +102,13 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
}
}
if info.ExperimentalBuild {
fmt.Fprintf(cli.out, "Experimental: true\n")
ioutils.FprintfIfTrue(cli.out, "Experimental: %v\n", info.ExperimentalBuild)
if info.ClusterStore != "" {
fmt.Fprintf(cli.out, "Cluster store: %s\n", info.ClusterStore)
}
if info.ClusterAdvertise != "" {
fmt.Fprintf(cli.out, "Cluster advertise: %s\n", info.ClusterAdvertise)
}
return nil
}

View File

@@ -5,45 +5,65 @@ import (
"encoding/json"
"fmt"
"io"
"net/url"
"strings"
"text/template"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
var funcMap = template.FuncMap{
"json": func(v interface{}) string {
a, _ := json.Marshal(v)
return string(a)
},
}
// CmdInspect displays low-level information on one or more containers or images.
//
// Usage: docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
func (cli *DockerCli) CmdInspect(args ...string) error {
cmd := cli.Subcmd("inspect", "CONTAINER|IMAGE [CONTAINER|IMAGE...]", "Return low-level information on a container or image", true)
cmd := Cli.Subcmd("inspect", []string{"CONTAINER|IMAGE [CONTAINER|IMAGE...]"}, Cli.DockerCommands["inspect"].Description, true)
tmplStr := cmd.String([]string{"f", "#format", "-format"}, "", "Format the output using the given go template")
inspectType := cmd.String([]string{"-type"}, "", "Return JSON for specified type, (e.g image or container)")
size := cmd.Bool([]string{"s", "-size"}, false, "Display total file sizes if the type is container")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
var tmpl *template.Template
var err error
var obj []byte
if *tmplStr != "" {
var err error
if tmpl, err = template.New("").Funcs(funcMap).Parse(*tmplStr); err != nil {
return StatusError{StatusCode: 64,
return Cli.StatusError{StatusCode: 64,
Status: "Template parsing error: " + err.Error()}
}
}
if *inspectType != "" && *inspectType != "container" && *inspectType != "image" {
return fmt.Errorf("%q is not a valid value for --type", *inspectType)
}
indented := new(bytes.Buffer)
indented.WriteString("[\n")
status := 0
isImage := false
v := url.Values{}
if *size {
v.Set("size", "1")
}
for _, name := range cmd.Args() {
obj, _, err := readBody(cli.call("GET", "/containers/"+name+"/json", nil, nil))
if err != nil {
obj, _, err = readBody(cli.call("GET", "/images/"+name+"/json", nil, nil))
isImage = true
if err != nil {
if *inspectType == "" || *inspectType == "container" {
obj, _, err = readBody(cli.call("GET", "/containers/"+name+"/json?"+v.Encode(), nil, nil))
if err != nil && *inspectType == "container" {
if strings.Contains(err.Error(), "No such") {
fmt.Fprintf(cli.err, "Error: No such image or container: %s\n", name)
fmt.Fprintf(cli.err, "Error: No such container: %s\n", name)
} else {
fmt.Fprintf(cli.err, "%s", err)
}
@@ -52,8 +72,27 @@ func (cli *DockerCli) CmdInspect(args ...string) error {
}
}
if obj == nil && (*inspectType == "" || *inspectType == "image") {
obj, _, err = readBody(cli.call("GET", "/images/"+name+"/json", nil, nil))
isImage = true
if err != nil {
if strings.Contains(err.Error(), "No such") {
if *inspectType == "" {
fmt.Fprintf(cli.err, "Error: No such image or container: %s\n", name)
} else {
fmt.Fprintf(cli.err, "Error: No such image: %s\n", name)
}
} else {
fmt.Fprintf(cli.err, "%s", err)
}
status = 1
continue
}
}
if tmpl == nil {
if err = json.Indent(indented, obj, "", " "); err != nil {
if err := json.Indent(indented, obj, "", " "); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
@@ -61,42 +100,45 @@ func (cli *DockerCli) CmdInspect(args ...string) error {
} else {
rdr := bytes.NewReader(obj)
dec := json.NewDecoder(rdr)
buf := bytes.NewBufferString("")
if isImage {
inspPtr := types.ImageInspect{}
if err := dec.Decode(&inspPtr); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
fmt.Fprintf(cli.err, "Unable to read inspect data: %v\n", err)
status = 1
continue
break
}
if err := tmpl.Execute(cli.out, inspPtr); err != nil {
if err := tmpl.Execute(buf, inspPtr); err != nil {
rdr.Seek(0, 0)
var raw interface{}
if err := dec.Decode(&raw); err != nil {
return err
}
if err = tmpl.Execute(cli.out, raw); err != nil {
return err
var ok bool
if buf, ok = cli.decodeRawInspect(tmpl, dec); !ok {
fmt.Fprintf(cli.err, "Template parsing error: %v\n", err)
status = 1
break
}
}
} else {
inspPtr := types.ContainerJSON{}
if err := dec.Decode(&inspPtr); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
fmt.Fprintf(cli.err, "Unable to read inspect data: %v\n", err)
status = 1
continue
break
}
if err := tmpl.Execute(cli.out, inspPtr); err != nil {
if err := tmpl.Execute(buf, inspPtr); err != nil {
rdr.Seek(0, 0)
var raw interface{}
if err := dec.Decode(&raw); err != nil {
return err
}
if err = tmpl.Execute(cli.out, raw); err != nil {
return err
var ok bool
if buf, ok = cli.decodeRawInspect(tmpl, dec); !ok {
fmt.Fprintf(cli.err, "Template parsing error: %v\n", err)
status = 1
break
}
}
}
cli.out.Write(buf.Bytes())
cli.out.Write([]byte{'\n'})
}
indented.WriteString(",")
@@ -109,13 +151,46 @@ func (cli *DockerCli) CmdInspect(args ...string) error {
indented.WriteString("]\n")
if tmpl == nil {
// Note that we will always write "[]" when "-f" isn't specified,
// to make sure the output would always be array, see
// https://github.com/docker/docker/pull/9500#issuecomment-65846734
if _, err := io.Copy(cli.out, indented); err != nil {
return err
}
}
if status != 0 {
return StatusError{StatusCode: status}
return Cli.StatusError{StatusCode: status}
}
return nil
}
// decodeRawInspect executes the inspect template with a raw interface.
// This allows docker cli to parse inspect structs injected with Swarm fields.
// Unfortunately, go 1.4 doesn't fail executing invalid templates when the input is an interface.
// It doesn't allow to modify this behavior either, sending <no value> messages to the output.
// We assume that the template is invalid when there is a <no value>, if the template was valid
// we'd get <nil> or "" values. In that case we fail with the original error raised executing the
// template with the typed input.
//
// TODO: Go 1.5 allows to customize the error behavior, we can probably get rid of this as soon as
// we build Docker with that version:
// https://golang.org/pkg/text/template/#Template.Option
func (cli *DockerCli) decodeRawInspect(tmpl *template.Template, dec *json.Decoder) (*bytes.Buffer, bool) {
var raw interface{}
buf := bytes.NewBufferString("")
if rawErr := dec.Decode(&raw); rawErr != nil {
fmt.Fprintf(cli.err, "Unable to read inspect data: %v\n", rawErr)
return buf, false
}
if rawErr := tmpl.Execute(buf, raw); rawErr != nil {
return buf, false
}
if strings.Contains(buf.String(), "<no value>") {
return buf, false
}
return buf, true
}

View File

@@ -3,6 +3,7 @@ package client
import (
"fmt"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -10,7 +11,7 @@ import (
//
// Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdKill(args ...string) error {
cmd := cli.Subcmd("kill", "CONTAINER [CONTAINER...]", "Kill a running container using SIGKILL or a specified signal", true)
cmd := Cli.Subcmd("kill", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["kill"].Description, true)
signal := cmd.String([]string{"s", "-signal"}, "KILL", "Signal to send to the container")
cmd.Require(flag.Min, 1)

View File

@@ -4,6 +4,7 @@ import (
"io"
"os"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -13,7 +14,7 @@ import (
//
// Usage: docker load [OPTIONS]
func (cli *DockerCli) CmdLoad(args ...string) error {
cmd := cli.Subcmd("load", "", "Load an image from a tar archive on STDIN", true)
cmd := Cli.Subcmd("load", nil, Cli.DockerCommands["load"].Description, true)
infile := cmd.String([]string{"i", "-input"}, "", "Read from a tar archive file, instead of STDIN")
cmd.Require(flag.Exact, 0)
@@ -34,7 +35,7 @@ func (cli *DockerCli) CmdLoad(args ...string) error {
in: input,
out: cli.out,
}
if err := cli.stream("POST", "/images/load", sopts); err != nil {
if _, err := cli.stream("POST", "/images/load", sopts); err != nil {
return err
}
return nil

View File

@@ -9,6 +9,7 @@ import (
"strings"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/cliconfig"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/term"
@@ -21,7 +22,7 @@ import (
//
// Usage: docker login SERVER
func (cli *DockerCli) CmdLogin(args ...string) error {
cmd := cli.Subcmd("login", "[SERVER]", "Register or log in to a Docker registry server, if no server is\nspecified \""+registry.IndexServerAddress()+"\" is the default.", true)
cmd := Cli.Subcmd("login", []string{"[SERVER]"}, Cli.DockerCommands["login"].Description+".\nIf no server is specified \""+registry.IndexServer+"\" is the default.", true)
cmd.Require(flag.Max, 1)
var username, password, email string
@@ -32,7 +33,7 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
cmd.ParseFlags(args, true)
serverAddress := registry.IndexServerAddress()
serverAddress := registry.IndexServer
if len(cmd.Args()) > 0 {
serverAddress = cmd.Arg(0)
}
@@ -63,7 +64,7 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
if username == "" {
promptDefault("Username", authconfig.Username)
username = readInput(cli.in, cli.out)
username = strings.Trim(username, " ")
username = strings.TrimSpace(username)
if username == "" {
username = authconfig.Username
}
@@ -113,8 +114,8 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
authconfig.ServerAddress = serverAddress
cli.configFile.AuthConfigs[serverAddress] = authconfig
stream, statusCode, err := cli.call("POST", "/auth", cli.configFile.AuthConfigs[serverAddress], nil)
if statusCode == 401 {
serverResp, err := cli.call("POST", "/auth", cli.configFile.AuthConfigs[serverAddress], nil)
if serverResp.statusCode == 401 {
delete(cli.configFile.AuthConfigs, serverAddress)
if err2 := cli.configFile.Save(); err2 != nil {
fmt.Fprintf(cli.out, "WARNING: could not save config file: %v\n", err2)
@@ -125,8 +126,10 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
return err
}
defer serverResp.body.Close()
var response types.AuthResponse
if err := json.NewDecoder(stream).Decode(&response); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
// Upon error, remove entry
delete(cli.configFile.AuthConfigs, serverAddress)
return err

View File

@@ -3,6 +3,7 @@ package client
import (
"fmt"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/registry"
)
@@ -13,24 +14,26 @@ import (
//
// Usage: docker logout [SERVER]
func (cli *DockerCli) CmdLogout(args ...string) error {
cmd := cli.Subcmd("logout", "[SERVER]", "Log out from a Docker registry, if no server is\nspecified \""+registry.IndexServerAddress()+"\" is the default.", true)
cmd := Cli.Subcmd("logout", []string{"[SERVER]"}, Cli.DockerCommands["logout"].Description+".\nIf no server is specified \""+registry.IndexServer+"\" is the default.", true)
cmd.Require(flag.Max, 1)
cmd.ParseFlags(args, false)
serverAddress := registry.IndexServerAddress()
cmd.ParseFlags(args, true)
serverAddress := registry.IndexServer
if len(cmd.Args()) > 0 {
serverAddress = cmd.Arg(0)
}
if _, ok := cli.configFile.AuthConfigs[serverAddress]; !ok {
fmt.Fprintf(cli.out, "Not logged in to %s\n", serverAddress)
} else {
fmt.Fprintf(cli.out, "Remove login credentials for %s\n", serverAddress)
delete(cli.configFile.AuthConfigs, serverAddress)
if err := cli.configFile.Save(); err != nil {
return fmt.Errorf("Failed to save docker config: %v", err)
}
return nil
}
fmt.Fprintf(cli.out, "Remove login credentials for %s\n", serverAddress)
delete(cli.configFile.AuthConfigs, serverAddress)
if err := cli.configFile.Save(); err != nil {
return fmt.Errorf("Failed to save docker config: %v", err)
}
return nil
}

View File

@@ -2,10 +2,11 @@ package client
import (
"encoding/json"
"fmt"
"net/url"
"time"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/timeutils"
)
@@ -14,39 +15,33 @@ import (
//
// docker logs [OPTIONS] CONTAINER
func (cli *DockerCli) CmdLogs(args ...string) error {
var (
cmd = cli.Subcmd("logs", "CONTAINER", "Fetch the logs of a container", true)
follow = cmd.Bool([]string{"f", "-follow"}, false, "Follow log output")
since = cmd.String([]string{"-since"}, "", "Show logs since timestamp")
times = cmd.Bool([]string{"t", "-timestamps"}, false, "Show timestamps")
tail = cmd.String([]string{"-tail"}, "all", "Number of lines to show from the end of the logs")
)
cmd := Cli.Subcmd("logs", []string{"CONTAINER"}, Cli.DockerCommands["logs"].Description, true)
follow := cmd.Bool([]string{"f", "-follow"}, false, "Follow log output")
since := cmd.String([]string{"-since"}, "", "Show logs since timestamp")
times := cmd.Bool([]string{"t", "-timestamps"}, false, "Show timestamps")
tail := cmd.String([]string{"-tail"}, "all", "Number of lines to show from the end of the logs")
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
name := cmd.Arg(0)
stream, _, err := cli.call("GET", "/containers/"+name+"/json", nil, nil)
serverResp, err := cli.call("GET", "/containers/"+name+"/json", nil, nil)
if err != nil {
return err
}
var c types.ContainerJSON
if err := json.NewDecoder(stream).Decode(&c); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return err
}
if logType := c.HostConfig.LogConfig.Type; logType != "json-file" {
return fmt.Errorf("\"logs\" command is supported only for \"json-file\" logging driver (got: %s)", logType)
}
v := url.Values{}
v.Set("stdout", "1")
v.Set("stderr", "1")
if *since != "" {
v.Set("since", timeutils.GetTimestamp(*since))
v.Set("since", timeutils.GetTimestamp(*since, time.Now()))
}
if *times {
@@ -64,5 +59,6 @@ func (cli *DockerCli) CmdLogs(args ...string) error {
err: cli.err,
}
return cli.stream("GET", "/containers/"+name+"/logs?"+v.Encode(), sopts)
_, err = cli.stream("GET", "/containers/"+name+"/logs?"+v.Encode(), sopts)
return err
}

381
api/client/network.go Normal file
View File

@@ -0,0 +1,381 @@
package client
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net"
"strings"
"text/tabwriter"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/daemon/network"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/stringid"
)
// CmdNetwork is the parent subcommand for all network commands
//
// Usage: docker network <COMMAND> [OPTIONS]
func (cli *DockerCli) CmdNetwork(args ...string) error {
cmd := Cli.Subcmd("network", []string{"COMMAND [OPTIONS]"}, networkUsage(), false)
cmd.Require(flag.Min, 1)
err := cmd.ParseFlags(args, true)
cmd.Usage()
return err
}
// CmdNetworkCreate creates a new network with a given name
//
// Usage: docker network create [OPTIONS] <NETWORK-NAME>
func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
cmd := Cli.Subcmd("network create", []string{"NETWORK-NAME"}, "Creates a new network with a name specified by the user", false)
flDriver := cmd.String([]string{"d", "-driver"}, "bridge", "Driver to manage the Network")
flOpts := opts.NewMapOpts(nil, nil)
flIpamDriver := cmd.String([]string{"-ipam-driver"}, "default", "IP Address Management Driver")
flIpamSubnet := opts.NewListOpts(nil)
flIpamIPRange := opts.NewListOpts(nil)
flIpamGateway := opts.NewListOpts(nil)
flIpamAux := opts.NewMapOpts(nil, nil)
cmd.Var(&flIpamSubnet, []string{"-subnet"}, "subnet in CIDR format that represents a network segment")
cmd.Var(&flIpamIPRange, []string{"-ip-range"}, "allocate container ip from a sub-range")
cmd.Var(&flIpamGateway, []string{"-gateway"}, "ipv4 or ipv6 Gateway for the master subnet")
cmd.Var(flIpamAux, []string{"-aux-address"}, "auxiliary ipv4 or ipv6 addresses used by Network driver")
cmd.Var(flOpts, []string{"o", "-opt"}, "set driver specific options")
cmd.Require(flag.Exact, 1)
err := cmd.ParseFlags(args, true)
if err != nil {
return err
}
// Set the default driver to "" if the user didn't set the value.
// That way we can know whether it was user input or not.
driver := *flDriver
if !cmd.IsSet("-driver") && !cmd.IsSet("d") {
driver = ""
}
ipamCfg, err := consolidateIpam(flIpamSubnet.GetAll(), flIpamIPRange.GetAll(), flIpamGateway.GetAll(), flIpamAux.GetAll())
if err != nil {
return err
}
// Construct network create request body
nc := types.NetworkCreate{
Name: cmd.Arg(0),
Driver: driver,
IPAM: network.IPAM{Driver: *flIpamDriver, Config: ipamCfg},
Options: flOpts.GetAll(),
CheckDuplicate: true,
}
obj, _, err := readBody(cli.call("POST", "/networks/create", nc, nil))
if err != nil {
return err
}
var resp types.NetworkCreateResponse
err = json.Unmarshal(obj, &resp)
if err != nil {
return err
}
fmt.Fprintf(cli.out, "%s\n", resp.ID)
return nil
}
// CmdNetworkRm deletes a network
//
// Usage: docker network rm <NETWORK-NAME | NETWORK-ID>
func (cli *DockerCli) CmdNetworkRm(args ...string) error {
cmd := Cli.Subcmd("network rm", []string{"NETWORK"}, "Deletes a network", false)
cmd.Require(flag.Exact, 1)
err := cmd.ParseFlags(args, true)
if err != nil {
return err
}
_, _, err = readBody(cli.call("DELETE", "/networks/"+cmd.Arg(0), nil, nil))
if err != nil {
return err
}
return nil
}
// CmdNetworkConnect connects a container to a network
//
// Usage: docker network connect <NETWORK> <CONTAINER>
func (cli *DockerCli) CmdNetworkConnect(args ...string) error {
cmd := Cli.Subcmd("network connect", []string{"NETWORK CONTAINER"}, "Connects a container to a network", false)
cmd.Require(flag.Exact, 2)
err := cmd.ParseFlags(args, true)
if err != nil {
return err
}
nc := types.NetworkConnect{Container: cmd.Arg(1)}
_, _, err = readBody(cli.call("POST", "/networks/"+cmd.Arg(0)+"/connect", nc, nil))
return err
}
// CmdNetworkDisconnect disconnects a container from a network
//
// Usage: docker network disconnect <NETWORK> <CONTAINER>
func (cli *DockerCli) CmdNetworkDisconnect(args ...string) error {
cmd := Cli.Subcmd("network disconnect", []string{"NETWORK CONTAINER"}, "Disconnects container from a network", false)
cmd.Require(flag.Exact, 2)
err := cmd.ParseFlags(args, true)
if err != nil {
return err
}
nc := types.NetworkConnect{Container: cmd.Arg(1)}
_, _, err = readBody(cli.call("POST", "/networks/"+cmd.Arg(0)+"/disconnect", nc, nil))
return err
}
// CmdNetworkLs lists all the netorks managed by docker daemon
//
// Usage: docker network ls [OPTIONS]
func (cli *DockerCli) CmdNetworkLs(args ...string) error {
cmd := Cli.Subcmd("network ls", nil, "Lists networks", true)
quiet := cmd.Bool([]string{"q", "-quiet"}, false, "Only display numeric IDs")
noTrunc := cmd.Bool([]string{"-no-trunc"}, false, "Do not truncate the output")
cmd.Require(flag.Exact, 0)
err := cmd.ParseFlags(args, true)
if err != nil {
return err
}
obj, _, err := readBody(cli.call("GET", "/networks", nil, nil))
if err != nil {
return err
}
var networkResources []types.NetworkResource
err = json.Unmarshal(obj, &networkResources)
if err != nil {
return err
}
wr := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
// unless quiet (-q) is specified, print field titles
if !*quiet {
fmt.Fprintln(wr, "NETWORK ID\tNAME\tDRIVER")
}
for _, networkResource := range networkResources {
ID := networkResource.ID
netName := networkResource.Name
if !*noTrunc {
ID = stringid.TruncateID(ID)
}
if *quiet {
fmt.Fprintln(wr, ID)
continue
}
driver := networkResource.Driver
fmt.Fprintf(wr, "%s\t%s\t%s\t",
ID,
netName,
driver)
fmt.Fprint(wr, "\n")
}
wr.Flush()
return nil
}
// CmdNetworkInspect inspects the network object for more details
//
// Usage: docker network inspect [OPTIONS] <NETWORK> [NETWORK...]
func (cli *DockerCli) CmdNetworkInspect(args ...string) error {
cmd := Cli.Subcmd("network inspect", []string{"NETWORK [NETWORK...]"}, "Displays detailed information on a network", false)
cmd.Require(flag.Min, 1)
err := cmd.ParseFlags(args, true)
if err != nil {
return err
}
status := 0
var networks []*types.NetworkResource
for _, name := range cmd.Args() {
obj, _, err := readBody(cli.call("GET", "/networks/"+name, nil, nil))
if err != nil {
if strings.Contains(err.Error(), "not found") {
fmt.Fprintf(cli.err, "Error: No such network: %s\n", name)
} else {
fmt.Fprintf(cli.err, "%s", err)
}
status = 1
continue
}
networkResource := types.NetworkResource{}
if err := json.NewDecoder(bytes.NewReader(obj)).Decode(&networkResource); err != nil {
return err
}
networks = append(networks, &networkResource)
}
b, err := json.MarshalIndent(networks, "", " ")
if err != nil {
return err
}
if _, err := io.Copy(cli.out, bytes.NewReader(b)); err != nil {
return err
}
io.WriteString(cli.out, "\n")
if status != 0 {
return Cli.StatusError{StatusCode: status}
}
return nil
}
// Consolidates the ipam configuration as a group from differnt related configurations
// user can configure network with multiple non-overlapping subnets and hence it is
// possible to corelate the various related parameters and consolidate them.
// consoidateIpam consolidates subnets, ip-ranges, gateways and auxilary addresses into
// structured ipam data.
func consolidateIpam(subnets, ranges, gateways []string, auxaddrs map[string]string) ([]network.IPAMConfig, error) {
if len(subnets) < len(ranges) || len(subnets) < len(gateways) {
return nil, fmt.Errorf("every ip-range or gateway must have a corresponding subnet")
}
iData := map[string]*network.IPAMConfig{}
// Populate non-overlapping subnets into consolidation map
for _, s := range subnets {
for k := range iData {
ok1, err := subnetMatches(s, k)
if err != nil {
return nil, err
}
ok2, err := subnetMatches(k, s)
if err != nil {
return nil, err
}
if ok1 || ok2 {
return nil, fmt.Errorf("multiple overlapping subnet configuration is not supported")
}
}
iData[s] = &network.IPAMConfig{Subnet: s, AuxAddress: map[string]string{}}
}
// Validate and add valid ip ranges
for _, r := range ranges {
match := false
for _, s := range subnets {
ok, err := subnetMatches(s, r)
if err != nil {
return nil, err
}
if !ok {
continue
}
if iData[s].IPRange != "" {
return nil, fmt.Errorf("cannot configure multiple ranges (%s, %s) on the same subnet (%s)", r, iData[s].IPRange, s)
}
d := iData[s]
d.IPRange = r
match = true
}
if !match {
return nil, fmt.Errorf("no matching subnet for range %s", r)
}
}
// Validate and add valid gateways
for _, g := range gateways {
match := false
for _, s := range subnets {
ok, err := subnetMatches(s, g)
if err != nil {
return nil, err
}
if !ok {
continue
}
if iData[s].Gateway != "" {
return nil, fmt.Errorf("cannot configure multiple gateways (%s, %s) for the same subnet (%s)", g, iData[s].Gateway, s)
}
d := iData[s]
d.Gateway = g
match = true
}
if !match {
return nil, fmt.Errorf("no matching subnet for gateway %s", g)
}
}
// Validate and add aux-addresses
for key, aa := range auxaddrs {
match := false
for _, s := range subnets {
ok, err := subnetMatches(s, aa)
if err != nil {
return nil, err
}
if !ok {
continue
}
iData[s].AuxAddress[key] = aa
match = true
}
if !match {
return nil, fmt.Errorf("no matching subnet for aux-address %s", aa)
}
}
idl := []network.IPAMConfig{}
for _, v := range iData {
idl = append(idl, *v)
}
return idl, nil
}
func subnetMatches(subnet, data string) (bool, error) {
var (
ip net.IP
)
_, s, err := net.ParseCIDR(subnet)
if err != nil {
return false, fmt.Errorf("Invalid subnet %s : %v", s, err)
}
if strings.Contains(data, "/") {
ip, _, err = net.ParseCIDR(data)
if err != nil {
return false, fmt.Errorf("Invalid cidr %s : %v", data, err)
}
} else {
ip = net.ParseIP(data)
}
return s.Contains(ip), nil
}
func networkUsage() string {
networkCommands := map[string]string{
"create": "Create a network",
"connect": "Connect container to a network",
"disconnect": "Disconnect container from a network",
"inspect": "Display detailed network information",
"ls": "List all networks",
"rm": "Remove a network",
}
help := "Commands:\n"
for cmd, description := range networkCommands {
help += fmt.Sprintf(" %-25.25s%s\n", cmd, description)
}
help += fmt.Sprintf("\nRun 'docker network COMMAND --help' for more information on a command.")
return help
}

View File

@@ -3,6 +3,7 @@ package client
import (
"fmt"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -10,9 +11,10 @@ import (
//
// Usage: docker pause CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdPause(args ...string) error {
cmd := cli.Subcmd("pause", "CONTAINER [CONTAINER...]", "Pause all processes within a container", true)
cmd := Cli.Subcmd("pause", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["pause"].Description, true)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, false)
cmd.ParseFlags(args, true)
var errNames []string
for _, name := range cmd.Args() {

View File

@@ -5,8 +5,9 @@ import (
"fmt"
"strings"
"github.com/docker/docker/nat"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/nat"
)
// CmdPort lists port mappings for a container.
@@ -14,22 +15,25 @@ import (
//
// Usage: docker port CONTAINER [PRIVATE_PORT[/PROTO]]
func (cli *DockerCli) CmdPort(args ...string) error {
cmd := cli.Subcmd("port", "CONTAINER [PRIVATE_PORT[/PROTO]]", "List port mappings for the CONTAINER, or lookup the public-facing port that\nis NAT-ed to the PRIVATE_PORT", true)
cmd := Cli.Subcmd("port", []string{"CONTAINER [PRIVATE_PORT[/PROTO]]"}, Cli.DockerCommands["port"].Description, true)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
stream, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
var c struct {
NetworkSettings struct {
Ports nat.PortMap
}
}
if err := json.NewDecoder(stream).Decode(&c); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return err
}
@@ -45,9 +49,13 @@ func (cli *DockerCli) CmdPort(args ...string) error {
proto = parts[1]
}
natPort := port + "/" + proto
if frontends, exists := c.NetworkSettings.Ports[nat.Port(port+"/"+proto)]; exists && frontends != nil {
newP, err := nat.NewPort(proto, port)
if err != nil {
return err
}
if frontends, exists := c.NetworkSettings.Ports[newP]; exists && frontends != nil {
for _, frontend := range frontends {
fmt.Fprintf(cli.out, "%s:%s\n", frontend.HostIp, frontend.HostPort)
fmt.Fprintf(cli.out, "%s:%s\n", frontend.HostIP, frontend.HostPort)
}
return nil
}
@@ -56,7 +64,7 @@ func (cli *DockerCli) CmdPort(args ...string) error {
for from, frontends := range c.NetworkSettings.Ports {
for _, frontend := range frontends {
fmt.Fprintf(cli.out, "%s -> %s:%s\n", from, frontend.HostIp, frontend.HostPort)
fmt.Fprintf(cli.out, "%s -> %s:%s\n", from, frontend.HostIP, frontend.HostPort)
}
}

View File

@@ -2,21 +2,15 @@ package client
import (
"encoding/json"
"fmt"
"net/url"
"strconv"
"strings"
"text/tabwriter"
"time"
"github.com/docker/docker/api"
"github.com/docker/docker/api/client/ps"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers/filters"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/pkg/stringutils"
"github.com/docker/docker/pkg/units"
)
// CmdPs outputs a list of Docker containers.
@@ -29,7 +23,7 @@ func (cli *DockerCli) CmdPs(args ...string) error {
psFilterArgs = filters.Args{}
v = url.Values{}
cmd = cli.Subcmd("ps", "", "List containers", true)
cmd = Cli.Subcmd("ps", nil, Cli.DockerCommands["ps"].Description, true)
quiet = cmd.Bool([]string{"q", "-quiet"}, false, "Only display numeric IDs")
size = cmd.Bool([]string{"s", "-size"}, false, "Display total file sizes")
all = cmd.Bool([]string{"a", "-all"}, false, "Show all containers (default shows just running)")
@@ -38,6 +32,7 @@ func (cli *DockerCli) CmdPs(args ...string) error {
since = cmd.String([]string{"#sinceId", "#-since-id", "-since"}, "", "Show created since Id or Name, include non-running")
before = cmd.String([]string{"#beforeId", "#-before-id", "-before"}, "", "Show only container created before Id or Name")
last = cmd.Int([]string{"n"}, -1, "Show n last created containers, include non-running")
format = cmd.String([]string{"-format"}, "", "Pretty-print containers using a Go template")
flFilter = opts.NewListOpts(nil)
)
cmd.Require(flag.Exact, 0)
@@ -86,90 +81,36 @@ func (cli *DockerCli) CmdPs(args ...string) error {
v.Set("filters", filterJSON)
}
rdr, _, err := cli.call("GET", "/containers/json?"+v.Encode(), nil, nil)
serverResp, err := cli.call("GET", "/containers/json?"+v.Encode(), nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
containers := []types.Container{}
if err := json.NewDecoder(rdr).Decode(&containers); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&containers); err != nil {
return err
}
w := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
if !*quiet {
fmt.Fprint(w, "CONTAINER ID\tIMAGE\tCOMMAND\tCREATED\tSTATUS\tPORTS\tNAMES")
if *size {
fmt.Fprintln(w, "\tSIZE")
f := *format
if len(f) == 0 {
if len(cli.PsFormat()) > 0 && !*quiet {
f = cli.PsFormat()
} else {
fmt.Fprint(w, "\n")
f = "table"
}
}
stripNamePrefix := func(ss []string) []string {
for i, s := range ss {
ss[i] = s[1:]
}
return ss
psCtx := ps.Context{
Output: cli.out,
Format: f,
Quiet: *quiet,
Size: *size,
Trunc: !*noTrunc,
}
for _, container := range containers {
ID := container.ID
if !*noTrunc {
ID = stringid.TruncateID(ID)
}
if *quiet {
fmt.Fprintln(w, ID)
continue
}
var (
names = stripNamePrefix(container.Names)
command = strconv.Quote(container.Command)
)
if !*noTrunc {
command = stringutils.Truncate(command, 20)
// only display the default name for the container with notrunc is passed
for _, name := range names {
if len(strings.Split(name, "/")) == 1 {
names = []string{name}
break
}
}
}
image := container.Image
if image == "" {
image = "<no image>"
}
fmt.Fprintf(w, "%s\t%s\t%s\t%s ago\t%s\t%s\t%s\t", ID, image, command,
units.HumanDuration(time.Now().UTC().Sub(time.Unix(int64(container.Created), 0))),
container.Status, api.DisplayablePorts(container.Ports), strings.Join(names, ","))
if *size {
if container.SizeRootFs > 0 {
fmt.Fprintf(w, "%s (virtual %s)\n", units.HumanSize(float64(container.SizeRw)), units.HumanSize(float64(container.SizeRootFs)))
} else {
fmt.Fprintf(w, "%s\n", units.HumanSize(float64(container.SizeRw)))
}
continue
}
fmt.Fprint(w, "\n")
}
if !*quiet {
w.Flush()
}
ps.Format(psCtx, containers)
return nil
}

160
api/client/ps/custom.go Normal file
View File

@@ -0,0 +1,160 @@
package ps
import (
"fmt"
"strconv"
"strings"
"time"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/pkg/stringutils"
"github.com/docker/docker/pkg/units"
)
const (
tableKey = "table"
idHeader = "CONTAINER ID"
imageHeader = "IMAGE"
namesHeader = "NAMES"
commandHeader = "COMMAND"
createdAtHeader = "CREATED AT"
runningForHeader = "CREATED"
statusHeader = "STATUS"
portsHeader = "PORTS"
sizeHeader = "SIZE"
labelsHeader = "LABELS"
)
type containerContext struct {
trunc bool
header []string
c types.Container
}
func (c *containerContext) ID() string {
c.addHeader(idHeader)
if c.trunc {
return stringid.TruncateID(c.c.ID)
}
return c.c.ID
}
func (c *containerContext) Names() string {
c.addHeader(namesHeader)
names := stripNamePrefix(c.c.Names)
if c.trunc {
for _, name := range names {
if len(strings.Split(name, "/")) == 1 {
names = []string{name}
break
}
}
}
return strings.Join(names, ",")
}
func (c *containerContext) Image() string {
c.addHeader(imageHeader)
if c.c.Image == "" {
return "<no image>"
}
if c.trunc {
if stringid.TruncateID(c.c.ImageID) == stringid.TruncateID(c.c.Image) {
return stringutils.Truncate(c.c.Image, 12)
}
}
return c.c.Image
}
func (c *containerContext) Command() string {
c.addHeader(commandHeader)
command := c.c.Command
if c.trunc {
command = stringutils.Truncate(command, 20)
}
return strconv.Quote(command)
}
func (c *containerContext) CreatedAt() string {
c.addHeader(createdAtHeader)
return time.Unix(int64(c.c.Created), 0).String()
}
func (c *containerContext) RunningFor() string {
c.addHeader(runningForHeader)
createdAt := time.Unix(int64(c.c.Created), 0)
return units.HumanDuration(time.Now().UTC().Sub(createdAt))
}
func (c *containerContext) Ports() string {
c.addHeader(portsHeader)
return api.DisplayablePorts(c.c.Ports)
}
func (c *containerContext) Status() string {
c.addHeader(statusHeader)
return c.c.Status
}
func (c *containerContext) Size() string {
c.addHeader(sizeHeader)
srw := units.HumanSize(float64(c.c.SizeRw))
sv := units.HumanSize(float64(c.c.SizeRootFs))
sf := srw
if c.c.SizeRootFs > 0 {
sf = fmt.Sprintf("%s (virtual %s)", srw, sv)
}
return sf
}
func (c *containerContext) Labels() string {
c.addHeader(labelsHeader)
if c.c.Labels == nil {
return ""
}
var joinLabels []string
for k, v := range c.c.Labels {
joinLabels = append(joinLabels, fmt.Sprintf("%s=%s", k, v))
}
return strings.Join(joinLabels, ",")
}
func (c *containerContext) Label(name string) string {
n := strings.Split(name, ".")
r := strings.NewReplacer("-", " ", "_", " ")
h := r.Replace(n[len(n)-1])
c.addHeader(h)
if c.c.Labels == nil {
return ""
}
return c.c.Labels[name]
}
func (c *containerContext) fullHeader() string {
if c.header == nil {
return ""
}
return strings.Join(c.header, "\t")
}
func (c *containerContext) addHeader(header string) {
if c.header == nil {
c.header = []string{}
}
c.header = append(c.header, strings.ToUpper(header))
}
func stripNamePrefix(ss []string) []string {
for i, s := range ss {
ss[i] = s[1:]
}
return ss
}

View File

@@ -0,0 +1,126 @@
package ps
import (
"reflect"
"strings"
"testing"
"time"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stringid"
)
func TestContainerPsContext(t *testing.T) {
containerID := stringid.GenerateRandomID()
unix := time.Now().Unix()
var ctx containerContext
cases := []struct {
container types.Container
trunc bool
expValue string
expHeader string
call func() string
}{
{types.Container{ID: containerID}, true, stringid.TruncateID(containerID), idHeader, ctx.ID},
{types.Container{ID: containerID}, false, containerID, idHeader, ctx.ID},
{types.Container{Names: []string{"/foobar_baz"}}, true, "foobar_baz", namesHeader, ctx.Names},
{types.Container{Image: "ubuntu"}, true, "ubuntu", imageHeader, ctx.Image},
{types.Container{Image: "verylongimagename"}, true, "verylongimagename", imageHeader, ctx.Image},
{types.Container{Image: "verylongimagename"}, false, "verylongimagename", imageHeader, ctx.Image},
{types.Container{
Image: "a5a665ff33eced1e0803148700880edab4",
ImageID: "a5a665ff33eced1e0803148700880edab4269067ed77e27737a708d0d293fbf5",
},
true,
"a5a665ff33ec",
imageHeader,
ctx.Image,
},
{types.Container{
Image: "a5a665ff33eced1e0803148700880edab4",
ImageID: "a5a665ff33eced1e0803148700880edab4269067ed77e27737a708d0d293fbf5",
},
false,
"a5a665ff33eced1e0803148700880edab4",
imageHeader,
ctx.Image,
},
{types.Container{Image: ""}, true, "<no image>", imageHeader, ctx.Image},
{types.Container{Command: "sh -c 'ls -la'"}, true, `"sh -c 'ls -la'"`, commandHeader, ctx.Command},
{types.Container{Created: unix}, true, time.Unix(unix, 0).String(), createdAtHeader, ctx.CreatedAt},
{types.Container{Ports: []types.Port{{PrivatePort: 8080, PublicPort: 8080, Type: "tcp"}}}, true, "8080/tcp", portsHeader, ctx.Ports},
{types.Container{Status: "RUNNING"}, true, "RUNNING", statusHeader, ctx.Status},
{types.Container{SizeRw: 10}, true, "10 B", sizeHeader, ctx.Size},
{types.Container{SizeRw: 10, SizeRootFs: 20}, true, "10 B (virtual 20 B)", sizeHeader, ctx.Size},
{types.Container{}, true, "", labelsHeader, ctx.Labels},
{types.Container{Labels: map[string]string{"cpu": "6", "storage": "ssd"}}, true, "cpu=6,storage=ssd", labelsHeader, ctx.Labels},
{types.Container{Created: unix}, true, "Less than a second", runningForHeader, ctx.RunningFor},
}
for _, c := range cases {
ctx = containerContext{c: c.container, trunc: c.trunc}
v := c.call()
if strings.Contains(v, ",") {
// comma-separated values means probably a map input, which won't
// be guaranteed to have the same order as our expected value
// We'll create maps and use reflect.DeepEquals to check instead:
entriesMap := make(map[string]string)
expMap := make(map[string]string)
entries := strings.Split(v, ",")
expectedEntries := strings.Split(c.expValue, ",")
for _, entry := range entries {
keyval := strings.Split(entry, "=")
entriesMap[keyval[0]] = keyval[1]
}
for _, expected := range expectedEntries {
keyval := strings.Split(expected, "=")
expMap[keyval[0]] = keyval[1]
}
if !reflect.DeepEqual(expMap, entriesMap) {
t.Fatalf("Expected entries: %v, got: %v", c.expValue, v)
}
} else if v != c.expValue {
t.Fatalf("Expected %s, was %s\n", c.expValue, v)
}
h := ctx.fullHeader()
if h != c.expHeader {
t.Fatalf("Expected %s, was %s\n", c.expHeader, h)
}
}
c1 := types.Container{Labels: map[string]string{"com.docker.swarm.swarm-id": "33", "com.docker.swarm.node_name": "ubuntu"}}
ctx = containerContext{c: c1, trunc: true}
sid := ctx.Label("com.docker.swarm.swarm-id")
node := ctx.Label("com.docker.swarm.node_name")
if sid != "33" {
t.Fatalf("Expected 33, was %s\n", sid)
}
if node != "ubuntu" {
t.Fatalf("Expected ubuntu, was %s\n", node)
}
h := ctx.fullHeader()
if h != "SWARM ID\tNODE NAME" {
t.Fatalf("Expected %s, was %s\n", "SWARM ID\tNODE NAME", h)
}
c2 := types.Container{}
ctx = containerContext{c: c2, trunc: true}
label := ctx.Label("anything.really")
if label != "" {
t.Fatalf("Expected an empty string, was %s", label)
}
ctx = containerContext{c: c2, trunc: true}
fullHeader := ctx.fullHeader()
if fullHeader != "" {
t.Fatalf("Expected fullHeader to be empty, was %s", fullHeader)
}
}

140
api/client/ps/formatter.go Normal file
View File

@@ -0,0 +1,140 @@
package ps
import (
"bytes"
"fmt"
"io"
"strings"
"text/tabwriter"
"text/template"
"github.com/docker/docker/api/types"
)
const (
tableFormatKey = "table"
rawFormatKey = "raw"
defaultTableFormat = "table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.RunningFor}} ago\t{{.Status}}\t{{.Ports}}\t{{.Names}}"
defaultQuietFormat = "{{.ID}}"
)
// Context contains information required by the formatter to print the output as desired.
type Context struct {
// Output is the output stream to which the formatted string is written.
Output io.Writer
// Format is used to choose raw, table or custom format for the output.
Format string
// Size when set to true will display the size of the output.
Size bool
// Quiet when set to true will simply print minimal information.
Quiet bool
// Trunc when set to true will truncate the output of certain fields such as Container ID.
Trunc bool
}
// Format helps to format the output using the parameters set in the Context.
// Currently Format allow to display in raw, table or custom format the output.
func Format(ctx Context, containers []types.Container) {
switch ctx.Format {
case tableFormatKey:
tableFormat(ctx, containers)
case rawFormatKey:
rawFormat(ctx, containers)
default:
customFormat(ctx, containers)
}
}
func rawFormat(ctx Context, containers []types.Container) {
if ctx.Quiet {
ctx.Format = `container_id: {{.ID}}`
} else {
ctx.Format = `container_id: {{.ID}}
image: {{.Image}}
command: {{.Command}}
created_at: {{.CreatedAt}}
status: {{.Status}}
names: {{.Names}}
labels: {{.Labels}}
ports: {{.Ports}}
`
if ctx.Size {
ctx.Format += `size: {{.Size}}
`
}
}
customFormat(ctx, containers)
}
func tableFormat(ctx Context, containers []types.Container) {
ctx.Format = defaultTableFormat
if ctx.Quiet {
ctx.Format = defaultQuietFormat
}
customFormat(ctx, containers)
}
func customFormat(ctx Context, containers []types.Container) {
var (
table bool
header string
format = ctx.Format
buffer = bytes.NewBufferString("")
)
if strings.HasPrefix(ctx.Format, tableKey) {
table = true
format = format[len(tableKey):]
}
format = strings.Trim(format, " ")
r := strings.NewReplacer(`\t`, "\t", `\n`, "\n")
format = r.Replace(format)
if table && ctx.Size {
format += "\t{{.Size}}"
}
tmpl, err := template.New("").Parse(format)
if err != nil {
buffer.WriteString(fmt.Sprintf("Template parsing error: %v\n", err))
buffer.WriteTo(ctx.Output)
return
}
for _, container := range containers {
containerCtx := &containerContext{
trunc: ctx.Trunc,
c: container,
}
if err := tmpl.Execute(buffer, containerCtx); err != nil {
buffer = bytes.NewBufferString(fmt.Sprintf("Template parsing error: %v\n", err))
buffer.WriteTo(ctx.Output)
return
}
if table && len(header) == 0 {
header = containerCtx.fullHeader()
}
buffer.WriteString("\n")
}
if table {
if len(header) == 0 {
// if we still don't have a header, we didn't have any containers so we need to fake it to get the right headers from the template
containerCtx := &containerContext{}
tmpl.Execute(bytes.NewBufferString(""), containerCtx)
header = containerCtx.fullHeader()
}
t := tabwriter.NewWriter(ctx.Output, 20, 1, 3, ' ', 0)
t.Write([]byte(header))
t.Write([]byte("\n"))
buffer.WriteTo(t)
t.Flush()
} else {
buffer.WriteTo(ctx.Output)
}
}

View File

@@ -0,0 +1,208 @@
package ps
import (
"bytes"
"testing"
"github.com/docker/docker/api/types"
)
func TestFormat(t *testing.T) {
contexts := []struct {
context Context
expected string
}{
// Errors
{
Context{
Format: "{{InvalidFunction}}",
},
`Template parsing error: template: :1: function "InvalidFunction" not defined
`,
},
{
Context{
Format: "{{nil}}",
},
`Template parsing error: template: :1:2: executing "" at <nil>: nil is not a command
`,
},
// Table Format
{
Context{
Format: "table",
},
`CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
containerID1 ubuntu "" 45 years ago foobar_baz
containerID2 ubuntu "" 45 years ago foobar_bar
`,
},
{
Context{
Format: "table {{.Image}}",
},
"IMAGE\nubuntu\nubuntu\n",
},
{
Context{
Format: "table {{.Image}}",
Size: true,
},
"IMAGE SIZE\nubuntu 0 B\nubuntu 0 B\n",
},
{
Context{
Format: "table {{.Image}}",
Quiet: true,
},
"IMAGE\nubuntu\nubuntu\n",
},
{
Context{
Format: "table",
Quiet: true,
},
"containerID1\ncontainerID2\n",
},
// Raw Format
{
Context{
Format: "raw",
},
`container_id: containerID1
image: ubuntu
command: ""
created_at: 1970-01-01 00:00:00 +0000 UTC
status:
names: foobar_baz
labels:
ports:
container_id: containerID2
image: ubuntu
command: ""
created_at: 1970-01-01 00:00:00 +0000 UTC
status:
names: foobar_bar
labels:
ports:
`,
},
{
Context{
Format: "raw",
Size: true,
},
`container_id: containerID1
image: ubuntu
command: ""
created_at: 1970-01-01 00:00:00 +0000 UTC
status:
names: foobar_baz
labels:
ports:
size: 0 B
container_id: containerID2
image: ubuntu
command: ""
created_at: 1970-01-01 00:00:00 +0000 UTC
status:
names: foobar_bar
labels:
ports:
size: 0 B
`,
},
{
Context{
Format: "raw",
Quiet: true,
},
"container_id: containerID1\ncontainer_id: containerID2\n",
},
// Custom Format
{
Context{
Format: "{{.Image}}",
},
"ubuntu\nubuntu\n",
},
{
Context{
Format: "{{.Image}}",
Size: true,
},
"ubuntu\nubuntu\n",
},
}
for _, context := range contexts {
containers := []types.Container{
{ID: "containerID1", Names: []string{"/foobar_baz"}, Image: "ubuntu"},
{ID: "containerID2", Names: []string{"/foobar_bar"}, Image: "ubuntu"},
}
out := bytes.NewBufferString("")
context.context.Output = out
Format(context.context, containers)
actual := out.String()
if actual != context.expected {
t.Fatalf("Expected \n%s, got \n%s", context.expected, actual)
}
// Clean buffer
out.Reset()
}
}
func TestCustomFormatNoContainers(t *testing.T) {
out := bytes.NewBufferString("")
containers := []types.Container{}
contexts := []struct {
context Context
expected string
}{
{
Context{
Format: "{{.Image}}",
Output: out,
},
"",
},
{
Context{
Format: "table {{.Image}}",
Output: out,
},
"IMAGE\n",
},
{
Context{
Format: "{{.Image}}",
Output: out,
Size: true,
},
"",
},
{
Context{
Format: "table {{.Image}}",
Output: out,
Size: true,
},
"IMAGE SIZE\n",
},
}
for _, context := range contexts {
customFormat(context.context, containers)
actual := out.String()
if actual != context.expected {
t.Fatalf("Expected \n%s, got \n%s", context.expected, actual)
}
// Clean buffer
out.Reset()
}
}

View File

@@ -4,37 +4,34 @@ import (
"fmt"
"net/url"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/graph/tags"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
)
// CmdPull pulls an image or a repository from the registry.
//
// Usage: docker pull [OPTIONS] IMAGENAME[:TAG|@DIGEST]
func (cli *DockerCli) CmdPull(args ...string) error {
cmd := cli.Subcmd("pull", "NAME[:TAG|@DIGEST]", "Pull an image or a repository from the registry", true)
cmd := Cli.Subcmd("pull", []string{"NAME[:TAG|@DIGEST]"}, Cli.DockerCommands["pull"].Description, true)
allTags := cmd.Bool([]string{"a", "-all-tags"}, false, "Download all tagged images in the repository")
addTrustedFlags(cmd, true)
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
remote := cmd.Arg(0)
var (
v = url.Values{}
remote = cmd.Arg(0)
newRemote = remote
)
taglessRemote, tag := parsers.ParseRepositoryTag(remote)
if tag == "" && !*allTags {
newRemote = utils.ImageReference(taglessRemote, tags.DEFAULTTAG)
}
if tag != "" && *allTags {
tag = tags.DefaultTag
fmt.Fprintf(cli.out, "Using default tag: %s\n", tag)
} else if tag != "" && *allTags {
return fmt.Errorf("tag can't be used with --all-tags/-a")
}
v.Set("fromImage", newRemote)
ref := registry.ParseReference(tag)
// Resolve the Repository name from fqn to RepositoryInfo
repoInfo, err := registry.ParseRepositoryInfo(taglessRemote)
@@ -42,6 +39,15 @@ func (cli *DockerCli) CmdPull(args ...string) error {
return err
}
if isTrusted() && !ref.HasDigest() {
// Check if tag is digest
authConfig := registry.ResolveAuthConfig(cli.configFile, repoInfo.Index)
return cli.trustedPull(repoInfo, ref, authConfig)
}
v := url.Values{}
v.Set("fromImage", ref.ImageName(taglessRemote))
_, _, err = cli.clientRequestAttemptLogin("POST", "/images/create?"+v.Encode(), nil, cli.out, repoInfo.Index, "pull")
return err
}

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"net/url"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/registry"
@@ -13,14 +14,13 @@ import (
//
// Usage: docker push NAME[:TAG]
func (cli *DockerCli) CmdPush(args ...string) error {
cmd := cli.Subcmd("push", "NAME[:TAG]", "Push an image or a repository to the registry", true)
cmd := Cli.Subcmd("push", []string{"NAME[:TAG]"}, Cli.DockerCommands["push"].Description, true)
addTrustedFlags(cmd, false)
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
name := cmd.Arg(0)
remote, tag := parsers.ParseRepositoryTag(name)
remote, tag := parsers.ParseRepositoryTag(cmd.Arg(0))
// Resolve the Repository name from fqn to RepositoryInfo
repoInfo, err := registry.ParseRepositoryInfo(remote)
@@ -41,6 +41,10 @@ func (cli *DockerCli) CmdPush(args ...string) error {
return fmt.Errorf("You cannot push a \"root\" repository. Please rename your repository to <user>/<repo> (ex: %s/%s)", username, repoInfo.LocalName)
}
if isTrusted() {
return cli.trustedPush(repoInfo, tag, authConfig)
}
v := url.Values{}
v.Set("tag", tag)

View File

@@ -2,7 +2,9 @@ package client
import (
"fmt"
"strings"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -10,12 +12,17 @@ import (
//
// Usage: docker rename OLD_NAME NEW_NAME
func (cli *DockerCli) CmdRename(args ...string) error {
cmd := cli.Subcmd("rename", "OLD_NAME NEW_NAME", "Rename a container", true)
cmd := Cli.Subcmd("rename", []string{"OLD_NAME NEW_NAME"}, Cli.DockerCommands["rename"].Description, true)
cmd.Require(flag.Exact, 2)
cmd.ParseFlags(args, true)
oldName := cmd.Arg(0)
newName := cmd.Arg(1)
oldName := strings.TrimSpace(cmd.Arg(0))
newName := strings.TrimSpace(cmd.Arg(1))
if oldName == "" || newName == "" {
return fmt.Errorf("Error: Neither old nor new names may be empty")
}
if _, _, err := readBody(cli.call("POST", fmt.Sprintf("/containers/%s/rename?name=%s", oldName, newName), nil, nil)); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)

View File

@@ -5,14 +5,15 @@ import (
"net/url"
"strconv"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
// CmdRestart restarts one or more running containers.
// CmdRestart restarts one or more containers.
//
// Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]
// Usage: docker restart [OPTIONS] CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdRestart(args ...string) error {
cmd := cli.Subcmd("restart", "CONTAINER [CONTAINER...]", "Restart a running container", true)
cmd := Cli.Subcmd("restart", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["restart"].Description, true)
nSeconds := cmd.Int([]string{"t", "-time"}, 10, "Seconds to wait for stop before killing the container")
cmd.Require(flag.Min, 1)

View File

@@ -5,6 +5,7 @@ import (
"net/url"
"strings"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -12,7 +13,7 @@ import (
//
// Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdRm(args ...string) error {
cmd := cli.Subcmd("rm", "CONTAINER [CONTAINER...]", "Remove one or more containers", true)
cmd := Cli.Subcmd("rm", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["rm"].Description, true)
v := cmd.Bool([]string{"v", "-volumes"}, false, "Remove the volumes associated with the container")
link := cmd.Bool([]string{"l", "#link", "-link"}, false, "Remove the specified link")
force := cmd.Bool([]string{"f", "-force"}, false, "Force the removal of a running container (uses SIGKILL)")

View File

@@ -6,6 +6,7 @@ import (
"net/url"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -13,12 +14,11 @@ import (
//
// Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
func (cli *DockerCli) CmdRmi(args ...string) error {
var (
cmd = cli.Subcmd("rmi", "IMAGE [IMAGE...]", "Remove one or more images", true)
force = cmd.Bool([]string{"f", "-force"}, false, "Force removal of the image")
noprune = cmd.Bool([]string{"-no-prune"}, false, "Do not delete untagged parents")
)
cmd := Cli.Subcmd("rmi", []string{"IMAGE [IMAGE...]"}, Cli.DockerCommands["rmi"].Description, true)
force := cmd.Bool([]string{"f", "-force"}, false, "Force removal of the image")
noprune := cmd.Bool([]string{"-no-prune"}, false, "Do not delete untagged parents")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
v := url.Values{}
@@ -31,13 +31,15 @@ func (cli *DockerCli) CmdRmi(args ...string) error {
var errNames []string
for _, name := range cmd.Args() {
rdr, _, err := cli.call("DELETE", "/images/"+name+"?"+v.Encode(), nil, nil)
serverResp, err := cli.call("DELETE", "/images/"+name+"?"+v.Encode(), nil, nil)
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
} else {
defer serverResp.body.Close()
dels := []types.ImageDelete{}
if err := json.NewDecoder(rdr).Decode(&dels); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&dels); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
continue

View File

@@ -5,8 +5,10 @@ import (
"io"
"net/url"
"os"
"runtime"
"github.com/Sirupsen/logrus"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/promise"
"github.com/docker/docker/pkg/signal"
@@ -38,7 +40,8 @@ func (cid *cidFile) Write(id string) error {
//
// Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
func (cli *DockerCli) CmdRun(args ...string) error {
cmd := cli.Subcmd("run", "IMAGE [COMMAND] [ARG...]", "Run a command in a new container", true)
cmd := Cli.Subcmd("run", []string{"IMAGE [COMMAND] [ARG...]"}, Cli.DockerCommands["run"].Description, true)
addTrustedFlags(cmd, true)
// These are flags not stored in Config/HostConfig
var (
@@ -57,13 +60,14 @@ func (cli *DockerCli) CmdRun(args ...string) error {
// just in case the Parse does not exit
if err != nil {
cmd.ReportError(err.Error(), true)
os.Exit(1)
}
if len(hostConfig.Dns) > 0 {
if len(hostConfig.DNS) > 0 {
// check the DNS settings passed via --dns against
// localhost regexp to warn if they are trying to
// set a DNS to a localhost address
for _, dnsIP := range hostConfig.Dns {
for _, dnsIP := range hostConfig.DNS {
if dns.IsLocalhost(dnsIP) {
fmt.Fprintf(cli.err, "WARNING: Localhost DNS setting (--dns=%s) may fail in containers.\n", dnsIP)
break
@@ -102,6 +106,13 @@ func (cli *DockerCli) CmdRun(args ...string) error {
sigProxy = false
}
// Telling the Windows daemon the initial size of the tty during start makes
// a far better user experience rather than relying on subsequent resizes
// to cause things to catch up.
if runtime.GOOS == "windows" {
hostConfig.ConsoleSize[0], hostConfig.ConsoleSize[1] = cli.getTtySize()
}
createResponse, err := cli.createContainer(config, hostConfig, hostConfig.ContainerIDFile, *flName)
if err != nil {
return err
@@ -240,7 +251,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
}
}
if status != 0 {
return StatusError{StatusCode: status}
return Cli.StatusError{StatusCode: status}
}
return nil
}

View File

@@ -2,10 +2,10 @@ package client
import (
"errors"
"io"
"net/url"
"os"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -15,23 +15,24 @@ import (
//
// Usage: docker save [OPTIONS] IMAGE [IMAGE...]
func (cli *DockerCli) CmdSave(args ...string) error {
cmd := cli.Subcmd("save", "IMAGE [IMAGE...]", "Save an image(s) to a tar archive (streamed to STDOUT by default)", true)
outfile := cmd.String([]string{"o", "-output"}, "", "Write to an file, instead of STDOUT")
cmd := Cli.Subcmd("save", []string{"IMAGE [IMAGE...]"}, Cli.DockerCommands["save"].Description+" (streamed to STDOUT by default)", true)
outfile := cmd.String([]string{"o", "-output"}, "", "Write to a file, instead of STDOUT")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
var (
output io.Writer = cli.out
output = cli.out
err error
)
if *outfile == "" && cli.isTerminalOut {
return errors.New("Cowardly refusing to save to a terminal. Use the -o flag or redirect.")
}
if *outfile != "" {
output, err = os.Create(*outfile)
if err != nil {
if output, err = os.Create(*outfile); err != nil {
return err
}
} else if cli.isTerminalOut {
return errors.New("Cowardly refusing to save to a terminal. Use the -o flag or redirect.")
}
sopts := &streamOpts{
@@ -39,19 +40,13 @@ func (cli *DockerCli) CmdSave(args ...string) error {
out: output,
}
if len(cmd.Args()) == 1 {
image := cmd.Arg(0)
if err := cli.stream("GET", "/images/"+image+"/get", sopts); err != nil {
return err
}
} else {
v := url.Values{}
for _, arg := range cmd.Args() {
v.Add("names", arg)
}
if err := cli.stream("GET", "/images/get?"+v.Encode(), sopts); err != nil {
return err
}
v := url.Values{}
for _, arg := range cmd.Args() {
v.Add("names", arg)
}
if _, err := cli.stream("GET", "/images/get?"+v.Encode(), sopts); err != nil {
return err
}
return nil
}

View File

@@ -8,6 +8,7 @@ import (
"strings"
"text/tabwriter"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/stringutils"
@@ -25,7 +26,7 @@ func (r ByStars) Less(i, j int) bool { return r[i].StarCount < r[j].StarCount }
//
// Usage: docker search [OPTIONS] TERM
func (cli *DockerCli) CmdSearch(args ...string) error {
cmd := cli.Subcmd("search", "TERM", "Search the Docker Hub for images", true)
cmd := Cli.Subcmd("search", []string{"TERM"}, Cli.DockerCommands["search"].Description, true)
noTrunc := cmd.Bool([]string{"#notrunc", "-no-trunc"}, false, "Don't truncate output")
trusted := cmd.Bool([]string{"#t", "#trusted", "#-trusted"}, false, "Only show trusted builds")
automated := cmd.Bool([]string{"-automated"}, false, "Only show automated builds")
@@ -40,16 +41,19 @@ func (cli *DockerCli) CmdSearch(args ...string) error {
// Resolve the Repository name from fqn to hostname + name
taglessRemote, _ := parsers.ParseRepositoryTag(name)
repoInfo, err := registry.ParseRepositoryInfo(taglessRemote)
indexInfo, err := registry.ParseIndexInfo(taglessRemote)
if err != nil {
return err
}
rdr, _, err := cli.clientRequestAttemptLogin("GET", "/images/search?"+v.Encode(), nil, nil, repoInfo.Index, "search")
rdr, _, err := cli.clientRequestAttemptLogin("GET", "/images/search?"+v.Encode(), nil, nil, indexInfo, "search")
if err != nil {
return err
}
defer rdr.Close()
results := ByStars{}
if err := json.NewDecoder(rdr).Decode(&results); err != nil {
return err
@@ -60,7 +64,7 @@ func (cli *DockerCli) CmdSearch(args ...string) error {
w := tabwriter.NewWriter(cli.out, 10, 1, 3, ' ', 0)
fmt.Fprintf(w, "NAME\tDESCRIPTION\tSTARS\tOFFICIAL\tAUTOMATED\n")
for _, res := range results {
if ((*automated || *trusted) && (!res.IsTrusted && !res.IsAutomated)) || (int(*stars) > res.StarCount) {
if (*automated && !res.IsAutomated) || (int(*stars) > res.StarCount) || (*trusted && !res.IsTrusted) {
continue
}
desc := strings.Replace(res.Description, "\n", " ", -1)

View File

@@ -9,6 +9,7 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/promise"
"github.com/docker/docker/pkg/signal"
@@ -31,6 +32,7 @@ func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal {
}
if sig == "" {
fmt.Fprintf(cli.err, "Unsupported signal: %v. Discarding.\n", s)
continue
}
if _, _, err := readBody(cli.call("POST", fmt.Sprintf("/containers/%s/kill?signal=%s", cid, sig), nil, nil)); err != nil {
logrus.Debugf("Error sending signal: %s", err)
@@ -40,34 +42,36 @@ func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal {
return sigc
}
// CmdStart starts one or more stopped containers.
// CmdStart starts one or more containers.
//
// Usage: docker start [OPTIONS] CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdStart(args ...string) error {
cmd := Cli.Subcmd("start", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["start"].Description, true)
attach := cmd.Bool([]string{"a", "-attach"}, false, "Attach STDOUT/STDERR and forward signals")
openStdin := cmd.Bool([]string{"i", "-interactive"}, false, "Attach container's STDIN")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
var (
cErr chan error
tty bool
cmd = cli.Subcmd("start", "CONTAINER [CONTAINER...]", "Start one or more stopped containers", true)
attach = cmd.Bool([]string{"a", "-attach"}, false, "Attach STDOUT/STDERR and forward signals")
openStdin = cmd.Bool([]string{"i", "-interactive"}, false, "Attach container's STDIN")
)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
if *attach || *openStdin {
if cmd.NArg() > 1 {
return fmt.Errorf("You cannot start and attach multiple containers at once.")
}
stream, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
var c types.ContainerJSON
if err := json.NewDecoder(stream).Decode(&c); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return err
}
@@ -160,7 +164,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
return err
}
if status != 0 {
return StatusError{StatusCode: status}
return Cli.StatusError{StatusCode: status}
}
}
return nil

View File

@@ -12,6 +12,7 @@ import (
"time"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/units"
)
@@ -24,6 +25,8 @@ type containerStats struct {
MemoryPercentage float64
NetworkRx float64
NetworkTx float64
BlockRead float64
BlockWrite float64
mu sync.RWMutex
err error
}
@@ -35,46 +38,52 @@ func (s *containerStats) Collect(cli *DockerCli, streamStats bool) {
} else {
v.Set("stream", "0")
}
stream, _, err := cli.call("GET", "/containers/"+s.Name+"/stats?"+v.Encode(), nil, nil)
serverResp, err := cli.call("GET", "/containers/"+s.Name+"/stats?"+v.Encode(), nil, nil)
if err != nil {
s.mu.Lock()
s.err = err
s.mu.Unlock()
return
}
defer stream.Close()
defer serverResp.body.Close()
var (
previousCPU uint64
previousSystem uint64
start = true
dec = json.NewDecoder(stream)
dec = json.NewDecoder(serverResp.body)
u = make(chan error, 1)
)
go func() {
for {
var v *types.Stats
var v *types.StatsJSON
if err := dec.Decode(&v); err != nil {
u <- err
return
}
var (
var memPercent = 0.0
var cpuPercent = 0.0
// MemoryStats.Limit will never be 0 unless the container is not running and we havn't
// got any data from cgroup
if v.MemoryStats.Limit != 0 {
memPercent = float64(v.MemoryStats.Usage) / float64(v.MemoryStats.Limit) * 100.0
cpuPercent = 0.0
)
if !start {
cpuPercent = calculateCPUPercent(previousCPU, previousSystem, v)
}
start = false
previousCPU = v.PreCPUStats.CPUUsage.TotalUsage
previousSystem = v.PreCPUStats.SystemUsage
cpuPercent = calculateCPUPercent(previousCPU, previousSystem, v)
blkRead, blkWrite := calculateBlockIO(v.BlkioStats)
s.mu.Lock()
s.CPUPercentage = cpuPercent
s.Memory = float64(v.MemoryStats.Usage)
s.MemoryLimit = float64(v.MemoryStats.Limit)
s.MemoryPercentage = memPercent
s.NetworkRx = float64(v.Network.RxBytes)
s.NetworkTx = float64(v.Network.TxBytes)
s.NetworkRx, s.NetworkTx = calculateNetwork(v.Networks)
s.BlockRead = float64(blkRead)
s.BlockWrite = float64(blkWrite)
s.mu.Unlock()
previousCPU = v.CpuStats.CpuUsage.TotalUsage
previousSystem = v.CpuStats.SystemUsage
u <- nil
if !streamStats {
return
@@ -90,6 +99,11 @@ func (s *containerStats) Collect(cli *DockerCli, streamStats bool) {
s.CPUPercentage = 0
s.Memory = 0
s.MemoryPercentage = 0
s.MemoryLimit = 0
s.NetworkRx = 0
s.NetworkTx = 0
s.BlockRead = 0
s.BlockWrite = 0
s.mu.Unlock()
case err := <-u:
if err != nil {
@@ -111,12 +125,13 @@ func (s *containerStats) Display(w io.Writer) error {
if s.err != nil {
return s.err
}
fmt.Fprintf(w, "%s\t%.2f%%\t%s/%s\t%.2f%%\t%s/%s\n",
fmt.Fprintf(w, "%s\t%.2f%%\t%s / %s\t%.2f%%\t%s / %s\t%s / %s\n",
s.Name,
s.CPUPercentage,
units.HumanSize(s.Memory), units.HumanSize(s.MemoryLimit),
s.MemoryPercentage,
units.HumanSize(s.NetworkRx), units.HumanSize(s.NetworkTx))
units.HumanSize(s.NetworkRx), units.HumanSize(s.NetworkTx),
units.HumanSize(s.BlockRead), units.HumanSize(s.BlockWrite))
return nil
}
@@ -126,9 +141,10 @@ func (s *containerStats) Display(w io.Writer) error {
//
// Usage: docker stats CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdStats(args ...string) error {
cmd := cli.Subcmd("stats", "CONTAINER [CONTAINER...]", "Display a live stream of one or more containers' resource usage statistics", true)
cmd := Cli.Subcmd("stats", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["stats"].Description, true)
noStream := cmd.Bool([]string{"-no-stream"}, false, "Disable streaming stats and only pull the first result")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
names := cmd.Args()
@@ -142,7 +158,7 @@ func (cli *DockerCli) CmdStats(args ...string) error {
fmt.Fprint(cli.out, "\033[2J")
fmt.Fprint(cli.out, "\033[H")
}
io.WriteString(w, "CONTAINER\tCPU %\tMEM USAGE/LIMIT\tMEM %\tNET I/O\n")
io.WriteString(w, "CONTAINER\tCPU %\tMEM USAGE / LIMIT\tMEM %\tNET I/O\tBLOCK I/O\n")
}
for _, n := range names {
s := &containerStats{Name: n}
@@ -151,7 +167,7 @@ func (cli *DockerCli) CmdStats(args ...string) error {
}
// do a quick pause so that any failed connections for containers that do not exist are able to be
// evicted before we display the initial or default values.
time.Sleep(500 * time.Millisecond)
time.Sleep(1500 * time.Millisecond)
var errs []string
for _, c := range cStats {
c.mu.Lock()
@@ -186,17 +202,39 @@ func (cli *DockerCli) CmdStats(args ...string) error {
return nil
}
func calculateCPUPercent(previousCPU, previousSystem uint64, v *types.Stats) float64 {
func calculateCPUPercent(previousCPU, previousSystem uint64, v *types.StatsJSON) float64 {
var (
cpuPercent = 0.0
// calculate the change for the cpu usage of the container in between readings
cpuDelta = float64(v.CpuStats.CpuUsage.TotalUsage - previousCPU)
cpuDelta = float64(v.CPUStats.CPUUsage.TotalUsage - previousCPU)
// calculate the change for the entire system between readings
systemDelta = float64(v.CpuStats.SystemUsage - previousSystem)
systemDelta = float64(v.CPUStats.SystemUsage - previousSystem)
)
if systemDelta > 0.0 && cpuDelta > 0.0 {
cpuPercent = (cpuDelta / systemDelta) * float64(len(v.CpuStats.CpuUsage.PercpuUsage)) * 100.0
cpuPercent = (cpuDelta / systemDelta) * float64(len(v.CPUStats.CPUUsage.PercpuUsage)) * 100.0
}
return cpuPercent
}
func calculateBlockIO(blkio types.BlkioStats) (blkRead uint64, blkWrite uint64) {
for _, bioEntry := range blkio.IoServiceBytesRecursive {
switch strings.ToLower(bioEntry.Op) {
case "read":
blkRead = blkRead + bioEntry.Value
case "write":
blkWrite = blkWrite + bioEntry.Value
}
}
return
}
func calculateNetwork(network map[string]types.NetworkStats) (float64, float64) {
var rx, tx float64
for _, v := range network {
rx += float64(v.RxBytes)
tx += float64(v.TxBytes)
}
return rx, tx
}

View File

@@ -4,6 +4,8 @@ import (
"bytes"
"sync"
"testing"
"github.com/docker/docker/api/types"
)
func TestDisplay(t *testing.T) {
@@ -15,6 +17,8 @@ func TestDisplay(t *testing.T) {
MemoryPercentage: 100.0 / 2048.0 * 100.0,
NetworkRx: 100 * 1024 * 1024,
NetworkTx: 800 * 1024 * 1024,
BlockRead: 100 * 1024 * 1024,
BlockWrite: 800 * 1024 * 1024,
mu: sync.RWMutex{},
}
var b bytes.Buffer
@@ -22,8 +26,21 @@ func TestDisplay(t *testing.T) {
t.Fatalf("c.Display() gave error: %s", err)
}
got := b.String()
want := "app\t30.00%\t104.9 MB/2.147 GB\t4.88%\t104.9 MB/838.9 MB\n"
want := "app\t30.00%\t104.9 MB / 2.147 GB\t4.88%\t104.9 MB / 838.9 MB\t104.9 MB / 838.9 MB\n"
if got != want {
t.Fatalf("c.Display() = %q, want %q", got, want)
}
}
func TestCalculBlockIO(t *testing.T) {
blkio := types.BlkioStats{
IoServiceBytesRecursive: []types.BlkioStatEntry{{8, 0, "read", 1234}, {8, 1, "read", 4567}, {8, 0, "write", 123}, {8, 1, "write", 456}},
}
blkRead, blkWrite := calculateBlockIO(blkio)
if blkRead != 5801 {
t.Fatalf("blkRead = %d, want 5801", blkRead)
}
if blkWrite != 579 {
t.Fatalf("blkWrite = %d, want 579", blkWrite)
}
}

View File

@@ -5,16 +5,17 @@ import (
"net/url"
"strconv"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
// CmdStop stops one or more running containers.
// CmdStop stops one or more containers.
//
// A running container is stopped by first sending SIGTERM and then SIGKILL if the container fails to stop within a grace period (the default is 10 seconds).
//
// Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdStop(args ...string) error {
cmd := cli.Subcmd("stop", "CONTAINER [CONTAINER...]", "Stop a running container by sending SIGTERM and then SIGKILL after a\ngrace period", true)
cmd := Cli.Subcmd("stop", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["stop"].Description+".\nSending SIGTERM and then SIGKILL after a grace period", true)
nSeconds := cmd.Int([]string{"t", "-time"}, 10, "Seconds to wait for stop before killing it")
cmd.Require(flag.Min, 1)

View File

@@ -3,6 +3,7 @@ package client
import (
"net/url"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/registry"
@@ -12,7 +13,7 @@ import (
//
// Usage: docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
func (cli *DockerCli) CmdTag(args ...string) error {
cmd := cli.Subcmd("tag", "IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]", "Tag an image into a repository", true)
cmd := Cli.Subcmd("tag", []string{"IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]"}, Cli.DockerCommands["tag"].Description, true)
force := cmd.Bool([]string{"f", "#force", "-force"}, false, "Force")
cmd.Require(flag.Exact, 2)

View File

@@ -8,6 +8,7 @@ import (
"text/tabwriter"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -15,7 +16,7 @@ import (
//
// Usage: docker top CONTAINER
func (cli *DockerCli) CmdTop(args ...string) error {
cmd := cli.Subcmd("top", "CONTAINER [ps OPTIONS]", "Display the running processes of a container", true)
cmd := Cli.Subcmd("top", []string{"CONTAINER [ps OPTIONS]"}, Cli.DockerCommands["top"].Description, true)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
@@ -25,13 +26,15 @@ func (cli *DockerCli) CmdTop(args ...string) error {
val.Set("ps_args", strings.Join(cmd.Args()[1:], " "))
}
stream, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/top?"+val.Encode(), nil, nil)
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/top?"+val.Encode(), nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
procList := types.ContainerProcessList{}
if err := json.NewDecoder(stream).Decode(&procList); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&procList); err != nil {
return err
}

479
api/client/trust.go Normal file
View File

@@ -0,0 +1,479 @@
package client
import (
"bufio"
"encoding/hex"
"encoding/json"
"errors"
"fmt"
"io"
"net"
"net/http"
"net/url"
"os"
"path/filepath"
"regexp"
"sort"
"strconv"
"time"
"github.com/Sirupsen/logrus"
"github.com/docker/distribution/digest"
"github.com/docker/distribution/registry/client/auth"
"github.com/docker/distribution/registry/client/transport"
"github.com/docker/docker/cliconfig"
"github.com/docker/docker/pkg/ansiescape"
"github.com/docker/docker/pkg/ioutils"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/tlsconfig"
"github.com/docker/docker/registry"
"github.com/docker/notary/client"
"github.com/docker/notary/pkg/passphrase"
"github.com/docker/notary/trustmanager"
"github.com/endophage/gotuf/data"
)
var untrusted bool
func addTrustedFlags(fs *flag.FlagSet, verify bool) {
var trusted bool
if e := os.Getenv("DOCKER_CONTENT_TRUST"); e != "" {
if t, err := strconv.ParseBool(e); t || err != nil {
// treat any other value as true
trusted = true
}
}
message := "Skip image signing"
if verify {
message = "Skip image verification"
}
fs.BoolVar(&untrusted, []string{"-disable-content-trust"}, !trusted, message)
}
func isTrusted() bool {
return !untrusted
}
var targetRegexp = regexp.MustCompile(`([\S]+): digest: ([\S]+) size: ([\d]+)`)
type target struct {
reference registry.Reference
digest digest.Digest
size int64
}
func (cli *DockerCli) trustDirectory() string {
return filepath.Join(cliconfig.ConfigDir(), "trust")
}
// certificateDirectory returns the directory containing
// TLS certificates for the given server. An error is
// returned if there was an error parsing the server string.
func (cli *DockerCli) certificateDirectory(server string) (string, error) {
u, err := url.Parse(server)
if err != nil {
return "", err
}
return filepath.Join(cliconfig.ConfigDir(), "tls", u.Host), nil
}
func trustServer(index *registry.IndexInfo) (string, error) {
if s := os.Getenv("DOCKER_CONTENT_TRUST_SERVER"); s != "" {
urlObj, err := url.Parse(s)
if err != nil || urlObj.Scheme != "https" {
return "", fmt.Errorf("valid https URL required for trust server, got %s", s)
}
return s, nil
}
if index.Official {
return registry.NotaryServer, nil
}
return "https://" + index.Name, nil
}
type simpleCredentialStore struct {
auth cliconfig.AuthConfig
}
func (scs simpleCredentialStore) Basic(u *url.URL) (string, string) {
return scs.auth.Username, scs.auth.Password
}
func (cli *DockerCli) getNotaryRepository(repoInfo *registry.RepositoryInfo, authConfig cliconfig.AuthConfig) (*client.NotaryRepository, error) {
server, err := trustServer(repoInfo.Index)
if err != nil {
return nil, err
}
var cfg = tlsconfig.ClientDefault
cfg.InsecureSkipVerify = !repoInfo.Index.Secure
// Get certificate base directory
certDir, err := cli.certificateDirectory(server)
if err != nil {
return nil, err
}
logrus.Debugf("reading certificate directory: %s", certDir)
if err := registry.ReadCertsDirectory(&cfg, certDir); err != nil {
return nil, err
}
base := &http.Transport{
Proxy: http.ProxyFromEnvironment,
Dial: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
DualStack: true,
}).Dial,
TLSHandshakeTimeout: 10 * time.Second,
TLSClientConfig: &cfg,
DisableKeepAlives: true,
}
// Skip configuration headers since request is not going to Docker daemon
modifiers := registry.DockerHeaders(http.Header{})
authTransport := transport.NewTransport(base, modifiers...)
pingClient := &http.Client{
Transport: authTransport,
Timeout: 5 * time.Second,
}
endpointStr := server + "/v2/"
req, err := http.NewRequest("GET", endpointStr, nil)
if err != nil {
return nil, err
}
challengeManager := auth.NewSimpleChallengeManager()
resp, err := pingClient.Do(req)
if err != nil {
// Ignore error on ping to operate in offline mode
logrus.Debugf("Error pinging notary server %q: %s", endpointStr, err)
} else {
defer resp.Body.Close()
// Add response to the challenge manager to parse out
// authentication header and register authentication method
if err := challengeManager.AddResponse(resp); err != nil {
return nil, err
}
}
creds := simpleCredentialStore{auth: authConfig}
tokenHandler := auth.NewTokenHandler(authTransport, creds, repoInfo.CanonicalName, "push", "pull")
basicHandler := auth.NewBasicHandler(creds)
modifiers = append(modifiers, transport.RequestModifier(auth.NewAuthorizer(challengeManager, tokenHandler, basicHandler)))
tr := transport.NewTransport(base, modifiers...)
return client.NewNotaryRepository(cli.trustDirectory(), repoInfo.CanonicalName, server, tr, cli.getPassphraseRetriever())
}
func convertTarget(t client.Target) (target, error) {
h, ok := t.Hashes["sha256"]
if !ok {
return target{}, errors.New("no valid hash, expecting sha256")
}
return target{
reference: registry.ParseReference(t.Name),
digest: digest.NewDigestFromHex("sha256", hex.EncodeToString(h)),
size: t.Length,
}, nil
}
func (cli *DockerCli) getPassphraseRetriever() passphrase.Retriever {
aliasMap := map[string]string{
"root": "root",
"snapshot": "repository",
"targets": "repository",
}
baseRetriever := passphrase.PromptRetrieverWithInOut(cli.in, cli.out, aliasMap)
env := map[string]string{
"root": os.Getenv("DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE"),
"snapshot": os.Getenv("DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE"),
"targets": os.Getenv("DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE"),
}
// Backwards compatibility with old env names. We should remove this in 1.10
if env["root"] == "" {
if passphrase := os.Getenv("DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE"); passphrase != "" {
env["root"] = passphrase
fmt.Fprintf(cli.err, "[DEPRECATED] The environment variable DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE has been deprecated and will be removed in v1.10. Please use DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE\n")
}
}
if env["snapshot"] == "" || env["targets"] == "" {
if passphrase := os.Getenv("DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE"); passphrase != "" {
env["snapshot"] = passphrase
env["targets"] = passphrase
fmt.Fprintf(cli.err, "[DEPRECATED] The environment variable DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE has been deprecated and will be removed in v1.10. Please use DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE\n")
}
}
return func(keyName string, alias string, createNew bool, numAttempts int) (string, bool, error) {
if v := env[alias]; v != "" {
return v, numAttempts > 1, nil
}
return baseRetriever(keyName, alias, createNew, numAttempts)
}
}
func (cli *DockerCli) trustedReference(repo string, ref registry.Reference) (registry.Reference, error) {
repoInfo, err := registry.ParseRepositoryInfo(repo)
if err != nil {
return nil, err
}
// Resolve the Auth config relevant for this server
authConfig := registry.ResolveAuthConfig(cli.configFile, repoInfo.Index)
notaryRepo, err := cli.getNotaryRepository(repoInfo, authConfig)
if err != nil {
fmt.Fprintf(cli.out, "Error establishing connection to trust repository: %s\n", err)
return nil, err
}
t, err := notaryRepo.GetTargetByName(ref.String())
if err != nil {
return nil, err
}
r, err := convertTarget(*t)
if err != nil {
return nil, err
}
return registry.DigestReference(r.digest), nil
}
func (cli *DockerCli) tagTrusted(repoInfo *registry.RepositoryInfo, trustedRef, ref registry.Reference) error {
fullName := trustedRef.ImageName(repoInfo.LocalName)
fmt.Fprintf(cli.out, "Tagging %s as %s\n", fullName, ref.ImageName(repoInfo.LocalName))
tv := url.Values{}
tv.Set("repo", repoInfo.LocalName)
tv.Set("tag", ref.String())
tv.Set("force", "1")
if _, _, err := readBody(cli.call("POST", "/images/"+fullName+"/tag?"+tv.Encode(), nil, nil)); err != nil {
return err
}
return nil
}
func notaryError(err error) error {
switch err.(type) {
case *json.SyntaxError:
logrus.Debugf("Notary syntax error: %s", err)
return errors.New("no trust data available for remote repository")
case client.ErrExpired:
return fmt.Errorf("remote repository out-of-date: %v", err)
case trustmanager.ErrKeyNotFound:
return fmt.Errorf("signing keys not found: %v", err)
case *net.OpError:
return fmt.Errorf("error contacting notary server: %v", err)
}
return err
}
func (cli *DockerCli) trustedPull(repoInfo *registry.RepositoryInfo, ref registry.Reference, authConfig cliconfig.AuthConfig) error {
var (
v = url.Values{}
refs = []target{}
)
notaryRepo, err := cli.getNotaryRepository(repoInfo, authConfig)
if err != nil {
fmt.Fprintf(cli.out, "Error establishing connection to trust repository: %s\n", err)
return err
}
if ref.String() == "" {
// List all targets
targets, err := notaryRepo.ListTargets()
if err != nil {
return notaryError(err)
}
for _, tgt := range targets {
t, err := convertTarget(*tgt)
if err != nil {
fmt.Fprintf(cli.out, "Skipping target for %q\n", repoInfo.LocalName)
continue
}
refs = append(refs, t)
}
} else {
t, err := notaryRepo.GetTargetByName(ref.String())
if err != nil {
return notaryError(err)
}
r, err := convertTarget(*t)
if err != nil {
return err
}
refs = append(refs, r)
}
v.Set("fromImage", repoInfo.LocalName)
for i, r := range refs {
displayTag := r.reference.String()
if displayTag != "" {
displayTag = ":" + displayTag
}
fmt.Fprintf(cli.out, "Pull (%d of %d): %s%s@%s\n", i+1, len(refs), repoInfo.LocalName, displayTag, r.digest)
v.Set("tag", r.digest.String())
_, _, err = cli.clientRequestAttemptLogin("POST", "/images/create?"+v.Encode(), nil, cli.out, repoInfo.Index, "pull")
if err != nil {
return err
}
// If reference is not trusted, tag by trusted reference
if !r.reference.HasDigest() {
if err := cli.tagTrusted(repoInfo, registry.DigestReference(r.digest), r.reference); err != nil {
return err
}
}
}
return nil
}
func selectKey(keys map[string]string) string {
if len(keys) == 0 {
return ""
}
keyIDs := []string{}
for k := range keys {
keyIDs = append(keyIDs, k)
}
// TODO(dmcgowan): let user choose if multiple keys, now pick consistently
sort.Strings(keyIDs)
return keyIDs[0]
}
func targetStream(in io.Writer) (io.WriteCloser, <-chan []target) {
r, w := io.Pipe()
out := io.MultiWriter(in, w)
targetChan := make(chan []target)
go func() {
targets := []target{}
scanner := bufio.NewScanner(r)
scanner.Split(ansiescape.ScanANSILines)
for scanner.Scan() {
line := scanner.Bytes()
if matches := targetRegexp.FindSubmatch(line); len(matches) == 4 {
dgst, err := digest.ParseDigest(string(matches[2]))
if err != nil {
// Line does match what is expected, continue looking for valid lines
logrus.Debugf("Bad digest value %q in matched line, ignoring\n", string(matches[2]))
continue
}
s, err := strconv.ParseInt(string(matches[3]), 10, 64)
if err != nil {
// Line does match what is expected, continue looking for valid lines
logrus.Debugf("Bad size value %q in matched line, ignoring\n", string(matches[3]))
continue
}
targets = append(targets, target{
reference: registry.ParseReference(string(matches[1])),
digest: dgst,
size: s,
})
}
}
targetChan <- targets
}()
return ioutils.NewWriteCloserWrapper(out, w.Close), targetChan
}
func (cli *DockerCli) trustedPush(repoInfo *registry.RepositoryInfo, tag string, authConfig cliconfig.AuthConfig) error {
streamOut, targetChan := targetStream(cli.out)
v := url.Values{}
v.Set("tag", tag)
_, _, err := cli.clientRequestAttemptLogin("POST", "/images/"+repoInfo.LocalName+"/push?"+v.Encode(), nil, streamOut, repoInfo.Index, "push")
// Close stream channel to finish target parsing
if err := streamOut.Close(); err != nil {
return err
}
// Check error from request
if err != nil {
return err
}
// Get target results
targets := <-targetChan
if tag == "" {
fmt.Fprintf(cli.out, "No tag specified, skipping trust metadata push\n")
return nil
}
if len(targets) == 0 {
fmt.Fprintf(cli.out, "No targets found, skipping trust metadata push\n")
return nil
}
fmt.Fprintf(cli.out, "Signing and pushing trust metadata\n")
repo, err := cli.getNotaryRepository(repoInfo, authConfig)
if err != nil {
fmt.Fprintf(cli.out, "Error establishing connection to notary repository: %s\n", err)
return err
}
for _, target := range targets {
h, err := hex.DecodeString(target.digest.Hex())
if err != nil {
return err
}
t := &client.Target{
Name: target.reference.String(),
Hashes: data.Hashes{
string(target.digest.Algorithm()): h,
},
Length: int64(target.size),
}
if err := repo.AddTarget(t); err != nil {
return err
}
}
err = repo.Publish()
if _, ok := err.(*client.ErrRepoNotInitialized); !ok {
return notaryError(err)
}
ks := repo.KeyStoreManager
keys := ks.RootKeyStore().ListKeys()
rootKey := selectKey(keys)
if rootKey == "" {
rootKey, err = ks.GenRootKey("ecdsa")
if err != nil {
return err
}
}
cryptoService, err := ks.GetRootCryptoService(rootKey)
if err != nil {
return err
}
if err := repo.Initialize(cryptoService); err != nil {
return notaryError(err)
}
fmt.Fprintf(cli.out, "Finished initializing %q\n", repoInfo.CanonicalName)
return notaryError(repo.Publish())
}

55
api/client/trust_test.go Normal file
View File

@@ -0,0 +1,55 @@
package client
import (
"os"
"testing"
"github.com/docker/docker/registry"
)
func unsetENV() {
os.Unsetenv("DOCKER_CONTENT_TRUST")
os.Unsetenv("DOCKER_CONTENT_TRUST_SERVER")
}
func TestENVTrustServer(t *testing.T) {
defer unsetENV()
indexInfo := &registry.IndexInfo{Name: "testserver"}
if err := os.Setenv("DOCKER_CONTENT_TRUST_SERVER", "https://notary-test.com:5000"); err != nil {
t.Fatal("Failed to set ENV variable")
}
output, err := trustServer(indexInfo)
expectedStr := "https://notary-test.com:5000"
if err != nil || output != expectedStr {
t.Fatalf("Expected server to be %s, got %s", expectedStr, output)
}
}
func TestHTTPENVTrustServer(t *testing.T) {
defer unsetENV()
indexInfo := &registry.IndexInfo{Name: "testserver"}
if err := os.Setenv("DOCKER_CONTENT_TRUST_SERVER", "http://notary-test.com:5000"); err != nil {
t.Fatal("Failed to set ENV variable")
}
_, err := trustServer(indexInfo)
if err == nil {
t.Fatal("Expected error with invalid scheme")
}
}
func TestOfficialTrustServer(t *testing.T) {
indexInfo := &registry.IndexInfo{Name: "testserver", Official: true}
output, err := trustServer(indexInfo)
if err != nil || output != registry.NotaryServer {
t.Fatalf("Expected server to be %s, got %s", registry.NotaryServer, output)
}
}
func TestNonOfficialTrustServer(t *testing.T) {
indexInfo := &registry.IndexInfo{Name: "testserver", Official: false}
output, err := trustServer(indexInfo)
expectedStr := "https://" + indexInfo.Name
if err != nil || output != expectedStr {
t.Fatalf("Expected server to be %s, got %s", expectedStr, output)
}
}

View File

@@ -3,6 +3,7 @@ package client
import (
"fmt"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -10,9 +11,10 @@ import (
//
// Usage: docker unpause CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdUnpause(args ...string) error {
cmd := cli.Subcmd("unpause", "CONTAINER [CONTAINER...]", "Unpause all processes within a container", true)
cmd := Cli.Subcmd("unpause", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["unpause"].Description, true)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, false)
cmd.ParseFlags(args, true)
var errNames []string
for _, name := range cmd.Args() {

View File

@@ -27,13 +27,20 @@ import (
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
)
var (
errConnectionRefused = errors.New("Cannot connect to the Docker daemon. Is 'docker -d' running on this host?")
errConnectionFailed = errors.New("Cannot connect to the Docker daemon. Is the docker daemon running on this host?")
)
// HTTPClient creates a new HTP client with the cli's client transport instance.
type serverResponse struct {
body io.ReadCloser
header http.Header
statusCode int
}
// HTTPClient creates a new HTTP client with the cli's client transport instance.
func (cli *DockerCli) HTTPClient() *http.Client {
return &http.Client{Transport: cli.transport}
}
@@ -48,23 +55,29 @@ func (cli *DockerCli) encodeData(data interface{}) (*bytes.Buffer, error) {
return params, nil
}
func (cli *DockerCli) clientRequest(method, path string, in io.Reader, headers map[string][]string) (io.ReadCloser, string, int, error) {
func (cli *DockerCli) clientRequest(method, path string, in io.Reader, headers map[string][]string) (*serverResponse, error) {
serverResp := &serverResponse{
body: nil,
statusCode: -1,
}
expectedPayload := (method == "POST" || method == "PUT")
if expectedPayload && in == nil {
in = bytes.NewReader([]byte{})
}
req, err := http.NewRequest(method, fmt.Sprintf("/v%s%s", api.APIVERSION, path), in)
req, err := http.NewRequest(method, fmt.Sprintf("%s/v%s%s", cli.basePath, api.Version, path), in)
if err != nil {
return nil, "", -1, err
return serverResp, err
}
// Add CLI Config's HTTP Headers BEFORE we set the Docker headers
// then the user can't change OUR headers
for k, v := range cli.configFile.HttpHeaders {
for k, v := range cli.configFile.HTTPHeaders {
req.Header.Set(k, v)
}
req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION)
req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION+" ("+runtime.GOOS+")")
req.URL.Host = cli.addr
req.URL.Scheme = cli.scheme
@@ -79,84 +92,104 @@ func (cli *DockerCli) clientRequest(method, path string, in io.Reader, headers m
}
resp, err := cli.HTTPClient().Do(req)
statusCode := -1
if resp != nil {
statusCode = resp.StatusCode
serverResp.statusCode = resp.StatusCode
}
if err != nil {
if strings.Contains(err.Error(), "connection refused") {
return nil, "", statusCode, errConnectionRefused
if utils.IsTimeout(err) || strings.Contains(err.Error(), "connection refused") || strings.Contains(err.Error(), "dial unix") {
return serverResp, errConnectionFailed
}
if cli.tlsConfig == nil {
return nil, "", statusCode, fmt.Errorf("%v. Are you trying to connect to a TLS-enabled daemon without TLS?", err)
if cli.tlsConfig == nil && strings.Contains(err.Error(), "malformed HTTP response") {
return serverResp, fmt.Errorf("%v.\n* Are you trying to connect to a TLS-enabled daemon without TLS?", err)
}
return nil, "", statusCode, fmt.Errorf("An error occurred trying to connect: %v", err)
if cli.tlsConfig != nil && strings.Contains(err.Error(), "remote error: bad certificate") {
return serverResp, fmt.Errorf("The server probably has client authentication (--tlsverify) enabled. Please check your TLS client certification settings: %v", err)
}
return serverResp, fmt.Errorf("An error occurred trying to connect: %v", err)
}
if statusCode < 200 || statusCode >= 400 {
if serverResp.statusCode < 200 || serverResp.statusCode >= 400 {
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, "", statusCode, err
return serverResp, err
}
if len(body) == 0 {
return nil, "", statusCode, fmt.Errorf("Error: request returned %s for API route and version %s, check if the server supports the requested API version", http.StatusText(statusCode), req.URL)
return serverResp, fmt.Errorf("Error: request returned %s for API route and version %s, check if the server supports the requested API version", http.StatusText(serverResp.statusCode), req.URL)
}
return nil, "", statusCode, fmt.Errorf("Error response from daemon: %s", bytes.TrimSpace(body))
return serverResp, fmt.Errorf("Error response from daemon: %s", bytes.TrimSpace(body))
}
return resp.Body, resp.Header.Get("Content-Type"), statusCode, nil
serverResp.body = resp.Body
serverResp.header = resp.Header
return serverResp, nil
}
// cmdAttempt builds the corresponding registry Auth Header from the given
// authConfig. It returns the servers body, status, error response
func (cli *DockerCli) cmdAttempt(authConfig cliconfig.AuthConfig, method, path string, in io.Reader, out io.Writer) (io.ReadCloser, int, error) {
buf, err := json.Marshal(authConfig)
if err != nil {
return nil, -1, err
}
registryAuthHeader := []string{
base64.URLEncoding.EncodeToString(buf),
}
// begin the request
serverResp, err := cli.clientRequest(method, path, in, map[string][]string{
"X-Registry-Auth": registryAuthHeader,
})
if err == nil && out != nil {
// If we are streaming output, complete the stream since
// errors may not appear until later.
err = cli.streamBody(serverResp.body, serverResp.header.Get("Content-Type"), true, out, nil)
}
if err != nil {
// Since errors in a stream appear after status 200 has been written,
// we may need to change the status code.
if strings.Contains(err.Error(), "Authentication is required") ||
strings.Contains(err.Error(), "Status 401") ||
strings.Contains(err.Error(), "401 Unauthorized") ||
strings.Contains(err.Error(), "status code 401") {
serverResp.statusCode = http.StatusUnauthorized
}
}
return serverResp.body, serverResp.statusCode, err
}
func (cli *DockerCli) clientRequestAttemptLogin(method, path string, in io.Reader, out io.Writer, index *registry.IndexInfo, cmdName string) (io.ReadCloser, int, error) {
cmdAttempt := func(authConfig cliconfig.AuthConfig) (io.ReadCloser, int, error) {
buf, err := json.Marshal(authConfig)
if err != nil {
return nil, -1, err
}
registryAuthHeader := []string{
base64.URLEncoding.EncodeToString(buf),
}
// begin the request
body, contentType, statusCode, err := cli.clientRequest(method, path, in, map[string][]string{
"X-Registry-Auth": registryAuthHeader,
})
if err == nil && out != nil {
// If we are streaming output, complete the stream since
// errors may not appear until later.
err = cli.streamBody(body, contentType, true, out, nil)
}
if err != nil {
// Since errors in a stream appear after status 200 has been written,
// we may need to change the status code.
if strings.Contains(err.Error(), "Authentication is required") ||
strings.Contains(err.Error(), "Status 401") ||
strings.Contains(err.Error(), "status code 401") {
statusCode = http.StatusUnauthorized
}
}
return body, statusCode, err
}
// Resolve the Auth config relevant for this server
authConfig := registry.ResolveAuthConfig(cli.configFile, index)
body, statusCode, err := cmdAttempt(authConfig)
body, statusCode, err := cli.cmdAttempt(authConfig, method, path, in, out)
if statusCode == http.StatusUnauthorized {
fmt.Fprintf(cli.out, "\nPlease login prior to %s:\n", cmdName)
if err = cli.CmdLogin(index.GetAuthConfigKey()); err != nil {
return nil, -1, err
}
authConfig = registry.ResolveAuthConfig(cli.configFile, index)
return cmdAttempt(authConfig)
return cli.cmdAttempt(authConfig, method, path, in, out)
}
return body, statusCode, err
}
func (cli *DockerCli) call(method, path string, data interface{}, headers map[string][]string) (io.ReadCloser, int, error) {
func (cli *DockerCli) callWrapper(method, path string, data interface{}, headers map[string][]string) (io.ReadCloser, http.Header, int, error) {
sr, err := cli.call(method, path, data, headers)
return sr.body, sr.header, sr.statusCode, err
}
func (cli *DockerCli) call(method, path string, data interface{}, headers map[string][]string) (*serverResponse, error) {
params, err := cli.encodeData(data)
if err != nil {
return nil, -1, err
sr := &serverResponse{
body: nil,
header: nil,
statusCode: -1,
}
return sr, nil
}
if data != nil {
@@ -166,8 +199,8 @@ func (cli *DockerCli) call(method, path string, data interface{}, headers map[st
headers["Content-Type"] = []string{"application/json"}
}
body, _, statusCode, err := cli.clientRequest(method, path, params, headers)
return body, statusCode, err
serverResp, err := cli.clientRequest(method, path, params, headers)
return serverResp, err
}
type streamOpts struct {
@@ -178,12 +211,12 @@ type streamOpts struct {
headers map[string][]string
}
func (cli *DockerCli) stream(method, path string, opts *streamOpts) error {
body, contentType, _, err := cli.clientRequest(method, path, opts.in, opts.headers)
func (cli *DockerCli) stream(method, path string, opts *streamOpts) (*serverResponse, error) {
serverResp, err := cli.clientRequest(method, path, opts.in, opts.headers)
if err != nil {
return err
return serverResp, err
}
return cli.streamBody(body, contentType, opts.rawTerminal, opts.out, opts.err)
return serverResp, cli.streamBody(serverResp.body, serverResp.header.Get("Content-Type"), opts.rawTerminal, opts.out, opts.err)
}
func (cli *DockerCli) streamBody(body io.ReadCloser, contentType string, rawTerminal bool, stdout, stderr io.Writer) error {
@@ -228,13 +261,15 @@ func (cli *DockerCli) resizeTty(id string, isExec bool) {
}
func waitForExit(cli *DockerCli, containerID string) (int, error) {
stream, _, err := cli.call("POST", "/containers/"+containerID+"/wait", nil, nil)
serverResp, err := cli.call("POST", "/containers/"+containerID+"/wait", nil, nil)
if err != nil {
return -1, err
}
defer serverResp.body.Close()
var res types.ContainerWaitResponse
if err := json.NewDecoder(stream).Decode(&res); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&res); err != nil {
return -1, err
}
@@ -244,17 +279,19 @@ func waitForExit(cli *DockerCli, containerID string) (int, error) {
// getExitCode perform an inspect on the container. It returns
// the running state and the exit code.
func getExitCode(cli *DockerCli, containerID string) (bool, int, error) {
stream, _, err := cli.call("GET", "/containers/"+containerID+"/json", nil, nil)
serverResp, err := cli.call("GET", "/containers/"+containerID+"/json", nil, nil)
if err != nil {
// If we can't connect, then the daemon probably died.
if err != errConnectionRefused {
if err != errConnectionFailed {
return false, -1, err
}
return false, -1, nil
}
defer serverResp.body.Close()
var c types.ContainerJSON
if err := json.NewDecoder(stream).Decode(&c); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return false, -1, err
}
@@ -264,15 +301,17 @@ func getExitCode(cli *DockerCli, containerID string) (bool, int, error) {
// getExecExitCode perform an inspect on the exec command. It returns
// the running state and the exit code.
func getExecExitCode(cli *DockerCli, execID string) (bool, int, error) {
stream, _, err := cli.call("GET", "/exec/"+execID+"/json", nil, nil)
serverResp, err := cli.call("GET", "/exec/"+execID+"/json", nil, nil)
if err != nil {
// If we can't connect, then the daemon probably died.
if err != errConnectionRefused {
if err != errConnectionFailed {
return false, -1, err
}
return false, -1, nil
}
defer serverResp.body.Close()
//TODO: Should we reconsider having a type in api/types?
//this is a response to exex/id/json not container
var c struct {
@@ -280,7 +319,7 @@ func getExecExitCode(cli *DockerCli, execID string) (bool, int, error) {
ExitCode int
}
if err := json.NewDecoder(stream).Decode(&c); err != nil {
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return false, -1, err
}
@@ -330,16 +369,16 @@ func (cli *DockerCli) getTtySize() (int, int) {
return int(ws.Height), int(ws.Width)
}
func readBody(stream io.ReadCloser, statusCode int, err error) ([]byte, int, error) {
if stream != nil {
defer stream.Close()
func readBody(serverResp *serverResponse, err error) ([]byte, int, error) {
if serverResp.body != nil {
defer serverResp.body.Close()
}
if err != nil {
return nil, statusCode, err
return nil, serverResp.statusCode, err
}
body, err := ioutil.ReadAll(stream)
body, err := ioutil.ReadAll(serverResp.body)
if err != nil {
return nil, -1, err
}
return body, statusCode, nil
return body, serverResp.statusCode, nil
}

View File

@@ -2,54 +2,95 @@ package client
import (
"encoding/json"
"fmt"
"runtime"
"text/template"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types"
"github.com/docker/docker/autogen/dockerversion"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/utils"
)
var versionTemplate = `Client:
Version: {{.Client.Version}}
API version: {{.Client.APIVersion}}
Go version: {{.Client.GoVersion}}
Git commit: {{.Client.GitCommit}}
Built: {{.Client.BuildTime}}
OS/Arch: {{.Client.Os}}/{{.Client.Arch}}{{if .Client.Experimental}}
Experimental: {{.Client.Experimental}}{{end}}{{if .ServerOK}}
Server:
Version: {{.Server.Version}}
API version: {{.Server.APIVersion}}
Go version: {{.Server.GoVersion}}
Git commit: {{.Server.GitCommit}}
Built: {{.Server.BuildTime}}
OS/Arch: {{.Server.Os}}/{{.Server.Arch}}{{if .Server.Experimental}}
Experimental: {{.Server.Experimental}}{{end}}{{end}}`
type versionData struct {
Client types.Version
ServerOK bool
Server types.Version
}
// CmdVersion shows Docker version information.
//
// Available version information is shown for: client Docker version, client API version, client Go version, client Git commit, client OS/Arch, server Docker version, server API version, server Go version, server Git commit, and server OS/Arch.
//
// Usage: docker version
func (cli *DockerCli) CmdVersion(args ...string) error {
cmd := cli.Subcmd("version", "", "Show the Docker version information.", true)
func (cli *DockerCli) CmdVersion(args ...string) (err error) {
cmd := Cli.Subcmd("version", nil, Cli.DockerCommands["version"].Description, true)
tmplStr := cmd.String([]string{"f", "#format", "-format"}, "", "Format the output using the given go template")
cmd.Require(flag.Exact, 0)
cmd.ParseFlags(args, false)
if dockerversion.VERSION != "" {
fmt.Fprintf(cli.out, "Client version: %s\n", dockerversion.VERSION)
cmd.ParseFlags(args, true)
if *tmplStr == "" {
*tmplStr = versionTemplate
}
fmt.Fprintf(cli.out, "Client API version: %s\n", api.APIVERSION)
fmt.Fprintf(cli.out, "Go version (client): %s\n", runtime.Version())
if dockerversion.GITCOMMIT != "" {
fmt.Fprintf(cli.out, "Git commit (client): %s\n", dockerversion.GITCOMMIT)
}
fmt.Fprintf(cli.out, "OS/Arch (client): %s/%s\n", runtime.GOOS, runtime.GOARCH)
stream, _, err := cli.call("GET", "/version", nil, nil)
var tmpl *template.Template
if tmpl, err = template.New("").Funcs(funcMap).Parse(*tmplStr); err != nil {
return Cli.StatusError{StatusCode: 64,
Status: "Template parsing error: " + err.Error()}
}
vd := versionData{
Client: types.Version{
Version: dockerversion.VERSION,
APIVersion: api.Version,
GoVersion: runtime.Version(),
GitCommit: dockerversion.GITCOMMIT,
BuildTime: dockerversion.BUILDTIME,
Os: runtime.GOOS,
Arch: runtime.GOARCH,
Experimental: utils.ExperimentalBuild(),
},
}
defer func() {
if err2 := tmpl.Execute(cli.out, vd); err2 != nil && err == nil {
err = err2
}
cli.out.Write([]byte{'\n'})
}()
serverResp, err := cli.call("GET", "/version", nil, nil)
if err != nil {
return err
}
var v types.Version
if err := json.NewDecoder(stream).Decode(&v); err != nil {
fmt.Fprintf(cli.err, "Error reading remote version: %s\n", err)
return err
defer serverResp.body.Close()
if err = json.NewDecoder(serverResp.body).Decode(&vd.Server); err != nil {
return Cli.StatusError{StatusCode: 1,
Status: "Error reading remote version: " + err.Error()}
}
fmt.Fprintf(cli.out, "Server version: %s\n", v.Version)
if v.ApiVersion != "" {
fmt.Fprintf(cli.out, "Server API version: %s\n", v.ApiVersion)
}
fmt.Fprintf(cli.out, "Go version (server): %s\n", v.GoVersion)
fmt.Fprintf(cli.out, "Git commit (server): %s\n", v.GitCommit)
fmt.Fprintf(cli.out, "OS/Arch (server): %s/%s\n", v.Os, v.Arch)
vd.ServerOK = true
return nil
return
}

234
api/client/volume.go Normal file
View File

@@ -0,0 +1,234 @@
package client
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/url"
"text/tabwriter"
"text/template"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers/filters"
)
// CmdVolume is the parent subcommand for all volume commands
//
// Usage: docker volume <COMMAND> <OPTS>
func (cli *DockerCli) CmdVolume(args ...string) error {
description := Cli.DockerCommands["volume"].Description + "\n\nCommands:\n"
commands := [][]string{
{"create", "Create a volume"},
{"inspect", "Return low-level information on a volume"},
{"ls", "List volumes"},
{"rm", "Remove a volume"},
}
for _, cmd := range commands {
description += fmt.Sprintf(" %-25.25s%s\n", cmd[0], cmd[1])
}
description += "\nRun 'docker volume COMMAND --help' for more information on a command"
cmd := Cli.Subcmd("volume", []string{"[COMMAND]"}, description, false)
cmd.Require(flag.Exact, 0)
err := cmd.ParseFlags(args, true)
cmd.Usage()
return err
}
// CmdVolumeLs outputs a list of Docker volumes.
//
// Usage: docker volume ls [OPTIONS]
func (cli *DockerCli) CmdVolumeLs(args ...string) error {
cmd := Cli.Subcmd("volume ls", nil, "List volumes", true)
quiet := cmd.Bool([]string{"q", "-quiet"}, false, "Only display volume names")
flFilter := opts.NewListOpts(nil)
cmd.Var(&flFilter, []string{"f", "-filter"}, "Provide filter values (i.e. 'dangling=true')")
cmd.Require(flag.Exact, 0)
cmd.ParseFlags(args, true)
volFilterArgs := filters.Args{}
for _, f := range flFilter.GetAll() {
var err error
volFilterArgs, err = filters.ParseFlag(f, volFilterArgs)
if err != nil {
return err
}
}
v := url.Values{}
if len(volFilterArgs) > 0 {
filterJSON, err := filters.ToParam(volFilterArgs)
if err != nil {
return err
}
v.Set("filters", filterJSON)
}
resp, err := cli.call("GET", "/volumes?"+v.Encode(), nil, nil)
if err != nil {
return err
}
var volumes types.VolumesListResponse
if err := json.NewDecoder(resp.body).Decode(&volumes); err != nil {
return err
}
w := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
if !*quiet {
fmt.Fprintf(w, "DRIVER \tVOLUME NAME")
fmt.Fprintf(w, "\n")
}
for _, vol := range volumes.Volumes {
if *quiet {
fmt.Fprintln(w, vol.Name)
continue
}
fmt.Fprintf(w, "%s\t%s\n", vol.Driver, vol.Name)
}
w.Flush()
return nil
}
// CmdVolumeInspect displays low-level information on one or more volumes.
//
// Usage: docker volume inspect [OPTIONS] VOLUME [VOLUME...]
func (cli *DockerCli) CmdVolumeInspect(args ...string) error {
cmd := Cli.Subcmd("volume inspect", []string{"VOLUME [VOLUME...]"}, "Return low-level information on a volume", true)
tmplStr := cmd.String([]string{"f", "-format"}, "", "Format the output using the given go template")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
if err := cmd.Parse(args); err != nil {
return nil
}
var tmpl *template.Template
if *tmplStr != "" {
var err error
tmpl, err = template.New("").Funcs(funcMap).Parse(*tmplStr)
if err != nil {
return err
}
}
var status = 0
var volumes []*types.Volume
for _, name := range cmd.Args() {
resp, err := cli.call("GET", "/volumes/"+name, nil, nil)
if err != nil {
return err
}
var volume types.Volume
if err := json.NewDecoder(resp.body).Decode(&volume); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
}
if tmpl == nil {
volumes = append(volumes, &volume)
continue
}
if err := tmpl.Execute(cli.out, &volume); err != nil {
if err := tmpl.Execute(cli.out, &volume); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
}
}
io.WriteString(cli.out, "\n")
}
if tmpl != nil {
return nil
}
b, err := json.MarshalIndent(volumes, "", " ")
if err != nil {
return err
}
_, err = io.Copy(cli.out, bytes.NewReader(b))
if err != nil {
return err
}
io.WriteString(cli.out, "\n")
if status != 0 {
return Cli.StatusError{StatusCode: status}
}
return nil
}
// CmdVolumeCreate creates a new container from a given image.
//
// Usage: docker volume create [OPTIONS]
func (cli *DockerCli) CmdVolumeCreate(args ...string) error {
cmd := Cli.Subcmd("volume create", nil, "Create a volume", true)
flDriver := cmd.String([]string{"d", "-driver"}, "local", "Specify volume driver name")
flName := cmd.String([]string{"-name"}, "", "Specify volume name")
flDriverOpts := opts.NewMapOpts(nil, nil)
cmd.Var(flDriverOpts, []string{"o", "-opt"}, "Set driver specific options")
cmd.Require(flag.Exact, 0)
cmd.ParseFlags(args, true)
volReq := &types.VolumeCreateRequest{
Driver: *flDriver,
DriverOpts: flDriverOpts.GetAll(),
}
if *flName != "" {
volReq.Name = *flName
}
resp, err := cli.call("POST", "/volumes/create", volReq, nil)
if err != nil {
return err
}
var vol types.Volume
if err := json.NewDecoder(resp.body).Decode(&vol); err != nil {
return err
}
fmt.Fprintf(cli.out, "%s\n", vol.Name)
return nil
}
// CmdVolumeRm removes one or more containers.
//
// Usage: docker volume rm VOLUME [VOLUME...]
func (cli *DockerCli) CmdVolumeRm(args ...string) error {
cmd := Cli.Subcmd("volume rm", []string{"VOLUME [VOLUME...]"}, "Remove a volume", true)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
var status = 0
for _, name := range cmd.Args() {
_, err := cli.call("DELETE", "/volumes/"+name, nil, nil)
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
}
fmt.Fprintf(cli.out, "%s\n", name)
}
if status != 0 {
return Cli.StatusError{StatusCode: status}
}
return nil
}

View File

@@ -3,6 +3,7 @@ package client
import (
"fmt"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -12,7 +13,7 @@ import (
//
// Usage: docker wait CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdWait(args ...string) error {
cmd := cli.Subcmd("wait", "CONTAINER [CONTAINER...]", "Block until a container stops, then print its exit code.", true)
cmd := Cli.Subcmd("wait", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["wait"].Description, true)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)

View File

@@ -5,6 +5,7 @@ import (
"mime"
"path/filepath"
"sort"
"strconv"
"strings"
"github.com/Sirupsen/logrus"
@@ -16,33 +17,38 @@ import (
// Common constants for daemon and client.
const (
APIVERSION version.Version = "1.19" // Current REST API version
DefaultDockerfileName string = "Dockerfile" // Default filename with Docker commands, read by docker build
// Version of Current REST API
Version version.Version = "1.21"
// MinVersion represents Minimun REST API version supported
MinVersion version.Version = "1.12"
// DefaultDockerfileName is the Default filename with Docker commands, read by docker build
DefaultDockerfileName string = "Dockerfile"
)
type ByPrivatePort []types.Port
// byPrivatePort is temporary type used to sort types.Port by PrivatePort
type byPrivatePort []types.Port
func (r ByPrivatePort) Len() int { return len(r) }
func (r ByPrivatePort) Swap(i, j int) { r[i], r[j] = r[j], r[i] }
func (r ByPrivatePort) Less(i, j int) bool { return r[i].PrivatePort < r[j].PrivatePort }
func (r byPrivatePort) Len() int { return len(r) }
func (r byPrivatePort) Swap(i, j int) { r[i], r[j] = r[j], r[i] }
func (r byPrivatePort) Less(i, j int) bool { return r[i].PrivatePort < r[j].PrivatePort }
// DisplayablePorts returns formatted string representing open ports of container
// e.g. "0.0.0.0:80->9090/tcp, 9988/tcp"
// it's used by command 'docker ps'
func DisplayablePorts(ports []types.Port) string {
var (
result = []string{}
hostMappings = []string{}
firstInGroupMap map[string]int
lastInGroupMap map[string]int
)
firstInGroupMap = make(map[string]int)
lastInGroupMap = make(map[string]int)
sort.Sort(ByPrivatePort(ports))
type portGroup struct {
first int
last int
}
groupMap := make(map[string]*portGroup)
var result []string
var hostMappings []string
sort.Sort(byPrivatePort(ports))
for _, port := range ports {
var (
current = port.PrivatePort
portKey = port.Type
firstInGroup int
lastInGroup int
)
current := port.PrivatePort
portKey := port.Type
if port.IP != "" {
if port.PublicPort != current {
hostMappings = append(hostMappings, fmt.Sprintf("%s:%d->%d/%s", port.IP, port.PublicPort, port.PrivatePort, port.Type))
@@ -50,45 +56,38 @@ func DisplayablePorts(ports []types.Port) string {
}
portKey = fmt.Sprintf("%s/%s", port.IP, port.Type)
}
firstInGroup = firstInGroupMap[portKey]
lastInGroup = lastInGroupMap[portKey]
group := groupMap[portKey]
if firstInGroup == 0 {
firstInGroupMap[portKey] = current
lastInGroupMap[portKey] = current
if group == nil {
groupMap[portKey] = &portGroup{first: current, last: current}
continue
}
if current == (group.last + 1) {
group.last = current
continue
}
if current == (lastInGroup + 1) {
lastInGroupMap[portKey] = current
continue
}
result = append(result, FormGroup(portKey, firstInGroup, lastInGroup))
firstInGroupMap[portKey] = current
lastInGroupMap[portKey] = current
result = append(result, formGroup(portKey, group.first, group.last))
groupMap[portKey] = &portGroup{first: current, last: current}
}
for portKey, firstInGroup := range firstInGroupMap {
result = append(result, FormGroup(portKey, firstInGroup, lastInGroupMap[portKey]))
for portKey, g := range groupMap {
result = append(result, formGroup(portKey, g.first, g.last))
}
result = append(result, hostMappings...)
return strings.Join(result, ", ")
}
func FormGroup(key string, start, last int) string {
var (
group string
parts = strings.Split(key, "/")
groupType = parts[0]
ip = ""
)
func formGroup(key string, start, last int) string {
parts := strings.Split(key, "/")
groupType := parts[0]
var ip string
if len(parts) > 1 {
ip = parts[0]
groupType = parts[1]
}
if start == last {
group = fmt.Sprintf("%d", start)
} else {
group = fmt.Sprintf("%d-%d", start, last)
group := strconv.Itoa(start)
if start != last {
group = fmt.Sprintf("%s-%d", group, last)
}
if ip != "" {
group = fmt.Sprintf("%s:%s->%s", ip, group, group)
@@ -96,6 +95,7 @@ func FormGroup(key string, start, last int) string {
return fmt.Sprintf("%s/%s", group, groupType)
}
// MatchesContentType validates the content type against the expected one
func MatchesContentType(contentType, expectedType string) bool {
mimetype, _, err := mime.ParseMediaType(contentType)
if err != nil {

282
api/common_test.go Normal file
View File

@@ -0,0 +1,282 @@
package api
import (
"io/ioutil"
"path/filepath"
"testing"
"github.com/docker/docker/api/types"
"os"
)
type ports struct {
ports []types.Port
expected string
}
// DisplayablePorts
func TestDisplayablePorts(t *testing.T) {
cases := []ports{
{
[]types.Port{
{
PrivatePort: 9988,
Type: "tcp",
},
},
"9988/tcp"},
{
[]types.Port{
{
PrivatePort: 9988,
Type: "udp",
},
},
"9988/udp",
},
{
[]types.Port{
{
IP: "0.0.0.0",
PrivatePort: 9988,
Type: "tcp",
},
},
"0.0.0.0:0->9988/tcp",
},
{
[]types.Port{
{
PrivatePort: 9988,
PublicPort: 8899,
Type: "tcp",
},
},
"9988/tcp",
},
{
[]types.Port{
{
IP: "4.3.2.1",
PrivatePort: 9988,
PublicPort: 8899,
Type: "tcp",
},
},
"4.3.2.1:8899->9988/tcp",
},
{
[]types.Port{
{
IP: "4.3.2.1",
PrivatePort: 9988,
PublicPort: 9988,
Type: "tcp",
},
},
"4.3.2.1:9988->9988/tcp",
},
{
[]types.Port{
{
PrivatePort: 9988,
Type: "udp",
}, {
PrivatePort: 9988,
Type: "udp",
},
},
"9988/udp, 9988/udp",
},
{
[]types.Port{
{
IP: "1.2.3.4",
PublicPort: 9998,
PrivatePort: 9998,
Type: "udp",
}, {
IP: "1.2.3.4",
PublicPort: 9999,
PrivatePort: 9999,
Type: "udp",
},
},
"1.2.3.4:9998-9999->9998-9999/udp",
},
{
[]types.Port{
{
IP: "1.2.3.4",
PublicPort: 8887,
PrivatePort: 9998,
Type: "udp",
}, {
IP: "1.2.3.4",
PublicPort: 8888,
PrivatePort: 9999,
Type: "udp",
},
},
"1.2.3.4:8887->9998/udp, 1.2.3.4:8888->9999/udp",
},
{
[]types.Port{
{
PrivatePort: 9998,
Type: "udp",
}, {
PrivatePort: 9999,
Type: "udp",
},
},
"9998-9999/udp",
},
{
[]types.Port{
{
IP: "1.2.3.4",
PrivatePort: 6677,
PublicPort: 7766,
Type: "tcp",
}, {
PrivatePort: 9988,
PublicPort: 8899,
Type: "udp",
},
},
"9988/udp, 1.2.3.4:7766->6677/tcp",
},
{
[]types.Port{
{
IP: "1.2.3.4",
PrivatePort: 9988,
PublicPort: 8899,
Type: "udp",
}, {
IP: "1.2.3.4",
PrivatePort: 9988,
PublicPort: 8899,
Type: "tcp",
}, {
IP: "4.3.2.1",
PrivatePort: 2233,
PublicPort: 3322,
Type: "tcp",
},
},
"4.3.2.1:3322->2233/tcp, 1.2.3.4:8899->9988/udp, 1.2.3.4:8899->9988/tcp",
},
{
[]types.Port{
{
PrivatePort: 9988,
PublicPort: 8899,
Type: "udp",
}, {
IP: "1.2.3.4",
PrivatePort: 6677,
PublicPort: 7766,
Type: "tcp",
}, {
IP: "4.3.2.1",
PrivatePort: 2233,
PublicPort: 3322,
Type: "tcp",
},
},
"9988/udp, 4.3.2.1:3322->2233/tcp, 1.2.3.4:7766->6677/tcp",
},
}
for _, port := range cases {
actual := DisplayablePorts(port.ports)
if port.expected != actual {
t.Fatalf("Expected %s, got %s.", port.expected, actual)
}
}
}
// MatchesContentType
func TestJsonContentType(t *testing.T) {
if !MatchesContentType("application/json", "application/json") {
t.Fail()
}
if !MatchesContentType("application/json; charset=utf-8", "application/json") {
t.Fail()
}
if MatchesContentType("dockerapplication/json", "application/json") {
t.Fail()
}
}
// LoadOrCreateTrustKey
func TestLoadOrCreateTrustKeyInvalidKeyFile(t *testing.T) {
tmpKeyFolderPath, err := ioutil.TempDir("", "api-trustkey-test")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmpKeyFolderPath)
tmpKeyFile, err := ioutil.TempFile(tmpKeyFolderPath, "keyfile")
if err != nil {
t.Fatal(err)
}
if _, err := LoadOrCreateTrustKey(tmpKeyFile.Name()); err == nil {
t.Fatalf("expected an error, got nothing.")
}
}
func TestLoadOrCreateTrustKeyCreateKey(t *testing.T) {
tmpKeyFolderPath, err := ioutil.TempDir("", "api-trustkey-test")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tmpKeyFolderPath)
// Without the need to create the folder hierarchy
tmpKeyFile := filepath.Join(tmpKeyFolderPath, "keyfile")
if key, err := LoadOrCreateTrustKey(tmpKeyFile); err != nil || key == nil {
t.Fatalf("expected a new key file, got : %v and %v", err, key)
}
if _, err := os.Stat(tmpKeyFile); err != nil {
t.Fatalf("Expected to find a file %s, got %v", tmpKeyFile, err)
}
// With the need to create the folder hierarchy as tmpKeyFie is in a path
// where some folder do not exists.
tmpKeyFile = filepath.Join(tmpKeyFolderPath, "folder/hierarchy/keyfile")
if key, err := LoadOrCreateTrustKey(tmpKeyFile); err != nil || key == nil {
t.Fatalf("expected a new key file, got : %v and %v", err, key)
}
if _, err := os.Stat(tmpKeyFile); err != nil {
t.Fatalf("Expected to find a file %s, got %v", tmpKeyFile, err)
}
// With no path at all
defer os.Remove("keyfile")
if key, err := LoadOrCreateTrustKey("keyfile"); err != nil || key == nil {
t.Fatalf("expected a new key file, got : %v and %v", err, key)
}
if _, err := os.Stat("keyfile"); err != nil {
t.Fatalf("Expected to find a file keyfile, got %v", err)
}
}
func TestLoadOrCreateTrustKeyLoadValidKey(t *testing.T) {
tmpKeyFile := filepath.Join("fixtures", "keyfile")
if key, err := LoadOrCreateTrustKey(tmpKeyFile); err != nil || key == nil {
t.Fatalf("expected a key file, got : %v and %v", err, key)
}
}

7
api/fixtures/keyfile Normal file
View File

@@ -0,0 +1,7 @@
-----BEGIN EC PRIVATE KEY-----
keyID: AWX2:I27X:WQFX:IOMK:CNAK:O7PW:VYNB:ZLKC:CVAE:YJP2:SI4A:XXAY
MHcCAQEEILHTRWdcpKWsnORxSFyBnndJ4ROU41hMtr/GCiLVvwBQoAoGCCqGSM49
AwEHoUQDQgAElpVFbQ2V2UQKajqdE3fVxJ+/pE/YuEFOxWbOxF2be19BY209/iky
NzeFFK7SLpQ4CBJ7zDVXOHsMzrkY/GquGA==
-----END EC PRIVATE KEY-----

View File

@@ -1,20 +0,0 @@
package server
import (
"net/http"
"strconv"
"strings"
)
func boolValue(r *http.Request, k string) bool {
s := strings.ToLower(strings.TrimSpace(r.FormValue(k)))
return !(s == "" || s == "0" || s == "no" || s == "false" || s == "none")
}
func int64ValueOrZero(r *http.Request, k string) int64 {
val, err := strconv.ParseInt(r.FormValue(k), 10, 64)
if err != nil {
return 0
}
return val
}

View File

@@ -1,55 +0,0 @@
package server
import (
"net/http"
"net/url"
"testing"
)
func TestBoolValue(t *testing.T) {
cases := map[string]bool{
"": false,
"0": false,
"no": false,
"false": false,
"none": false,
"1": true,
"yes": true,
"true": true,
"one": true,
"100": true,
}
for c, e := range cases {
v := url.Values{}
v.Set("test", c)
r, _ := http.NewRequest("POST", "", nil)
r.Form = v
a := boolValue(r, "test")
if a != e {
t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
}
}
}
func TestInt64ValueOrZero(t *testing.T) {
cases := map[string]int64{
"": 0,
"asdf": 0,
"0": 0,
"1": 1,
}
for c, e := range cases {
v := url.Values{}
v.Set("test", c)
r, _ := http.NewRequest("POST", "", nil)
r.Form = v
a := int64ValueOrZero(r, "test")
if a != e {
t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
}
}
}

View File

@@ -0,0 +1,76 @@
package httputils
import (
"fmt"
"net/http"
"path/filepath"
"strconv"
"strings"
)
// BoolValue transforms a form value in different formats into a boolean type.
func BoolValue(r *http.Request, k string) bool {
s := strings.ToLower(strings.TrimSpace(r.FormValue(k)))
return !(s == "" || s == "0" || s == "no" || s == "false" || s == "none")
}
// BoolValueOrDefault returns the default bool passed if the query param is
// missing, otherwise it's just a proxy to boolValue above
func BoolValueOrDefault(r *http.Request, k string, d bool) bool {
if _, ok := r.Form[k]; !ok {
return d
}
return BoolValue(r, k)
}
// Int64ValueOrZero parses a form value into an int64 type.
// It returns 0 if the parsing fails.
func Int64ValueOrZero(r *http.Request, k string) int64 {
val, err := Int64ValueOrDefault(r, k, 0)
if err != nil {
return 0
}
return val
}
// Int64ValueOrDefault parses a form value into an int64 type. If there is an
// error, returns the error. If there is no value returns the default value.
func Int64ValueOrDefault(r *http.Request, field string, def int64) (int64, error) {
if r.Form.Get(field) != "" {
value, err := strconv.ParseInt(r.Form.Get(field), 10, 64)
if err != nil {
return value, err
}
return value, nil
}
return def, nil
}
// ArchiveOptions stores archive information for different operations.
type ArchiveOptions struct {
Name string
Path string
}
// ArchiveFormValues parses form values and turns them into ArchiveOptions.
// It fails if the archive name and path are not in the request.
func ArchiveFormValues(r *http.Request, vars map[string]string) (ArchiveOptions, error) {
if vars == nil {
return ArchiveOptions{}, fmt.Errorf("Missing parameter")
}
if err := ParseForm(r); err != nil {
return ArchiveOptions{}, err
}
name := vars["name"]
path := filepath.FromSlash(r.Form.Get("path"))
switch {
case name == "":
return ArchiveOptions{}, fmt.Errorf("bad parameter: 'name' cannot be empty")
case path == "":
return ArchiveOptions{}, fmt.Errorf("bad parameter: 'path' cannot be empty")
}
return ArchiveOptions{name, path}, nil
}

View File

@@ -0,0 +1,105 @@
package httputils
import (
"net/http"
"net/url"
"testing"
)
func TestBoolValue(t *testing.T) {
cases := map[string]bool{
"": false,
"0": false,
"no": false,
"false": false,
"none": false,
"1": true,
"yes": true,
"true": true,
"one": true,
"100": true,
}
for c, e := range cases {
v := url.Values{}
v.Set("test", c)
r, _ := http.NewRequest("POST", "", nil)
r.Form = v
a := BoolValue(r, "test")
if a != e {
t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
}
}
}
func TestBoolValueOrDefault(t *testing.T) {
r, _ := http.NewRequest("GET", "", nil)
if !BoolValueOrDefault(r, "queryparam", true) {
t.Fatal("Expected to get true default value, got false")
}
v := url.Values{}
v.Set("param", "")
r, _ = http.NewRequest("GET", "", nil)
r.Form = v
if BoolValueOrDefault(r, "param", true) {
t.Fatal("Expected not to get true")
}
}
func TestInt64ValueOrZero(t *testing.T) {
cases := map[string]int64{
"": 0,
"asdf": 0,
"0": 0,
"1": 1,
}
for c, e := range cases {
v := url.Values{}
v.Set("test", c)
r, _ := http.NewRequest("POST", "", nil)
r.Form = v
a := Int64ValueOrZero(r, "test")
if a != e {
t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
}
}
}
func TestInt64ValueOrDefault(t *testing.T) {
cases := map[string]int64{
"": -1,
"-1": -1,
"42": 42,
}
for c, e := range cases {
v := url.Values{}
v.Set("test", c)
r, _ := http.NewRequest("POST", "", nil)
r.Form = v
a, err := Int64ValueOrDefault(r, "test", -1)
if a != e {
t.Fatalf("Value: %s, expected: %v, actual: %v", c, e, a)
}
if err != nil {
t.Fatalf("Error should be nil, but received: %s", err)
}
}
}
func TestInt64ValueOrDefaultWithError(t *testing.T) {
v := url.Values{}
v.Set("test", "invalid")
r, _ := http.NewRequest("POST", "", nil)
r.Form = v
_, err := Int64ValueOrDefault(r, "test", -1)
if err == nil {
t.Fatalf("Expected an error.")
}
}

View File

@@ -0,0 +1,180 @@
package httputils
import (
"encoding/json"
"fmt"
"io"
"net/http"
"strings"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/distribution/registry/api/errcode"
"github.com/docker/docker/api"
"github.com/docker/docker/pkg/version"
"github.com/docker/docker/utils"
)
// APIVersionKey is the client's requested API version.
const APIVersionKey = "api-version"
// APIFunc is an adapter to allow the use of ordinary functions as Docker API endpoints.
// Any function that has the appropriate signature can be register as a API endpoint (e.g. getVersion).
type APIFunc func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error
// HijackConnection interrupts the http response writer to get the
// underlying connection and operate with it.
func HijackConnection(w http.ResponseWriter) (io.ReadCloser, io.Writer, error) {
conn, _, err := w.(http.Hijacker).Hijack()
if err != nil {
return nil, nil, err
}
// Flush the options to make sure the client sets the raw mode
conn.Write([]byte{})
return conn, conn, nil
}
// CloseStreams ensures that a list for http streams are properly closed.
func CloseStreams(streams ...interface{}) {
for _, stream := range streams {
if tcpc, ok := stream.(interface {
CloseWrite() error
}); ok {
tcpc.CloseWrite()
} else if closer, ok := stream.(io.Closer); ok {
closer.Close()
}
}
}
// CheckForJSON makes sure that the request's Content-Type is application/json.
func CheckForJSON(r *http.Request) error {
ct := r.Header.Get("Content-Type")
// No Content-Type header is ok as long as there's no Body
if ct == "" {
if r.Body == nil || r.ContentLength == 0 {
return nil
}
}
// Otherwise it better be json
if api.MatchesContentType(ct, "application/json") {
return nil
}
return fmt.Errorf("Content-Type specified (%s) must be 'application/json'", ct)
}
// ParseForm ensures the request form is parsed even with invalid content types.
// If we don't do this, POST method without Content-type (even with empty body) will fail.
func ParseForm(r *http.Request) error {
if r == nil {
return nil
}
if err := r.ParseForm(); err != nil && !strings.HasPrefix(err.Error(), "mime:") {
return err
}
return nil
}
// ParseMultipartForm ensure the request form is parsed, even with invalid content types.
func ParseMultipartForm(r *http.Request) error {
if err := r.ParseMultipartForm(4096); err != nil && !strings.HasPrefix(err.Error(), "mime:") {
return err
}
return nil
}
// WriteError decodes a specific docker error and sends it in the response.
func WriteError(w http.ResponseWriter, err error) {
if err == nil || w == nil {
logrus.WithFields(logrus.Fields{"error": err, "writer": w}).Error("unexpected HTTP error handling")
return
}
statusCode := http.StatusInternalServerError
errMsg := err.Error()
// Based on the type of error we get we need to process things
// slightly differently to extract the error message.
// In the 'errcode.*' cases there are two different type of
// error that could be returned. errocode.ErrorCode is the base
// type of error object - it is just an 'int' that can then be
// used as the look-up key to find the message. errorcode.Error
// extends errorcode.Error by adding error-instance specific
// data, like 'details' or variable strings to be inserted into
// the message.
//
// Ideally, we should just be able to call err.Error() for all
// cases but the errcode package doesn't support that yet.
//
// Additionally, in both errcode cases, there might be an http
// status code associated with it, and if so use it.
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
}
}
}
if statusCode == 0 {
statusCode = http.StatusInternalServerError
}
logrus.WithFields(logrus.Fields{"statusCode": statusCode, "err": utils.GetErrorMessage(err)}).Error("HTTP Error")
http.Error(w, errMsg, statusCode)
}
// WriteJSON writes the value v to the http response stream as json with standard json encoding.
func WriteJSON(w http.ResponseWriter, code int, v interface{}) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(code)
return json.NewEncoder(w).Encode(v)
}
// VersionFromContext returns an API version from the context using APIVersionKey.
// It panics if the context value does not have version.Version type.
func VersionFromContext(ctx context.Context) (ver version.Version) {
if ctx == nil {
return
}
val := ctx.Value(APIVersionKey)
if val == nil {
return
}
return val.(version.Version)
}

118
api/server/middleware.go Normal file
View File

@@ -0,0 +1,118 @@
package server
import (
"net/http"
"runtime"
"strings"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/errors"
"github.com/docker/docker/pkg/version"
"golang.org/x/net/context"
)
// middleware is an adapter to allow the use of ordinary functions as Docker API filters.
// Any function that has the appropriate signature can be register as a middleware.
type middleware func(handler httputils.APIFunc) httputils.APIFunc
// loggingMiddleware logs each request when logging is enabled.
func (s *Server) loggingMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if s.cfg.Logging {
logrus.Infof("%s %s", r.Method, r.RequestURI)
}
return handler(ctx, w, r, vars)
}
}
// userAgentMiddleware checks the User-Agent header looking for a valid docker client spec.
func (s *Server) userAgentMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if strings.Contains(r.Header.Get("User-Agent"), "Docker-Client/") {
dockerVersion := version.Version(s.cfg.Version)
userAgent := strings.Split(r.Header.Get("User-Agent"), "/")
// v1.20 onwards includes the GOOS of the client after the version
// such as Docker/1.7.0 (linux)
if len(userAgent) == 2 && strings.Contains(userAgent[1], " ") {
userAgent[1] = strings.Split(userAgent[1], " ")[0]
}
if len(userAgent) == 2 && !dockerVersion.Equal(version.Version(userAgent[1])) {
logrus.Debugf("Warning: client and server don't have the same version (client: %s, server: %s)", userAgent[1], dockerVersion)
}
}
return handler(ctx, w, r, vars)
}
}
// corsMiddleware sets the CORS header expectations in the server.
func (s *Server) corsMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
// If "api-cors-header" is not given, but "api-enable-cors" is true, we set cors to "*"
// otherwise, all head values will be passed to HTTP handler
corsHeaders := s.cfg.CorsHeaders
if corsHeaders == "" && s.cfg.EnableCors {
corsHeaders = "*"
}
if corsHeaders != "" {
writeCorsHeaders(w, r, corsHeaders)
}
return handler(ctx, w, r, vars)
}
}
// versionMiddleware checks the api version requirements before passing the request to the server handler.
func versionMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
apiVersion := version.Version(vars["version"])
if apiVersion == "" {
apiVersion = api.Version
}
if apiVersion.GreaterThan(api.Version) {
return errors.ErrorCodeNewerClientVersion.WithArgs(apiVersion, api.Version)
}
if apiVersion.LessThan(api.MinVersion) {
return errors.ErrorCodeOldClientVersion.WithArgs(apiVersion, api.Version)
}
w.Header().Set("Server", "Docker/"+dockerversion.VERSION+" ("+runtime.GOOS+")")
ctx = context.WithValue(ctx, httputils.APIVersionKey, apiVersion)
return handler(ctx, w, r, vars)
}
}
// handleWithGlobalMiddlwares wraps the handler function for a request with
// the server's global middlewares. The order of the middlewares is backwards,
// meaning that the first in the list will be evaludated last.
//
// Example: handleWithGlobalMiddlewares(s.getContainersName)
//
// s.loggingMiddleware(
// s.userAgentMiddleware(
// s.corsMiddleware(
// versionMiddleware(s.getContainersName)
// )
// )
// )
// )
func (s *Server) handleWithGlobalMiddlewares(handler httputils.APIFunc) httputils.APIFunc {
middlewares := []middleware{
versionMiddleware,
s.corsMiddleware,
s.userAgentMiddleware,
s.loggingMiddleware,
}
h := handler
for _, m := range middlewares {
h = m(h)
}
return h
}

View File

@@ -0,0 +1,57 @@
package server
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/docker/distribution/registry/api/errcode"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/errors"
"golang.org/x/net/context"
)
func TestVersionMiddleware(t *testing.T) {
handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if httputils.VersionFromContext(ctx) == "" {
t.Fatalf("Expected version, got empty string")
}
return nil
}
h := versionMiddleware(handler)
req, _ := http.NewRequest("GET", "/containers/json", nil)
resp := httptest.NewRecorder()
ctx := context.Background()
if err := h(ctx, resp, req, map[string]string{}); err != nil {
t.Fatal(err)
}
}
func TestVersionMiddlewareWithErrors(t *testing.T) {
handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if httputils.VersionFromContext(ctx) == "" {
t.Fatalf("Expected version, got empty string")
}
return nil
}
h := versionMiddleware(handler)
req, _ := http.NewRequest("GET", "/containers/json", nil)
resp := httptest.NewRecorder()
ctx := context.Background()
vars := map[string]string{"version": "0.1"}
err := h(ctx, resp, req, vars)
if derr, ok := err.(errcode.Error); !ok || derr.ErrorCode() != errors.ErrorCodeOldClientVersion {
t.Fatalf("Expected ErrorCodeOldClientVersion, got %v", err)
}
vars["version"] = "100000"
err = h(ctx, resp, req, vars)
if derr, ok := err.(errcode.Error); !ok || derr.ErrorCode() != errors.ErrorCodeNewerClientVersion {
t.Fatalf("Expected ErrorCodeNewerClientVersion, got %v", err)
}
}

View File

@@ -9,7 +9,7 @@ import (
"github.com/gorilla/mux"
)
func ProfilerSetup(mainRouter *mux.Router, path string) {
func profilerSetup(mainRouter *mux.Router, path string) {
var r = mainRouter.PathPrefix(path).Subrouter()
r.HandleFunc("/vars", expVars)
r.HandleFunc("/pprof/", pprof.Index)

View File

@@ -0,0 +1,27 @@
package local
import (
"encoding/json"
"net/http"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/types"
"github.com/docker/docker/cliconfig"
"golang.org/x/net/context"
)
func (s *router) postAuth(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
var config *cliconfig.AuthConfig
err := json.NewDecoder(r.Body).Decode(&config)
r.Body.Close()
if err != nil {
return err
}
status, err := s.daemon.AuthenticateToRegistry(config)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, &types.AuthResponse{
Status: status,
})
}

View File

@@ -0,0 +1,508 @@
package local
import (
"fmt"
"io"
"net/http"
"strconv"
"strings"
"syscall"
"time"
"github.com/Sirupsen/logrus"
"github.com/docker/distribution/registry/api/errcode"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/types"
"github.com/docker/docker/daemon"
derr "github.com/docker/docker/errors"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/signal"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/utils"
"golang.org/x/net/context"
"golang.org/x/net/websocket"
)
func (s *router) getContainersJSON(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
config := &daemon.ContainersConfig{
All: httputils.BoolValue(r, "all"),
Size: httputils.BoolValue(r, "size"),
Since: r.Form.Get("since"),
Before: r.Form.Get("before"),
Filters: r.Form.Get("filters"),
}
if tmpLimit := r.Form.Get("limit"); tmpLimit != "" {
limit, err := strconv.Atoi(tmpLimit)
if err != nil {
return err
}
config.Limit = limit
}
containers, err := s.daemon.Containers(config)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, containers)
}
func (s *router) getContainersStats(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
stream := httputils.BoolValueOrDefault(r, "stream", true)
var out io.Writer
if !stream {
w.Header().Set("Content-Type", "application/json")
out = w
} else {
out = ioutils.NewWriteFlusher(w)
}
var closeNotifier <-chan bool
if notifier, ok := w.(http.CloseNotifier); ok {
closeNotifier = notifier.CloseNotify()
}
config := &daemon.ContainerStatsConfig{
Stream: stream,
OutStream: out,
Stop: closeNotifier,
Version: httputils.VersionFromContext(ctx),
}
return s.daemon.ContainerStats(vars["name"], config)
}
func (s *router) getContainersLogs(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
// Args are validated before the stream starts because when it starts we're
// sending HTTP 200 by writing an empty chunk of data to tell the client that
// daemon is going to stream. By sending this initial HTTP 200 we can't report
// any error after the stream starts (i.e. container not found, wrong parameters)
// with the appropriate status code.
stdout, stderr := httputils.BoolValue(r, "stdout"), httputils.BoolValue(r, "stderr")
if !(stdout || stderr) {
return fmt.Errorf("Bad parameters: you must choose at least one stream")
}
var since time.Time
if r.Form.Get("since") != "" {
s, err := strconv.ParseInt(r.Form.Get("since"), 10, 64)
if err != nil {
return err
}
since = time.Unix(s, 0)
}
var closeNotifier <-chan bool
if notifier, ok := w.(http.CloseNotifier); ok {
closeNotifier = notifier.CloseNotify()
}
containerName := vars["name"]
if !s.daemon.Exists(containerName) {
return derr.ErrorCodeNoSuchContainer.WithArgs(containerName)
}
outStream := ioutils.NewWriteFlusher(w)
// write an empty chunk of data (this is to ensure that the
// HTTP Response is sent immediately, even if the container has
// not yet produced any data)
outStream.Write(nil)
logsConfig := &daemon.ContainerLogsConfig{
Follow: httputils.BoolValue(r, "follow"),
Timestamps: httputils.BoolValue(r, "timestamps"),
Since: since,
Tail: r.Form.Get("tail"),
UseStdout: stdout,
UseStderr: stderr,
OutStream: outStream,
Stop: closeNotifier,
}
if err := s.daemon.ContainerLogs(containerName, logsConfig); err != nil {
// The client may be expecting all of the data we're sending to
// be multiplexed, so send it through OutStream, which will
// have been set up to handle that if needed.
fmt.Fprintf(logsConfig.OutStream, "Error running logs job: %s\n", utils.GetErrorMessage(err))
}
return nil
}
func (s *router) getContainersExport(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
return s.daemon.ContainerExport(vars["name"], w)
}
func (s *router) postContainersStart(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
// If contentLength is -1, we can assumed chunked encoding
// or more technically that the length is unknown
// https://golang.org/src/pkg/net/http/request.go#L139
// net/http otherwise seems to swallow any headers related to chunked encoding
// including r.TransferEncoding
// allow a nil body for backwards compatibility
var hostConfig *runconfig.HostConfig
if r.Body != nil && (r.ContentLength > 0 || r.ContentLength == -1) {
if err := httputils.CheckForJSON(r); err != nil {
return err
}
c, err := runconfig.DecodeHostConfig(r.Body)
if err != nil {
return err
}
hostConfig = c
}
if err := s.daemon.ContainerStart(vars["name"], hostConfig); err != nil {
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func (s *router) postContainersStop(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
seconds, _ := strconv.Atoi(r.Form.Get("t"))
if err := s.daemon.ContainerStop(vars["name"], seconds); err != nil {
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func (s *router) postContainersKill(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if err := httputils.ParseForm(r); err != nil {
return err
}
var sig syscall.Signal
name := vars["name"]
// If we have a signal, look at it. Otherwise, do nothing
if sigStr := r.Form.Get("signal"); sigStr != "" {
var err error
if sig, err = signal.ParseSignal(sigStr); err != nil {
return err
}
}
if err := s.daemon.ContainerKill(name, uint64(sig)); err != nil {
theErr, isDerr := err.(errcode.ErrorCoder)
isStopped := isDerr && theErr.ErrorCode() == derr.ErrorCodeNotRunning
// Return error that's not caused because the container is stopped.
// Return error if the container is not running and the api is >= 1.20
// to keep backwards compatibility.
version := httputils.VersionFromContext(ctx)
if version.GreaterThanOrEqualTo("1.20") || !isStopped {
return fmt.Errorf("Cannot kill container %s: %v", name, err)
}
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func (s *router) postContainersRestart(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
timeout, _ := strconv.Atoi(r.Form.Get("t"))
if err := s.daemon.ContainerRestart(vars["name"], timeout); err != nil {
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func (s *router) postContainersPause(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := s.daemon.ContainerPause(vars["name"]); err != nil {
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func (s *router) postContainersUnpause(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := s.daemon.ContainerUnpause(vars["name"]); err != nil {
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func (s *router) postContainersWait(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
status, err := s.daemon.ContainerWait(vars["name"], -1*time.Second)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, &types.ContainerWaitResponse{
StatusCode: status,
})
}
func (s *router) getContainersChanges(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
changes, err := s.daemon.ContainerChanges(vars["name"])
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, changes)
}
func (s *router) getContainersTop(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if err := httputils.ParseForm(r); err != nil {
return err
}
procList, err := s.daemon.ContainerTop(vars["name"], r.Form.Get("ps_args"))
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, procList)
}
func (s *router) postContainerRename(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
name := vars["name"]
newName := r.Form.Get("name")
if err := s.daemon.ContainerRename(name, newName); err != nil {
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func (s *router) postContainersCreate(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
name := r.Form.Get("name")
config, hostConfig, err := runconfig.DecodeContainerConfig(r.Body)
if err != nil {
return err
}
version := httputils.VersionFromContext(ctx)
adjustCPUShares := version.LessThan("1.19")
ccr, err := s.daemon.ContainerCreate(name, config, hostConfig, adjustCPUShares)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusCreated, ccr)
}
func (s *router) deleteContainers(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
name := vars["name"]
config := &daemon.ContainerRmConfig{
ForceRemove: httputils.BoolValue(r, "force"),
RemoveVolume: httputils.BoolValue(r, "v"),
RemoveLink: httputils.BoolValue(r, "link"),
}
if err := s.daemon.ContainerRm(name, config); err != nil {
// Force a 404 for the empty string
if strings.Contains(strings.ToLower(err.Error()), "prefix can't be empty") {
return fmt.Errorf("no such id: \"\"")
}
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func (s *router) postContainersResize(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
height, err := strconv.Atoi(r.Form.Get("h"))
if err != nil {
return err
}
width, err := strconv.Atoi(r.Form.Get("w"))
if err != nil {
return err
}
return s.daemon.ContainerResize(vars["name"], height, width)
}
func (s *router) postContainersAttach(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
containerName := vars["name"]
if !s.daemon.Exists(containerName) {
return derr.ErrorCodeNoSuchContainer.WithArgs(containerName)
}
inStream, outStream, err := httputils.HijackConnection(w)
if err != nil {
return err
}
defer httputils.CloseStreams(inStream, outStream)
if _, ok := r.Header["Upgrade"]; ok {
fmt.Fprintf(outStream, "HTTP/1.1 101 UPGRADED\r\nContent-Type: application/vnd.docker.raw-stream\r\nConnection: Upgrade\r\nUpgrade: tcp\r\n\r\n")
} else {
fmt.Fprintf(outStream, "HTTP/1.1 200 OK\r\nContent-Type: application/vnd.docker.raw-stream\r\n\r\n")
}
attachWithLogsConfig := &daemon.ContainerAttachWithLogsConfig{
InStream: inStream,
OutStream: outStream,
UseStdin: httputils.BoolValue(r, "stdin"),
UseStdout: httputils.BoolValue(r, "stdout"),
UseStderr: httputils.BoolValue(r, "stderr"),
Logs: httputils.BoolValue(r, "logs"),
Stream: httputils.BoolValue(r, "stream"),
}
if err := s.daemon.ContainerAttachWithLogs(containerName, attachWithLogsConfig); err != nil {
fmt.Fprintf(outStream, "Error attaching: %s\n", err)
}
return nil
}
func (s *router) wsContainersAttach(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
containerName := vars["name"]
if !s.daemon.Exists(containerName) {
return derr.ErrorCodeNoSuchContainer.WithArgs(containerName)
}
h := websocket.Handler(func(ws *websocket.Conn) {
defer ws.Close()
wsAttachWithLogsConfig := &daemon.ContainerWsAttachWithLogsConfig{
InStream: ws,
OutStream: ws,
ErrStream: ws,
Logs: httputils.BoolValue(r, "logs"),
Stream: httputils.BoolValue(r, "stream"),
}
if err := s.daemon.ContainerWsAttachWithLogs(containerName, wsAttachWithLogsConfig); err != nil {
logrus.Errorf("Error attaching websocket: %s", err)
}
})
ws := websocket.Server{Handler: h, Handshake: nil}
ws.ServeHTTP(w, r)
return nil
}

View File

@@ -0,0 +1,116 @@
package local
import (
"encoding/base64"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
"strings"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
)
// postContainersCopy is deprecated in favor of getContainersArchive.
func (s *router) postContainersCopy(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
cfg := types.CopyConfig{}
if err := json.NewDecoder(r.Body).Decode(&cfg); err != nil {
return err
}
if cfg.Resource == "" {
return fmt.Errorf("Path cannot be empty")
}
data, err := s.daemon.ContainerCopy(vars["name"], cfg.Resource)
if err != nil {
if strings.Contains(strings.ToLower(err.Error()), "no such id") {
w.WriteHeader(http.StatusNotFound)
return nil
}
if os.IsNotExist(err) {
return fmt.Errorf("Could not find the file %s in container %s", cfg.Resource, vars["name"])
}
return err
}
defer data.Close()
w.Header().Set("Content-Type", "application/x-tar")
if _, err := io.Copy(w, data); err != nil {
return err
}
return nil
}
// // Encode the stat to JSON, base64 encode, and place in a header.
func setContainerPathStatHeader(stat *types.ContainerPathStat, header http.Header) error {
statJSON, err := json.Marshal(stat)
if err != nil {
return err
}
header.Set(
"X-Docker-Container-Path-Stat",
base64.StdEncoding.EncodeToString(statJSON),
)
return nil
}
func (s *router) headContainersArchive(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
v, err := httputils.ArchiveFormValues(r, vars)
if err != nil {
return err
}
stat, err := s.daemon.ContainerStatPath(v.Name, v.Path)
if err != nil {
return err
}
return setContainerPathStatHeader(stat, w.Header())
}
func (s *router) getContainersArchive(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
v, err := httputils.ArchiveFormValues(r, vars)
if err != nil {
return err
}
tarArchive, stat, err := s.daemon.ContainerArchivePath(v.Name, v.Path)
if err != nil {
return err
}
defer tarArchive.Close()
if err := setContainerPathStatHeader(stat, w.Header()); err != nil {
return err
}
w.Header().Set("Content-Type", "application/x-tar")
_, err = io.Copy(w, tarArchive)
return err
}
func (s *router) putContainersArchive(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
v, err := httputils.ArchiveFormValues(r, vars)
if err != nil {
return err
}
noOverwriteDirNonDir := httputils.BoolValue(r, "noOverwriteDirNonDir")
return s.daemon.ContainerExtractToDir(v.Name, v.Path, noOverwriteDirNonDir, r.Body)
}

View File

@@ -0,0 +1,135 @@
package local
import (
"encoding/json"
"fmt"
"io"
"net/http"
"strconv"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/runconfig"
"golang.org/x/net/context"
)
func (s *router) getExecByID(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter 'id'")
}
eConfig, err := s.daemon.ContainerExecInspect(vars["id"])
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, eConfig)
}
func (s *router) postContainerExecCreate(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
name := vars["name"]
execConfig := &runconfig.ExecConfig{}
if err := json.NewDecoder(r.Body).Decode(execConfig); err != nil {
return err
}
execConfig.Container = name
if len(execConfig.Cmd) == 0 {
return fmt.Errorf("No exec command specified")
}
// Register an instance of Exec in container.
id, err := s.daemon.ContainerExecCreate(execConfig)
if err != nil {
logrus.Errorf("Error setting up exec command in container %s: %s", name, err)
return err
}
return httputils.WriteJSON(w, http.StatusCreated, &types.ContainerExecCreateResponse{
ID: id,
})
}
// TODO(vishh): Refactor the code to avoid having to specify stream config as part of both create and start.
func (s *router) postContainerExecStart(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
var (
execName = vars["name"]
stdin, inStream io.ReadCloser
stdout, stderr, outStream io.Writer
)
execStartCheck := &types.ExecStartCheck{}
if err := json.NewDecoder(r.Body).Decode(execStartCheck); err != nil {
return err
}
if exists, err := s.daemon.ExecExists(execName); !exists {
return err
}
if !execStartCheck.Detach {
var err error
// Setting up the streaming http interface.
inStream, outStream, err = httputils.HijackConnection(w)
if err != nil {
return err
}
defer httputils.CloseStreams(inStream, outStream)
if _, ok := r.Header["Upgrade"]; ok {
fmt.Fprintf(outStream, "HTTP/1.1 101 UPGRADED\r\nContent-Type: application/vnd.docker.raw-stream\r\nConnection: Upgrade\r\nUpgrade: tcp\r\n\r\n")
} else {
fmt.Fprintf(outStream, "HTTP/1.1 200 OK\r\nContent-Type: application/vnd.docker.raw-stream\r\n\r\n")
}
stdin = inStream
stdout = outStream
if !execStartCheck.Tty {
stderr = stdcopy.NewStdWriter(outStream, stdcopy.Stderr)
stdout = stdcopy.NewStdWriter(outStream, stdcopy.Stdout)
}
} else {
outStream = w
}
// Now run the user process in container.
if err := s.daemon.ContainerExecStart(execName, stdin, stdout, stderr); err != nil {
if execStartCheck.Detach {
return err
}
logrus.Errorf("Error running exec in container: %v\n", err)
}
return nil
}
func (s *router) postContainerExecResize(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
height, err := strconv.Atoi(r.Form.Get("h"))
if err != nil {
return err
}
width, err := strconv.Atoi(r.Form.Get("w"))
if err != nil {
return err
}
return s.daemon.ContainerExecResize(vars["name"], height, width)
}

View File

@@ -0,0 +1,520 @@
package local
import (
"encoding/base64"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"strings"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/types"
"github.com/docker/docker/builder"
"github.com/docker/docker/builder/dockerfile"
"github.com/docker/docker/cliconfig"
"github.com/docker/docker/daemon/daemonbuilder"
"github.com/docker/docker/graph"
"github.com/docker/docker/graph/tags"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/chrootarchive"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/progressreader"
"github.com/docker/docker/pkg/streamformatter"
"github.com/docker/docker/pkg/ulimit"
"github.com/docker/docker/registry"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/utils"
"golang.org/x/net/context"
)
func (s *router) postCommit(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
cname := r.Form.Get("container")
pause := httputils.BoolValue(r, "pause")
version := httputils.VersionFromContext(ctx)
if r.FormValue("pause") == "" && version.GreaterThanOrEqualTo("1.13") {
pause = true
}
c, _, err := runconfig.DecodeContainerConfig(r.Body)
if err != nil && err != io.EOF { //Do not fail if body is empty.
return err
}
commitCfg := &dockerfile.CommitConfig{
Pause: pause,
Repo: r.Form.Get("repo"),
Tag: r.Form.Get("tag"),
Author: r.Form.Get("author"),
Comment: r.Form.Get("comment"),
Changes: r.Form["changes"],
Config: c,
}
container, err := s.daemon.Get(cname)
if err != nil {
return err
}
imgID, err := dockerfile.Commit(container, s.daemon, commitCfg)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusCreated, &types.ContainerCommitResponse{
ID: string(imgID),
})
}
// Creates an image from Pull or from Import
func (s *router) postImagesCreate(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
var (
image = r.Form.Get("fromImage")
repo = r.Form.Get("repo")
tag = r.Form.Get("tag")
message = r.Form.Get("message")
)
authEncoded := r.Header.Get("X-Registry-Auth")
authConfig := &cliconfig.AuthConfig{}
if authEncoded != "" {
authJSON := base64.NewDecoder(base64.URLEncoding, strings.NewReader(authEncoded))
if err := json.NewDecoder(authJSON).Decode(authConfig); err != nil {
// for a pull it is not an error if no auth was given
// to increase compatibility with the existing api it is defaulting to be empty
authConfig = &cliconfig.AuthConfig{}
}
}
var (
err error
output = ioutils.NewWriteFlusher(w)
)
w.Header().Set("Content-Type", "application/json")
if image != "" { //pull
if tag == "" {
image, tag = parsers.ParseRepositoryTag(image)
}
metaHeaders := map[string][]string{}
for k, v := range r.Header {
if strings.HasPrefix(k, "X-Meta-") {
metaHeaders[k] = v
}
}
imagePullConfig := &graph.ImagePullConfig{
MetaHeaders: metaHeaders,
AuthConfig: authConfig,
OutStream: output,
}
err = s.daemon.PullImage(image, tag, imagePullConfig)
} else { //import
if tag == "" {
repo, tag = parsers.ParseRepositoryTag(repo)
}
src := r.Form.Get("fromSrc")
// 'err' MUST NOT be defined within this block, we need any error
// generated from the download to be available to the output
// stream processing below
var newConfig *runconfig.Config
newConfig, err = dockerfile.BuildFromConfig(&runconfig.Config{}, r.Form["changes"])
if err != nil {
return err
}
err = s.daemon.ImportImage(src, repo, tag, message, r.Body, output, newConfig)
}
if err != nil {
if !output.Flushed() {
return err
}
sf := streamformatter.NewJSONStreamFormatter()
output.Write(sf.FormatError(err))
}
return nil
}
func (s *router) postImagesPush(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
metaHeaders := map[string][]string{}
for k, v := range r.Header {
if strings.HasPrefix(k, "X-Meta-") {
metaHeaders[k] = v
}
}
if err := httputils.ParseForm(r); err != nil {
return err
}
authConfig := &cliconfig.AuthConfig{}
authEncoded := r.Header.Get("X-Registry-Auth")
if authEncoded != "" {
// the new format is to handle the authConfig as a header
authJSON := base64.NewDecoder(base64.URLEncoding, strings.NewReader(authEncoded))
if err := json.NewDecoder(authJSON).Decode(authConfig); err != nil {
// to increase compatibility to existing api it is defaulting to be empty
authConfig = &cliconfig.AuthConfig{}
}
} else {
// the old format is supported for compatibility if there was no authConfig header
if err := json.NewDecoder(r.Body).Decode(authConfig); err != nil {
return fmt.Errorf("Bad parameters and missing X-Registry-Auth: %v", err)
}
}
name := vars["name"]
output := ioutils.NewWriteFlusher(w)
imagePushConfig := &graph.ImagePushConfig{
MetaHeaders: metaHeaders,
AuthConfig: authConfig,
Tag: r.Form.Get("tag"),
OutStream: output,
}
w.Header().Set("Content-Type", "application/json")
if err := s.daemon.PushImage(name, imagePushConfig); err != nil {
if !output.Flushed() {
return err
}
sf := streamformatter.NewJSONStreamFormatter()
output.Write(sf.FormatError(err))
}
return nil
}
func (s *router) getImagesGet(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if err := httputils.ParseForm(r); err != nil {
return err
}
w.Header().Set("Content-Type", "application/x-tar")
output := ioutils.NewWriteFlusher(w)
var names []string
if name, ok := vars["name"]; ok {
names = []string{name}
} else {
names = r.Form["names"]
}
if err := s.daemon.ExportImage(names, output); err != nil {
if !output.Flushed() {
return err
}
sf := streamformatter.NewJSONStreamFormatter()
output.Write(sf.FormatError(err))
}
return nil
}
func (s *router) postImagesLoad(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
return s.daemon.LoadImage(r.Body, w)
}
func (s *router) deleteImages(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
name := vars["name"]
if name == "" {
return fmt.Errorf("image name cannot be blank")
}
force := httputils.BoolValue(r, "force")
prune := !httputils.BoolValue(r, "noprune")
list, err := s.daemon.ImageDelete(name, force, prune)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, list)
}
func (s *router) getImagesByName(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
imageInspect, err := s.daemon.LookupImage(vars["name"])
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, imageInspect)
}
func (s *router) postBuild(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
var (
authConfigs = map[string]cliconfig.AuthConfig{}
authConfigsEncoded = r.Header.Get("X-Registry-Config")
buildConfig = &dockerfile.Config{}
)
if authConfigsEncoded != "" {
authConfigsJSON := base64.NewDecoder(base64.URLEncoding, strings.NewReader(authConfigsEncoded))
if err := json.NewDecoder(authConfigsJSON).Decode(&authConfigs); err != nil {
// for a pull it is not an error if no auth was given
// to increase compatibility with the existing api it is defaulting
// to be empty.
}
}
w.Header().Set("Content-Type", "application/json")
version := httputils.VersionFromContext(ctx)
output := ioutils.NewWriteFlusher(w)
sf := streamformatter.NewJSONStreamFormatter()
errf := func(err error) error {
// Do not write the error in the http output if it's still empty.
// This prevents from writing a 200(OK) when there is an interal error.
if !output.Flushed() {
return err
}
_, err = w.Write(sf.FormatError(errors.New(utils.GetErrorMessage(err))))
if err != nil {
logrus.Warnf("could not write error response: %v", err)
}
return nil
}
if httputils.BoolValue(r, "forcerm") && version.GreaterThanOrEqualTo("1.12") {
buildConfig.Remove = true
} else if r.FormValue("rm") == "" && version.GreaterThanOrEqualTo("1.12") {
buildConfig.Remove = true
} else {
buildConfig.Remove = httputils.BoolValue(r, "rm")
}
if httputils.BoolValue(r, "pull") && version.GreaterThanOrEqualTo("1.16") {
buildConfig.Pull = true
}
repoName, tag := parsers.ParseRepositoryTag(r.FormValue("t"))
if repoName != "" {
if err := registry.ValidateRepositoryName(repoName); err != nil {
return errf(err)
}
if len(tag) > 0 {
if err := tags.ValidateTagName(tag); err != nil {
return errf(err)
}
}
}
buildConfig.DockerfileName = r.FormValue("dockerfile")
buildConfig.Verbose = !httputils.BoolValue(r, "q")
buildConfig.UseCache = !httputils.BoolValue(r, "nocache")
buildConfig.ForceRemove = httputils.BoolValue(r, "forcerm")
buildConfig.MemorySwap = httputils.Int64ValueOrZero(r, "memswap")
buildConfig.Memory = httputils.Int64ValueOrZero(r, "memory")
buildConfig.CPUShares = httputils.Int64ValueOrZero(r, "cpushares")
buildConfig.CPUPeriod = httputils.Int64ValueOrZero(r, "cpuperiod")
buildConfig.CPUQuota = httputils.Int64ValueOrZero(r, "cpuquota")
buildConfig.CPUSetCpus = r.FormValue("cpusetcpus")
buildConfig.CPUSetMems = r.FormValue("cpusetmems")
buildConfig.CgroupParent = r.FormValue("cgroupparent")
var buildUlimits = []*ulimit.Ulimit{}
ulimitsJSON := r.FormValue("ulimits")
if ulimitsJSON != "" {
if err := json.NewDecoder(strings.NewReader(ulimitsJSON)).Decode(&buildUlimits); err != nil {
return errf(err)
}
buildConfig.Ulimits = buildUlimits
}
var buildArgs = map[string]string{}
buildArgsJSON := r.FormValue("buildargs")
if buildArgsJSON != "" {
if err := json.NewDecoder(strings.NewReader(buildArgsJSON)).Decode(&buildArgs); err != nil {
return errf(err)
}
buildConfig.BuildArgs = buildArgs
}
remoteURL := r.FormValue("remote")
// Currently, only used if context is from a remote url.
// The field `In` is set by DetectContextFromRemoteURL.
// Look at code in DetectContextFromRemoteURL for more information.
pReader := &progressreader.Config{
// TODO: make progressreader streamformatter-agnostic
Out: output,
Formatter: sf,
Size: r.ContentLength,
NewLines: true,
ID: "Downloading context",
Action: remoteURL,
}
var (
context builder.ModifiableContext
dockerfileName string
err error
)
context, dockerfileName, err = daemonbuilder.DetectContextFromRemoteURL(r.Body, remoteURL, pReader)
if err != nil {
return errf(err)
}
defer func() {
if err := context.Close(); err != nil {
logrus.Debugf("[BUILDER] failed to remove temporary context: %v", err)
}
}()
uidMaps, gidMaps := s.daemon.GetUIDGIDMaps()
defaultArchiver := &archive.Archiver{
Untar: chrootarchive.Untar,
UIDMaps: uidMaps,
GIDMaps: gidMaps,
}
docker := daemonbuilder.Docker{s.daemon, output, authConfigs, defaultArchiver}
b, err := dockerfile.NewBuilder(buildConfig, docker, builder.DockerIgnoreContext{context}, nil)
if err != nil {
return errf(err)
}
b.Stdout = &streamformatter.StdoutFormatter{Writer: output, StreamFormatter: sf}
b.Stderr = &streamformatter.StderrFormatter{Writer: output, StreamFormatter: sf}
if closeNotifier, ok := w.(http.CloseNotifier); ok {
finished := make(chan struct{})
defer close(finished)
go func() {
select {
case <-finished:
case <-closeNotifier.CloseNotify():
logrus.Infof("Client disconnected, cancelling job: build")
b.Cancel()
}
}()
}
if len(dockerfileName) > 0 {
b.DockerfileName = dockerfileName
}
imgID, err := b.Build()
if err != nil {
return errf(err)
}
if repoName != "" {
if err := s.daemon.TagImage(repoName, tag, string(imgID), true); err != nil {
return errf(err)
}
}
return nil
}
func (s *router) getImagesJSON(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
// FIXME: The filter parameter could just be a match filter
images, err := s.daemon.ListImages(r.Form.Get("filters"), r.Form.Get("filter"), httputils.BoolValue(r, "all"))
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, images)
}
func (s *router) getImagesHistory(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
name := vars["name"]
history, err := s.daemon.ImageHistory(name)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, history)
}
func (s *router) postImagesTag(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
repo := r.Form.Get("repo")
tag := r.Form.Get("tag")
name := vars["name"]
force := httputils.BoolValue(r, "force")
if err := s.daemon.TagImage(repo, tag, name, force); err != nil {
return err
}
s.daemon.EventsService.Log("tag", utils.ImageReference(repo, tag), "")
w.WriteHeader(http.StatusCreated)
return nil
}
func (s *router) getImagesSearch(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
var (
config *cliconfig.AuthConfig
authEncoded = r.Header.Get("X-Registry-Auth")
headers = map[string][]string{}
)
if authEncoded != "" {
authJSON := base64.NewDecoder(base64.URLEncoding, strings.NewReader(authEncoded))
if err := json.NewDecoder(authJSON).Decode(&config); err != nil {
// for a search it is not an error if no auth was given
// to increase compatibility with the existing api it is defaulting to be empty
config = &cliconfig.AuthConfig{}
}
}
for k, v := range r.Header {
if strings.HasPrefix(k, "X-Meta-") {
headers[k] = v
}
}
query, err := s.daemon.SearchRegistryForImages(r.Form.Get("term"), config, headers)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, query.Results)
}

View File

@@ -0,0 +1,140 @@
package local
import (
"encoding/json"
"net/http"
"runtime"
"time"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/types"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/jsonmessage"
"github.com/docker/docker/pkg/parsers/filters"
"github.com/docker/docker/pkg/parsers/kernel"
"github.com/docker/docker/utils"
"golang.org/x/net/context"
)
func (s *router) getVersion(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
v := &types.Version{
Version: dockerversion.VERSION,
APIVersion: api.Version,
GitCommit: dockerversion.GITCOMMIT,
GoVersion: runtime.Version(),
Os: runtime.GOOS,
Arch: runtime.GOARCH,
BuildTime: dockerversion.BUILDTIME,
}
version := httputils.VersionFromContext(ctx)
if version.GreaterThanOrEqualTo("1.19") {
v.Experimental = utils.ExperimentalBuild()
}
if kernelVersion, err := kernel.GetKernelVersion(); err == nil {
v.KernelVersion = kernelVersion.String()
}
return httputils.WriteJSON(w, http.StatusOK, v)
}
func (s *router) getInfo(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
info, err := s.daemon.SystemInfo()
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, info)
}
func buildOutputEncoder(w http.ResponseWriter) *json.Encoder {
w.Header().Set("Content-Type", "application/json")
outStream := ioutils.NewWriteFlusher(w)
// Write an empty chunk of data.
// This is to ensure that the HTTP status code is sent immediately,
// so that it will not block the receiver.
outStream.Write(nil)
return json.NewEncoder(outStream)
}
func (s *router) getEvents(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
since, err := httputils.Int64ValueOrDefault(r, "since", -1)
if err != nil {
return err
}
until, err := httputils.Int64ValueOrDefault(r, "until", -1)
if err != nil {
return err
}
timer := time.NewTimer(0)
timer.Stop()
if until > 0 {
dur := time.Unix(until, 0).Sub(time.Now())
timer = time.NewTimer(dur)
}
ef, err := filters.FromParam(r.Form.Get("filters"))
if err != nil {
return err
}
enc := buildOutputEncoder(w)
d := s.daemon
es := d.EventsService
current, l := es.Subscribe()
defer es.Evict(l)
eventFilter := d.GetEventFilter(ef)
handleEvent := func(ev *jsonmessage.JSONMessage) error {
if eventFilter.Include(ev) {
if err := enc.Encode(ev); err != nil {
return err
}
}
return nil
}
if since == -1 {
current = nil
}
for _, ev := range current {
if ev.Time < since {
continue
}
if err := handleEvent(ev); err != nil {
return err
}
}
var closeNotify <-chan bool
if closeNotifier, ok := w.(http.CloseNotifier); ok {
closeNotify = closeNotifier.CloseNotify()
}
for {
select {
case ev := <-l:
jev, ok := ev.(*jsonmessage.JSONMessage)
if !ok {
continue
}
if err := handleEvent(jev); err != nil {
return err
}
case <-timer.C:
return nil
case <-closeNotify:
logrus.Debug("Client disconnected, stop sending events")
return nil
}
}
}

View File

@@ -0,0 +1,37 @@
package local
import (
"fmt"
"net/http"
"github.com/docker/docker/api/server/httputils"
"golang.org/x/net/context"
)
// getContainersByName inspects containers configuration and serializes it as json.
func (s *router) getContainersByName(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
displaySize := httputils.BoolValue(r, "size")
if vars == nil {
return fmt.Errorf("Missing parameter")
}
var json interface{}
var err error
version := httputils.VersionFromContext(ctx)
switch {
case version.LessThan("1.20"):
json, err = s.daemon.ContainerInspectPre120(vars["name"])
case version.Equal("1.20"):
json, err = s.daemon.ContainerInspect120(vars["name"])
default:
json, err = s.daemon.ContainerInspect(vars["name"], displaySize)
}
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, json)
}

View File

@@ -0,0 +1,162 @@
package local
import (
"net/http"
"golang.org/x/net/context"
"github.com/docker/docker/api/server/httputils"
dkrouter "github.com/docker/docker/api/server/router"
"github.com/docker/docker/daemon"
)
// router is a docker router that talks with the local docker daemon.
type router struct {
daemon *daemon.Daemon
routes []dkrouter.Route
}
// localRoute defines an individual API route to connect with the docker daemon.
// It implements router.Route.
type localRoute struct {
method string
path string
handler httputils.APIFunc
}
// Handler returns the APIFunc to let the server wrap it in middlewares
func (l localRoute) Handler() httputils.APIFunc {
return l.handler
}
// Method returns the http method that the route responds to.
func (l localRoute) Method() string {
return l.method
}
// Path returns the subpath where the route responds to.
func (l localRoute) Path() string {
return l.path
}
// NewRoute initialies a new local route for the reouter
func NewRoute(method, path string, handler httputils.APIFunc) dkrouter.Route {
return localRoute{method, path, handler}
}
// NewGetRoute initializes a new route with the http method GET.
func NewGetRoute(path string, handler httputils.APIFunc) dkrouter.Route {
return NewRoute("GET", path, handler)
}
// NewPostRoute initializes a new route with the http method POST.
func NewPostRoute(path string, handler httputils.APIFunc) dkrouter.Route {
return NewRoute("POST", path, handler)
}
// NewPutRoute initializes a new route with the http method PUT.
func NewPutRoute(path string, handler httputils.APIFunc) dkrouter.Route {
return NewRoute("PUT", path, handler)
}
// NewDeleteRoute initializes a new route with the http method DELETE.
func NewDeleteRoute(path string, handler httputils.APIFunc) dkrouter.Route {
return NewRoute("DELETE", path, handler)
}
// NewOptionsRoute initializes a new route with the http method OPTIONS
func NewOptionsRoute(path string, handler httputils.APIFunc) dkrouter.Route {
return NewRoute("OPTIONS", path, handler)
}
// NewHeadRoute initializes a new route with the http method HEAD.
func NewHeadRoute(path string, handler httputils.APIFunc) dkrouter.Route {
return NewRoute("HEAD", path, handler)
}
// NewRouter initializes a local router with a new daemon.
func NewRouter(daemon *daemon.Daemon) dkrouter.Router {
r := &router{
daemon: daemon,
}
r.initRoutes()
return r
}
// Routes returns the list of routes registered in the router.
func (r *router) Routes() []dkrouter.Route {
return r.routes
}
// initRoutes initializes the routes in this router
func (r *router) initRoutes() {
r.routes = []dkrouter.Route{
// HEAD
NewHeadRoute("/containers/{name:.*}/archive", r.headContainersArchive),
// OPTIONS
NewOptionsRoute("/", optionsHandler),
// GET
NewGetRoute("/_ping", pingHandler),
NewGetRoute("/events", r.getEvents),
NewGetRoute("/info", r.getInfo),
NewGetRoute("/version", r.getVersion),
NewGetRoute("/images/json", r.getImagesJSON),
NewGetRoute("/images/search", r.getImagesSearch),
NewGetRoute("/images/get", r.getImagesGet),
NewGetRoute("/images/{name:.*}/get", r.getImagesGet),
NewGetRoute("/images/{name:.*}/history", r.getImagesHistory),
NewGetRoute("/images/{name:.*}/json", r.getImagesByName),
NewGetRoute("/containers/json", r.getContainersJSON),
NewGetRoute("/containers/{name:.*}/export", r.getContainersExport),
NewGetRoute("/containers/{name:.*}/changes", r.getContainersChanges),
NewGetRoute("/containers/{name:.*}/json", r.getContainersByName),
NewGetRoute("/containers/{name:.*}/top", r.getContainersTop),
NewGetRoute("/containers/{name:.*}/logs", r.getContainersLogs),
NewGetRoute("/containers/{name:.*}/stats", r.getContainersStats),
NewGetRoute("/containers/{name:.*}/attach/ws", r.wsContainersAttach),
NewGetRoute("/exec/{id:.*}/json", r.getExecByID),
NewGetRoute("/containers/{name:.*}/archive", r.getContainersArchive),
NewGetRoute("/volumes", r.getVolumesList),
NewGetRoute("/volumes/{name:.*}", r.getVolumeByName),
// POST
NewPostRoute("/auth", r.postAuth),
NewPostRoute("/commit", r.postCommit),
NewPostRoute("/build", r.postBuild),
NewPostRoute("/images/create", r.postImagesCreate),
NewPostRoute("/images/load", r.postImagesLoad),
NewPostRoute("/images/{name:.*}/push", r.postImagesPush),
NewPostRoute("/images/{name:.*}/tag", r.postImagesTag),
NewPostRoute("/containers/create", r.postContainersCreate),
NewPostRoute("/containers/{name:.*}/kill", r.postContainersKill),
NewPostRoute("/containers/{name:.*}/pause", r.postContainersPause),
NewPostRoute("/containers/{name:.*}/unpause", r.postContainersUnpause),
NewPostRoute("/containers/{name:.*}/restart", r.postContainersRestart),
NewPostRoute("/containers/{name:.*}/start", r.postContainersStart),
NewPostRoute("/containers/{name:.*}/stop", r.postContainersStop),
NewPostRoute("/containers/{name:.*}/wait", r.postContainersWait),
NewPostRoute("/containers/{name:.*}/resize", r.postContainersResize),
NewPostRoute("/containers/{name:.*}/attach", r.postContainersAttach),
NewPostRoute("/containers/{name:.*}/copy", r.postContainersCopy),
NewPostRoute("/containers/{name:.*}/exec", r.postContainerExecCreate),
NewPostRoute("/exec/{name:.*}/start", r.postContainerExecStart),
NewPostRoute("/exec/{name:.*}/resize", r.postContainerExecResize),
NewPostRoute("/containers/{name:.*}/rename", r.postContainerRename),
NewPostRoute("/volumes/create", r.postVolumesCreate),
// PUT
NewPutRoute("/containers/{name:.*}/archive", r.putContainersArchive),
// DELETE
NewDeleteRoute("/containers/{name:.*}", r.deleteContainers),
NewDeleteRoute("/images/{name:.*}", r.deleteImages),
NewDeleteRoute("/volumes/{name:.*}", r.deleteVolumes),
}
}
func optionsHandler(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
w.WriteHeader(http.StatusOK)
return nil
}
func pingHandler(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
_, err := w.Write([]byte{'O', 'K'})
return err
}

View File

@@ -0,0 +1,66 @@
package local
import (
"encoding/json"
"net/http"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
)
func (s *router) getVolumesList(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
volumes, err := s.daemon.Volumes(r.Form.Get("filters"))
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, &types.VolumesListResponse{Volumes: volumes})
}
func (s *router) getVolumeByName(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
v, err := s.daemon.VolumeInspect(vars["name"])
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, v)
}
func (s *router) postVolumesCreate(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
var req types.VolumeCreateRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
return err
}
volume, err := s.daemon.VolumeCreate(req.Name, req.Driver, req.DriverOpts)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusCreated, volume)
}
func (s *router) deleteVolumes(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := s.daemon.VolumeRm(vars["name"]); err != nil {
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}

View File

@@ -0,0 +1,57 @@
package network
import (
"net/http"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/server/router"
"github.com/docker/docker/api/server/router/local"
"github.com/docker/docker/daemon"
"github.com/docker/docker/errors"
"golang.org/x/net/context"
)
// networkRouter is a router to talk with the network controller
type networkRouter struct {
daemon *daemon.Daemon
routes []router.Route
}
// NewRouter initializes a new network router
func NewRouter(d *daemon.Daemon) router.Router {
r := &networkRouter{
daemon: d,
}
r.initRoutes()
return r
}
// Routes returns the available routes to the network controller
func (r *networkRouter) Routes() []router.Route {
return r.routes
}
func (r *networkRouter) initRoutes() {
r.routes = []router.Route{
// GET
local.NewGetRoute("/networks", r.controllerEnabledMiddleware(r.getNetworksList)),
local.NewGetRoute("/networks/{id:.*}", r.controllerEnabledMiddleware(r.getNetwork)),
// POST
local.NewPostRoute("/networks/create", r.controllerEnabledMiddleware(r.postNetworkCreate)),
local.NewPostRoute("/networks/{id:.*}/connect", r.controllerEnabledMiddleware(r.postNetworkConnect)),
local.NewPostRoute("/networks/{id:.*}/disconnect", r.controllerEnabledMiddleware(r.postNetworkDisconnect)),
// DELETE
local.NewDeleteRoute("/networks/{id:.*}", r.controllerEnabledMiddleware(r.deleteNetwork)),
}
}
func (r *networkRouter) controllerEnabledMiddleware(handler httputils.APIFunc) httputils.APIFunc {
if r.daemon.NetworkControllerEnabled() {
return handler
}
return networkControllerDisabled
}
func networkControllerDisabled(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
return errors.ErrorNetworkControllerNotEnabled.WithArgs()
}

View File

@@ -0,0 +1,257 @@
package network
import (
"encoding/json"
"fmt"
"net/http"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/types"
"github.com/docker/docker/daemon"
"github.com/docker/docker/daemon/network"
"github.com/docker/docker/pkg/parsers/filters"
"github.com/docker/docker/runconfig"
"github.com/docker/libnetwork"
)
func (n *networkRouter) getNetworksList(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
filter := r.Form.Get("filters")
netFilters, err := filters.FromParam(filter)
if err != nil {
return err
}
list := []*types.NetworkResource{}
var nameFilter, idFilter bool
var names, ids []string
if names, nameFilter = netFilters["name"]; nameFilter {
for _, name := range names {
if nw, err := n.daemon.GetNetwork(name, daemon.NetworkByName); err == nil {
list = append(list, buildNetworkResource(nw))
} else {
logrus.Errorf("failed to get network for filter=%s : %v", name, err)
}
}
}
if ids, idFilter = netFilters["id"]; idFilter {
for _, id := range ids {
for _, nw := range n.daemon.GetNetworksByID(id) {
list = append(list, buildNetworkResource(nw))
}
}
}
if !nameFilter && !idFilter {
nwList := n.daemon.GetNetworksByID("")
for _, nw := range nwList {
list = append(list, buildNetworkResource(nw))
}
}
return httputils.WriteJSON(w, http.StatusOK, list)
}
func (n *networkRouter) getNetwork(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
nw, err := n.daemon.FindNetwork(vars["id"])
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusOK, buildNetworkResource(nw))
}
func (n *networkRouter) postNetworkCreate(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
var create types.NetworkCreate
var warning string
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
if err := json.NewDecoder(r.Body).Decode(&create); err != nil {
return err
}
if runconfig.IsPreDefinedNetwork(create.Name) {
return httputils.WriteJSON(w, http.StatusForbidden,
fmt.Sprintf("%s is a pre-defined network and cannot be created", create.Name))
}
nw, err := n.daemon.GetNetwork(create.Name, daemon.NetworkByName)
if _, ok := err.(libnetwork.ErrNoSuchNetwork); err != nil && !ok {
return err
}
if nw != nil {
if create.CheckDuplicate {
return libnetwork.NetworkNameError(create.Name)
}
warning = fmt.Sprintf("Network with name %s (id : %s) already exists", nw.Name(), nw.ID())
}
nw, err = n.daemon.CreateNetwork(create.Name, create.Driver, create.IPAM, create.Options)
if err != nil {
return err
}
return httputils.WriteJSON(w, http.StatusCreated, &types.NetworkCreateResponse{
ID: nw.ID(),
Warning: warning,
})
}
func (n *networkRouter) postNetworkConnect(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
var connect types.NetworkConnect
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
if err := json.NewDecoder(r.Body).Decode(&connect); err != nil {
return err
}
nw, err := n.daemon.FindNetwork(vars["id"])
if err != nil {
return err
}
container, err := n.daemon.Get(connect.Container)
if err != nil {
return fmt.Errorf("invalid container %s : %v", container, err)
}
return container.ConnectToNetwork(nw.Name())
}
func (n *networkRouter) postNetworkDisconnect(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
var disconnect types.NetworkDisconnect
if err := httputils.ParseForm(r); err != nil {
return err
}
if err := httputils.CheckForJSON(r); err != nil {
return err
}
if err := json.NewDecoder(r.Body).Decode(&disconnect); err != nil {
return err
}
nw, err := n.daemon.FindNetwork(vars["id"])
if err != nil {
return err
}
container, err := n.daemon.Get(disconnect.Container)
if err != nil {
return fmt.Errorf("invalid container %s : %v", container, err)
}
return container.DisconnectFromNetwork(nw)
}
func (n *networkRouter) deleteNetwork(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
nw, err := n.daemon.FindNetwork(vars["id"])
if err != nil {
return err
}
if runconfig.IsPreDefinedNetwork(nw.Name()) {
return httputils.WriteJSON(w, http.StatusForbidden,
fmt.Sprintf("%s is a pre-defined network and cannot be removed", nw.Name()))
}
return nw.Delete()
}
func buildNetworkResource(nw libnetwork.Network) *types.NetworkResource {
r := &types.NetworkResource{}
if nw == nil {
return r
}
r.Name = nw.Name()
r.ID = nw.ID()
r.Scope = nw.Info().Scope()
r.Driver = nw.Type()
r.Options = nw.Info().DriverOptions()
r.Containers = make(map[string]types.EndpointResource)
buildIpamResources(r, nw)
epl := nw.Endpoints()
for _, e := range epl {
sb := e.Info().Sandbox()
if sb == nil {
continue
}
r.Containers[sb.ContainerID()] = buildEndpointResource(e)
}
return r
}
func buildIpamResources(r *types.NetworkResource, nw libnetwork.Network) {
id, ipv4conf, ipv6conf := nw.Info().IpamConfig()
r.IPAM.Driver = id
r.IPAM.Config = []network.IPAMConfig{}
for _, ip4 := range ipv4conf {
iData := network.IPAMConfig{}
iData.Subnet = ip4.PreferredPool
iData.IPRange = ip4.SubPool
iData.Gateway = ip4.Gateway
iData.AuxAddress = ip4.AuxAddresses
r.IPAM.Config = append(r.IPAM.Config, iData)
}
for _, ip6 := range ipv6conf {
iData := network.IPAMConfig{}
iData.Subnet = ip6.PreferredPool
iData.IPRange = ip6.SubPool
iData.Gateway = ip6.Gateway
iData.AuxAddress = ip6.AuxAddresses
r.IPAM.Config = append(r.IPAM.Config, iData)
}
}
func buildEndpointResource(e libnetwork.Endpoint) types.EndpointResource {
er := types.EndpointResource{}
if e == nil {
return er
}
er.EndpointID = e.ID()
if iface := e.Info().Iface(); iface != nil {
if mac := iface.MacAddress(); mac != nil {
er.MacAddress = mac.String()
}
if ip := iface.Address(); ip != nil && len(ip.IP) > 0 {
er.IPv4Address = ip.String()
}
if ipv6 := iface.AddressIPv6(); ipv6 != nil && len(ipv6.IP) > 0 {
er.IPv6Address = ipv6.String()
}
}
return er
}

View File

@@ -0,0 +1,18 @@
package router
import "github.com/docker/docker/api/server/httputils"
// Router defines an interface to specify a group of routes to add the the docker server.
type Router interface {
Routes() []Route
}
// Route defines an individual API route in the docker server.
type Route interface {
// Handler returns the raw function to create the http handler.
Handler() httputils.APIFunc
// Method returns the http method that the route responds to.
Method() string
// Path returns the subpath where the route responds to.
Path() string
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,78 +0,0 @@
// +build linux
package server
import (
"fmt"
"net"
"net/http"
"github.com/docker/docker/daemon"
"github.com/docker/docker/pkg/sockets"
"github.com/docker/docker/pkg/systemd"
)
// newServer sets up the required serverCloser and does protocol specific checking.
func (s *Server) newServer(proto, addr string) (serverCloser, error) {
var (
err error
l net.Listener
)
switch proto {
case "fd":
ls, err := systemd.ListenFD(addr)
if err != nil {
return nil, err
}
chErrors := make(chan error, len(ls))
// We don't want to start serving on these sockets until the
// daemon is initialized and installed. Otherwise required handlers
// won't be ready.
<-s.start
// Since ListenFD will return one or more sockets we have
// to create a go func to spawn off multiple serves
for i := range ls {
listener := ls[i]
go func() {
httpSrv := http.Server{Handler: s.router}
chErrors <- httpSrv.Serve(listener)
}()
}
for i := 0; i < len(ls); i++ {
if err := <-chErrors; err != nil {
return nil, err
}
}
return nil, nil
case "tcp":
l, err = s.initTcpSocket(addr)
if err != nil {
return nil, err
}
case "unix":
if l, err = sockets.NewUnixSocket(addr, s.cfg.SocketGroup, s.start); err != nil {
return nil, err
}
default:
return nil, fmt.Errorf("Invalid protocol format: %q", proto)
}
return &HttpServer{
&http.Server{
Addr: addr,
Handler: s.router,
},
l,
}, nil
}
func (s *Server) AcceptConnections(d *daemon.Daemon) {
// Tell the init daemon we are accepting requests
s.daemon = d
go systemd.SdNotify("READY=1")
// close the lock so the listeners start accepting connections
select {
case <-s.start:
default:
close(s.start)
}
}

34
api/server/server_test.go Normal file
View File

@@ -0,0 +1,34 @@
package server
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/docker/docker/api/server/httputils"
"golang.org/x/net/context"
)
func TestMiddlewares(t *testing.T) {
cfg := &Config{}
srv := &Server{
cfg: cfg,
}
req, _ := http.NewRequest("GET", "/containers/json", nil)
resp := httptest.NewRecorder()
ctx := context.Background()
localHandler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if httputils.VersionFromContext(ctx) == "" {
t.Fatalf("Expected version, got empty string")
}
return nil
}
handlerFunc := srv.handleWithGlobalMiddlewares(localHandler)
if err := handlerFunc(ctx, resp, req, map[string]string{}); err != nil {
t.Fatal(err)
}
}

123
api/server/server_unix.go Normal file
View File

@@ -0,0 +1,123 @@
// +build freebsd linux
package server
import (
"fmt"
"net"
"net/http"
"strconv"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/pkg/sockets"
"github.com/docker/libnetwork/portallocator"
systemdActivation "github.com/coreos/go-systemd/activation"
)
// newServer sets up the required HTTPServers and does protocol specific checking.
// newServer does not set any muxers, you should set it later to Handler field
func (s *Server) newServer(proto, addr string) ([]*HTTPServer, error) {
var (
err error
ls []net.Listener
)
switch proto {
case "fd":
ls, err = listenFD(addr)
if err != nil {
return nil, err
}
case "tcp":
l, err := s.initTCPSocket(addr)
if err != nil {
return nil, err
}
ls = append(ls, l)
case "unix":
l, err := sockets.NewUnixSocket(addr, s.cfg.SocketGroup, s.start)
if err != nil {
return nil, err
}
ls = append(ls, l)
default:
return nil, fmt.Errorf("Invalid protocol format: %q", proto)
}
var res []*HTTPServer
for _, l := range ls {
res = append(res, &HTTPServer{
&http.Server{
Addr: addr,
},
l,
})
}
return res, nil
}
func allocateDaemonPort(addr string) error {
host, port, err := net.SplitHostPort(addr)
if err != nil {
return err
}
intPort, err := strconv.Atoi(port)
if err != nil {
return err
}
var hostIPs []net.IP
if parsedIP := net.ParseIP(host); parsedIP != nil {
hostIPs = append(hostIPs, parsedIP)
} else if hostIPs, err = net.LookupIP(host); err != nil {
return fmt.Errorf("failed to lookup %s address in host specification", host)
}
pa := portallocator.Get()
for _, hostIP := range hostIPs {
if _, err := pa.RequestPort(hostIP, "tcp", intPort); err != nil {
return fmt.Errorf("failed to allocate daemon listening port %d (err: %v)", intPort, err)
}
}
return nil
}
// listenFD returns the specified socket activated files as a slice of
// net.Listeners or all of the activated files if "*" is given.
func listenFD(addr string) ([]net.Listener, error) {
// socket activation
listeners, err := systemdActivation.Listeners(false)
if err != nil {
return nil, err
}
if len(listeners) == 0 {
return nil, fmt.Errorf("No sockets found")
}
// default to all fds just like unix:// and tcp://
if addr == "" || addr == "*" {
return listeners, nil
}
fdNum, err := strconv.Atoi(addr)
if err != nil {
return nil, fmt.Errorf("failed to parse systemd address, should be number: %v", err)
}
fdOffset := fdNum - 3
if len(listeners) < int(fdOffset)+1 {
return nil, fmt.Errorf("Too few socket activated files passed in")
}
if listeners[fdOffset] == nil {
return nil, fmt.Errorf("failed to listen on systemd activated file at fd %d", fdOffset+3)
}
for i, ls := range listeners {
if i == fdOffset || ls == nil {
continue
}
if err := ls.Close(); err != nil {
logrus.Errorf("Failed to close systemd activated file at fd %d: %v", fdOffset+3, err)
}
}
return []net.Listener{listeners[fdOffset]}, nil
}

View File

@@ -6,40 +6,38 @@ import (
"errors"
"net"
"net/http"
"github.com/docker/docker/daemon"
)
// NewServer sets up the required Server and does protocol specific checking.
func (s *Server) newServer(proto, addr string) (Server, error) {
func (s *Server) newServer(proto, addr string) ([]*HTTPServer, error) {
var (
err error
l net.Listener
ls []net.Listener
)
switch proto {
case "tcp":
l, err = s.initTcpSocket(addr)
l, err := s.initTCPSocket(addr)
if err != nil {
return nil, err
}
ls = append(ls, l)
default:
return nil, errors.New("Invalid protocol format. Windows only supports tcp.")
}
return &HttpServer{
&http.Server{
Addr: addr,
Handler: s.router,
},
l,
}, nil
var res []*HTTPServer
for _, l := range ls {
res = append(res, &HTTPServer{
&http.Server{
Addr: addr,
},
l,
})
}
return res, nil
}
func (s *Server) AcceptConnections(d *daemon.Daemon) {
s.daemon = d
// close the lock so the listeners start accepting connections
select {
case <-s.start:
default:
close(s.start)
}
func allocateDaemonPort(addr string) error {
return nil
}

View File

@@ -1,9 +1,10 @@
// This package is used for API stability in the types and response to the
// Package types is used for API stability in the types and response to the
// consumers of the API stats endpoint.
package types
import "time"
// ThrottlingData stores CPU throttling stats of one running container
type ThrottlingData struct {
// Number of periods with throttling active
Periods uint64 `json:"periods"`
@@ -13,8 +14,8 @@ type ThrottlingData struct {
ThrottledTime uint64 `json:"throttled_time"`
}
// All CPU stats are aggregated since container inception.
type CpuUsage struct {
// CPUUsage stores All CPU stats aggregated since container inception.
type CPUUsage struct {
// Total CPU time consumed.
// Units: nanoseconds.
TotalUsage uint64 `json:"total_usage"`
@@ -29,12 +30,14 @@ type CpuUsage struct {
UsageInUsermode uint64 `json:"usage_in_usermode"`
}
type CpuStats struct {
CpuUsage CpuUsage `json:"cpu_usage"`
// CPUStats aggregates and wraps all CPU related info of container
type CPUStats struct {
CPUUsage CPUUsage `json:"cpu_usage"`
SystemUsage uint64 `json:"system_cpu_usage"`
ThrottlingData ThrottlingData `json:"throttling_data,omitempty"`
}
// MemoryStats aggregates All memory stats since container inception
type MemoryStats struct {
// current res_counter usage for memory
Usage uint64 `json:"usage"`
@@ -48,6 +51,8 @@ type MemoryStats struct {
Limit uint64 `json:"limit"`
}
// BlkioStatEntry is one small entity to store a piece of Blkio stats
// TODO Windows: This can be factored out
type BlkioStatEntry struct {
Major uint64 `json:"major"`
Minor uint64 `json:"minor"`
@@ -55,6 +60,8 @@ type BlkioStatEntry struct {
Value uint64 `json:"value"`
}
// BlkioStats stores All IO service stats for data read and write
// TODO Windows: This can be factored out
type BlkioStats struct {
// number of bytes tranferred to and from the block device
IoServiceBytesRecursive []BlkioStatEntry `json:"io_service_bytes_recursive"`
@@ -67,7 +74,9 @@ type BlkioStats struct {
SectorsRecursive []BlkioStatEntry `json:"sectors_recursive"`
}
type Network struct {
// NetworkStats aggregates All network stats of one container
// TODO Windows: This will require refactoring
type NetworkStats struct {
RxBytes uint64 `json:"rx_bytes"`
RxPackets uint64 `json:"rx_packets"`
RxErrors uint64 `json:"rx_errors"`
@@ -78,10 +87,19 @@ type Network struct {
TxDropped uint64 `json:"tx_dropped"`
}
// Stats is Ultimate struct aggregating all types of stats of one container
type Stats struct {
Read time.Time `json:"read"`
Network Network `json:"network,omitempty"`
CpuStats CpuStats `json:"cpu_stats,omitempty"`
PreCPUStats CPUStats `json:"precpu_stats,omitempty"`
CPUStats CPUStats `json:"cpu_stats,omitempty"`
MemoryStats MemoryStats `json:"memory_stats,omitempty"`
BlkioStats BlkioStats `json:"blkio_stats,omitempty"`
}
// StatsJSON is newly used Networks
type StatsJSON struct {
Stats
// Networks request version >=1.21
Networks map[string]NetworkStats `json:"networks,omitempty"`
}

View File

@@ -1,10 +1,13 @@
package types
import (
"os"
"time"
"github.com/docker/docker/daemon/network"
"github.com/docker/docker/pkg/nat"
"github.com/docker/docker/pkg/version"
"github.com/docker/docker/registry"
"github.com/docker/docker/runconfig"
)
@@ -18,35 +21,41 @@ type ContainerCreateResponse struct {
Warnings []string `json:"Warnings"`
}
// POST /containers/{name:.*}/exec
// ContainerExecCreateResponse contains response of Remote API:
// POST "/containers/{name:.*}/exec"
type ContainerExecCreateResponse struct {
// ID is the exec ID.
ID string `json:"Id"`
}
// POST /auth
// AuthResponse contains response of Remote API:
// POST "/auth"
type AuthResponse struct {
// Status is the authentication status
Status string `json:"Status"`
}
// ContainerWaitResponse contains response of Remote API:
// POST "/containers/"+containerID+"/wait"
type ContainerWaitResponse struct {
// StatusCode is the status code of the wait job
StatusCode int `json:"StatusCode"`
}
// ContainerCommitResponse contains response of Remote API:
// POST "/commit?container="+containerID
type ContainerCommitResponse struct {
ID string `json:"Id"`
}
// ContainerChange contains response of Remote API:
// GET "/containers/{name:.*}/changes"
type ContainerChange struct {
Kind int
Path string
}
// ImageHistory contains response of Remote API:
// GET "/images/{name:.*}/history"
type ImageHistory struct {
ID string `json:"Id"`
@@ -57,30 +66,42 @@ type ImageHistory struct {
Comment string
}
// ImageDelete contains response of Remote API:
// DELETE "/images/{name:.*}"
type ImageDelete struct {
Untagged string `json:",omitempty"`
Deleted string `json:",omitempty"`
}
// Image contains response of Remote API:
// GET "/images/json"
type Image struct {
ID string `json:"Id"`
ParentId string
ParentID string `json:"ParentId"`
RepoTags []string
RepoDigests []string
Created int
Size int
VirtualSize int
Created int64
Size int64
VirtualSize int64
Labels map[string]string
}
// GraphDriverData returns Image's graph driver config info
// when calling inspect command
type GraphDriverData struct {
Name string
Data map[string]string
}
// ImageInspect contains response of Remote API:
// GET "/images/{name:.*}/json"
type ImageInspect struct {
Id string
ID string `json:"Id"`
RepoTags []string
RepoDigests []string
Parent string
Comment string
Created time.Time
Created string
Container string
ContainerConfig *runconfig.Config
DockerVersion string
@@ -90,50 +111,76 @@ type ImageInspect struct {
Os string
Size int64
VirtualSize int64
GraphDriver GraphDriverData
}
// GET "/containers/json"
// Port stores open ports info of container
// e.g. {"PrivatePort": 8080, "PublicPort": 80, "Type": "tcp"}
type Port struct {
IP string
IP string `json:",omitempty"`
PrivatePort int
PublicPort int
PublicPort int `json:",omitempty"`
Type string
}
// Container contains response of Remote API:
// GET "/containers/json"
type Container struct {
ID string `json:"Id"`
Names []string `json:",omitempty"`
Image string `json:",omitempty"`
Command string `json:",omitempty"`
Created int `json:",omitempty"`
Ports []Port `json:",omitempty"`
SizeRw int `json:",omitempty"`
SizeRootFs int `json:",omitempty"`
Labels map[string]string `json:",omitempty"`
Status string `json:",omitempty"`
ID string `json:"Id"`
Names []string
Image string
ImageID string
Command string
Created int64
Ports []Port
SizeRw int64 `json:",omitempty"`
SizeRootFs int64 `json:",omitempty"`
Labels map[string]string
Status string
HostConfig struct {
NetworkMode string `json:",omitempty"`
}
}
// CopyConfig contains request body of Remote API:
// POST "/containers/"+containerID+"/copy"
type CopyConfig struct {
Resource string
}
// ContainerPathStat is used to encode the header from
// GET "/containers/{name:.*}/archive"
// "Name" is the file or directory name.
type ContainerPathStat struct {
Name string `json:"name"`
Size int64 `json:"size"`
Mode os.FileMode `json:"mode"`
Mtime time.Time `json:"mtime"`
LinkTarget string `json:"linkTarget"`
}
// ContainerProcessList contains response of Remote API:
// GET "/containers/{name:.*}/top"
type ContainerProcessList struct {
Processes [][]string
Titles []string
}
// Version contains response of Remote API:
// GET "/version"
type Version struct {
Version string
ApiVersion version.Version
APIVersion version.Version `json:"ApiVersion"`
GitCommit string
GoVersion string
Os string
Arch string
KernelVersion string `json:",omitempty"`
Experimental bool `json:",omitempty"`
BuildTime string `json:",omitempty"`
}
// Info contains response of Remote API:
// GET "/info"
type Info struct {
ID string
@@ -143,9 +190,11 @@ type Info struct {
DriverStatus [][2]string
MemoryLimit bool
SwapLimit bool
CpuCfsPeriod bool
CpuCfsQuota bool
CPUCfsPeriod bool `json:"CpuCfsPeriod"`
CPUCfsQuota bool `json:"CpuCfsQuota"`
IPv4Forwarding bool
BridgeNfIptables bool
BridgeNfIP6tables bool `json:"BridgeNfIp6tables"`
Debug bool
NFd int
OomKillDisable bool
@@ -157,21 +206,24 @@ type Info struct {
KernelVersion string
OperatingSystem string
IndexServerAddress string
RegistryConfig interface{}
RegistryConfig *registry.ServiceConfig
InitSha1 string
InitPath string
NCPU int
MemTotal int64
DockerRootDir string
HttpProxy string
HttpsProxy string
HTTPProxy string `json:"HttpProxy"`
HTTPSProxy string `json:"HttpsProxy"`
NoProxy string
Name string
Labels []string
ExperimentalBuild bool
ServerVersion string
ClusterStore string
ClusterAdvertise string
}
// This struct is a temp struct used by execStart
// ExecStartCheck is a temp struct used by execStart
// Config fields is part of ExecConfig in runconfig package
type ExecStartCheck struct {
// ExecStart will first check if it's detached
@@ -180,7 +232,10 @@ type ExecStartCheck struct {
Tty bool
}
// ContainerState stores container's running state
// it's part of ContainerJSONBase and will return by "inspect" command
type ContainerState struct {
Status string
Running bool
Paused bool
Restarting bool
@@ -189,20 +244,19 @@ type ContainerState struct {
Pid int
ExitCode int
Error string
StartedAt time.Time
FinishedAt time.Time
StartedAt string
FinishedAt string
}
// ContainerJSONBase contains response of Remote API:
// GET "/containers/{name:.*}/json"
type ContainerJSON struct {
Id string
Created time.Time
type ContainerJSONBase struct {
ID string `json:"Id"`
Created string
Path string
Args []string
Config *runconfig.Config
State *ContainerState
Image string
NetworkSettings *network.Settings
ResolvConfPath string
HostnamePath string
HostsPath string
@@ -213,9 +267,127 @@ type ContainerJSON struct {
ExecDriver string
MountLabel string
ProcessLabel string
Volumes map[string]string
VolumesRW map[string]bool
AppArmorProfile string
ExecIDs []string
HostConfig *runconfig.HostConfig
GraphDriver GraphDriverData
SizeRw *int64 `json:",omitempty"`
SizeRootFs *int64 `json:",omitempty"`
}
// ContainerJSON is newly used struct along with MountPoint
type ContainerJSON struct {
*ContainerJSONBase
Mounts []MountPoint
Config *runconfig.Config
NetworkSettings *NetworkSettings
}
// NetworkSettings exposes the network settings in the api
type NetworkSettings struct {
NetworkSettingsBase
DefaultNetworkSettings
Networks map[string]*network.EndpointSettings
}
// NetworkSettingsBase holds basic information about networks
type NetworkSettingsBase struct {
Bridge string
SandboxID string
HairpinMode bool
LinkLocalIPv6Address string
LinkLocalIPv6PrefixLen int
Ports nat.PortMap
SandboxKey string
SecondaryIPAddresses []network.Address
SecondaryIPv6Addresses []network.Address
}
// DefaultNetworkSettings holds network information
// during the 2 release deprecation period.
// It will be removed in Docker 1.11.
type DefaultNetworkSettings struct {
EndpointID string
Gateway string
GlobalIPv6Address string
GlobalIPv6PrefixLen int
IPAddress string
IPPrefixLen int
IPv6Gateway string
MacAddress string
}
// MountPoint represents a mount point configuration inside the container.
type MountPoint struct {
Name string `json:",omitempty"`
Source string
Destination string
Driver string `json:",omitempty"`
Mode string
RW bool
}
// Volume represents the configuration of a volume for the remote API
type Volume struct {
Name string // Name is the name of the volume
Driver string // Driver is the Driver name used to create the volume
Mountpoint string // Mountpoint is the location on disk of the volume
}
// VolumesListResponse contains the response for the remote API:
// GET "/volumes"
type VolumesListResponse struct {
Volumes []*Volume // Volumes is the list of volumes being returned
}
// VolumeCreateRequest contains the response for the remote API:
// POST "/volumes/create"
type VolumeCreateRequest struct {
Name string // Name is the requested name of the volume
Driver string // Driver is the name of the driver that should be used to create the volume
DriverOpts map[string]string // DriverOpts holds the driver specific options to use for when creating the volume.
}
// NetworkResource is the body of the "get network" http response message
type NetworkResource struct {
Name string
ID string `json:"Id"`
Scope string
Driver string
IPAM network.IPAM
Containers map[string]EndpointResource
Options map[string]string
}
//EndpointResource contains network resources allocated and usd for a container in a network
type EndpointResource struct {
EndpointID string
MacAddress string
IPv4Address string
IPv6Address string
}
// NetworkCreate is the expected body of the "create network" http request message
type NetworkCreate struct {
Name string
CheckDuplicate bool
Driver string
IPAM network.IPAM
Options map[string]string
}
// NetworkCreateResponse is the response message sent by the server for network create call
type NetworkCreateResponse struct {
ID string `json:"Id"`
Warning string
}
// NetworkConnect represents the data to be used to connect a container to the network
type NetworkConnect struct {
Container string
}
// NetworkDisconnect represents the data to be used to disconnect a container from the network
type NetworkDisconnect struct {
Container string
}

View File

@@ -0,0 +1,14 @@
## Legacy API type versions
This package includes types for legacy API versions. The stable version of the API types live in `api/types/*.go`.
Consider moving a type here when you need to keep backwards compatibility in the API. This legacy types are organized by the latest API version they appear in. For instance, types in the `v1p19` package are valid for API versions below or equal `1.19`. Types in the `v1p20` package are valid for the API version `1.20`, since the versions below that will use the legacy types in `v1p19`.
### Package name conventions
The package name convention is to use `v` as a prefix for the version number and `p`(patch) as a separator. We use this nomenclature due to a few restrictions in the Go package name convention:
1. We cannot use `.` because it's interpreted by the language, think of `v1.20.CallFunction`.
2. We cannot use `_` because golint complains abount it. The code is actually valid, but it looks probably more weird: `v1_20.CallFunction`.
For instance, if you want to modify a type that was available in the version `1.21` of the API but it will have different fields in the version `1.22`, you want to create a new package under `api/types/versions/v1p21`.

View File

@@ -0,0 +1,35 @@
// Package v1p19 provides specific API types for the API version 1, patch 19.
package v1p19
import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/versions/v1p20"
"github.com/docker/docker/pkg/nat"
"github.com/docker/docker/runconfig"
)
// ContainerJSON is a backcompatibility struct for APIs prior to 1.20.
// Note this is not used by the Windows daemon.
type ContainerJSON struct {
*types.ContainerJSONBase
Volumes map[string]string
VolumesRW map[string]bool
Config *ContainerConfig
NetworkSettings *v1p20.NetworkSettings
}
// ContainerConfig is a backcompatibility struct for APIs prior to 1.20.
type ContainerConfig struct {
*runconfig.Config
MacAddress string
NetworkDisabled bool
ExposedPorts map[nat.Port]struct{}
// backward compatibility, they now live in HostConfig
VolumeDriver string
Memory int64
MemorySwap int64
CPUShares int64 `json:"CpuShares"`
CPUSet string `json:"Cpuset"`
}

View File

@@ -0,0 +1,40 @@
// Package v1p20 provides specific API types for the API version 1, patch 20.
package v1p20
import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/nat"
"github.com/docker/docker/runconfig"
)
// ContainerJSON is a backcompatibility struct for the API 1.20
type ContainerJSON struct {
*types.ContainerJSONBase
Mounts []types.MountPoint
Config *ContainerConfig
NetworkSettings *NetworkSettings
}
// ContainerConfig is a backcompatibility struct used in ContainerJSON for the API 1.20
type ContainerConfig struct {
*runconfig.Config
MacAddress string
NetworkDisabled bool
ExposedPorts map[nat.Port]struct{}
// backward compatibility, they now live in HostConfig
VolumeDriver string
}
// StatsJSON is a backcompatibility struct used in Stats for API prior to 1.21
type StatsJSON struct {
types.Stats
Network types.NetworkStats `json:"network,omitempty"`
}
// NetworkSettings is a backward compatible struct for APIs prior to 1.21
type NetworkSettings struct {
types.NetworkSettingsBase
types.DefaultNetworkSettings
}

139
builder/builder.go Normal file
View File

@@ -0,0 +1,139 @@
// Package builder defines interfaces for any Docker builder to implement.
//
// Historically, only server-side Dockerfile interpreters existed.
// This package allows for other implementations of Docker builders.
package builder
import (
"io"
"os"
// TODO: remove dependency on daemon
"github.com/docker/docker/daemon"
"github.com/docker/docker/image"
"github.com/docker/docker/runconfig"
)
// Builder abstracts a Docker builder whose only purpose is to build a Docker image referenced by an imageID.
type Builder interface {
// Build builds a Docker image referenced by an imageID string.
//
// Note: Tagging an image should not be done by a Builder, it should instead be done
// by the caller.
//
// TODO: make this return a reference instead of string
Build() (imageID string)
}
// Context represents a file system tree.
type Context interface {
// Close allows to signal that the filesystem tree won't be used anymore.
// For Context implementations using a temporary directory, it is recommended to
// delete the temporary directory in Close().
Close() error
// Stat returns an entry corresponding to path if any.
// It is recommended to return an error if path was not found.
Stat(path string) (FileInfo, error)
// Open opens path from the context and returns a readable stream of it.
Open(path string) (io.ReadCloser, error)
// Walk walks the tree of the context with the function passed to it.
Walk(root string, walkFn WalkFunc) error
}
// WalkFunc is the type of the function called for each file or directory visited by Context.Walk().
type WalkFunc func(path string, fi FileInfo, err error) error
// ModifiableContext represents a modifiable Context.
// TODO: remove this interface once we can get rid of Remove()
type ModifiableContext interface {
Context
// Remove deletes the entry specified by `path`.
// It is usual for directory entries to delete all its subentries.
Remove(path string) error
}
// FileInfo extends os.FileInfo to allow retrieving an absolute path to the file.
// TODO: remove this interface once pkg/archive exposes a walk function that Context can use.
type FileInfo interface {
os.FileInfo
Path() string
}
// PathFileInfo is a convenience struct that implements the FileInfo interface.
type PathFileInfo struct {
os.FileInfo
// FilePath holds the absolute path to the file.
FilePath string
}
// Path returns the absolute path to the file.
func (fi PathFileInfo) Path() string {
return fi.FilePath
}
// Hashed defines an extra method intended for implementations of os.FileInfo.
type Hashed interface {
// Hash returns the hash of a file.
Hash() string
SetHash(string)
}
// HashedFileInfo is a convenient struct that augments FileInfo with a field.
type HashedFileInfo struct {
FileInfo
// FileHash represents the hash of a file.
FileHash string
}
// Hash returns the hash of a file.
func (fi HashedFileInfo) Hash() string {
return fi.FileHash
}
// SetHash sets the hash of a file.
func (fi *HashedFileInfo) SetHash(h string) {
fi.FileHash = h
}
// Docker abstracts calls to a Docker Daemon.
type Docker interface {
// TODO: use digest reference instead of name
// LookupImage looks up a Docker image referenced by `name`.
LookupImage(name string) (*image.Image, error)
// Pull tells Docker to pull image referenced by `name`.
Pull(name string) (*image.Image, error)
// TODO: move daemon.Container to its own package
// Container looks up a Docker container referenced by `id`.
Container(id string) (*daemon.Container, error)
// Create creates a new Docker container and returns potential warnings
// TODO: put warnings in the error
Create(*runconfig.Config, *runconfig.HostConfig) (*daemon.Container, []string, error)
// Remove removes a container specified by `id`.
Remove(id string, cfg *daemon.ContainerRmConfig) error
// Commit creates a new Docker image from an existing Docker container.
Commit(*daemon.Container, *daemon.ContainerCommitConfig) (*image.Image, error)
// Copy copies/extracts a source FileInfo to a destination path inside a container
// specified by a container object.
// TODO: make an Extract method instead of passing `decompress`
// TODO: do not pass a FileInfo, instead refactor the archive package to export a Walk function that can be used
// with Context.Walk
Copy(c *daemon.Container, destPath string, src FileInfo, decompress bool) error
// Retain retains an image avoiding it to be removed or overwritten until a corresponding Release() call.
// TODO: remove
Retain(sessionID, imgID string)
// Release releases a list of images that were retained for the time of a build.
// TODO: remove
Release(sessionID string, activeImages []string)
}
// ImageCache abstracts an image cache store.
// (parent image, child runconfig) -> child image
type ImageCache interface {
// GetCachedImage returns a reference to a cached image whose parent equals `parent`
// and runconfig equals `cfg`. A cache miss is expected to return an empty ID and a nil error.
GetCachedImage(parentID string, cfg *runconfig.Config) (imageID string, err error)
}

Some files were not shown because too many files have changed in this diff Show More