Compare commits

..

2083 Commits

Author SHA1 Message Date
Brian Goff
301bfbdd21 Merge pull request #27089 from dmandalidis/27029-docs
Update volume options (fixes #27029)
2017-02-10 10:30:11 -05:00
Misty Stanley-Jones
5213a0a67e Addressed feedback
Signed-off-by: Misty Stanley-Jones <misty@docker.com>
2017-01-26 12:10:59 -08:00
Dimitris Mandalidis
164ab2cfc9 Update volume options (fixes #27029)
Signed-off-by: Dimitris Mandalidis <dimitris.mandalidis@gmail.com>
2016-10-20 10:59:20 +03:00
Sven Dowideit
fc438e4171 Merge pull request #23653 from thaJeztah/20160616-docs-cherry-picks
20160616 docs cherry picks
2016-06-17 14:26:52 +10:00
Sebastiaan van Stijn
c4b72004fd Merge pull request #23510 from sbose78/23376-update-centos-yum-repo-version
Fixes #23376 Broken URL for Centos yum repo for docker fixed to harcoded version number.
(cherry picked from commit 0c78a7dd64)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-16 19:52:35 -07:00
Sebastiaan van Stijn
b74db4d8e3 Merge pull request #23485 from sbose78/22514-run-image-using-digest
Fixes #22514 - Added example for using image digest in the docker run command
(cherry picked from commit 3bb42723ac)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-16 19:52:27 -07:00
Sven Dowideit
ad2a9f3d1e Merge pull request #23478 from cpuguy83/22833_optional_mountpoint_docs
Clarify volume plugin `Mountpoint` is optional
(cherry picked from commit 9a8affb0ff)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-16 19:52:12 -07:00
Sebastiaan van Stijn
782e218be6 Merge pull request #23419 from ahmetalpbalkan/docs/azure-vol-plugin
docs: Add Azure File Storage Volume Driver plugin
(cherry picked from commit 949f8d0d11)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-16 19:48:21 -07:00
Brian Goff
5d402c1c27 Merge pull request #23331 from yongtang/06062016-docs-typo
Fix a couple of typos in the docs of `docker attach`
(cherry picked from commit 3d8fdbb626)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-16 19:48:14 -07:00
Sebastiaan van Stijn
76f6c611f1 Merge pull request #23195 from cyli/update-content-trust-docs
Update content trust docs to reflect latest notary compose file changes
(cherry picked from commit 1842077541)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-16 19:48:05 -07:00
Sven Dowideit
9aa451ec5f Merge pull request #23318 from thaJeztah/20160606-docs-cherry-picks
20160606 docs cherry picks
2016-06-10 19:47:14 +10:00
Sebastiaan van Stijn
98638feaae Add alias to make CI pass
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-09 01:08:41 +02:00
Sebastiaan van Stijn
0d8b909281 Merge pull request #23293 from mountkin/network-docs
docs: correct network create command
(cherry picked from commit ac14aa11b6)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:37:33 +02:00
Sebastiaan van Stijn
f646c041b8 Merge pull request #23282 from yongtang/06052016-docs-typo
Fix a couple of typos in docker attach docs.
(cherry picked from commit cfcb470aad)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:37:24 +02:00
Sebastiaan van Stijn
683700619d Merge pull request #23251 from SvenDowideit/more-validation-fixes
docs validation fixes
(cherry picked from commit da703f026e)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:37:13 +02:00
Sven Dowideit
650ddc1f81 Merge pull request #23193 from allencloud/fix-typos
use grep to find all a/an typos
(cherry picked from commit 98c245c9e6)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:35:13 +02:00
Sven Dowideit
af3b1fbcbc Merge pull request #23192 from orsenthil/docfixes/ubuntu_install
Fix the docker daemon restart command for ubuntu.
(cherry picked from commit e2528712db)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:28:57 +02:00
Vincent Demeester
785e38d57b Merge pull request #23179 from kerneltime/master
Add VMware Docker Volume Plugin.
(cherry picked from commit 09033b8df2)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:28:45 +02:00
Sebastiaan van Stijn
cc68a963e0 Merge pull request #23165 from thaJeztah/update-logging-code-hints
cleanup logging driver documentation
(cherry picked from commit 8d75709f90)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:23:12 +02:00
Vincent Demeester
a6bbdf347a Merge pull request #23143 from bfirsh/remove-status-column-from-clinet-libraries-page
Remove status column from client libraries page
(cherry picked from commit 74c7363965)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:14:30 +02:00
Vincent Demeester
89b2a14932 Merge pull request #23106 from LINBIT/master
Add the DRBD Docker Volume Plugin to the documentation
(cherry picked from commit ef42e2f214)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:14:23 +02:00
Sebastiaan van Stijn
5df3c258a1 Merge pull request #23060 from friism/add-power-shell-example
Add power shell example
(cherry picked from commit 068d466cc7)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:14:16 +02:00
Sven Dowideit
d3bbe11b99 Merge pull request #22763 from zreigz/doc-multiple-daemons
Add documentation for running multiple daemons
(cherry picked from commit 9be8f04950)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-06 20:14:07 +02:00
Sebastiaan van Stijn
b6766eb676 Merge pull request #23066 from SvenDowideit/docs-cherry-picks-29may2016
Docs cherry picks 29may2016
2016-05-27 21:19:32 +02:00
Vincent Demeester
25ccb74f4f Merge pull request #23039 from yongtang/05262016-docs-cluster-store-opts
Fix error in dockerd.md for incorrect cluster-store-opts example.
(cherry picked from commit f1276cd3aa)

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2016-05-27 17:56:38 +00:00
Sebastiaan van Stijn
e85cc97d65 Merge pull request #23035 from SvenDowideit/fix-links
Fix up stale links
(cherry picked from commit bd5c9f59ea)

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2016-05-27 17:56:25 +00:00
Sven Dowideit
b0e27887f2 Merge pull request #23033 from thaJeztah/docs-cherry-picks-2016-05-26
Docs cherry picks 2016 05 26
2016-05-26 15:39:54 -07:00
Sebastiaan van Stijn
fa6685ca85 Merge pull request #23001 from Djelibeybi/fix-oracle-docs
Fix URLs for official Oracle installation guide.
(cherry picked from commit 8863d6dc5f)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-27 00:29:40 +02:00
Vincent Demeester
6ccc50d04e Merge pull request #22999 from deed02392/master
Update debian.md
(cherry picked from commit 215324251a)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-27 00:29:31 +02:00
Sven Dowideit
d544b3ee99 Merge pull request #22990 from thaJeztah/docs-cherry-picks
Docs cherry picks (2016-05-25)
2016-05-25 13:25:05 -07:00
Vincent Demeester
a54af42edb Merge pull request #22890 from thaJeztah/docs/slashes
fix docs not building if branch-name contains slashes
(cherry picked from commit 07f79621ea)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:43:19 +02:00
Sven Dowideit
7abc60a93b Merge pull request #22394 from SvenDowideit/use-docs-base-oss
convert docs Dockerfiles to use docs/base:oss
(cherry picked from commit 1c0edf6c39)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:39:32 +02:00
Matt Bentley
3bdc7244a8 Fix thin pool devicemapper docs overwritten
Signed-off-by: Matt Bentley <matt.bentley@docker.com>
(cherry picked from commit 79205c3f06)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:34:29 +02:00
Sebastiaan van Stijn
fa29ecbceb Merge pull request #22987 from Microsoft/jjh/labeldocs
Docs: Label clarification
(cherry picked from commit bb80563a81)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:34:21 +02:00
Vincent Demeester
c70c8f1ed9 Merge pull request #22928 from friism/patch-3
remove duplicated text
(cherry picked from commit bf7bae9662)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:34:11 +02:00
Vincent Demeester
4efcbf5784 Merge pull request #22906 from nshalman/patch-1
Clarification about 'docker build --build-arg'
(cherry picked from commit ce07eac570)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:34:02 +02:00
Vincent Demeester
9114864ace Merge pull request #22900 from AkihiroSuda/fix22020
update docs/reference/commandline/cp.md
(cherry picked from commit 6a385a0022)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:33:55 +02:00
Sebastiaan van Stijn
0626fa4555 Merge pull request #22885 from yongtang/05212016-typo-in-dockernetworks-md
Fix a typos in docs of networking guide
(cherry picked from commit c0c36bc150)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:33:49 +02:00
Sebastiaan van Stijn
d41cd45c3d Merge pull request #22876 from Microsoft/jjh/docsclarification
Docs: JSON vs Shell clarification
(cherry picked from commit e3079b4704)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:33:41 +02:00
Sebastiaan van Stijn
a9f9a79d5c Merge pull request #22839 from thaJeztah/update-selinux-example
Remove MLS example from SELinux example in run reference
(cherry picked from commit 74ee26cceb)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:33:33 +02:00
Sebastiaan van Stijn
08f1f62f41 Merge pull request #22821 from zunayed/patch-1
fix duplicate command in uninstall instructions
(cherry picked from commit 1691fe6d23)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:33:26 +02:00
Vincent Demeester
e47de0ba4d Merge pull request #22778 from DoraALin/10972-docs-Support-for-non-proxied-private-registry
doc:http pkg variables info added in pull cmd
(cherry picked from commit 9751170f08)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:33:19 +02:00
Vincent Demeester
e3007c51a5 Merge pull request #22768 from mansinahar/run-cmd-doc
Update 'run' command doc for better readability.  Issue:#22721
(cherry picked from commit 28a436af36)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:33:12 +02:00
Vincent Demeester
4971a81f75 Merge pull request #22757 from gondor/master
Documentation: Updated URL to plugin reference - docker-volume-netshare
(cherry picked from commit 37dfd8bc8c)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:33:04 +02:00
Sebastiaan van Stijn
b42d833cd8 Merge pull request #22751 from igrcic/docs-small-typo-reference-attach
remove double "using" in reference attach docs
(cherry picked from commit 6e12d0720f)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:32:44 +02:00
Sebastiaan van Stijn
281f0fa53b Merge pull request #22743 from yongtang/05142016-typo-in-work-with-networks
Fix a typo in work-with-networks.md
(cherry picked from commit e333675cd7)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:28:47 +02:00
Vincent Demeester
36ada7d158 Merge pull request #22742 from yongtang/05142016-update-deprecated-docs-for-LXC-built-in-exec-driver
Update deprecated docs for LXC built-in exec driver
(cherry picked from commit 1bcc42e038)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:28:36 +02:00
Sebastiaan van Stijn
307195b3e1 Merge pull request #22727 from clawconduce/master
Fix error for env variables example in docker reference
(cherry picked from commit 3723b88406)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:28:29 +02:00
Vincent Demeester
d1024638f9 Merge pull request #22720 from thaJeztah/fix-markdown
Fix Markdown formatting in Devicemapper docs
(cherry picked from commit 2f94a367d7)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:28:21 +02:00
Sebastiaan van Stijn
9396307501 Merge pull request #22661 from SvenDowideit/update-compatibility-matrix
docs: update graphdriver compatibility matrix
(cherry picked from commit a5e4aaaf71)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-25 21:28:12 +02:00
Sven Dowideit
54a58f9886 Merge pull request #22711 from thaJeztah/docs-cherry-picks
Docs cherry picks
2016-05-13 21:40:22 +10:00
Vincent Demeester
ab595882e3 Merge pull request #22689 from thaJeztah/docs-update-menu-order
docs: update menu order in security section
(cherry picked from commit 24a0f1f3e8)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:58:41 +02:00
Sebastiaan van Stijn
fcd432d110 Merge pull request #22707 from TimWolla/patch-1
User network does not work with IPv6
(cherry picked from commit ab090291dd)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:34:23 +02:00
Vincent Demeester
77efb507b3 Merge pull request #22694 from allencloud/fix-typos-in-docs
docs: correct some typos
(cherry picked from commit 475c37dd66)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:34:07 +02:00
Vincent Demeester
c23ad97de5 Merge pull request #22687 from haoshuwei/fix-docs-securitymd
Fixing security.md
(cherry picked from commit edf5e097a2)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:33:17 +02:00
Sebastiaan van Stijn
b28e6b7eda Merge pull request #22683 from npcode/docs-no-request-status
docs: Remove RequestStatusCode
(cherry picked from commit 2ae863c28f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:33:08 +02:00
Sven Dowideit
785665203d Merge pull request #22672 from kevinmeredith/correct_trapped_signals
Correct docs for a docker container's clean-up.
(cherry picked from commit c273163e80)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:33:00 +02:00
Vincent Demeester
36a62de41f Merge pull request #22669 from thaJeztah/docs-update-seccomp-whitelist
docs: update seccomp whitelist
(cherry picked from commit 4c654eeea2)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:32:53 +02:00
Sebastiaan van Stijn
e7d0711142 Merge pull request #22666 from yongtang/05112016-update-deprecated-docs-cli-flags
Update deprecated docs for cli flags removal.
(cherry picked from commit 3710f9074e)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:32:45 +02:00
Sebastiaan van Stijn
6e916fca02 Merge pull request #22579 from jfrazelle/docs-add-security-non-events
docs: add security non-events
(cherry picked from commit a14e85c40d)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-13 01:32:32 +02:00
Sven Dowideit
bfe58ad819 Merge pull request #22662 from thaJeztah/docs-cherry-picks
Docs cherry picks
2016-05-11 23:07:33 +10:00
Tonis Tiigi
8d485949d6 docs: clarify docker attach
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit da1dbd2093)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:41:23 +02:00
Yong Tang
7e83ae34dc Add the missing subtitle in deprecated docs for --security-opt.
The colon separator(`:`) of `--security-opt` flag was deprecated
in 1.11.0. However, the subtitle in deprecated docs is missing
so it is placed under the same subtitle as the deprecated `-e` and
`--email` flags.

This fix adds the missing subtitle in deprecated docs.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit 018c22880d)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:41:16 +02:00
Yuan Sun
ef76dd0761 from inheritted to inherited
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
(cherry picked from commit fe1130b7ba)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:41:08 +02:00
Lars Kellogg-Stedman
b706ee90ca docs: note requirements for systemd drop-in filenames
the documentations says that you can drop "a file" into the
`docker.service.d` directory, but does not note that the file must end
with `.conf` in order to be recognized by systemd.  This can lead to
some [confusion][] if readers are not previously familiar with
systemd.

[confusion]: https://botbot.me/freenode/docker/2016-05-06/?msg=65605541&page=11

Signed-off-by: Lars Kellogg-Stedman <lars@redhat.com>
(cherry picked from commit 987b03054a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:41:01 +02:00
Sebastiaan van Stijn
2f4b69229a docs: update supervisord example
This updates the supervisor example documentation
to use an up-to-date version of Ubuntu.

Also reduced the use of "royal We", and tweaked some
language.

Finally, added some language hints for code-highlighting.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit e38678e660)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:40:54 +02:00
objectified
b34165ae37 remove trailing comma from top command
Signed-off-by: objectified <objectified@gmail.com>
(cherry picked from commit c7e738d641)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:40:47 +02:00
Tomasz Kopczynski
cef1a10f5e Docs: fixing typos in admin/supervisor
Signed-off-by: Tomasz Kopczynski <tomek@kopczynski.net.pl>
(cherry picked from commit 74d382ff8d)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:40:39 +02:00
Doug Davis
2c531b4fb7 Remove unnecessary double-double quotes
Signed-off-by: Doug Davis <dug@us.ibm.com>
(cherry picked from commit 8eb2188bd9)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:40:30 +02:00
Eric Yang
8fc5559841 fix typo
fix typo

Signed-off-by: Qizhao Yang <windfarer@gmail.com>
(cherry picked from commit 176e9e2ffc)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:40:19 +02:00
Liron Levin
ea8b5e07b6 Remove response modification sections from authorization design doc
Signed-off-by: Liron Levin <liron@twistlock.com>
(cherry picked from commit 638096431a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:38:20 +02:00
Chun Chen
3cf8c53515 Add docs about how to extend devicemapper thin pool
Signed-off-by: Chun Chen <ramichen@tencent.com>

Update to device mapper
Entering comments

Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit a7b2f87b06)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-11 14:07:59 +02:00
Vincent Demeester
15af7564cf Merge pull request #22421 from thaJeztah/docs-cherry-picks
docs cherry-pick
2016-05-02 20:11:29 +02:00
Ben Firshman
340c9a4619 Remove out-of-date client libraries
For each language, if there is one library which is clearly the
best or most active, I've removed the other libraries so users
aren't mislead.

I've removed the web UIs because they're not really client
libraries.

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
(cherry picked from commit bb94cfce62)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-01 20:31:08 +02:00
Ben Firshman
3b2ed5b2df Fix lasote/docker_client link
Signed-off-by: Ben Firshman <ben@firshman.co.uk>
(cherry picked from commit 91fe274dcf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-01 20:30:52 +02:00
Yuan Sun
0b5c960bb0 remove "the" in docs.
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
(cherry picked from commit 043c9ef076)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-01 20:29:15 +02:00
Lorenzo Fontana
14a2985f37 Mention the fact that authz plugins are available today
Signed-off-by: Lorenzo Fontana <fontanalorenzo@me.com>
(cherry picked from commit 96cc1ee44c)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-05-01 20:27:48 +02:00
Sebastiaan van Stijn
a1d16b4557 update API example response for docker events
the events API was rewritten in 723be0a332,
but the example response in the documentation doesn't reflect the actual output

this fixes the example response

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 3932d46a78)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-29 17:55:50 +02:00
Sebastiaan van Stijn
290e0ea54c Merge pull request #22392 from thaJeztah/docs-cherry-picks-3
documentation cherry-picks
2016-04-28 16:57:08 +02:00
Sylvain Bellemare
5901eda4f7 Fix typo
Signed-off-by: Sylvain Bellemare <sylvain@ascribe.io>
(cherry picked from commit 63aa03ce0a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 15:28:40 +02:00
Hao Zhang
c2bea5ba26 update cgroup link in doc of run
Signed-off-by: Hao Zhang <21521210@zju.edu.cn>
(cherry picked from commit 8fec7c26d4)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:32:11 +02:00
Sven Dowideit
4703824f00 Small API formating fix.
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
(cherry picked from commit 204a52c689)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:32:00 +02:00
Sebastiaan van Stijn
4bf3f74126 docs: remove duplicate line in "Understand the architecture"
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 00e84ca4d2)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:31:25 +02:00
Riyaz Faizullabhoy
5b1136ba8d Update DCT docs with 1.11 info, fix typos
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
(cherry picked from commit 77da3bcb72)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:31:17 +02:00
Dimitry Andric
f264a73afd The daemon.json storage-opts settings is actually a list.
Signed-off-by: Dimitry Andric <d.andric@activevideo.com>
(cherry picked from commit e3eb24fc21)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:31:06 +02:00
Kai Qiang Wu(Kennan)
fc4f927588 Fix the old exit status example
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
(cherry picked from commit 896ebb1ca2)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:30:57 +02:00
Sebastiaan van Stijn
84314e09ab docs: add note about MAC addresses not being unique
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 763aceeb73)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:30:47 +02:00
搏通
895569df9d optimise docs
Signed-off-by: 搏通 <yufeng.pyf@alibaba-inc.com>
(cherry picked from commit 9abf304c25)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:30:39 +02:00
Sebastiaan van Stijn
21223f8873 docs: use tables for available plugins
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 79351caec1)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:30:29 +02:00
Máximo Cuadros
ac9b38b60d documentation: adding gce-docker plugin to plugins.md
Signed-off-by: Máximo Cuadros <mcuadros@gmail.com>
(cherry picked from commit c018018b69)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:30:15 +02:00
Wen Cheng Ma
53b4fd1d81 Fix asa
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
(cherry picked from commit 6d4e7b67be)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:22:42 +02:00
Jared Hocutt
ae4c7b1493 Add the NetApp Docker Volume Plugin to the documentation
Signed-off-by: Jared Hocutt <jaredh@netapp.com>
(cherry picked from commit f310fd14a9)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:22:33 +02:00
Sebastiaan van Stijn
71c0acf1ca Remove API versions 1.17 and older from documentation
Docker 1.5 and older is no longer supported by Docker Hub,
so there's not much need to document the API for those
versions.

Documentation is still available on GitHub, and through
the older versions of the documentation for those
that really need it.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 68f9a45440)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:22:22 +02:00
Yong Tang
97a5055198 Docs: Container creation param descriptions not under HostConfig
This fix tries to fix issues mentioned in #22100 for incorrect
description of remote API's container creation params.

Several issues have been fixed:
1. CPU and memory related params (e.g., `MemorySwap`, `CpuShares`, etc.)
were incorrectly placed under the top level instead of under the HostConfig.
(v1.18-v1.24)
2. The param `Cpuset` has been deprecated but was never removed.
(v1.18-v1.24)
3. The param `PidsLimit` was not added even though the description
has been added.
(v1.23-v1.24)

This fix fixes #22100

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit 332e3b545b)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:22:09 +02:00
Florian
2d532738b5 Remove outdated Node.js example - include a link to the new guide later!
As recommended by @moxiegirl and squashed.

Signed-off-by: FWirtz <florian.wirtz08@gmail.com>
(cherry picked from commit d9c0d67b51)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:21:27 +02:00
yorkie
3eaabe0257 doc: fix typo
Signed-off-by: yorkie <yorkiefixer@gmail.com>
(cherry picked from commit d2c5bf23f1)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:21:18 +02:00
Alessandro Boch
b9f11557af Clarify container external connectivity in multi-network scenario
Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit c2e088e134)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:21:09 +02:00
Sebastiaan van Stijn
ce9bc253f6 docs: remove unused "registry" parameter
The "registry" query-param was in added 10c0e99037,
and removed in docker 0.5.0 via 66a9d06d9f.

Aparently, it was never removed from the documentation,
and included in all versions of the API docs.

This removes it from the documentation.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit e035a86c1d)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:21:01 +02:00
Yong Tang
6bbe5722aa Fix incorrect docs in remote API for the option of SecurityOpt
This fix tries to fix the issue in remote API docs for v1.15 (Docker 1.3.x)
and v1.16 (Docker 1.4.x) where `SecurityOpts` was used but the actual field
should be `SecurityOpt`.

This `SecurityOpt` field is verified through the source code in
v1.3.0 and v1.4.0:
https://github.com/docker/docker/blob/v1.3.0/runconfig/config.go#L35
https://github.com/docker/docker/blob/v1.4.0/runconfig/hostconfig.go#L98

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit f3f981624b)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:20:53 +02:00
Thomas Grainger
cde2df6db9 Fix security documentation, XSS -> CSRF
Signed-off-by: Thomas Grainger <tagrain@gmail.com>
(cherry picked from commit ea8f9c9723)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:20:42 +02:00
Sebastiaan van Stijn
d9cf30d7de docs: update API for features added in 1.11
Docker 1.11 added a feature to set labels on volumes,
networks and images (during build), but these changes
were not documented in the API documentation.

This adds the new features to the documentation.

Also fixes some minor formatting, and options that
were not used in the examples.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit ba353f3787)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:20:22 +02:00
Robin Naundorf
9af185e3d0 closes #11703 closes #11560
Signed-off-by: Robin Naundorf <r.naundorf@fh-muenster.de>
(cherry picked from commit 297d6c04a3)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:00:50 +02:00
Jess Frazelle
8d2798c37e Add example to apparmor docs
Signed-off-by: Jess Frazelle <jess@mesosphere.com>
(cherry picked from commit 80d63e2e11)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:00:42 +02:00
Chun Chen
4858230a07 Add docs about how to extend devicemapper thin pool
Signed-off-by: Chun Chen <ramichen@tencent.com>
(cherry picked from commit b21d90c28f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-28 13:00:34 +02:00
Tibor Vass
4dc5990d75 Merge pull request #22006 from tiborvass/fix-changelog-1.11
Fix some CHANGELOG entries
2016-04-13 14:03:42 -04:00
Tibor Vass
365d80b3e1 Merge pull request #22005 from crosbymichael/runc-source
Improve source for containerd/runc copy
2016-04-13 14:03:34 -04:00
Tibor Vass
2535db8678 Fix some CHANGELOG entries
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-04-13 13:46:47 -04:00
Michael Crosby
54edfc41c6 Improve source for containerd/runc copy
This improves getting the source for the binaries that are compiled on
the system so that they can be copied into the bundles output.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-04-13 10:34:07 -07:00
Tibor Vass
4a6f2274be Merge pull request #22001 from thaJeztah/more-docs-cherries
More docs cherry-picks
2016-04-13 12:59:12 -04:00
Mary Anthony
db08f19e36 Fixes #21701 devicemapper docs
Copy edit the content
Updates to existing material
Adding mbentley's comments
Updating with last minute comments
Update with Seb's comments

Signed-off-by: Mary Anthony <mary@docker.com>
(cherry picked from commit 783ebebff4)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-13 17:20:27 +02:00
Brian Goff
af370ff997 Merge pull request #21998 from tiborvass/fix-runc-path
runc install path changed from /usr/local/bin to /usr/local/sbin
2016-04-13 10:17:37 -04:00
Tibor Vass
645836f250 Merge pull request #21996 from thaJeztah/cherry-pick-docs
Cherry pick docs for 1.11
2016-04-13 10:07:58 -04:00
Tibor Vass
3d85e51ef4 runc install path changed from /usr/local/bin to /usr/local/sbin
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-04-13 09:49:40 -04:00
Alessandro Boch
5618fbf18c Update /containers/create remote API docs
- Show how to pass the networking config in POST containers/create body

Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit 30859c3456)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-13 15:36:39 +02:00
Sebastiaan van Stijn
bf312aca9c docs: update installation from binaries for 1.11
Binaries are now distributed as a '.tgz' or '.zip'
archive, and contain multiple binaries for Linux.

This updates the instructions for 1.11.

Also mention that the Windows 64-bit binary
actually can be used as a daemon. Given that
this is still in beta, no instructions were
added for *running* a daemon on Windows.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit f5336c7370)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-13 15:35:03 +02:00
Tibor Vass
4172802d68 Merge pull request #21987 from thaJeztah/update-golang
[1.11] update remaining Go versions to 1.5.4
2016-04-13 08:51:06 -04:00
Sebastiaan van Stijn
fb06ddf4db update remaining Go versions to 1.5.4
Some Dockerfiles were missed during update to
1.5.4. This changes those Dockerfiles.

Note that Dockerfile.armhf is not yet updated; it
currently uses Dave Cheney's unofficial ARM builds,
which are marked "end of life", so added a TODO
instead.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-13 11:13:06 +02:00
Tibor Vass
d126e2fb72 Merge pull request #21979 from tiborvass/1.11-carry-21959
[1.11] Fix docker load progressbar
2016-04-13 01:53:24 -04:00
Tibor Vass
3130169eb2 Merge pull request #21977 from tiborvass/1.11-go1.5.4
[1.11] Bump Go version to 1.5.4 (security fix)
2016-04-13 01:51:59 -04:00
Lei Jitang
260a835cb4 Fix docker load progressbar, fixes #21957
Signed-off-by: Lei Jitang <leijitang@huawei.com>
(cherry picked from commit 96d7db665b)
2016-04-12 22:48:45 -04:00
Tibor Vass
d42b3f6765 Bump Go version to 1.5.4 (security fix)
https://groups.google.com/forum/#!msg/golang-announce/9eqIHqaWvck/kXsfO0ogLAAJ

Dockerfile.armhf cannot currently be updated.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-04-12 22:29:46 -04:00
Tibor Vass
134990dd07 Merge pull request #21936 from sanimej/v1.11_bump
Update Networking changelog for 1.11
2016-04-12 21:37:31 -04:00
Alexander Morozov
aa7da70459 Merge pull request #21937 from tiborvass/fix-21808-1.11
[1.11] vendor runc to fix issue#21808
2016-04-12 13:49:33 -07:00
Tibor Vass
8ff913e45f vendor runc to fix issue#21808
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-04-12 15:35:04 -04:00
Tibor Vass
642c4a7814 Merge pull request #21931 from tiborvass/cherry-picks-1.11.0-rc5
Cherry picks 1.11.0 rc5
2016-04-11 16:15:20 -04:00
Santhosh Manohar
3522bdfc99 Vendor Libnetwork v0.7.0-rc.6
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
(cherry picked from commit 6dd2c33217)
2016-04-11 11:19:58 -04:00
Mihai Borobocea
490c26524c docs: fix grammar typo in 'Network containers'
Signed-off-by: Mihai Borobocea <MihaiBorob@gmail.com>
(cherry picked from commit a609c2c48b)
2016-04-11 11:19:58 -04:00
Zhang Wei
7ae170ddab Fix critical bug: can't restart a restarting container
When user try to restart a restarting container, docker client report
error: "container is already active", and container will be stopped
instead be restarted which is seriously wrong.

What's more critical is that when user try to start this container
again, it will always fail.

This error can also be reproduced with a `docker stop`+`docker start`.

And this commit will fix the bug.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
(cherry picked from commit a705e166cf)
2016-04-11 11:19:58 -04:00
Steve Durrheimer
b4f0d68843 Add zsh completion for '--log-opt syslog-format'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit 6e14ebd030)
2016-04-11 11:19:58 -04:00
Yong Tang
cbd50baf8b Fix incorrect request json body for /containers/create in remote API docs.
This fix tries to fix the incorrect request json body for
`/containers/create` in remote API docs.

When using the example json request for `/containers/create`, there are two
errors:
(1). `invalid character '"' after object key:value pair`
     This is because a `,` is missing after `"Volumes": {}`
     This issue exists in v1.20-v1.24
(2). `Invalid --security-opt: ""`
     This is becasue in `"SecurityOpt": [""]` line, an empty string
     `""` is passed yet `""` is not a valid `SecurityOpt`. Either no string,
     or a valid string (e.g., "no-new-privileges") could be used.
     This issue exists in v1.15-v1.24

This fix updates the docs and correct the above two issues.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit f919a26a9f)
2016-04-11 11:19:55 -04:00
Yi EungJun
0b25417cce Fix errata; s/RequestUri/ReqestURI/
Signed-off-by: Yi EungJun <eungjun.yi@navercorp.com>
(cherry picked from commit 94985b4bff)
2016-04-11 11:19:41 -04:00
Lei Jitang
eb405d2b73 Fix docker stats missing memory limit
Signed-off-by: Lei Jitang <leijitang@huawei.com>
(cherry picked from commit a0a6d031d7)
2016-04-11 11:19:41 -04:00
Zhang Wei
133773a4d0 Add missing "start" event back for auto-restart container
When container is automatically restarted based on restart policy,
docker events can't get "start" event but only get "die" event, this is
not consistent with previous behavior. This commit will add "start"
event back.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
(cherry picked from commit fdfaaeb9aa)
2016-04-11 11:19:41 -04:00
Hyzhou
9cdfce68f8 Fix the docker image --no-trunk output format
docker 1.10 change the output format of image id.

Signed-off-by: hyzhou.zhy <hyzhou.zhy@alibaba-inc.com>
(cherry picked from commit b83e9df760)
2016-04-11 11:19:40 -04:00
Tonis Tiigi
716b5b2547 Fix restart monitor stopping on manual restart
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 20390f65c4)
2016-04-11 11:19:40 -04:00
Tonis Tiigi
52b8adea4d vendor: patch template init in trace pkg for performance
Temporarily include a fork of golang/net package
that includes a performance patch. Measured performance
gain is ~60ms for every `docker run` command.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 07fe6947a4)
2016-04-11 11:19:40 -04:00
Tonis Tiigi
b1b86e9166 Fix closing attach streams on lost tcp connection
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit a47cd63915)
2016-04-11 11:19:40 -04:00
Kai Qiang Wu(Kennan)
35d6def3aa Fix deprecated format for security-opt
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
(cherry picked from commit 0b207e7558)
2016-04-11 11:19:40 -04:00
Santhosh Manohar
2153d9ec9d Update Networking changelog for 1.11
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-04-10 08:31:18 -07:00
David Calavera
b45be307a3 Merge pull request #21896 from albers/completion-syslog-format-1.11
bash completion for `--log-opt syslog-format`
2016-04-08 16:35:37 -07:00
Harald Albers
f75a21ef32 bash completion for --log-opt syslog-format
Signed-off-by: Harald Albers <github@albersweb.de>
2016-04-08 15:29:21 -07:00
Vincent Demeester
dae909fb3e Merge pull request #21832 from thaJeztah/update-changelog-for-ga
Changelog fixes
2016-04-07 09:17:02 +02:00
Sebastiaan van Stijn
99589731ac Minor fixes to changelog
Some fixes in the changelog were not regressions
since 1.10.x, but only present in 1.11 release candidates
so don't need to be mentioned for the release.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-06 18:24:37 -07:00
Sebastiaan van Stijn
fd018754e2 Merge pull request #21827 from thaJeztah/mlaventure-changelog-1.11.0-rc4
Update CHANGELOG.md
2016-04-06 17:24:54 -07:00
Tibor Vass
a573ab1f81 Merge pull request #21822 from tiborvass/cherry-picks-1.11.0-rc4
Cherry picks 1.11.0 rc4
2016-04-06 20:14:27 -04:00
Kenfe-Mickael Laventure
c774c390b1 Update CHANGELOG.md
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-06 17:13:51 -07:00
Tibor Vass
896f8b337e Merge pull request #21813 from thaJeztah/bump-containerd
bump containerd binary for 1.11.0-rc4
2016-04-06 18:39:10 -04:00
Alessandro Boch
40ff845220 Vendoring libnetwork v0.7.0-rc.4
Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit 8a957bafa5)
2016-04-06 18:16:34 -04:00
Julio Montes
60be8487c1 Fix compilation errors with btrfs-progs-4.5
btrfs-progs-4.5 introduces device delete by devid
for this reason btrfs_ioctl_vol_args_v2's name was encapsulated
in a union

this patch is for setting btrfs_ioctl_vol_args_v2's name
using a C function in order to preserve compatibility
with all btrfs-progs versions

Signed-off-by: Julio Montes <imc.coder@gmail.com>
(cherry picked from commit a038cccf88)
2016-04-06 18:16:33 -04:00
mYmNeo
5e5e07e106 when container had no layer data, cleanupContainer crashed
Signed-off-by: mYmNeo <thomassong@tencent.com>
(cherry picked from commit 0bfc9c8de0)
2016-04-06 18:16:33 -04:00
mYmNeo
9e4c6c75f5 fix test requirement about devicemapper and not overlay
Signed-off-by: mYmNeo <thomassong@tencent.com>
(cherry picked from commit 90f512427f)
2016-04-06 18:16:08 -04:00
Shishir Mahajan
5d1b0aecd0 Ignore os.IsNotExist errors when calling ToDiskLocking
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
(cherry picked from commit 606cf5310d)
2016-04-06 18:15:51 -04:00
Santhosh Manohar
f685fe1a99 Vendor Libnetwork v0.7.0-rc.3
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
(cherry picked from commit 5b892819a6)
2016-04-06 18:15:51 -04:00
Yi EungJun
9e62a2aad2 Fix incorrect markdown rendering
The docker document site [1] rendered the list of plugin implements
incorrectly.

[1]: https://docs.docker.com/engine/extend/plugin_api

Signed-off-by: Yi EungJun <eungjun.yi@navercorp.com>
(cherry picked from commit 4a698c9c43)
2016-04-06 18:15:51 -04:00
Yong Tang
460806241c Remote API docs give incorrect example for creating a container with volumes.
This fix tries to address the issue mentioned in Docker Remote API where
the examples for creating a container (`POST /containers/create`) with
volumes were incorrect. In the previous remote API document, the `Mounts`
fields was used for volume creation yet since v1.20 `Volumes` should be
used.

This fix fixes #21335.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit 4ed2040258)
2016-04-06 18:15:49 -04:00
Lei Jitang
651cace5ee Correct the description of --group-add in run.md
Signed-off-by: Lei Jitang <leijitang@huawei.com>
(cherry picked from commit 9a7f2e7268)
2016-04-06 18:15:39 -04:00
mikelinjie
e941f698da make the cache miss clear
Signed-off-by: mikelinjie <294893458@qq.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 66b8714da4)
2016-04-06 18:15:39 -04:00
Tonis Tiigi
cc5c9013d9 Define readonly/mask paths in spec
This vendors in new spec/runc that supports
setting readonly and masked paths in the
configuration. Using this allows us to make an
exception for `—-privileged`.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 3f81b49352)
2016-04-06 18:15:37 -04:00
Sebastiaan van Stijn
c17ee39d12 Improve udev unsupported error message
Show a different message if a dynamic binary
is running, but doesn't have udev sync support.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit b8f38747e6)
2016-04-06 18:15:19 -04:00
Sebastiaan van Stijn
eeb30821ea Update AUTHORS
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit afeba190a5)
2016-04-06 18:15:19 -04:00
Sebastiaan van Stijn
38c206f97b bump containerd binary for 1.11.0-rc4
this bumps the containerd binary in the Dockerfiles
for 1.11.0-rc4, to include https://github.com/docker/containerd/pull/184

NOTE: the hack/vendor.sh commit is NOT updated in this
      patch; there's no reason to update containerd there

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-06 14:09:37 -07:00
Tibor Vass
346c5297b0 Merge pull request #21788 from thaJeztah/bump-engine-api
bump engine-api to v0.3.3 for 1.11.0-rc4
2016-04-06 15:21:51 -04:00
Sebastiaan van Stijn
e66633c39e bump engine-api to v0.3.3 for 1.11.0-rc4
bumps engine API to v0.3.3, to include
https://github.com/docker/engine-api/pull/193

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-04-06 09:30:03 -07:00
Tibor Vass
2f69842afa Merge pull request #21705 from tiborvass/cherrypicks-1.11.0-rc3
Cherrypicks 1.11.0 rc3
2016-04-01 17:53:22 -04:00
Michael Crosby
c5d179891f Clear nofity socket from containerd env
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
(cherry picked from commit 365401703d)
2016-04-01 14:18:33 -04:00
Ken Cochrane
4d7d1736bd Change the windows .tgz to a .zip file
Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
(cherry picked from commit fda99a7e16)
2016-03-31 18:44:47 -04:00
cyli
a5b5bdbbb4 Request pull credentials when using trusted reference
Signed-off-by: cyli <cyli@twistedmatrix.com>
(cherry picked from commit df9cc3d922)
2016-03-31 18:35:50 -04:00
Tonis Tiigi
9e3bfd5864 Fix race between with event timer stopping early
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit b38cee9f9c)
2016-03-31 18:35:50 -04:00
Tonis Tiigi
bab77d4991 Bring back support for DOCKER_RAMDISK
Fixes #21631

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 8a4225cd5a)
2016-03-31 18:35:50 -04:00
Robin Naundorf
4e1ff10d60 Fixed docs fixes #21653
Fixed some http status codes and decreased site-order for docker_remote_api_v1.24.md to appear in the right order in the menu
Signed-off-by: Robin Naundorf <r.naundorf@fh-muenster.de>

(cherry picked from commit 5d2f6b3ea3)
2016-03-31 18:35:47 -04:00
David Calavera
2936442f9d Apply build labels to images with only a FROM tag.
Signed-off-by: David Calavera <david.calavera@gmail.com>
(cherry picked from commit 1a85c8ebbe)
2016-03-31 18:35:38 -04:00
Aaron Lehmann
c5769cf53b Pull: only close temporary file once
Close could be called twice on a temporary download file, which could
have bad side effects.

This fixes the problem by setting to ld.tmpFile to nil when the download
completes sucessfully. Then the call to ld.Close will have no effect,
and only the download manager will close the temporary file when it's
done extracting the layer from it. ld.Close will be responsible for
closing the file if we hit the retry limit and there is still a partial
download present.

Fixes #21675

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
(cherry picked from commit 930ae3dbcb)
2016-03-31 18:35:38 -04:00
Madhu Venugopal
b84d18ec21 Vendor Libnetwork v0.7.0-rc.1
- Fixes https://github.com/docker/libnetwork/issues/1051
- Fixes https://github.com/docker/libnetwork/issues/985
- Fixes https://github.com/docker/libnetwork/issues/945
- Log time taken to set sandbox key
- Limit number of concurrent DNS queries

Signed-off-by: Madhu Venugopal <madhu@docker.com>
(cherry picked from commit 90bb5301b5)
2016-03-31 18:35:37 -04:00
Aaron Lehmann
2e92a84fa8 Fix layer store Get locking
Get was calling getReference without layerL held. This meant writes to
the references map could race. Such races are dangerous because they can
corrupt the map and crash the process.

Fixes #21616
Fixes #21674

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
(cherry picked from commit 0538981c31)
2016-03-31 18:35:37 -04:00
Thomas Sjögren
deb08a1012 systemctl show, no need to sudo
Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
(cherry picked from commit ea1d8d6f82)
2016-03-31 18:35:37 -04:00
Tonis Tiigi
4b21fdc96a Fix container mount cleanup issues
- Refactor generic and path based cleanup functions into a single function.
- Include aufs and zfs mounts in the mounts cleanup.
- Containers that receive exit event on restore don't require manual cleanup.
- Make missing sandbox id message a warning because currently sandboxes are always cleared on startup. libnetwork#975
- Don't unmount volumes for containers that don't have base path. Shouldn't be needed after #21372

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 05cc737f54)
2016-03-31 18:35:37 -04:00
Anusha Ragunathan
1818ca9d75 Update mount state of live containers after a daemon crash.
Fix unmount issues in the daemon crash and restart lifecycle, w.r.t
graph drivers. This change sets a live container RWLayer's activity
count to 1, so that the RWLayer is aware of the mount. Note that
containerd has experimental support for restore live containers.

Added/updated corresponding tests.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
(cherry picked from commit 511a70583f)
2016-03-31 18:35:37 -04:00
Anusha Ragunathan
9db0bd88f5 Redirect containerd stdout/stderr to the docker stream.
Its useful to have containerd logs as part of docker.
Containerd metrics are too chatty, so set interval to 0.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
(cherry picked from commit d9c3b653c0)
2016-03-31 18:35:37 -04:00
Nalin Dahyabhai
b98f05b4f4 Open the journald following descriptor earlier
Following a journal log almost always requires a descriptor to be
allocated.  In cases where we're running out of descriptors, this means
we might get stuck while attempting to start following the journal, at a
point where it's too late to report it to the client and clean up
easily.  The journal reading context will cache the value once it's
allocated, so here we move the check earlier, so that we can detect a
problem when we can still report it cleanly.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
(cherry picked from commit ab62ecf393)
2016-03-31 18:35:37 -04:00
Nalin Dahyabhai
ed2fcd9a2a Improve error reporting when following journals
When we set up to start following a journal, if we get error results
from sd_journal_get_fd() or sd_journal_get_events() that prevent us from
following the journal, report the error instead of just mysteriously
failing.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
(cherry picked from commit 8d597d25a8)
2016-03-31 18:35:36 -04:00
Sebastiaan van Stijn
1e67fdf3e4 Un-deprecate auto-creation of host directories for mounts
Auto-creation of host-directories was marked deprecated in
Docker 1.9, but was decided to be too much of an backward-incompatible
change, so it was decided to keep the feature.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 0f70f53826)
2016-03-31 18:35:36 -04:00
Ken Cochrane
2a60e5cac6 Change the directory inside of tgz files.
Currently the directory inside of the tgz files is /usr/local/bin
and this is causing some confusion, and problems with people who already
have stuff in those directories. This commit changes the directory
to /docker to help remove the confusion.

Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
(cherry picked from commit 7df5b32834)
2016-03-31 18:35:36 -04:00
Robin Naundorf
c319887dbb Fixed some differences between API and Docs in v1.22,v1.23,v1.24
Signed-off-by: Robin Naundorf <r.naundorf@fh-muenster.de>
(cherry picked from commit 370dbe0cd9)
2016-03-31 18:35:34 -04:00
Alexander Morozov
3fd08cc5e6 volume/store: fix couple of races with accessing maps
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
(cherry picked from commit e6d87c0706)
2016-03-31 18:35:21 -04:00
Sebastiaan van Stijn
cd062fd3b3 Bump runC to 40f4e7873d88a4f4d12c15d9536bb1e34aa2b7fa
This includes fixes for;

- outputing errors for missing seccomp options on seccomp versions < 2.3
- cap set apply EPERM errors on ARM systems

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 752b31d3fe)
2016-03-31 18:35:21 -04:00
Riyaz Faizullabhoy
55186eae32 move hardware signing out of experimental, remove dependencies to yubico-piv-tool
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
(cherry picked from commit 8d18e6b30f)
2016-03-31 18:35:20 -04:00
Yong Tang
76215b3268 Update documentations for Warnings fields in GET /volumes API
This fix updated documentations to add the `Warnings` fields in
`GET /volumes` API.

The `Warnings` has been part of the `GET /volumes` API response
since Docker 1.10 (v1.21). However, the `Warnings` field is not
in the documentation so there are some confusions (See #21606).

This fix updated the related documentations in v1.22, v1.23, and
v1.24 and added this field to the API.

This fix is related to #21605.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit d773927985)
2016-03-31 18:35:18 -04:00
Anusha Ragunathan
f97f3e98fc When using systemd, pass expected cgroupsPath and cli options to runc.
runc expects a systemd cgroupsPath to be in slice:scopePrefix:containerName
format and the "--systemd-cgroup" option to be set. Update docker accordingly.

Fixes 21475

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
(cherry picked from commit 7ed3d265a4)
2016-03-31 18:35:03 -04:00
Alexander Morozov
7500c8cc72 libcontainerd: reuse our pkg/locker
it fixes race with access to containerMutexes

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
(cherry picked from commit a7851e2556)
2016-03-31 18:35:03 -04:00
Alessandro Boch
c3eed8430c Vendoring boltb/bolt v1.2.0
Signed-off-by: Alessandro Boch <aboch@docker.com>
(cherry picked from commit 16bf3eede0)
2016-03-31 18:35:03 -04:00
Tonis Tiigi
073d7841b4 Use separate exec-root for test daemons
Fixes #21545

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 0d9b94c4c5)
2016-03-31 18:35:03 -04:00
Aaron Lehmann
8b0179c771 Correct login debug log message
I noticed the following message in a daemon log:

```
attempting v2 login to registry endpoint {%!s(bool=false) https://registry:5000 v2 %!s(bool=false) %!s(bool=true) %!s(*tls.Config=&{<nil> <nil> [] map[] <nil> 0xc82075c030 []  0 <nil> false [49196 49200 49195 49199 49162 49161 49172 49171 53 47] true false [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] <nil> 769 0 [] {{0 0} 0} {{0 0} 0 0 0 0} []})}
```

loginV2 tries to log an APIEndpoint as a string, but this struct does
not have a String method. Log the actual URL that will be used as the
endpoint, instead.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
(cherry picked from commit e42f85080b)
2016-03-31 18:35:03 -04:00
Aaron Lehmann
85d1517184 Mention "docker login" in push/pull documentation
It was suggested to me that documentation for "docker pull" and "docker
push" should reference "docker login", to make clearer how to specify
credentials for a push or pull operation. Add a note to the manual pages
and reference documentation explaining how registry credentials are
managed.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
(cherry picked from commit fb5ea0c0ef)
2016-03-31 18:35:03 -04:00
Harald Albers
b59dced332 docs for docker daemon --containerd
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 75f0015c50)
2016-03-31 18:35:03 -04:00
Brian Trump
89ede3ae23 Fix a link in the volumes doc to the deprecated doc.
Signed-off-by: Brian Trump <btrump@opselite.org>
(cherry picked from commit 02f951b67a)
2016-03-31 18:35:02 -04:00
Tonis Tiigi
8facb73a8f Protect aufs mounts with locks
Parallel aufs mount calls produce invalid argument error.

Fixes #21545

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 824c24e680)
2016-03-31 18:35:02 -04:00
kamjar gerami
c4fa814ecd fixes-#21581-no--subnetwork-option-as-specified-in-docs-for-work-with-networks.md: fixed typo in docs
Signed-off-by: kamjar gerami <kami.gerami@gmail.com>
(cherry picked from commit a4d4243b91)
2016-03-31 18:35:02 -04:00
Harald Albers
e9279d57f7 fix wrong option name in dm.min_free_space examples
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 2623b3496e)
2016-03-31 18:35:02 -04:00
Harald Albers
01c531a72e bash completion for storage option dm.min_free_space
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit eae4e84c66)
2016-03-31 18:35:02 -04:00
Robin Naundorf
a17e61c020 Fixes #21538
typo corrected

Signed-off-by: Robin Naundorf <r.naundorf@fh-muenster.de>
(cherry picked from commit a1d6c60ee0)
2016-03-31 18:35:02 -04:00
Sebastiaan van Stijn
19b22712c0 docs: add Ubuntu 16.04 "xenial"
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 62e7fde80f)
2016-03-31 18:35:02 -04:00
Harald Albers
e6629d4c10 docs for labels on build, networks and volumes
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 995e5beda7)
2016-03-31 18:35:01 -04:00
Tibor Vass
0c598f34b6 Merge pull request #21680 from thaJeztah/completion-cherry-picks
1.11 Bash and Zsh completion cherry picks
2016-03-31 10:55:39 -04:00
Harald Albers
e799da7e6a bash completion for docker history --human
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit a2dbf7626c)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Harald Albers
50552642ca bash completions: Improve consistency for options with default=true
Completion of these options was not handled consistently.
Now all such options immediatly complete with =false appended.

Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 39b9b63e36)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Harald Albers
474631498c bash completion for docker {run,create} --security-opt no-new-privileges
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit e96d086afd)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Harald Albers
08ccfd36e1 fix bash completion for docker run --security-opt
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 020998e24c)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Steve Durrheimer
c3b3f8201a Add zsh completion for 'docker {create,run} --userns'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit 39d7ff233b)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Harald Albers
81a3a72727 bash completion for docker {run,create} --userns
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 62475684b9)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Steve Durrheimer
70c594508f Add zsh completion for 'docker daemon --containerd'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit 63b29eda68)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Harald Albers
1fa9574e2b bash completion for docker daemon --containerd
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit aeaba46c2c)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Steve Durrheimer
4a59dc5a41 Add zsh completion for 'docker {pull,push} --disable-content-trust'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit b0235ffddd)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Steve Durrheimer
c4b33d5334 Add zsh completion for etwlogs and gcplogs log drivers
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit ca3ff89e56)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Steve Durrheimer
197d61d01a Add zsh completion for gelf-compression log driver options
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit ff31f166f2)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Steve Durrheimer
abe8c11e36 Add zsh completion for 'docker ps --filter' values
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit f3a27a6fac)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Steve Durrheimer
08d09e7733 Add zsh completion for 'docker update --restart'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit ca2cca0255)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:55 -07:00
Steve Durrheimer
e23f622d38 Add zsh completion for journald tag opt
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit 93ffc2d954)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:54 -07:00
Steve Durrheimer
73f7f515be Add zsh completion for 'docker {build, volume create, network create} --label'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit 5bfd29b9fb)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:54 -07:00
Harald Albers
501b0c387d bash completion for labels on build, networks and volumes
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit a2958aa18f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:54 -07:00
Steve Durrheimer
cf1d012fda Add zsh completion for 'docker load -q --quiet'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit f8009d10bb)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:54 -07:00
Steve Durrheimer
ad37aac45b Add zsh completion for new fluentd log driver options
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
(cherry picked from commit 396ffa2faf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-30 22:51:54 -07:00
Alexander Morozov
f66010ad31 Merge pull request #21659 from calavera/vendor_engine_api_0.3.2
Vendor engine-api v0.3.2 in release 1.11.
2016-03-30 13:35:36 -07:00
David Calavera
34fca93daf Vendor engine-api v0.3.2 in release 1.11.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-30 13:38:17 -04:00
Kenfe-Mickael Laventure
048db1da22 Update the llvm repo to use the debian jessie url
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
(cherry picked from commit 73672c5bd8)
2016-03-30 13:38:17 -04:00
Tonis Tiigi
e768fc8468 Allow specifying apt mirror in dockerfile
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 8ec8564691)
2016-03-30 13:38:16 -04:00
Tibor Vass
31755449e1 Merge pull request #21518 from tiborvass/cherrypicks-1.11.0-rc2
Cherrypicks 1.11.0 rc2
2016-03-25 15:09:41 -04:00
Sebastiaan van Stijn
fef9c5b432 Merge pull request #21521 from kencochrane/add_better_unsupported_message_bump
[bump_v1.11.0] Added a better message for when we build an unsupported version
2016-03-25 11:13:42 -07:00
Ken Cochrane
519ac1252c Added a better message for when we build an unsupported version
Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
(cherry picked from commit 181d2725d7)
2016-03-25 13:59:49 -04:00
Tibor Vass
89276c679e Fix release scripts
Add some missing dependencies in the Dockerfile:
- apt-utils for apt-ftparchive.conf
- bsdmainutils for our use of the column command in
  hack/make/generate-index-listing

We also ensure that the docker daemon is started before calling
release-deb or release-rpm, since .detect-daemon-osarch, which is sourced
in each of them, requires the daemon to be running.

This commit also gets completely rid of s3cmd and fixes references to
AWS_* environment variables (changing from AWS_ACCESS_KEY to
AWS_ACCESS_KEY_ID and AWS_SECRET_KEY to AWS_SECRET_ACCESS_KEY) in order
to please awscli. Also AWS_DEFAULT_REGION is now important to specify,
the default has been set to the region used by get.docker.com and
test.docker.com.

Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 996138bf8e)
2016-03-25 13:43:08 -04:00
Tonis Tiigi
5a71ca6739 Disable privileged test from in user namespace
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit f01e1c865f)
2016-03-25 13:43:08 -04:00
Harald Albers
92c9bab6ab bash completion for new fluentd log driver options
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 06e357da35)
2016-03-25 13:43:08 -04:00
Viktor Stanchev
f04334ea04 fix race condition between list and remove volume
This was done by making List not populate the cache.

fixes #21403

Signed-off-by: Viktor Stanchev <me@viktorstanchev.com>
(cherry picked from commit 800b9c5a26)
2016-03-25 13:43:08 -04:00
Tonis Tiigi
ea799625bd Fix symlink copying for deb init scripts
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 61277c395b)
2016-03-25 13:43:08 -04:00
cyli
3ef31215f4 Revert "Merge pull request #21003 from riyazdf/hardware-signing-ga"
This reverts commit e6d3a9849c, reversing
changes made to d3afe34b51.

Signed-off-by: cyli <cyli@twistedmatrix.com>
(cherry picked from commit dd33d18045)
2016-03-25 13:43:08 -04:00
Tonis Tiigi
4b03e857de Fix wrong variable name on blkio resources
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 8784bd6fde)
2016-03-25 13:43:08 -04:00
Tonis Tiigi
c5e8051c81 Fix setting cgroup permission to user/privileged devices
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit ee61235880)
2016-03-25 13:43:07 -04:00
David Calavera
6d324b4192 Downgrade to Go 1.5.3.
To not hit the issue with the request Host header.

Signed-off-by: David Calavera <david.calavera@gmail.com>
(cherry picked from commit 3e0bd74a3d)
2016-03-25 13:43:07 -04:00
Harald Albers
060330bf46 add docs for docker load --quiet
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 610ec8c739)
2016-03-25 13:43:07 -04:00
Madhu Venugopal
413155df6e Add "--ipv6" flag in IT for network create when using ipv6 subnets
Signed-off-by: Madhu Venugopal <madhu@docker.com>
(cherry picked from commit ec77c124de)
2016-03-25 13:43:07 -04:00
Ken Cochrane
48ce060e8c Packaging changes required for new containerd binaries
These are the changes required due to the new binaries that containerd introduced.
The rpm, and deb packages now include 5 binaries.

docker, containerd, containerd-shim, ctr, and runc

The tar files also include all 5 binaries.

Signed-off-by: Ken Cochrane <KenCochrane@gmail.com>
(cherry picked from commit bb66d7144f)
2016-03-25 13:43:07 -04:00
Yong Tang
6106313b20 More descriptive error when running a container with a too long hostname (#21445)
This fix tries to fix issues encountered when running a container with a hostname
that is longer than HOST_NAME_MAX(64).

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

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

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

This fix closes #21445.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit fa44b4e81e)
2016-03-25 13:43:07 -04:00
Harald Albers
ae4f265053 bash completion for docker load --quiet
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit aa9170f066)
2016-03-25 13:43:07 -04:00
Harald Albers
4fc85b47fc bash completion for docker ps -f volume
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit ef0570abfc)
2016-03-25 13:43:07 -04:00
Tonis Tiigi
3e890411bc Add ulimit support to libcontainerd addprocess
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 8891afd838)
2016-03-25 13:43:06 -04:00
Tonis Tiigi
1987d6e5df Update runc/containerd
Contains fixes for:
- pid.max fix that is causing hang on network stats test.
- fix for early stdin close containerd-shim
- better logging for `could not synchronise with container process`

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 22d997b374)
2016-03-25 13:43:06 -04:00
Michael Crosby
e4995d1517 Remove grpc logging to stderr
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
(cherry picked from commit b0280c37a0)
2016-03-25 13:43:06 -04:00
Brian Goff
6558158dc3 Move layer mount refcounts to mountedLayer
Instead of implementing refcounts at each graphdriver, implement this in
the layer package which is what the engine actually interacts with now.
This means interacting directly with the graphdriver is no longer
explicitly safe with regard to Get/Put calls being refcounted.

In addition, with the containerd, layers may still be mounted after
a daemon restart since we will no longer explicitly kill containers when
we shutdown or startup engine.
Because of this ref counts would need to be repopulated.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
(cherry picked from commit 65d79e3e5e)
2016-03-25 13:43:06 -04:00
Anusha Ragunathan
c985e2b84b Fix use of mounted() in overlay.
Handle error and mounted case separately.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
(cherry picked from commit 57ca2a2101)
2016-03-25 13:43:06 -04:00
Yong Tang
6be088a3eb Fix Docker core dumps when removing network with special characters (#21401).
This fix tries to fix Docker core dumps when removing network with special
characters. The issue is from the fact that when docker client tries to
pass the command to API, the networkID is not escaped in case of special
characters. This also means other commands (not just `docker network rm`)
may face the same issue (e.g., `docker network connect`).

This fix adds the URL path escape to properly handle it. In addition, an
integration test for network create and delete is added to cover the cases
in #21401.

This fix fixes #21401.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
(cherry picked from commit f8dc5562d0)
Signed-off-by: David Calavera <david.calavera@gmail.com>
(cherry picked from commit f154227608)
2016-03-25 13:43:06 -04:00
David Calavera
8c390f0987 Vendor engine-api 0.3.1.
Signed-off-by: David Calavera <david.calavera@gmail.com>
(cherry picked from commit 58385bc8a5)
2016-03-25 13:43:06 -04:00
Christopher Jones
d8ba21d07d ppc64le: remove seccomp from Dockerfile
Removes the seccomp buildtag when building runc.
Because seccomp isn't currently being built, this would cause
the build to fail.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
(cherry picked from commit 2caf09d37b)
2016-03-25 13:43:06 -04:00
Brian Goff
b9d6c87592 Fix panic in loading plugins
When a plugin is first found, it is loaded into the available plugins
even though it's not activated yet.
If activation fails it is taken out of the list.
While it is in the list, other callers may see it and try to check it's
manifest. If it is not fully activated yet, the manifest will be nil and
cause a panic.

This is especially problematic for drivers that are down and have not
been activated yet.

We could just not load the plugin into the available list until it's
fully active, however that will just cause multiple of the same plugin
to attemp to be loaded.

We could check if the manifest is nil and return early (instead of
panicing on a nil manifest), but this will cause a 2nd caller to receive
a response while the first caller is still waiting, which can be
awkward.

This change uses a condition variable to handle activation (instead of
sync.Once). If the plugin is not activated, callers will all wait until
it is activated and receive a broadcast from the condition variable
signaling that it's ok to proceed, in which case we'll check if their
was an error in activation and proceed accordingly.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
(cherry picked from commit baac2f4867)
2016-03-25 13:43:05 -04:00
Tibor Vass
03238022c8 test: Do not check error message from hub, it is not needed
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit bbdd34c370)
2016-03-25 13:43:05 -04:00
Sebastiaan van Stijn
1f8ea55c3d Merge pull request #21450 from Microsoft/jjh/changelog
Clarify binaries in changelog
2016-03-25 10:15:08 -07:00
Brian Goff
6fa49df0d9 Merge pull request #21500 from thaJeztah/update-changelog
Update CHANGELOG.md
2016-03-25 10:31:57 -04:00
Sebastiaan van Stijn
32a5308237 Update CHANGELOG.md
hardware signing was put back to experimental due to packaging issues
(https://github.com/docker/docker/pull/21499)

add missing "--quiet" option for docker load

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-24 22:24:30 -07:00
John Howard
76489af40f Verify binaries in changelog
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-23 13:57:41 -07:00
Tibor Vass
fad79467dd Merge pull request #21434 from tiborvass/1.11.0-changelog
Add initial changelog for 1.11.0
2016-03-23 14:48:55 -04:00
Kenfe-Mickael Laventure
e651c1b2b9 Add initial changelog for 1.11.0
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-23 14:45:37 -04:00
Tibor Vass
b6f3c16ddc Bump version to v1.11.0
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-03-23 13:06:51 -04:00
David Calavera
faf5645a62 Merge pull request #21425 from tiborvass/fix-release-sh
Fix release.sh script
2016-03-23 10:02:59 -07:00
Jess Frazelle
1f40cc15c7 Merge pull request #21176 from cyphar/fix-apparmor-profile-execpath
profiles: apparmor: remove unused fields
2016-03-23 10:02:34 -07:00
Tibor Vass
dd51e85c05 Fix release.sh script
Use aws instead of s3cmd.
Make sure the release script works with the docker-prepended binary
names.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-03-23 11:59:21 -04:00
Vincent Demeester
f4dfe15cbe Merge pull request #21420 from icecrime/update_arm_build
Update Dockerfile.armhf
2016-03-23 16:27:53 +01:00
Vincent Demeester
6ad9def11a Merge pull request #21386 from Microsoft/jjh/mountfix
Windows: Fix mountinfo
2016-03-23 10:14:20 +01:00
Tibor Vass
bc3149b75f Merge pull request #21413 from tiborvass/docker-prefix
Add `docker-` prefix to runc and containerd binaries
2016-03-23 03:58:59 -04:00
Tibor Vass
cb41c36108 Merge pull request #21424 from tonistiigi/revert-one_ctr_to_rule_them_all
Revert "Move layer mount refcounts to mountedLayer"
2016-03-23 03:41:58 -04:00
Tonis Tiigi
e91de9fb9d Revert "Move layer mount refcounts to mountedLayer"
This reverts commit 563d0711f8.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-23 00:33:02 -07:00
Lei Jitang
f668e36652 Merge pull request #21407 from LK4D4/log_stats_errors
daemon: log errors from stats calls
2016-03-23 14:12:12 +08:00
Tibor Vass
009399dc8e Add docker- prefix to runc and containerd binaries
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-03-23 00:52:16 -04:00
Tõnis Tiigi
92a3ece35a Merge pull request #21107 from cpuguy83/one_ctr_to_rule_them_all
Move layer mount refcounts to mountedLayer
2016-03-22 21:19:00 -07:00
Arnaud Porterie
38d746462c Update Dockerfile.armhf
Use official Go 1.6 release, and update golang/tools and golang/lint
hashes accordingly.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-03-22 20:19:39 -07:00
Sebastiaan van Stijn
f26193e2cf Merge pull request #21340 from SvenDowideit/workdir-does-a-mkdir-p
WORKDIR is like calling mkdir - but we've not told people
2016-03-22 18:41:15 -07:00
Michael Crosby
55304e2e55 Merge pull request #21381 from mlaventure/selinux-pcp_pmcd
Give selinux pcp_pmcd_t type access to /var/lib/docker
2016-03-22 17:44:43 -07:00
Tibor Vass
694b32df51 Merge pull request #21370 from tonistiigi/expose-layer-ids
Expose RootFS in image inspect
2016-03-22 20:33:18 -04:00
Tibor Vass
7bc052ae04 Merge pull request #21411 from mlaventure/fix-unauth-to-central
Update TestPushToCentralRegistryUnauthorized to match updated hub
2016-03-22 20:31:10 -04:00
Tibor Vass
d0d17a0693 Merge pull request #21397 from kencochrane/update-release-script
Updated release.sh script to stop uploading binaries
2016-03-22 20:29:16 -04:00
David Calavera
fb1365639e Merge pull request #21406 from LK4D4/fix_streams_race
builder: synchronize stderr and stdout
2016-03-22 17:15:01 -07:00
David Calavera
d02d48b4b1 Merge pull request #21402 from crosbymichael/tar-binaries
Add containerd and runc binaries to tgz output
2016-03-22 17:11:34 -07:00
Sebastiaan van Stijn
28af4789e6 Merge pull request #21410 from calavera/vendor_engine_api_v0.3.0
Vendor engine-api v0.3.0
2016-03-22 16:41:10 -07:00
Tibor Vass
3ce494f48c Merge pull request #21367 from mlaventure/containerd-docs-cleanup
Remove unneeded references to execDriver
2016-03-22 19:40:27 -04:00
Kenfe-Mickael Laventure
37e2103e64 Update TestPushToCentralRegistryUnauthorized to match updated hub
The error message was changed from "unauthorized: access to the
requested resource is not authorized" to "unauthorized: authentication
required".

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-22 16:15:29 -07:00
Michael Crosby
5ff66748da Export GOOS and GOARCH in subprocess for tgz
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-03-22 15:43:06 -07:00
David Calavera
9e9c73a528 Vendor engine-api v0.3.0
I tagged the current commit so we have a better reference
of what's in this release.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-22 18:12:16 -04:00
David Calavera
506fb9810c Merge pull request #21396 from aboch/vnn
Vendoring libnetwork v0.7.0-dev.10
2016-03-22 15:09:42 -07:00
Tibor Vass
8b8fcb796f Merge pull request #21303 from riyazdf/notary-vendor-docker1.11
vendor notary for docker1.11
2016-03-22 17:57:17 -04:00
David Calavera
2ec1764d45 Merge pull request #21400 from LK4D4/fix_volumes_race
volume/local: fix race in List
2016-03-22 14:29:12 -07:00
David Calavera
acaec7f67c Merge pull request #21385 from tonistiigi/load-parent-chain
Add parent references support to load/save
2016-03-22 14:07:06 -07:00
Alexander Morozov
14e1325656 daemon: log errors from stats calls
I encountered silent errors ignoring when runc failed to parse pids.max

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-22 14:03:47 -07:00
Alexander Morozov
3eb0a80f29 builder: synchronize stderr and stdout
it's concurrent streams and should be synchronized before writing to response.
Otherwise there will be race in writing to *bufio.Writer in
net/http.response.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-22 13:57:29 -07:00
Tonis Tiigi
14dc4a7158 Expose RootFS in image inspect
Fixes #20451

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-22 13:49:30 -07:00
Alessandro Boch
fbdb3c3a4b Vendoring libnetwork v0.7.0-dev.10
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-03-22 12:36:21 -07:00
Michael Crosby
aca7e73a69 Copy containerd binaries in tgz
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-03-22 12:23:17 -07:00
Tibor Vass
53d2e5e9d7 Merge pull request #21270 from ehazlett/resource-labels
Add Label support for Images (build), Networks and Volumes on Creation
2016-03-22 15:12:33 -04:00
Michael Crosby
78568f2eb5 Add function for copy containerd
This adds a function for copying containerd and other binaries as well
as adding a hash for those files.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-03-22 12:06:56 -07:00
David Calavera
62d4556654 Merge pull request #21383 from estesp/shared-userns-net-ipc
Allow net and IPC namespaces to be shared when userns=on
2016-03-22 11:40:12 -07:00
Riyaz Faizullabhoy
ab3772f72f vendor notary for docker1.11
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-22 11:28:19 -07:00
Alexander Morozov
3536c09cea volume/local: fix race in List
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-22 11:21:38 -07:00
Tibor Vass
de9ff4bdc0 Merge pull request #21223 from cpuguy83/add_nocp_to_vols
Add explicit flags for volume cp/no-cp
2016-03-22 13:45:12 -04:00
Ken Cochrane
5e3a8ef887 Updated release.sh script to stop uploading binaries
Signed-off-by: Ken Cochrane <KenCochrane@gmail.com>
2016-03-22 13:42:54 -04:00
Michael Crosby
0dcdd1c5b8 Merge pull request #21341 from duglin/tweakBuild
Add containerd/runc exes to bundle dir after build
2016-03-22 10:29:56 -07:00
Vincent Demeester
e8774fbb9f Merge pull request #21366 from martinmosegaard/master
Fix plural typo in 'save' command help
2016-03-22 17:26:32 +01:00
Evan Hazlett
fc214b4408 add label support for build, networks and volumes
build: implement --label

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

network: allow adding labels on create

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

volume: allow adding labels on create

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

add tests for build, network, volume

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

vendor: libnetwork and engine-api bump

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2016-03-22 11:49:06 -04:00
Brian Goff
563d0711f8 Move layer mount refcounts to mountedLayer
Instead of implementing refcounts at each graphdriver, implement this in
the layer package which is what the engine actually interacts with now.
This means interacting directly with the graphdriver is no longer
explicitly safe with regard to Get/Put calls being refcounted.

In addition, with the containerd, layers may still be mounted after
a daemon restart since we will no longer explicitly kill containers when
we shutdown or startup engine.
Because of this ref counts would need to be repopulated.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-22 11:36:28 -04:00
Sebastiaan van Stijn
7720338713 Merge pull request #21388 from zhuguihua/move_zfs_options_to_correct_place_in_man_page
Move ZFS options to correct place in man page
2016-03-22 08:26:54 +01:00
Martin Mosegaard Amdisen
5a701c3e4c Update 'save' command help
Based on review feedback.

Signed-off-by: Martin Mosegaard Amdisen <martin.amdisen@praqma.com>
2016-03-22 08:16:52 +01:00
Zhu Guihua
df6def3c0c Move ZFS options to correct place in man page
Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
2016-03-22 14:50:49 +08:00
Vincent Demeester
666563b190 Merge pull request #21046 from cyli/use-notary-cli
Sign all first-level delegation roles when doing a trusted push
2016-03-22 07:42:21 +01:00
John Howard
bb68b666c5 Windows: Fix mountinfo
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-21 22:03:24 -07:00
Arnaud Porterie
9f327b4c28 Merge pull request #21373 from aaronlehmann/client-user-agent-registry-operations
Pass upstream client's user agent through to registry on operations beyond pulls
2016-03-21 21:49:48 -07:00
Sven Dowideit
c937b43abd WORKDIR is like calling mkdir - but we've not told people
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2016-03-22 14:05:56 +10:00
David Calavera
adc6ed5a10 Merge pull request #21354 from Microsoft/jjh/getpids
Windows: Minimal docker top implementation
2016-03-21 19:59:27 -07:00
Tonis Tiigi
faeff5118f Add parent references support to load/save
Restores the correct parent chain relationship
between images on docker load if multiple images
have been saved.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-21 19:31:10 -07:00
Phil Estes
2b278f4846 Allow net and IPC namespaces to be shared when userns=on
Now that the namespace sharing code via runc is vendored with the
containerd changes, we can disable the restrictions on container to
container net and IPC namespace sharing when the daemon has user
namespaces enabled.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-03-21 22:20:26 -04:00
Doug Davis
1bf5eb20e5 Add containerd/runc exes to bundle dir after build
Not sure if this is the right setup given the containerd change but I need
to have the built version of the nested exes (containerd, runc...) available
to me after the build is completed so I'm always testing using the latest
versions.  This PR will copy them into the same bundles dir so people can
them use them if they wish w/o having to build each separately.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-03-21 17:50:59 -07:00
Brian Goff
b0ac69b67e Add explicit flags for volume cp/no-cp
This allows a user to specify explicitly to enable
automatic copying of data from the container path to the volume path.
This does not change the default behavior of automatically copying, but
does allow a user to disable it at runtime.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-21 20:38:44 -04:00
Kenfe-Mickael Laventure
00bf3c85d0 Give selinux pcp_pmcd_t type access to /var/lib/docker
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-21 16:38:26 -07:00
Tibor Vass
c22d09f563 Merge pull request #21377 from LK4D4/fix_compile
runconfig/opts: fix compilation issue
2016-03-21 19:11:09 -04:00
Alexander Morozov
93f5770511 runconfig/opts: fix compilation issue
it was introduced with #20566 as a result of merge

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-21 15:01:08 -07:00
Arnaud Porterie
f9f8708dc6 Merge pull request #20566 from AndrewGuenther/20371-validate-hostname
Ensure --hostname is valid
2016-03-21 14:49:16 -07:00
Aaron Lehmann
c44e7a3e63 Pass upstream client's user agent through to registry on operations beyond pulls
This adds support for the passthrough on build, push, login, and search.

Revamp the integration test to cover these cases and make it more
robust.

Use backticks instead of quoted strings for backslash-heavy string
contstands.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-21 14:31:47 -07:00
Arnaud Porterie
278d3962a8 Merge pull request #21306 from mgoelzer/issue20001-nodeps
Pass upstream client's user agent through to registry on image pulls
2016-03-21 14:26:59 -07:00
Alexander Morozov
11b4c89087 Merge pull request #21301 from cpuguy83/cleaner_file_log
Fixes some issues with jsonfile write/read
2016-03-21 14:03:36 -07:00
Tibor Vass
3ac32cd72e Merge pull request #21106 from yongtang/20122-volume-one-character
Fix one-character directory issue in the volume option (#20122).
2016-03-21 16:41:03 -04:00
Kenfe-Mickael Laventure
8af4f89cba Remove unneeded references to execDriver
This includes:
 - updating the docs
 - removing dangling variables

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-21 13:06:08 -07:00
cyli
88d73ebff4 Include documentation on how to add the targets/releases delegation to a repo
Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-03-21 12:06:10 -07:00
cyli
623ccc2f31 Pull, Pull-A, and Build will only pull tags from the targets role or the targets/releases role.
It will ignore tags in all other delegation roles.

Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-03-21 10:56:49 -07:00
Riyaz Faizullabhoy
ca57f4e6a8 Add test for targets/releases preference when pulling
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-21 10:56:42 -07:00
cyli
497a58e6e4 Trusted push now adds the tag to every first level delegation role for which we have keys
and for which the tag conforms to path restrictions.

Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-03-21 10:56:09 -07:00
Vincent Demeester
7bbf58ed0d Merge pull request #21360 from WeiZhang555/clean
Clean dead code
2016-03-21 18:42:10 +01:00
Vincent Demeester
d82ad12df8 Merge pull request #19439 from pcarrier/pcarrier/19438-async-connections-to-fluentd
fluentd logger: support all options besides Unix sockets
2016-03-21 18:09:14 +01:00
Alexander Morozov
a05fdd6806 Merge pull request #21283 from runcom/update-test
vendor docker/distribution d06d6d3b093302c02a93153ac7b06ebc0ffd1793
2016-03-21 09:46:28 -07:00
Arnaud Porterie
2a4c970aeb Merge pull request #21342 from tonistiigi/cleanup-libcontainer
Convert libnetwork stats directly to api types
2016-03-21 08:54:03 -07:00
David Calavera
be8459c248 Merge pull request #21313 from Microsoft/sjw/logs_fix
Fixing logs file handle leak.
2016-03-21 08:41:31 -07:00
David Calavera
336d585292 Merge pull request #21336 from Microsoft/jjh/fixunmount
Windows: Fix unmount for Hyper-V Containers
2016-03-21 08:40:52 -07:00
David Calavera
c2550c4f7b Merge pull request #21362 from frenkel/engine-api-update-for-openbsd
Update vendored engine-api for OpenBSD support
2016-03-21 08:38:13 -07:00
Brian Goff
1ae9dcf97d Fixes some issues with jsonfile write/read
This cleans up some of the use of the filepoller which makes reading
significantly more robust and gives fewer changes to fallback to the
polling based watcher.
In a lot of cases, if the file was being rotated while we were adding it
to the watcher, it would return an error that the file doesn't exist and
would fallback.
In some cases this fallback could be triggered multiple times even if we
were already on the fallback/poll-based watcher.

It also fixes an open file leak caused by not closing files properly on
rotate, as well as not closing files that were read via the `tail`
function until after the log reader is completed.

Prior to the above changes, it was relatively simple to cause the log
reader to error out by having quick rotations, for example:
```
$ docker run --name test --log-opt max-size=10b --log-opt max-files=10
-d busybox sh -c 'while true; do usleep 500000; echo hello; done'
$ docker logs -f test
```
After these changes I can run this forever without error.

Another fix removes 2 `os.Stat` calls when rotating files. The stat
calls are not needed since we are just calling `os.Rename` anyway, which
will in turn also just produce the same error that `Stat` would.
These `Stat` calls were also quite expensive.
Removing these stat calls also seemed to resolve an issue causing slow
memory growth on the daemon.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-21 11:05:58 -04:00
Martin Mosegaard Amdisen
a826c244ed Fix plural typo in 'save' command help
The form "Save an images" is not correct.
Either "Save an image" or "Save images" work, but since
the save commands accepts multiple images, I chose the
latter.

Fixed in all places where I could grep "Save an image(s)".

Signed-off-by: Martin Mosegaard Amdisen <martin.amdisen@praqma.com>
2016-03-21 15:15:40 +01:00
Antonio Murdaca
5008a34072 Merge pull request #21333 from cpuguy83/sigpipe
Don't forward SIGPIPE from client to container
2016-03-21 15:09:13 +01:00
Sebastiaan van Stijn
c9488fe280 Merge pull request #21364 from thaJeztah/carry-21188-fix-docker-info-docs
docs: fix incorrect output for "/info" endpoint
2016-03-21 13:38:35 +01:00
Sebastiaan van Stijn
fffa83353f Merge pull request #21246 from nerdalert/vlan_docs
Updates to macvlan/ipvlan experimental docs
2016-03-21 13:16:52 +01:00
Arnaud Porterie
9014ac2d15 docs: fix incorrect output for "/info" endpoint
OomScoreAjd is not part of `/info` output
Wrong field name `DiscoveryBackend` in API reference

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-21 12:55:45 +01:00
Frank Groeneveld
3cf8a9ede7 Update vendored engine-api for OpenBSD support
Signed-off-by: Frank Groeneveld <frank@frankgroeneveld.nl>
2016-03-21 12:11:11 +01:00
Sebastiaan van Stijn
722f06dae3 Merge pull request #21353 from Microsoft/jjh/tidylibcontainerdmore
Windows: Tidy after libcontainerd
2016-03-21 11:06:54 +01:00
Pierre Carrier
13086f387b fluentd logger: support all options besides Unix sockets
Mostly useful for docker/docker#19438.

Signed-off-by: Pierre Carrier <pierre@meteor.com>
2016-03-21 10:03:21 +00:00
Sebastiaan van Stijn
1a7afc075d Merge pull request #21355 from yongtang/20188-plugins-docs
Update plugin docs for the covering of remote plugins (#20188).
2016-03-21 10:28:25 +01:00
Sebastiaan van Stijn
02a90d0399 Merge pull request #21345 from duglin/BetterError
Add the name of the exe that's trying to be executed
2016-03-21 10:17:10 +01:00
Zhang Wei
c9db9e4ff1 Clean dead code
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-03-21 16:43:24 +08:00
Yong Tang
800a7d513d Fix one-character directory issue in the volume option (#20122).
The issue comes from the implementation of volumeSplitN() where a
driver letter (`[a-zA-Z]:`) was assumed to follow either `:`, `/`,
or `\\`.

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

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

This PR fixes #20122.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-21 02:55:06 +00:00
Yong Tang
c3ef69270a Update plugin docs for the covering of remote plugins (#20188).
This fix updates the Plugin API docs to cover the case of remote
plugins which could be deployed on a host different from the
docker host, through spec or json files.

This fix closes #20188.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-21 02:42:10 +00:00
Doug Davis
7942160638 Add the name of the exe that's trying to be executed
so that the user knows what's not in the container but should be.
Its not always easy for the user to know what exact command is being run
when the 'docker run' is embedded deep in something else, like a Makefile.
Saw this while dealing with the containerd migration.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-03-20 18:15:46 -07:00
John Howard
52237787fa Windows: Minimal docker top implementation
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-20 16:45:53 -07:00
John Howard
3ca6ad5b9e Windows: Tidy after libcontainerd
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-20 15:59:52 -07:00
Jess Frazelle
9ea7e082ef Merge pull request #21343 from pandrew/fix-debian-policy-rule
Fix debian policy rule
2016-03-20 12:28:58 -07:00
Brian Goff
09a69ed8b9 Merge pull request #21344 from tonistiigi/fix-seccomp-profiles
Reuse profiles/seccomp package
2016-03-20 14:04:11 -04:00
Pierre Carrier
9c2a0739fb bump fluent-logger-golang version
This version supports async connections.

Signed-off-by: Pierre Carrier <pierre@meteor.com>
2016-03-20 16:22:21 +00:00
Pierre Carrier
d89dae6e4b Revert "Added flag to ignore fluentd connect error on container start"
This reverts commit 3cf82ff1ab.

Signed-off-by: Pierre Carrier <pierre@meteor.com>
2016-03-20 16:22:19 +00:00
Mike Goelzer
d1502afb63 Pass upstream client's user agent through to registry on image pulls
Changes how the Engine interacts with Registry servers on image pull.
Previously, Engine sent a User-Agent string to the Registry server
that included only the Engine's version information.  This commit
appends to that string the fields from the User-Agent sent by the
client (e.g., Compose) of the Engine.  This allows Registry server
operators to understand what tools are actually generating pulls on
their registries.

Signed-off-by: Mike Goelzer <mgoelzer@docker.com>
2016-03-20 04:30:09 -07:00
Aleksa Sarai
d274456f3e profiles: apparmor: actually calculate version
In order to check that we can have the `ptrace` rule, we need to
actually calculate the version of apparmor_parser.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2016-03-20 19:03:19 +11:00
Aleksa Sarai
64fb664908 profiles: apparmor: remove unused fields
ExecPath isn't used by anything, and the signal apparmor rule isn't used
because it refers to a peer that we don't ship.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2016-03-20 19:01:49 +11:00
Tonis Tiigi
99b16b3523 Reuse profiles/seccomp package
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-19 14:15:39 -07:00
Tonis Tiigi
f25d9f0f23 Remove unused libcontainer vendoring
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-19 13:04:37 -07:00
Paul Liljenberg
f10c8e786b Fix debian policy rule
Fix issue in debian policy by removeing double quotes.

Signed-off-by: Paul Liljenberg <liljenberg.paul@gmail.com>
2016-03-19 20:58:19 +01:00
Tonis Tiigi
d36376f86c Convert libnetwork stats directly to api types
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-19 12:56:45 -07:00
Vincent Demeester
9e530247e0 Merge pull request #21338 from Microsoft/jjh/lcdcleanup
Windows: libcontainerd cleanup
2016-03-19 15:14:10 +01:00
Antonio Murdaca
264b5b6083 distribution: errors: do not retry if no token in response
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-19 12:20:14 +01:00
Antonio Murdaca
c48439af7f vendor docker/distribution d06d6d3b093302c02a93153ac7b06ebc0ffd1793
- fix and add integration tests

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-19 12:19:48 +01:00
John Howard
4461bc45b6 Windows: Fix unmount for Hyper-V Containers
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-18 20:43:46 -07:00
John Howard
e331df5aee Windows: libcontainerd cleanup
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-18 20:31:11 -07:00
Jess Frazelle
b77573f48e Merge pull request #21274 from jfrazelle/fix-variables-that-werent-being-used
fix variables that werent being called
2016-03-18 18:03:15 -07:00
Brian Goff
131c59193f Merge pull request #21325 from frenkel/openbsd-support
Support OpenBSD build
2016-03-18 20:53:17 -04:00
Jess Frazelle
e5a3f86e44 Merge pull request #20662 from tonistiigi/containerd-integration
Containerd integration
2016-03-18 17:21:18 -07:00
Jess Frazelle
06e98f0a5c Merge pull request #21232 from calavera/consolidate_security_opts_format
Consolidate security options to use `=` as separator.
2016-03-18 16:02:38 -07:00
Brent Salisbury
8926af95e4 Updates to macvlan/ipvlan experimental docs
- Added a few more diagrams.
- Fixed typos and a few additional  details.
- Moved experimental images to a new directory
  in /experimental/images per @cpuguy83 suggestion.

Signed-off-by: Brent Salisbury <brent@docker.com>
2016-03-18 18:46:46 -04:00
Brian Goff
81707de23f Don't forward SIGPIPE from client to container
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-18 16:50:18 -04:00
John Howard
94d70d8355 Windows libcontainerd implementation
Signed-off-by: John Howard <jhoward@microsoft.com>
Signed-off-by: John Starks <jostarks@microsoft.com>
Signed-off-by: Darren Stahl <darst@microsoft.com>
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-18 13:38:41 -07:00
Tonis Tiigi
6eebe85290 Remove execdriver package
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-18 13:38:37 -07:00
Tonis Tiigi
9c4570a958 Replace execdrivers with containerd implementation
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-03-18 13:38:32 -07:00
Tonis Tiigi
cc83031ade Vendor containerd, specs, runc
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-18 13:38:26 -07:00
Tonis Tiigi
14299daaca Vendor updated grpc, protobuf
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-18 13:38:21 -07:00
Brian Goff
03003619af Merge pull request #21332 from jfrazelle/change-email
change email
2016-03-18 16:28:51 -04:00
Jessica Frazelle
d3b650062f change email
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-03-18 13:17:28 -07:00
Vincent Demeester
6c6363c726 Merge pull request #21269 from mlaventure/inspect-bind-mounts
Update inspect/ps to properly handle bind mounts
2016-03-18 20:52:02 +01:00
Stefan J. Wernli
4570cfd3ba Fixing logs file handle leak.
Docker logs was only closing the logger when the HTTP response writer received a close notification, however in non-follow mode the writer never receives a close. This means that the daemon would leak the file handle to the log, preventing the container from being removed on Windows (file in use error). This change explicitly closes the log when the end of stream is hit.

Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2016-03-18 11:00:15 -07:00
Vincent Demeester
ea0025a7e1 Merge pull request #21299 from allencloud/handle-kernel-version-error-in-version-api
handle kernel version error in version api
2016-03-18 18:07:48 +01:00
Antonio Murdaca
a30332e705 Merge pull request #21183 from thaJeztah/fix-flaky-TestUpdateRestartPolicy
Fix flaky TestUpdateRestartPolicy on Windows
2016-03-18 17:45:05 +01:00
David Calavera
ae75435dae Merge pull request #20200 from thockin/14282-hostname-domainname-v2
Don't smoosh hostname and domainname in API
2016-03-18 09:08:22 -07:00
Sebastiaan van Stijn
6eaf4434ee Merge pull request #21238 from yongtang/21211-TestRestartStoppedContainer
Fix flaky test of TestRestartStoppedContainer (#21211).
2016-03-18 17:01:30 +01:00
David Calavera
8ef56e1f98 Merge pull request #21311 from nalind/journal-race
Fix a couple of races in the journald log reader
2016-03-18 08:53:21 -07:00
Frank Groeneveld
719a43ca35 Cli binary can now be build on OpenBSD
Signed-off-by: Frank Groeneveld <frank@frankgroeneveld.nl>
2016-03-18 14:56:21 +01:00
Sebastiaan van Stijn
d2a8621b20 Merge pull request #21316 from estesp/daemon-dump-stack-note
Add documentation on the stack trace dump capability of the daemon
2016-03-18 14:29:55 +01:00
Phil Estes
ae466aafcb Add documentation on the dump-stack-traces capability of the daemon
Add a paragraph about how to force a stack trace dump to the daemon log.
This feature was added in Docker 1.9 I believe, but documentation was
never added.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-03-18 09:25:18 -04:00
Vincent Demeester
9f00b4b79c Merge pull request #21302 from allencloud/fix-typos-in-several-files
fix typos in several files
2016-03-18 14:06:59 +01:00
Sebastiaan van Stijn
aa6d0f5310 Merge pull request #21321 from dsheets/patch-1
project/ISSUE-TRIAGE.md: fix shinny -> shiny typo
2016-03-18 12:44:42 +01:00
David Sheets
bd061b8df6 ISSUE-TRIAGE: fix shinny -> shiny typo
Signed-off-by: David Sheets <david.sheets@docker.com>
2016-03-18 09:42:49 +00:00
Sebastiaan van Stijn
3d13fddd2b Merge pull request #21318 from wenchma/fix-doc
Update the document error
2016-03-18 09:18:03 +01:00
Wen Cheng Ma
edf0da968c Update the document error
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-03-18 15:23:27 +08:00
Yong Tang
48ccdd46ae Fix flaky test of TestRestartStoppedContainer (#21211).
This fix addressed the issue of test TestRestartStoppedContainer
in #21211. Inside the test, a `docker restart` command is
followed by a `docker logs` command. However, `docker restart`
returns immediately so there is no guarantee that `docker logs`
will wait until the restarted container completes the command
`echo foobar`.

This fix use the check of `{{.State.Running}} = false` to make
sure that the restarted container has already finished, before
invoking the `docker logs` command. The timeout is set to 20s
to make sure it passes WindowsTP4 check.

This fixes #21211.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-18 05:50:23 +00:00
allencloud
f1d34ac2eb fix typos in several files
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-18 12:51:57 +08:00
Sebastiaan van Stijn
46dde68158 Merge pull request #21305 from yongtang/031716-typo
Fix several typos in the documentation.
2016-03-18 01:44:01 +01:00
Brian Goff
6dd69afd37 Merge pull request #21307 from Microsoft/jstarks/fix_long_paths
Windows: revendor Microsoft/hcsshim to v0.1.0
2016-03-17 19:35:03 -04:00
Kenfe-Mickael Laventure
cdd7fddfec Update TestPsShowMounts to also test bind mounts
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-17 15:43:32 -07:00
Kenfe-Mickael Laventure
8451a08ed5 Update filter volume to allow filtering by bind mount source
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-17 15:42:45 -07:00
Kenfe-Mickael Laventure
cb8cc56c22 Fix inspect to print bind mounts source path instead of an empty string
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-17 15:42:45 -07:00
Nalin Dahyabhai
52c0f36f7b Fix a race in cleaning up after journald followers
When following a journal-based log, it was possible for the worker
goroutine, which reads the journal using the journal context and sends
entry data down the message channel, to be scheduled after the function
which started it had returned.  This could create problems, since the
invoking function was closing the journal context object and message
channel before it returned, which could trigger use-after-free segfaults
and write-to-closed-channel panics in the worker goroutine.

Make the cleanup in the invoking function conditional so that it's only
done when we're not following the logs, and if we are, that it's left to
the worker goroutine to close them.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2016-03-17 18:36:21 -04:00
Nalin Dahyabhai
4d200cd693 Fix a race in maintaining the journald reader list
The journald log reader keeps a map of following readers so that it can
close them properly when the journald reader object itself is closed,
but it was possible for its worker goroutine to be scheduled so that the
worker attempted to remove a reader from the map before the reader had
been added to the map.  This patch adds the item to the map before
starting the goroutine which is expected to eventually remove it.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2016-03-17 18:36:21 -04:00
John Starks
b54058bafe Windows: revendor Microsoft/hcsshim to v0.1.0
This (the first tagged hcsshim release) fixes long-path bugs on
Windows TP5 that affect commit and save. These bugs were blocking
commit of Windows containers that had node.js installed.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-17 21:08:07 +00:00
Jessica Frazelle
0e025b4bb1 fix variables that werent being called
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-03-17 13:19:55 -07:00
Alexander Morozov
41c1c6501e Merge pull request #21266 from estesp/dockremap-system-user
Change subordinate range-owning user to be a system user
2016-03-17 11:42:15 -07:00
Yong Tang
3c6aa163a3 Fix several typos in the documentation.
This pull request fixes several typos in the documentation.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-17 18:29:35 +00:00
David Calavera
0910946dc4 Merge pull request #21296 from icecrime/add_programmerq
Add @programmerq to docker/docker curators
2016-03-17 11:18:08 -07:00
Tibor Vass
e6d3a9849c Merge pull request #21003 from riyazdf/hardware-signing-ga
Move hardware signing out of experimental
2016-03-17 14:16:40 -04:00
David Calavera
d3afe34b51 Merge pull request #21292 from runcom/pkg-error-truncindex
pkg: truncindex: provide more info in error
2016-03-17 10:45:56 -07:00
David Calavera
3df99b7fd2 Merge pull request #21295 from rhvgoyal/fix-variable-assignment
Fix the assignment to wrong variable
2016-03-17 10:39:15 -07:00
David Calavera
cb9aeb0413 Consolidate security options to use = as separator.
All other options we have use `=` as separator, labels,
log configurations, graph configurations and so on.
We should be consistent and use `=` for the security
options too.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-17 13:34:42 -04:00
Michael Crosby
2b9ceea896 Merge pull request #21293 from cpuguy83/wtf_gcp
Do not call out to Google on init
2016-03-17 10:32:21 -07:00
David Calavera
b4da157846 Merge pull request #21286 from rhatdan/seccomp-man
Fix documentation on --security-opt seccomp
2016-03-17 10:29:33 -07:00
Arnaud Porterie
9d62c11ab5 Merge pull request #21276 from nerdalert/mcvlan-v6-ci
Remove v6 IT test for experimental macvlan driver
2016-03-17 09:50:02 -07:00
allencloud
73046cb8d8 handle kernel version error in version api
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-18 00:31:50 +08:00
Alexander Morozov
04c7d94c71 Merge pull request #21273 from jfrazelle/remove-dead-code
remove dead code
2016-03-17 09:16:02 -07:00
Arnaud Porterie
441907e2cd Add @programmerq to docker/docker curators
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-03-17 09:08:19 -07:00
Vincent Demeester
8d742bbe2f Merge pull request #21294 from samoht/fix-typo
Fix typo in the triaging guidelines
2016-03-17 16:46:19 +01:00
David Calavera
553ffa7fd7 Merge pull request #21279 from WeiZhang555/typo
Fix typo
2016-03-17 08:20:26 -07:00
Vivek Goyal
4141a00921 Fix the assignment to wrong variable
We should be assigning value to minFreeMetadata instead of minFreeData. This
is copy/paste error.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2016-03-17 15:19:08 +00:00
Thomas Gazagnaire
2d2d1bb2c6 Fix a typo in the triaging guidelines
Spotted by @dgageot

Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
2016-03-17 15:09:13 +00:00
Thomas Gazagnaire
f906ca52ea Remove trailing whitespaces
Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
2016-03-17 15:07:23 +00:00
Brian Goff
24710fd3e2 Do not call out to Google on init
The GCP logging driver is calling out to GCP cloud service on package
init.
This is regardless if you are using GCP logging or not.

This change makes this happen on the first invocation of a new GCP
logging driver instance instead.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-17 11:06:21 -04:00
Antonio Murdaca
ae1002219b pkg: truncindex: provide more info in error
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-17 15:53:12 +01:00
Brent Salisbury
6d43dc99e5 Remove v6 IT test for experimental macvlan driver
-Temporary until we find the source of CI/v6 issue with driver

Signed-off-by: Brent Salisbury <brent@docker.com>
2016-03-17 08:57:52 -04:00
Vincent Demeester
cf9d0c8ae2 Merge pull request #21257 from yongtang/21247-TestRunAttachFailedNoLeak
Fix flaky test TestRunAttachFailedNoLeak in #21247.
2016-03-17 13:47:40 +01:00
Dan Walsh
450fa7536e Fix documentation on --security-opt seccomp
Missing documentation and man pages on seccomp options.
Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2016-03-17 08:04:02 -04:00
Antonio Murdaca
8bbe3de4b3 Merge pull request #21262 from justincormack/newsyscalls
Add new syscalls in libseccomp 2.3.0 to seccomp default profile
2016-03-17 09:37:36 +01:00
Zhang Wei
ca64269165 Fix typo
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-03-17 16:13:51 +08:00
Andrew Guenther
3b6ffc8022 Ensure --hostname is valid
Validates whether the given hostname is RFC 1123
(https://tools.ietf.org/html/rfc1123) compliant.

Fixes #20371

Signed-off-by: Andrew Guenther <guenther.andrew.j@gmail.com>
2016-03-17 00:23:23 -07:00
Arnaud Porterie
9c20d920a6 Merge pull request #21275 from tonistiigi/fix-vendor-vagrantfile
Remove vagrantfiles from vendor
2016-03-16 20:55:28 -07:00
Tonis Tiigi
46da04388f Remove vagrant files from vendor
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-16 20:30:47 -07:00
Yong Tang
1a9f5f4c69 Fix flaky test TestRunAttachFailedNoLeak in #21247.
The issue of the flaky test is because when the second container
starts, the first container in the detached mode may have only
been created and not yet entering the running state. So the
port 8000 might be used by the second container first.

This fix added a check to make sure the first container is already
in running state, before the second container is invoked.

This fix fixes #21247.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-17 03:14:59 +00:00
David Calavera
b1e9a5eaf1 Merge pull request #21258 from runcom/res.body.leaks
*: fix response body leaks
2016-03-16 19:20:10 -07:00
Jessica Frazelle
8dd88afb5b remove dead code
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-03-16 19:15:14 -07:00
Tõnis Tiigi
4227119588 Merge pull request #21261 from aboch/vnd
Vendoring libnetwork v0.7.0-dev.8
2016-03-16 18:56:49 -07:00
Sebastiaan van Stijn
f3acca2fc8 Merge pull request #20962 from lyndaoleary/docs-engine-edits
Edited content in the Hello World section
2016-03-16 23:48:59 +00:00
Phil Estes
c18e7f3a04 Change subordinate range-owning user to be a system user
Change user/group creation to use flags to adduser/useradd to enforce it
being a system user. Use system user defaults that auto-create a
matching group. These changes allow us to remove all group creation
code, and in doing so we also removed the code that finds available uid,
gid integers and use post-creation query to gather the system-generated
uid and gid.

The only added complexity is that today distros don't auto-create
subordinate ID ranges for a new ID if it is a system ID, so we now need
to handle finding a free range and then calling the `usermod` tool to
add the ranges for that ID. Note that this requires the distro supports
the `-v` and `-w` flags on `usermod` for subordinate ID range additions.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-03-16 18:44:10 -04:00
Justin Cormack
96896f2d0b Add new syscalls in libseccomp 2.3.0 to seccomp default profile
This adds the following new syscalls that are supported in libseccomp 2.3.0,
including calls added up to kernel 4.5-rc4:
mlock2 - same as mlock but with a flag
copy_file_range - copy file contents, like splice but with reflink support.

The following are not added, and mentioned in docs:
userfaultfd - userspace page fault handling, mainly designed for process migration

The following are not added, only apply to less common architectures:
switch_endian
membarrier
breakpoint
set_tls
I plan to review the other architectures, some of which can now have seccomp
enabled in the build as they are now supported.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-03-16 21:17:32 +00:00
Alexander Morozov
581fc536a6 Merge pull request #21219 from vdemeester/update-engine-api
Update engine api to use net/context.Context all accross the client API
2016-03-16 14:10:59 -07:00
Alessandro Boch
6223291965 Vendoring libnetwork v0.7.0-dev.8
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-03-16 13:45:34 -07:00
David Calavera
f2b1b44de8 Merge pull request #21212 from runcom/wip-token-service-tests
distribution: errors: do not access the errors slice if it's empty
2016-03-16 13:44:18 -07:00
Vincent Demeester
8567286ed6 Update api/client file to use context
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-03-16 20:25:09 +01:00
Vincent Demeester
48339017db Vendor engine-api to fba5dc8
It plumbs net/context.Context through entire API, see docker/engine-api#140

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-03-16 20:25:09 +01:00
Vincent Demeester
02476b23a7 Clean Vagrantfile from vendoring
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-03-16 20:25:04 +01:00
David Calavera
f81754811f Merge pull request #21112 from allencloud/validate-configs-from-file
add validating configs from configuration file
2016-03-16 10:42:25 -07:00
Riyaz Faizullabhoy
f7fa83c910 Improve messaging and binary generation for pkcs11
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-16 09:43:06 -07:00
Antonio Murdaca
f0d83c4cdb *: fix response body leaks
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-16 17:15:42 +01:00
Phil Estes
45b2a57d1c Merge pull request #21242 from cyphar/fix-userns-permissions
daemon: use 0711 for /var/lib/docker
2016-03-16 08:49:17 -07:00
David Calavera
eff27d2b77 Merge pull request #21217 from LK4D4/cleanup_gitignore
gitignore: cleanup some not needed entries
2016-03-16 08:24:31 -07:00
David Calavera
3221c7a3c6 Merge pull request #21235 from Microsoft/jstarks/add_npipe_close_write
Windows: fix various npipe bugs
2016-03-16 08:23:39 -07:00
David Calavera
72e39d58b7 Merge pull request #21256 from albers/completion-gelf-compression
bash completion for gelf-compression log driver settings
2016-03-16 08:22:29 -07:00
Harald Albers
854ceaaa9e bash completion for gelf-compression log driver settings
Signed-off-by: Harald Albers <github@albersweb.de>
2016-03-16 15:58:58 +01:00
Vincent Demeester
5f8a0ceeda Merge pull request #21250 from runcom/comment-fix
registry: endpoint_v1: fix outdated comment
2016-03-16 14:35:14 +01:00
Vincent Demeester
bd97e4f95a Merge pull request #21203 from HackToday/fixfilter
Add check about filter name for containers
2016-03-16 14:30:04 +01:00
Antonio Murdaca
137c8601a8 registry: endpoint_v1: fix outdated comment
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-16 12:53:11 +01:00
Aleksa Sarai
e91ca0e239 daemon: use 0711 for /var/lib/docker
This fixes problems encountered when running with a remapped root (the
syscalls related to the metadata directory will fail under user
namespaces). Using 0711 rather than 0701 (which solved the problem
previously) fixes the issue.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
2016-03-16 19:24:03 +11:00
Antonio Murdaca
1b5c2e1d72 distribution: errors: do not access the errors slice if it's empty
- cherry-pick from 1.10.3 branch: 0186f4d422
- add token service test suite
- add integration test (missing in 1.10.3 branch)

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-16 09:00:39 +01:00
Phil Estes
2b1b235acf Merge pull request #21222 from aaronlehmann/pull-with-no-layers
Fix pulling images that contain no layers at all
2016-03-15 23:03:42 -07:00
Alexander Morozov
aa76ddd353 Merge pull request #21233 from aaronlehmann/testtransfer-flakiness
Fix flaky test TestTransfer
2016-03-15 20:59:56 -07:00
Kai Qiang Wu(Kennan)
8a90e8a19b Add check about filter name for containers
Fixes: #21202
We add valid check about filters like network, images,
volumes did.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-03-16 03:53:40 +00:00
John Starks
59573fb3c6 Windows: add support for CloseWrite() to npipe transport
This relies on changes to go-winio to support CloseWrite() when the pipe
is in message mode. This fixes an issue where stdin is not properly closed
when there is no more input to docker run.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-15 18:25:35 -07:00
John Starks
87c2aad6f1 Windows: revendor go-winio with npipe fixes
This revendor provides support for CloseWrite() in the npipe transport,
fixes a performance regression introduced in Go 1.6, and improves
npipe performance by allowing the pipe buffer size to be specified.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-15 18:25:34 -07:00
Phil Estes
133b3cccb5 Merge pull request #21108 from tianon/detect-daemon-osarch
Adjust "hack/make/.detect-daemon-osarch" to be the source of truth for "platform detection"
2016-03-15 17:00:55 -07:00
Sebastiaan van Stijn
354f9a8fd1 Merge pull request #20947 from thaJeztah/fix-pull-examples
Fix Docker pull examples
2016-03-16 00:42:38 +01:00
David Calavera
08603dad63 Merge pull request #21221 from tiborvass/changelog-1.10.3
Changelog from 1.10.3 to master
2016-03-15 16:37:47 -07:00
Sebastiaan van Stijn
32eff909b4 Update Docker pull examples
The old examples no longer worked due to changes in
the client and Docker Hub.

This updates the "docker pull" documentation and
adds more examples and explanation of the features.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-16 00:35:58 +01:00
Aaron Lehmann
2f4aa96584 Fix flaky test TestTransfer
This test was checking that it received every progress update that was
produced. But delivery of these intermediate progress updates is not
guaranteed. A new update can overwrite the previous one if the previous
one hasn't been sent to the channel yet.

The call to t.Fatalf exited the current goroutine which was consuming
the channel, which caused a deadlock and eventual test timeout rather
than a proper failure message.

Failure seen here:
https://jenkins.dockerproject.org/job/Docker-PRs-experimental/16400/console

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-15 16:26:16 -07:00
Antonio Murdaca
cc12d2bfaa Merge pull request #21022 from hqhq/hq_fix_race_resize
Fix race condition with exec and resize
2016-03-15 22:54:55 +01:00
David Calavera
db182507c1 Merge pull request #21128 from allencloud/handle-kernel-and-os-error-in-info-api
handle kernel and os info error in /info api
2016-03-15 14:42:57 -07:00
Antonio Murdaca
4adf74ad42 Merge pull request #21117 from justincormack/restart_syscall
Allow restart_syscall in default seccomp profile
2016-03-15 22:41:14 +01:00
Antonio Murdaca
6852d87659 Merge pull request #21193 from amitkris/flush_fix
Remove flush(stdout) in pkg/chrootarchive/diff_unix.go
2016-03-15 22:40:37 +01:00
David Calavera
bb23b20ee7 Merge pull request #21110 from hypriot/fix-arm-kernel-modules
Improve checking dummy kernel module
2016-03-15 14:39:45 -07:00
David Calavera
a2039f117c Merge pull request #21218 from runcom/len-check-fix
daemon: update: check len inside public function
2016-03-15 14:37:19 -07:00
Antonio Murdaca
0f59b0b12c Merge pull request #19831 from cloudflare/optimize-gelf
GELF logger: Add gelf-compression-type and gelf-compression-level
2016-03-15 22:35:46 +01:00
Jess Frazelle
6c2f4381d3 Merge pull request #21226 from calavera/fix_experimental_deb_builds
Move debian rules to the right place before creating the package.
2016-03-15 13:37:20 -07:00
David Calavera
027f4fdca6 Move debian rules to the right place before creating the package.
debhelper has changed the way it performs path validations and
building the deb package fails when it tries to compress the files.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-15 16:17:38 -04:00
Aaron Lehmann
7cf894ce10 Fix pulling images that contain no layers at all
The download manager assumed there was at least one layer involved in
all images. This can be false if the image is essentially a copy of
`scratch`.

Fix a nil pointer dereference that happened in this case. Add
integration tests that involve schema1 and schema2 manifests.

Fixes #21213

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-15 11:10:03 -07:00
Tibor Vass
b5725434c6 Update CHANGELOG with reverts
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 320d17b2a2)
2016-03-15 14:02:49 -04:00
Antonio Murdaca
1f4e87f638 distribution: registry: do not access the errors slice if it's empty
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
(cherry picked from commit 0186f4d422)
2016-03-15 14:02:48 -04:00
Tibor Vass
1c64becab6 Update CHANGELOG for 1.10.3
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit f334602538)
2016-03-15 14:01:57 -04:00
Amit Krishnan
a9c6169138 Remove flush(stdout) in pkg/chrootarchive/diff_unix.go and improve error reporting of flush() to fix #21103
pkg/chrootarchive/diff_unix.go erroneously calls flush on stdout, which tries to read from stdout returning an error.
This has been fixed by removing the call and by modifying flush to return errors and checking for these errors on calls to flush.

Signed-off-by: Amit Krishnan <krish.amit@gmail.com>
2016-03-15 10:29:51 -07:00
David Calavera
6f2d8b411e Merge pull request #21162 from estesp/copyastar-dir-create
Fix CopyWithTar creation of new destination dir as remapped root
2016-03-15 10:26:30 -07:00
Antonio Murdaca
bb05c18892 daemon: update: check len inside public function
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-15 17:24:25 +01:00
Phil Estes
69f297bfee Merge pull request #21191 from tophj-ibm/ppc64le-update-dockerfile
ppc64le: update dockerfile hashes and notary
2016-03-15 09:17:45 -07:00
allencloud
825b582207 add validating configs from configuration file
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-16 00:05:52 +08:00
Tim Hockin
53c5de2921 Don't smoosh hostname and domainname in API
This allows users to provide a FQDN as hostname or to use distinct hostname and
domainname parts.  Depends on https://github.com/docker/libnetwork/pull/950

Signed-off-by: Tim Hockin <thockin@google.com>
2016-03-15 08:32:35 -07:00
Phil Estes
21e531014d Merge pull request #20177 from jheiss/12076-net_hostname
Allow --hostname with --net=host
2016-03-15 08:17:25 -07:00
Alexander Morozov
29fbc9cc1d gitignore: cleanup some not needed entries
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-15 07:33:05 -07:00
allencloud
b0fb0f1993 handle kernel and os info error in /info api
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-15 20:23:15 +08:00
Sebastiaan van Stijn
daabb45d0a Merge pull request #21196 from LK4D4/detect_leaks_util
integration-cli: move goroutines info helpers to separate funcs
2016-03-15 12:42:47 +01:00
Daniel Dao
bd94baa353 add gelf option to customize compression type and level
this allows user to choose the compression type (i.e. gzip/zlib/none) using
--log-opt=gelf-compression-type=none or the compression level (-1..9) using
--log-opt=gelf-compression-level=0 for gelf driver.

Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2016-03-15 11:06:06 +00:00
Vincent Demeester
43b5e1ed40 Merge pull request #21205 from geekylucas/21195-update-docs-debian-image-size
Update docs: A more accurate size for debian image
2016-03-15 11:18:27 +01:00
Sebastiaan van Stijn
68ca76320f Merge pull request #21190 from runcom/cleanup
*: remove unused stuff
2016-03-15 11:13:10 +01:00
Vincent Demeester
f9fe796eab Merge pull request #21209 from HackToday/fixdocps
Add the missed volume filter
2016-03-15 10:59:52 +01:00
Kai Qiang Wu(Kennan)
b1619766c0 Add the missed volume filter
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-03-15 09:26:41 +00:00
Lucas Chan
2f634e4691 Update docs: A more accurate size for debian image
Fixes: #21195

The current size of the debian image is 125.1 MB so I have updated the Markdown to say "under 150". Also removed "extremely" (minimal) as requested.  Documentation built and tested using `make docs`.

Signed-off-by: Lucas Chan <lucas-github@lucaschan.com>
2016-03-15 18:29:06 +11:00
Brian Goff
37a1fadae6 Merge pull request #21097 from thaJeztah/dont-run-without-udev-sync
Fail when devicemapper doesn't support udev-sync
2016-03-14 21:18:01 -04:00
Vincent Batts
bfed97b688 Merge pull request #20786 from rhvgoyal/min-free-space
devmapper: Add a new option dm.min_free_space_percent
2016-03-14 20:10:43 -04:00
Brian Goff
f500951598 Merge pull request #20121 from solganik/master
syslog format
2016-03-14 20:09:15 -04:00
Alexander Morozov
0c7c9df804 integration-cli: move goroutines info helpers to separate funcs
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-14 15:52:56 -07:00
David Calavera
d8539347bf Merge pull request #20111 from twistlock/19995_skip_user_ns
Run privileged containers when userns are specified - feature proposal
2016-03-14 15:11:55 -07:00
Brian Goff
01f165169b Merge pull request #21151 from mountkin/optimize-test
optimize slow tests
2016-03-14 16:39:01 -04:00
Sebastiaan van Stijn
fa8417d9ef Merge pull request #21192 from ohadschn/master
Fix Remote API doc double slash typo in cURL command
2016-03-14 21:34:48 +01:00
Vincent Demeester
90ce409e35 Merge pull request #20949 from imjching/master
Fix typo for download and upload retry messages
2016-03-14 21:08:49 +01:00
Ohad Schneider
e31217fbc4 Fix Remote API doc typo in cURL command
Either a single slash or localhost should be specified after http in the cURL URL, not http:// (double slash)

Signed-off-by: ohadschn <ohad188@gmail.com>
2016-03-14 21:15:38 +02:00
David Calavera
c5aedcdac9 Merge pull request #21149 from yongtang/21124-TestJSONFormatProgress
Fix flaky test TestJSONFormatProgress (#21124)
2016-03-14 11:50:50 -07:00
Christopher Jones
2bcf50bdd4 ppc64le: update dockerfile hashes and notary
Now that we are using gc/go 1.6, update a few hashes as well
as actually building the notary binary

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-03-14 14:36:20 -04:00
Antonio Murdaca
59648fc1e9 *: remove unused stuff
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-14 18:41:30 +01:00
Stefan Scherer
53ba08c874 Improve checking dummy kernel module
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2016-03-14 18:25:24 +01:00
moxiegirl
7ae1990526 Merge pull request #21158 from thaJeztah/add-alias-for-removed-docs
Add redirects for old Docker Cloud tutorial
2016-03-14 10:24:12 -07:00
David Calavera
df20b5cfd3 Merge pull request #21002 from tonistiigi/fix-id-noprefix
Fix docker run for 64 byte hex ID
2016-03-14 10:17:38 -07:00
David Calavera
8e74cf59d0 Merge pull request #21048 from LK4D4/fix_attach_leak
daemon: fix hanging attaches on initial start failures
2016-03-14 10:16:45 -07:00
Brian Goff
3d42393e7f Merge pull request #21161 from Microsoft/jjh/TestLogsPerformanceProblem
Windows: Improve TestLogsContainers performance
2016-03-14 13:04:16 -04:00
Jay
f8d14bd4c6 Fix typo for download and upload retry messages
Signed-off-by: Jay <jay@imjching.com>
2016-03-15 00:56:19 +08:00
Aaron Lehmann
0b962f72a9 Merge pull request #21159 from runcom/fix-retry-push-bug
distribution: errors: do not retry if no credentials provided
2016-03-14 09:47:13 -07:00
David Calavera
3771a1713b Merge pull request #21131 from estesp/gcc-devmapper-test-broken
Fix gcc compile test with proper flag ordering
2016-03-14 09:46:49 -07:00
David Calavera
d95723f5ef Merge pull request #21123 from justincormack/libseccomp23
Update statically linked libseccomp to 2.3.0
2016-03-14 09:45:29 -07:00
Tianon Gravi
e84a303543 Add explicit code to handle older versions of Docker, too
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-03-14 09:30:45 -07:00
Yong Tang
d17bb23ae6 Fix flaky test TestJSONFormatProgress (#21124)
In TestJSONFormatProgress, the progress string was used for comparison.
However, the progress string (progress.String()) uses time.Now().UTC()
to generate the timeLeftBox which is not a fixed value and cannot be
compared reliably.

This PR fixes the issue by stripping the timeLeftBox field before doing
the comparison.

This PR fixes #21124.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-14 16:00:12 +00:00
Liron Levin
6993e891d1 Run privileged containers when userns are specified
Following #19995 and #17409 this PR enables skipping userns re-mapping
when creating a container (or when executing a command). Thus, enabling
privileged containers running side by side with userns remapped
containers.

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

Signed-off-by: Liron Levin <liron@twistlock.com>
2016-03-14 17:09:25 +02:00
Vincent Demeester
b9361f02da Merge pull request #20970 from dmcgowan/login-oauth
OAuth support for registries
2016-03-14 15:49:44 +01:00
Sebastiaan van Stijn
f480c69625 Merge pull request #20990 from sds/fix-data-volume-rest-api-docs
Fix documentation for creating containers with data volumes
2016-03-14 15:06:40 +01:00
Brian Goff
93e04e705a Merge pull request #21134 from tophj-ibm/fix-logtest-on-empty-log
Fix error-checking when looking at empty log
2016-03-14 10:00:57 -04:00
Sebastiaan van Stijn
30999ba50c Merge pull request #21138 from tophj-ibm/add-notary-binary-test-requirement
Add notary binary requirement for tests
2016-03-14 13:34:06 +01:00
Sebastiaan van Stijn
f43683d60d Fix flaky TestUpdateRestartPolicy on Windows
Add another 30 seconds, because it still fails sometimes :'(

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-14 12:49:24 +01:00
Antonio Murdaca
6d23c3c57a integration-cli: add tests for case a) and d) in #21054
- add test for pull from private registry with no credentials
- add test for push to docker hub with no credentials

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
Signed-off-by: Antonio Murdaca <amurdaca@localhost.localdomain>
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-14 12:43:10 +01:00
Vincent Demeester
901c67a8ee Merge pull request #21160 from mavenugo/staleep
Include all endpoints in network inspect object
2016-03-14 11:36:04 +01:00
Lei Jitang
d4a4cb99e3 Merge pull request #21177 from HackToday/fixtypo
Fix the typo url and info
2016-03-14 16:09:20 +08:00
Kai Qiang Wu(Kennan)
f6bd62a8d7 Fix the typo url and info
Some info is not consistent between context and word.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-03-14 06:34:08 +00:00
Sebastiaan van Stijn
f3485bc125 Merge pull request #21120 from lirantal/feature/21119-docker-config-for-windows
closes #21119 updating documentation for Windows and OSx users
2016-03-14 01:38:26 +01:00
Madhu Venugopal
2ef00ba89f Include all endpoints in network inspect object
Prior to this change, the "docker network inspect" contains only the
endpoints that have active local container. This excludes all the remote
and stale endpoints. By including all the endpoints, it makes debugging
much simpler and also allows the user to cleanup any stale endpoints
using "docker network disconnect -f {network} {endpoint-name}".

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-03-13 16:58:53 -07:00
Alexander Morozov
2d74f78ab5 Merge pull request #21122 from mavenugo/mviv
Vendor libnetwork v0.7.0-dev.7 : Experimental MacVlan and IPVlan network drivers
2016-03-13 11:32:58 -07:00
Liran Tal
d2aa521822 closes #21119 - updating documentation for Windows and OSx users
Updating Docker's documentation file docker configuration file on Windows hosts.
This is of importance for Windows users whom are utilizing the Docker Toolbox.

Signed-off-by: Liran Tal <liran.talh@gmail.com>
2016-03-13 17:55:34 +02:00
Brian Goff
a04e16ac35 Merge pull request #20977 from allencloud/fix-delete-response-status-code
return status code http.StatusNoContent in deleting network when OK
2016-03-13 11:30:32 -04:00
Phil Estes
06d95003b3 Fix CopyWithTar creation of new destination dir as remapped root
If the destination does not exist, it needs to be created with ownership
mapping to the remapped uid/gid ranges if user namespaces are enabled.
This fixes ADD operations, similar to the prior fixes for COPY and WORKDIR.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-03-12 23:05:45 -05:00
John Howard
8ff884548f Fix TestLogsContainers performance
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-12 16:15:14 -08:00
Vincent Demeester
ed6fb41321 Merge pull request #21155 from mountkin/broken-links
docs: fix broken links
2016-03-12 23:53:24 +01:00
Antonio Murdaca
497d545093 distribution: errors: do not retry if no credentials provided
Fix and add test for case c) in #21054

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-12 20:41:47 +01:00
Jess Frazelle
4e7df42aa8 Merge pull request #21150 from cyphar/fix-pids-stats
client: stats: fill in stats info on client
2016-03-12 11:25:15 -08:00
Sebastiaan van Stijn
c46ab3d593 Merge pull request #21154 from runcom/fix-typos-1
docs: add $ before HOME
2016-03-12 15:15:48 +01:00
Shijiang Wei
36506b7944 docs: fix broken links
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-03-12 21:24:55 +08:00
Antonio Murdaca
219e5fdda3 docs: add $ before HOME
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-12 14:11:01 +01:00
Sebastiaan van Stijn
94336cb5dd Add redirects for old Docker Cloud tutorial
This page has been deleted from the Docker Cloud tutorials,
so adding redirects for the old locations.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-12 13:51:26 +01:00
Shijiang Wei
7369ddd89f speed up DockerSuite.TestRunApparmorProcDirectory
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-03-12 18:58:29 +08:00
Shijiang Wei
fc284a8569 speed up DockerSuite.TestRunContainerWithReadonlyRootfs
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-03-12 18:58:03 +08:00
Vincent Demeester
b7aae84b5f Merge pull request #21145 from Microsoft/jjh/fixunittestfailures
Windows CI: Fix unit test failures
2016-03-12 10:48:18 +01:00
Aleksa Sarai
084241a37b client: stats: fill in stats info on client
This code was lost in a rebase in the PIDs cgroup merge, fix it so that
`docker stats` actually shows statistics from the PIDs cgroup.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-03-12 14:45:30 +11:00
John Howard
1fbaf6ee8b Windows CI: Fix unit test failures
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-11 19:31:08 -08:00
Arnaud Porterie
77f501a0c6 Merge pull request #21140 from Microsoft/FlakyTestFix
Fixing flaky tests on Windows (again)
2016-03-11 18:49:38 -08:00
Tibor Vass
c73f2c95cb Merge pull request #21017 from cpuguy83/use_forked_gocheck
Use forked gocheck
2016-03-11 20:42:44 -05:00
Brent Salisbury
9cb6b51fa2 docs for experimental vlan net drivers
Signed-off-by: Brent Salisbury <brent@docker.com>
2016-03-11 16:01:01 -08:00
Brent Salisbury
afeea8c9ca Experimental it for net vlan drivers
Signed-off-by: Brent Salisbury <brent@docker.com>
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-03-11 16:00:27 -08:00
Sebastiaan van Stijn
471a1aeda8 Merge pull request #21047 from icecrime/update_patch_process
Update patch release process
2016-03-12 00:44:01 +01:00
Arnaud Porterie
9596e3c501 Update patch release process
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-03-11 15:40:19 -08:00
Darren Stahl
b756f89e1d Fixing flaky tests on Windows (again)
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-03-11 14:48:52 -08:00
Christopher Jones
db700a678d Add notary binary requirement for tests
This PR adds the "notary" binary requirement for tests.

Previously, NotaryHosting was checking for the "notary-server"
binary under the name notaryBinary. This renames that reference to
notaryServerBinary, so that notaryBinary can rightly refer
to the actual "notary" binary.

Currently only one test actually uses the notary binary, so it's been
updated accordingly.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-03-11 17:36:12 -05:00
Madhu Venugopal
9047cd40c2 Vendor libnetwork v0.7.0-dev.7
* Experimental support for macvlan and ipvlan drivers

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-03-11 14:22:25 -08:00
Alexander Morozov
e2d245ad81 Merge pull request #21076 from calavera/fix_builtin_graphdriver_init
Make sure we call every graph init with the same root path.
2016-03-11 14:20:39 -08:00
David Calavera
ed6e33eede Make sure we call every graph init with the same root path.
Remove O(n^2) check for several prior configured drivers.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-11 17:15:55 -05:00
Sebastiaan van Stijn
81b7a1b756 Merge pull request #21077 from moxiegirl/carry-20160
Document Volume Removal in User Guide
2016-03-11 22:08:25 +01:00
Aditi Rajagopal
ae66d536a5 Document Volume Removal in User Guide
Resolves: #20113
Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>

Carry #20160
Tighten language
Updating with comments
Removing articles which is empty
Adding Brian's comments
Putting back what I took out

Signed-off-by: Mary Anthony <mary@docker.com>
2016-03-11 12:29:47 -08:00
Christopher Jones
2a02914892 Fix error-checking when looking at empty log
Fixes a bug when the log output is empty.

The length of a slice containing an empty string is 1, not 0, so
the test fails to catch when the log is empty. Instead, take a look at
out, which is just a string.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-03-11 15:09:00 -05:00
Phil Estes
e207645307 Fix gcc compile test with proper flag ordering
This test for libdevmapper was always silently failing because the
linker never got the `-ldevmapper` information. Putting the flag last
corrects the test.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-03-11 15:08:58 -05:00
Brian Goff
11d3f7092e use per-check timeouts
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-11 14:38:52 -05:00
Brian Goff
e6e0837cbb Use forked gocheck and vendor
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-11 14:38:50 -05:00
Arnaud Porterie
949e53a0f1 Merge pull request #21127 from icecrime/add_john_maintainer
Add @jhowardmsft to maintainers
2016-03-11 11:14:37 -08:00
Arnaud Porterie
11d10b77ac Add @jhowardmsft to maintainers
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-03-11 10:47:14 -08:00
David Calavera
9842c7a741 Merge pull request #21129 from allencloud/fix_typos
fix typos
2016-03-11 10:16:40 -08:00
Tonis Tiigi
16e4c4e481 Fix docker run for 64 byte hex ID
Fixes #20972

Also makes sure there is no check to registry if
no image is found for the prefixed IDs.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-03-11 10:02:47 -08:00
David Calavera
12c67f42d8 Merge pull request #21100 from aaronlehmann/remove-windows-specific-registry
Remove Windows-specific default registry definitions
2016-03-11 09:31:55 -08:00
Justin Cormack
5abd881883 Allow restart_syscall in default seccomp profile
Fixes #20818

This syscall was blocked as there was some concern that it could be
used to bypass filtering of other syscall arguments. However none of the
potential syscalls where this could be an issue (poll, nanosleep,
clock_nanosleep, futex) are blocked in the default profile anyway.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-03-11 16:44:11 +00:00
Tibor Vass
1c0474ed63 Merge pull request #20476 from wenchma/19425-TestDaemonStartWithDaemonCommand
Optimize slow bottleneck tests of TestDaemonStartWithDaemonCommand
2016-03-11 10:54:48 -05:00
allencloud
bbeb859b64 fix typos
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-11 23:22:16 +08:00
Daniel Dao
ae6ee5e4af upgrade go-gelf vendor
Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2016-03-11 15:18:58 +00:00
Justin Cormack
68bda672dc Update statically linked libseccomp to 2.3.0
Fixes #20550

This update to libseccomp supports the new versions of socket
system calls that can be called directly rather than via the
socketcall syscall in kernel versions 4.3 or later with new glibc.

Note this library version now supports s390x and ppc64le, so
seccomp can be potentially be enabled for these architectures now.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-03-11 13:01:30 +00:00
Tianon Gravi
a667cd88c3 Adjust "hack/make/.detect-daemon-osarch" to be the source of truth for "platform detection"
Instead of being split between three files, let's let `hack/make/.detect-daemon-osarch` be our single source of truth for multiarch detection/vars.  Not only does it make it slightly easier to make sure we change everything properly when these bits have to change, but it also makes it so that all bits of `hack/make.sh` (especially `hack/make/.ensure-frozen-images`) work properly outside the context of the `Makefile` on all platforms.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-03-10 20:07:21 -08:00
Brian Goff
9ad946eded Merge pull request #21098 from kencochrane/fix_vendoring_script_macosx
Fix the vendoring script on MacOS X
2016-03-10 22:45:55 -05:00
Aaron Lehmann
87535ca2e9 Remove Windows-specific default registry definitions
Going forward, Docker won't use a different default registry on Windows.
This changes Windows to use the standard Docker Hub registry as the
default registry.

There is a plan in place to migrate existing images from the Windows
registry to Hub's normal registry, in advance of the 1.11 release. In
the mean time, images on the Windows registry can be accessed by
prefixing them with `registry-win-tp3.docker.io/`.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-10 18:33:14 -08:00
Qiang Huang
dc56a76bc9 Fix race condition with exec and resize
When I use `docker exec -ti test ls`, I got error:
```
ERRO[0035] Handler for POST /v1.23/exec/9677ecd7aa9de96f8e9e667519ff266ad26a5be80e80021a997fff6084ed6d75/resize returned error: bad file descriptor
```

It's because `POST /exec/<id>/start` and
`POST /exec/<id>/resize` are asynchronous, it is
possible that exec process finishes and ternimal
is closed before resize. Then `console.Fd()` will
get a large invalid number and we got the above
error.

Fix it by adding synchronization between exec and
resize.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-03-11 09:59:50 +08:00
Ken Cochrane
94445b2fea Put back the hack that was originally in place.
Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
2016-03-10 20:27:44 -05:00
Brian Goff
edf3c0f112 Merge pull request #21102 from tiborvass/template-improve-contrast
Improve github templates
2016-03-10 20:18:30 -05:00
Sebastiaan van Stijn
1d094255d5 Merge pull request #21045 from calavera/registry_config_options
Move registry service options to the daemon configuration.
2016-03-11 00:48:55 +01:00
Tibor Vass
8d9396c5f9 Improve github templates
Add more contrast and change `you` to `I` in pull requests template.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-03-10 18:42:44 -05:00
Ken Cochrane
9488696814 Fix the vendoring script on MacOS X
The version of sed on MacOS X is different then the one on linux. The mac version
requires a parameter for the inline (-i) flag, where this isn't required on linux.
On the mac it thinks the -e flag is the parameter, and it causes the vendoring script
to fail.

This fix adds an empty string '' as a parameter to sed, which works fine on both the
mac and linux versions.

Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
2016-03-10 16:43:53 -05:00
Sebastiaan van Stijn
496aca386a Merge pull request #20190 from rhatdan/volumeMan
Add a parent man page for docker volumes command
2016-03-10 22:36:50 +01:00
Arnaud Porterie
2b8e7ad460 Merge pull request #20478 from msabansal/HNSIntegration
Windows libnetwork integration
2016-03-10 13:33:04 -08:00
Sebastiaan van Stijn
de64171510 Fail when devicemapper doesn't support udev-sync
Now what we provide dynamic binaries for all plaforms,
we shouldn't try to run docker without udev sync support.

This change changes the previous warning to an Error,
unless the user explicitly overrides the warning, in
which case they're at their own risk.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-10 19:13:44 +01:00
David Calavera
59586d02b1 Move registry service options to the daemon configuration.
Allowing to set their values in the daemon configuration file.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-10 11:53:11 -05:00
David Calavera
9ff7439162 Merge pull request #20983 from Microsoft/jstarks/fix_save_powershell_remoting
Windows: Revendor github.com/Microsoft/go-winio
2016-03-10 08:28:36 -08:00
David Calavera
790d8f8520 Merge pull request #21018 from hqhq/hq_fix_race_exec_tty
Fix race condition when exec with tty
2016-03-10 08:27:54 -08:00
Alexander Morozov
943ae26bc0 Merge pull request #20958 from calavera/basic_function_templates
Provide basic string manipulation functions for template executions.
2016-03-10 08:08:32 -08:00
Alexander Morozov
7bb815e296 daemon: fix hanging attaches on initial start failures
Attach can hang forever if there is no data to send. This PR adds notification
of Attach goroutine about container stop.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-10 07:38:46 -08:00
Dan Walsh
04e9087d5d Merge branch 'master' of github.com:docker/docker into volumeMan
Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2016-03-10 09:39:16 -05:00
Sebastiaan van Stijn
e7093a95cf Merge pull request #21043 from runcom/plugin-sdk
docs: extend: plugins: mention the sdk + systemd socket activation
2016-03-10 15:12:23 +01:00
Antonio Murdaca
97e07ca10a docs: extend: plugins: mention the sdk + systemd socket activation
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-10 12:17:06 +01:00
Sebastiaan van Stijn
f70f570641 Merge pull request #21073 from moxiegirl/close-carry-20377
Add missing fields for NetworkSettings
2016-03-10 10:59:15 +01:00
msabansal
e8026d8a98 Windows libnetwork integration
Signed-off-by: msabansal <sabansal@microsoft.com>
2016-03-09 20:33:21 -08:00
Aaron Lehmann
49485b769c Merge pull request #21063 from allencloud/fix-typos
fix some typos.
2016-03-09 20:24:56 -08:00
Brian Goff
d99be399c3 Merge pull request #21019 from aboch/se
Add port configs to Sandbox and libnetwork vendoring
2016-03-09 22:27:37 -05:00
allencloud
34b82a69b9 fix some typos.
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-10 10:09:27 +08:00
Arnaud Porterie
bd7c95e306 Merge pull request #21074 from mlaventure/test-userns-centos
Update UserNamespaceInKernel test requirement to handle redhat
2016-03-09 17:53:13 -08:00
Jason Heiss
3f445e63b4 Allow --hostname with --net=host
Docker creates a UTS namespace by default, even with --net=host, so it
is reasonable to let the user set the hostname. Note that --hostname is
forbidden if the user specifies --uts=host.

Closes #12076
Signed-off-by: Jason Heiss <jheiss@aput.net>
2016-03-09 20:40:12 -05:00
David Calavera
8514880997 Provide basic string manupilation functions for template executions.
This change centralizes the template manipulation in a single package
and adds basic string functions to their execution.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-09 19:37:12 -05:00
Alessandro Boch
b8a5fb76ea Add Exposed ports and port-mapping configs to Sandbox
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-03-09 14:07:23 -08:00
Derek McGowan
76cd0f6811 Update docs to mention identity token usage for /auth
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2016-03-09 13:47:57 -08:00
Aaron Lehmann
ba0aa5311a Add support for identity tokens in client credentials store
Update unit test and documentation to handle the new case where Username
is set to <token> to indicate an identity token is involved.

Change the "Password" field in communications with the credential helper
to "Secret" to make clear it has a more generic purpose.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-09 13:47:57 -08:00
Aaron Lehmann
a6d0c66b4c Change Docker client to support OAuth-based flow for login
This mechanism exchanges basic auth credentials for an identity token.
The identity token is used going forward to request scoped-down tokens
to use for registry operations.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-09 13:47:57 -08:00
Derek McGowan
e896d1d7c4 Add support for identity token with token handler
Use token handler options for initialization.
Update auth endpoint to set identity token in response.
Update credential store to match distribution interface changes.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2016-03-09 13:47:57 -08:00
Derek McGowan
5730259f32 Vendor updates to distribution
Pull in changes for refresh token in the registry client

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2016-03-09 13:47:57 -08:00
David Calavera
fcff343cb4 Merge pull request #21067 from LK4D4/remove_comment
Remove obsolete comment
2016-03-09 13:27:12 -08:00
Kanstantsin Shautsou
205844875c Add missing fields for NetworkSettings
Dump from 1.10.1 has this fields.

Signed-off-by: Kanstantsin Shautsou <kanstantsin.sha@gmail.com>

Close and carry #20377
Include David's request

Signed-off-by: Mary Anthony <mary@docker.com>
2016-03-09 12:43:48 -08:00
Kenfe-Mickael Laventure
6cbff9505c Update UserNamespaceInKernel test requirement to handle redhat
On redhat based distribution, checking that USER_NS is compiled in the
kernel is not sufficient, we also have to check that the feature as
been enabled.

With this commit, it is now done by checking the content of
`/sys/module/user_namespace/parameters/enable`.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-03-09 12:42:59 -08:00
Solganik Alexander
1a40dd535f Fixes #18712. Add rfc5424 log format for syslog.
Previously docker used obsolete rfc3164 syslog format for syslog. rfc3164 explicitly
uses semicolon as a separator between 'TAG' and 'Content' section of the log message.
Docker uses semicolon as a separator between image name and version tag.
When {{.ImageName}} was used as a tag expression and contained ":" syslog parser mistreated
"tag" part of the image name as syslog message body, which resulted in incorrect "syslogtag" been reported by syslog
daemon.
Use of rfc5424 log format partually fixes the issue as it does not use semicolon as a separator.
However using default rfc5424 syslog format itroduces backward incompatability because rsyslog template keyword  %syslogtag%
is parsed differently. In rfc3164 it uses the "TAG" part reported before the "pid" part. In rfc5424 it uses "appname" part reported
before the pid part, while tag part is introduced by %msgid% part.
For more information on rsyslog configuration properties see: http://www.rsyslog.com/doc/master/configuration/properties.html

Added two options to specify logging in either rfc5424, rfc3164 format or unix format omitting hostname in order to keep backwards compatability with
previous versions.

Signed-off-by: Solganik Alexander <solganik@gmail.com>
2016-03-09 22:31:11 +02:00
Solganik Alexander
f988741823 Fixes #18712: Vendoring srslog to latest version.
In order to solve the issue metioned in  https://github.com/docker/docker/issues/18712
it is required to use rfc5424 log formatted message, made available in latest srslog library.

Signed-off-by: Solganik Alexander <solganik@gmail.com>
2016-03-09 22:28:51 +02:00
Brian Goff
9bfdb93e3a Merge pull request #21053 from WeiZhang555/vendor-engine-api
Vendor docker/engine-api
2016-03-09 15:19:26 -05:00
Alexander Morozov
8706c5124a Remove obsolete comment
There is no more race

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-09 09:38:39 -08:00
Tõnis Tiigi
f97ab358cb Merge pull request #21013 from calavera/events_since_nano
Compare event nanoseconds properly to filter since a specific date.
2016-03-09 09:30:54 -08:00
David Calavera
016be53236 Merge pull request #21056 from askb/optimize-TestBuildUsersAndGroups
Optimized integration test case DockerSuite.TestBuildUsersAndGroups fixes #19425
2016-03-09 09:15:01 -08:00
allencloud
94c929099f 1.return status code http.StatusNoContent in deleting network when successful
2.modify docker_api_network_test.go
3.modify docker_remote_api_v1.23.md

Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-10 00:28:55 +08:00
Phil Estes
5d3ae7f989 Merge pull request #20965 from yongtang/19425-DockerSuite.TestRunUnshareProc
Optimize slow bottleneck test of DockerSuite.TestRunUnshareProc.
2016-03-09 10:32:09 -05:00
Sebastiaan van Stijn
faacbcf53e Merge pull request #20930 from cloojure/patch-3
Update dockernetworks.md
2016-03-09 15:58:38 +01:00
Anil Belur
deeb5c95e2 Optimized integration test case DockerSuite.TestBuildUsersAndGroups for #19425
Removed unnecessary RUN statements and combined some of the RUN statement into a single line.

The runtime performance is seen as follows:
pre-change:
PASS: docker_cli_build_test.go:3826: DockerSuite.TestBuildUsersAndGroups
63.074s

post-change:
PASS: docker_cli_build_test.go:3826: DockerSuite.TestBuildUsersAndGroups
49.698s

Signed-off-by: Anil Belur <askb23@gmail.com>
2016-03-09 18:00:56 +05:30
Zhang Wei
f446771f0b Vendor docker/engine-api
Vendor docker/engine-api 9bab0d5b73872e53dfadfa055dcc519e57b09439

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-03-09 15:52:44 +08:00
Antonio Murdaca
3d09842713 Merge pull request #21033 from estesp/workdir-perms-userns
Ensure WORKDIR is created with remapped root ownership
2016-03-09 07:22:08 +01:00
Alessandro Boch
5a65408941 Vendoring libnetwork v0.7.0-dev.5
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-03-08 18:47:02 -08:00
Tianon Gravi
0771230daa Merge pull request #20342 from vijaykilari/fix_20325
#20325 : arm64: Use gccgo as bootstrap for compiling golang
2016-03-08 16:11:42 -08:00
Sebastiaan van Stijn
6b0119aefb Merge pull request #20940 from HackToday/fixsave
Refine error message when save non-exist image
2016-03-09 00:59:43 +01:00
David Calavera
a9f2006f10 Compare event nanoseconds properly to filter since a specific date.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-08 17:07:58 -05:00
David Calavera
dd32445ecc Merge pull request #18697 from jfrazelle/pids-cgroup
Add PIDs cgroup support to Docker
2016-03-08 14:03:36 -08:00
David Calavera
76a5ab3b43 Merge pull request #21035 from LK4D4/exec_ids
make TestExecInspectIDs less racy
2016-03-08 13:02:01 -08:00
Sebastiaan van Stijn
95bc1f1ccd Merge pull request #21032 from trishnaguha/docker-group
Creates docker group for non-root access
2016-03-08 21:50:44 +01:00
Brian Goff
6d6919ed79 Merge pull request #20995 from wenchma/ping_timeout
Update ping command timeout to 4 sec
2016-03-08 15:35:00 -05:00
John Starks
845dce8465 Windows: Revendor github.com/Microsoft/go-winio
This fixes docker save when the daemon was launched from a remote
PowerShell session.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-08 12:27:48 -08:00
Tibor Vass
471e434400 Merge pull request #21036 from jfrazelle/fix-release-generation
only add the suites that exist we dont need the script for this
2016-03-08 15:11:49 -05:00
Brian Goff
dc702b6c6b Merge pull request #20727 from mrunalp/no_new_priv
Add support for NoNewPrivileges in docker
2016-03-08 14:26:15 -05:00
David Calavera
38e1cd1dc1 Merge pull request #20975 from runcom/secretservice-creds-store
cliconfig: credentials: set default for unix
2016-03-08 11:17:12 -08:00
Jessica Frazelle
0ab5805c08 only add the suites that exist we dont need the script for this
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-03-08 11:08:00 -08:00
Alexander Morozov
8dd8ec137e make TestExecInspectIDs less racy
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-08 09:51:39 -08:00
Phil Estes
799a6b94ee Ensure WORKDIR is created with remapped root ownership
Correct creation of a non-existing WORKDIR during docker build to use
remapped root uid/gid on mkdir

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-03-08 11:58:55 -05:00
Jessica Frazelle
69cf03700f pids limit support
update bash commpletion for pids limit

update check config for kernel

add docs for pids limit

add pids stats

add stats to docker client

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-03-08 07:55:01 -08:00
trishnaguha
cdd8d3999f Creates docker group for non-root access
Signed-off-by: trishnaguha <trishnaguha17@gmail.com>
2016-03-08 21:03:14 +05:30
Antonio Murdaca
fe8fa85074 cliconfig: credentials: set default for unix
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-08 09:21:36 +01:00
Wen Cheng Ma
c7a340e2be Update ping command timeout to 4 sec
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-03-08 15:06:58 +08:00
Brian Goff
9e2c4de0de Merge pull request #20961 from Microsoft/FlakeyTestFix
Reenabled TestPsListContainers* tests and increased sleep time
2016-03-07 22:05:58 -05:00
Qiang Huang
021a12ef1b Revert hack in TestExecTTY
It'll weaken this test case, and the flaky test is resolved
by another commit in this PR.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-03-08 10:54:18 +08:00
Qiang Huang
a444b5f60c Fix race condition when exec with tty
I can reproduce this easily on one of my servers,
`docker exec -ti my_cont ls` will not print anything,
without `-t` it acts normally.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-03-08 10:53:34 +08:00
Kai Qiang Wu(Kennan)
ed231d4095 Refine error message when save non-exist image
Fixes: #20709
As discussed in the issue, we need refine the message to
help user more understood, what happened for non-exist image.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-03-08 01:45:19 +00:00
Riyaz Faizullabhoy
2c3e9e5794 Update packaging for yubico
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-07 17:17:15 -08:00
Yong Tang
526c2fe942 Optimize slow bottleneck test of DockerSuite.TestRunUnshareProc.
This fix tries to improve the time to run TestRunUnshareProc
in #19425.
In this fix goroutines are used to run test cases in parallel to
prevent the test from taking a long time to run.
As the majority of the execution time in the tests is from
multiple executions of 'docker run' and each of which takes
several seconds, parallel executions improve the test time.
Since each 'docker run' is independent, the purpose of the
test is not altered in this fix.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-07 23:43:16 +00:00
Vivek Goyal
2e222f69b3 devmapper: Add a new option dm.min_free_space
Once thin pool gets full, bad things can happen. Especially in case of xfs
it is possible that xfs keeps on retrying IO infinitely (for certain kind
of IO) and container hangs. 

One way to mitigate the problem is that once thin pool is about to get full,
start failing some of the docker operations like pulling new images or
creation of new containers. That way user will get warning ahead of time
and can try to rectify it by creating more free space in thin pool. This
can be done either by deleting existing images/containers or by adding more
free space to thin pool.

This patch adds a new option dm.min_free_space to devicemapper graph
driver. Say one specifies dm.min_free_space=10%. This means atleast
10% of data and metadata blocks should be free in pool before new device
creation is allowed, otherwise operation will fail.

By default min_free_space is 10%. User can change it by specifying
dm.min_free_space=X% on command line. A value of 0% will disable the
check.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2016-03-07 20:27:39 +00:00
Brian Goff
5ded3a212b Merge pull request #20852 from wenchma/net-alias
Add tests of unsupported network-scoped alias on default networks
2016-03-07 13:37:12 -05:00
Sebastiaan van Stijn
dc82c2dda9 Merge pull request #20998 from Ralle/Ralle-fix-json
Update dockervolumes.md
2016-03-07 19:35:28 +01:00
Riyaz Faizullabhoy
37fa75b344 Move pkcs11 out of experimental, into GA
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-07 10:07:40 -08:00
Ralle
086d06dce1 Update dockervolumes.md
Fix JSON highlighting

Signed-off-by: Rasmus Abrahamsen <spam@rasmusa.net>
2016-03-07 18:47:45 +01:00
Mrunal Patel
74bb1ce9e9 Add support for NoNewPrivileges in docker
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>

Add tests for no-new-privileges

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

Update documentation for no-new-privileges

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2016-03-07 09:47:02 -08:00
Brian Goff
bc730f3d99 Merge pull request #20982 from Microsoft/jstarks/fix_tp5_commit
Windows: Revendor github.com/Microsoft/hcsshim
2016-03-07 11:20:14 -05:00
Vincent Demeester
64a4a7a191 Merge pull request #20994 from runcom/fix-debugf
api: server: server: remove redunant debugf
2016-03-07 13:32:10 +01:00
Antonio Murdaca
526ddd3512 api: server: server: remove redunant debugf
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-07 09:03:29 +01:00
Shane da Silva
62fef18d69 Fix documentation for creating containers with data volumes
The documentation for Docker 1.10.2 (API version 1.22) mentions under
the "Create a container"[1] section that `HostConfig.Binds` can be given
a "container path" which will automatically "create a new volume for the
container."

I interpreted this to mean it that the following two commands should
have the same net result:

    # Create container with data volume via REST API
    curl --unix-socket /var/run/docker.sock -XPOST \
         http://localhost/containers/create \
         -H"Content-Type: application/json" \
         -d'{
           "Image": "<image-id>",
           ...
           "HostConfig": {
             "Binds": [
               "/some/data/volume"
             ]
           }
         }'

    # Create container with data volume via CLI
    docker create -v /some/data/volume <image-id> <command>

However, this turned out not the be the case, as the former would create
a mount with no source and no corresponding volume:

    ...
    "Mounts": [
      {
        "Source": "",
        "Destination": "/some/data/volume",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": "rprivate"
      }
    ],
    ...
    "Config": {
      ...
      "Volumes": null,
      ...
    }

...whereas the latter would create a volume and mount it:

    ...
    "Mounts": [
      {
        "Name": "9b38af46d6..."
        "Source": "/var/lib/docker/volumes/9b38af46d6.../_data",
        "Destination": "/some/data/volume",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": ""
      }
    ],
    ...
    "Config": {
      ...
      "Volumes": {
        "/some/data/volume": {}
      },
      ...
    }

However, if you instead specify the data volume via the `Volumes` key,
then it works as expected, e.g.

    curl --unix-socket /var/run/docker.sock -XPOST \
         http://localhost/containers/create \
         -H"Content-Type: application/json" \
         -d'{
           "Image": "...",
           ...
           "Volumes": {"/some/data/volume": {}}
          }'

...will create a data volume and mount it.

Thus the documentation is either incorrect, or this is a bug and the
ability to create a data volume via `HostConfig.Binds` does not
work as advertised for API version 1.22 (and likely others).

I concluded that the documentation was incorrect. Since I've only
verified this behavior for Docker 1.10.2, I updated the docs for
API versions 1.22 and 1.23, but this may apply to other versions as
well.

[1] https://docs.docker.com/engine/reference/api/docker_remote_api_v1.22/#create-a-container

Signed-off-by: Shane da Silva <shane@dasilva.io>
2016-03-07 01:34:14 +00:00
Vincent Demeester
86ba0e29f5 Merge pull request #20866 from suiyuan2009/20801-add-ubuntu-notice
add ubuntu arch note
2016-03-06 11:50:18 +01:00
Antonio Murdaca
11b9d7f1ad Merge pull request #20967 from calavera/fix_stop_hanging_on_dead_process
Do not wait for container on stop if the process doesn't exist.
2016-03-06 11:37:59 +01:00
Ziming Dong
b2f1f7ee00 add ubuntu arch note
Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu installation note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu arch note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu installation note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

fix ubuntu installation guide url

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu arch note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu installation note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu arch note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu installation note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

fix ubuntu installation guide url

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu arch note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu installation note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu arch note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

add ubuntu installation note

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>

fix ubuntu installation guide url

Signed-off-by: Ziming Dong <bnudzm@foxmail.com>
2016-03-06 14:19:58 +08:00
John Starks
53b8b8f058 Windows: Revendor github.com/Microsoft/hcsshim
This fixes commit on Windows post-TP4 due to a small change
in behavior in the ExportLayer API.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-05 19:10:32 -08:00
Jess Frazelle
91cafaadac Merge pull request #20981 from justincormack/seccomp_ipc
Add ipc syscall to default seccomp profile
2016-03-05 15:29:19 -08:00
Justin Cormack
31410a6d79 Add ipc syscall to default seccomp profile
On 32 bit x86 this is a multiplexing syscall for the system V
ipc syscalls such as shmget, and so needs to be allowed for
shared memory access for 32 bit binaries.

Fixes #20733

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-03-05 22:12:23 +00:00
Doug Davis
beb17c096d Merge pull request #20978 from allencloud/fix-typo
fix typos
2016-03-05 12:41:37 -05:00
allencloud
2736f77a94 fix typos
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-03-06 00:59:11 +08:00
Brian Goff
160abfbeea Merge pull request #20803 from WeiZhang555/empty-stats-no-stream
Bug fix: stats --no-stream always print zero values
2016-03-05 08:47:41 -05:00
Zhang Wei
ea86c30a4a Bug fix: stats --no-stream always print zero values
`docker stats --no-stream` always print zero values.

```
$ docker stats --no-stream
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %
NET I/O             BLOCK I/O
7f4ef234ca8c        0.00%               0 B / 0 B           0.00%
0 B / 0 B           0 B / 0 B
f05bd18819aa        0.00%               0 B / 0 B           0.00%
0 B / 0 B           0 B / 0 B

```

This commit will let docker client wait until it gets correct stat
data before print it on screen.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-03-05 13:22:26 +08:00
Sebastiaan van Stijn
44fb8fa588 Merge pull request #20946 from thaJeztah/update-registry-links
Update links to Docker Hub
2016-03-04 22:37:57 +01:00
Doug Davis
45865bc4f5 Merge pull request #20963 from tophj-ibm/properly-close-test-file
Properly close and remove file in daemon test
2016-03-04 16:27:07 -05:00
David Calavera
1a729c3dd8 Do not wait for container on stop if the process doesn't exist.
This fixes an issue that caused the client to hang forever if the
process died before the code arrived to exit the `Kill` function.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-04 16:00:58 -05:00
David Calavera
e7cbae9fd6 Merge pull request #20959 from Microsoft/jjh/bumptimeout
Windows CI: Bump timeout for tests
2016-03-04 11:44:25 -08:00
Christopher Jones
66e558c16c Properly close and remove file in daemon test
Fixes a bug where a file would be created and not deleted in
DockerSuite.TestDaemonDiscoveryBackendConfigReload

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-03-04 14:22:30 -05:00
David Calavera
2af84d8875 Merge pull request #20934 from icecrime/20543_debugging
Fix race condition on daemon shutdown (#20543)
2016-03-04 11:08:50 -08:00
Vincent Demeester
ea738c633f Merge pull request #20903 from wenchma/TestDockerNetworkInternalMode
Enhancement of TestDockerNetworkInternalMode
2016-03-04 20:00:35 +01:00
Darren Stahl
ad7398e664 Reenabled TestPsListContainers* tests and increased sleep time
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-03-04 10:53:04 -08:00
Lynda O'Leary
3b74be8ab7 Edited content in the Hello World section
Signed-off-by: Lynda O'Leary <lyndaoleary29@gmail.com>
2016-03-04 18:50:48 +00:00
John Howard
6a1ae187d0 Windows CI: Bump timeout for tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-04 09:36:46 -08:00
Brian Goff
c08b674d56 Merge pull request #20843 from calavera/plugin_any_transport
Call plugins with custom transports.
2016-03-04 11:59:32 -05:00
Antonio Murdaca
44b56341d9 Merge pull request #20943 from vdemeester/20942-fix-containerPsContext
Fix #20942 TestContainerPsContext unit test
2016-03-04 16:49:47 +01:00
Sebastiaan van Stijn
69004ff67e Update links to Docker Hub
Updates links to Docker Hub with their new
URLs to prevent redirects.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-04 15:48:52 +01:00
Sebastiaan van Stijn
29bade2cd0 Merge pull request #20938 from runcom/split-daemon
integration-cli: move daemon stuff to its own file
2016-03-04 15:09:35 +01:00
Vincent Demeester
2787072a65 Try to fix #20942 TestContainerPsContext unit test
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-03-04 14:20:41 +01:00
Antonio Murdaca
8142ebb0be Merge pull request #20834 from rhatdan/relabelvolume
Do not relabel if user did not request it for non local volumes
2016-03-04 13:17:54 +01:00
Vijaya Kumar K
7d80d64ca5 arm64: Use gccgo as bootstrap for compiling golang
The issue is armv6 released binaries are used as a GOROOT_BOOTSTRAP.
This might work on arm64 platforms that support 32-bit mode.
However not all arm64 platforms support 32-bit mode. 32-bit mode
is optional for ARMv8. So use gccgo as bootstrap.

The build image is bumped to use ubuntu wily.

Signed-off-by: Vijaya Kumar K <vijayak@caviumnetworks.com>
2016-03-04 15:36:20 +05:30
Vincent Demeester
5f7941e412 Merge pull request #20929 from yongtang/19425-DockerSuite.TestBuildDockerignoringWildDirs
Optimize slow bottleneck test of DockerSuite.TestBuildDockerignoringWildDirs.
2016-03-04 09:47:56 +01:00
Vincent Demeester
9bc62e6031 Merge pull request #20872 from duglin/Issue20470
Optimize .dockerignore when there are exclusions
2016-03-04 09:45:19 +01:00
Antonio Murdaca
9a9e2bb61d integration-cli: move daemon stuff to its own file
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-04 09:29:24 +01:00
Arnaud Porterie
ad2fa39459 Fix race in container creation
Only register a container once it's successfully started. This avoids a
race condition where the daemon is killed while in the process of
calling `libcontainer.Container.Start`, and ends up killing -1.

There is a time window where the container `initProcess` is not set, and
its PID unknown. This commit fixes the race Engine side.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-03-03 20:25:03 -08:00
Alexander Morozov
ea5acb08fa Merge pull request #20854 from inatatsu/reduce-parsing-mountinfo
Eliminate redundant parsing of mountinfo
2016-03-03 19:48:32 -08:00
Wen Cheng Ma
312e20bf6c Enhancement of TestDockerNetworkInternalMode
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-03-04 10:56:10 +08:00
Tatsushi Inagaki
e8513675a2 Aufs: reduce redundant parsing of mountinfo
Check whether or not the file system type of a mountpoint is aufs
by calling statfs() instead of parsing mountinfo. This assumes
that aufs graph driver does not allow aufs as a backing file
system.

Signed-off-by: Tatsushi Inagaki <e29253@jp.ibm.com>
2016-03-04 11:39:59 +09:00
Sebastiaan van Stijn
cb6cdb416c Merge pull request #20927 from Zoltu/patch-1
Adds clarification to behavior of missing directories.
2016-03-04 01:55:27 +01:00
Alan Thompson
65a381ae32 Update dockernetworks.md
Make command line prompts consistent for both host and container shells.

Signed-off-by: Alan Thompson <cloojure@gmail.com>
2016-03-03 16:32:24 -08:00
Micah Zoltu
889d06178a Adds clarification to behavior of missing directories.
Closes #20920

Signed-off-by: Micah Zoltu <micah@zoltu.net>
2016-03-03 23:41:13 +00:00
Yong Tang
c77bb28dfb Optimize slow bottleneck test of DockerSuite.TestBuildDockerignoringWildDirs.
This PR fix the DockerSuite.TestBuildDockerignoringWildDirs test
in #19425.
Instead of having multiple RUN instructions in Dockerfile for every
single directory tested, this PR tries to collapse multiple RUN
instructions into one RUN instruction in Dockerfile.
When a docker image is built, each RUN instruction in Dockerfile
will generate one layer in history. It takes considerable amount of
time to build many layers if there are many RUN instructions within
the Dockerfile. Collapsing into one RUN instruction not only speeds
up the execution significantly, it also conforms to the general
guideline of the Dockerfile reference.
Since the test (DockerSuite.TestBuildDockerignoringWildDirs) is
really about testing the docker build with ignoring wild
directories, the purpose of the test is not altered with this PR
fix.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-03 23:16:10 +00:00
Sebastiaan van Stijn
17156ba98f Merge pull request #20832 from aaronlehmann/login-endpoint-refactor
Update login to use token handling code from distribution
2016-03-03 19:04:42 +01:00
Arnaud Porterie
ec79629a47 Merge pull request #20914 from yongtang/19425-DockerHubPullSuite.TestPullNonExistingImage
Optimize slow bottleneck test of DockerHubPullSuite.TestPullNonExistingImage.
2016-03-03 09:51:58 -08:00
Sebastiaan van Stijn
89d950303c Merge pull request #20901 from HackToday/buildimage
Fix the driver name empty case
2016-03-03 18:44:33 +01:00
David Calavera
00f9c2ce59 Merge pull request #20870 from Microsoft/jjh/testupdaterestartpolicy
Windows CI: TestUpdateRestartPolicy flakiness
2016-03-03 09:09:56 -08:00
David Calavera
ed4a736acc Merge pull request #20906 from runcom/fix-int-tests
integration-cli: fixups
2016-03-03 09:08:07 -08:00
David Calavera
c4be28d6a8 Merge pull request #20262 from cpuguy83/implemnt_mount_opts_for_local_driver
Support mount opts for `local` volume driver
2016-03-03 09:02:12 -08:00
David Calavera
0efa5e7366 Merge pull request #20913 from estesp/vendor-api-usernsmode
Update engine-api vendor for UsernsMode
2016-03-03 08:59:43 -08:00
David Calavera
b7bc1ce1a4 Merge pull request #20730 from clnperez/sysinfo-match-ip-case
Match case for IP variables in sysinfo pkg
2016-03-03 08:48:57 -08:00
Arnaud Porterie
52d4fff0d7 Merge pull request #20890 from riyazdf/notary-snapshot-remote
Rotate snapshot key to server when initializing new notary repos
2016-03-03 08:45:06 -08:00
Brian Goff
b05b237075 Support mount opts for local volume driver
Allows users to submit options similar to the `mount` command when
creating a volume with the `local` volume driver.

For example:

```go
$ docker volume create -d local --opt type=nfs --opt device=myNfsServer:/data --opt o=noatime,nosuid
```

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-03 10:32:25 -05:00
Yong Tang
461976d2af Optimize slow bottleneck test of DockerHubPullSuite.TestPullNonExistingImage.
This PR fix the DockerHubPullSuite.TestPullNonExistingImage test
in #19425. The majority of the execution time in this test is
from multiple executions of 'docker pull', each of which takes
more than one second even though it tries to pull a non-existing
image.
Without changing the behavior of the 'docker pull' itself, this
fix tries to execute the 'docker pull' command in parallel in
order to speed up the execution of the overall test.
Since each 'docker pull' is independent, executions in parallel
should not alter the purpose of the test.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-03 14:51:54 +00:00
Phil Estes
ee2183881b Update engine-api vendor for UsernsMode
Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-03-03 09:11:38 -05:00
Doug Davis
842b8d8784 Optimize .dockerignore when there are exclusions
Closes #20470

Before this PR we used to scan the entire build context when there were
exclusions in the .dockerignore file (paths that started with !). Now we
only traverse into subdirs when one of the exclusions starts with that dir
path.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-03-03 05:46:24 -08:00
Sebastiaan van Stijn
15e68dc8ee Merge pull request #20863 from thaJeztah/add-kernel-memory-warning
Add KernelMemory to "info" and show warning
2016-03-03 13:14:51 +01:00
Sebastiaan van Stijn
d83ad2f554 Merge pull request #20907 from runcom/seccomp-docs
docs: security: seccomp: mention Docker needs seccomp build and check config
2016-03-03 12:10:54 +01:00
Antonio Murdaca
dc0397c9a8 docs: security: seccomp: mention Docker needs seccomp build and check config
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-03 12:04:09 +01:00
Antonio Murdaca
928bfd070b integration-cli: fixups
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-03 11:51:59 +01:00
Sebastiaan van Stijn
b76a55308f Merge pull request #20882 from Microsoft/jstarks/new_windows_diff_format
Write Windows layer diffs to tar in standard format
2016-03-03 10:51:35 +01:00
Vincent Demeester
1ca5f33b53 Merge pull request #20898 from Microsoft/jjh/pslistcontainers
Windows CI: Temporarily disable TestPsListContainers*
2016-03-03 10:46:30 +01:00
Sebastiaan van Stijn
01dd7ecffe Merge pull request #20889 from jfrazelle/20888-fix-centos-tests
fix centos when userns not in kernel
2016-03-03 10:46:10 +01:00
Sebastiaan van Stijn
174959e8bf Merge pull request #20896 from Microsoft/jjh/unit-pkg-integration
Windows CI: Turn off failing unit tests pkg\integration
2016-03-03 10:41:21 +01:00
Sebastiaan van Stijn
df1941bf0e Merge pull request #20894 from Microsoft/jjh/unit-pkg-graphdb
Windows CI: Turn off failing unit tests pkg\graphdb
2016-03-03 10:40:22 +01:00
Sebastiaan van Stijn
2348c6a404 Merge pull request #20892 from Microsoft/jjh/unit-pkg-fileutils
Windows CI: Turn off failing unit test pkg\fileutils
2016-03-03 10:39:34 +01:00
Kai Qiang Wu(Kennan)
6c78edaf7f Fix the driver name empty case
As drivername maybe "" in hostconfig, so we should not
directly print dirvername with var drivername,
instead, we use the real driver name property to print it.

Fixes: #20900
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-03-03 07:42:28 +00:00
Vincent Demeester
0eb20be13c Merge pull request #20845 from Microsoft/jstarks/default_to_npipe
Windows: Default to npipe transport
2016-03-03 08:25:51 +01:00
John Howard
9af22098af Windows CI: Temporarily disable TestPsListContainers*
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-02 20:43:16 -08:00
John Howard
5f2ba2b9ba Windows CI: Turn off failing unit tests pkg\integration
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-02 19:37:18 -08:00
John Howard
9f5984d93f Windows CI: Turn off failing unit tests pkg\graphdb
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-02 19:27:41 -08:00
John Howard
3e78ad7be2 Windows CI: Turn off failing unit test pkg\fileutils
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-02 19:05:33 -08:00
Brian Goff
361a63e5f2 Merge pull request #20884 from Microsoft/jjh/integusenpipe
Windows CI: Allow npipe protocol for sock requests
2016-03-02 20:15:49 -05:00
Jessica Frazelle
7ab696f6b0 fix centos when userns not in kernel
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-03-02 16:58:49 -08:00
Riyaz Faizullabhoy
f75622e52a Rotate snapshot key to server when initializing new notary repos
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-03-02 16:51:32 -08:00
David Calavera
f4cb5f4a32 Merge pull request #20824 from runcom/fix-creds-store
cliconfig: credentials: support getting all auths
2016-03-02 16:37:57 -08:00
John Starks
5649030e25 Write Windows layer diffs to tar in standard format
Previously, Windows layer diffs were written using a Windows-internal
format based on the BackupRead/BackupWrite Win32 APIs. This caused
problems with tar-split and tarsum and led to performance problems
in implementing methods such as DiffPath. It also was just an
unnecessary differentiation point between Windows and Linux.

With this change, Windows layer diffs look much more like their
Linux counterparts. They use AUFS-style whiteout files for files
that have been removed, and they encode all metadata directly in
the tar file.

This change only affects Windows post-TP4, since changes to the Windows
container storage APIs were necessary to make this possible.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-02 16:13:40 -08:00
Arnaud Porterie
9e7b77a585 Merge pull request #20880 from yongtang/19425-DockerSuite.TestBuildHistory
Optimize slow bottleneck test of DockerSuite.TestBuildHistory.
2016-03-02 16:06:12 -08:00
Sebastiaan van Stijn
dd850530a9 Vendor engine-api
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-02 23:32:25 +01:00
Sebastiaan van Stijn
747a486b4a Add KernelMemory to "info" and show warning
This change adds "KernelMemory" to the /info endpoint and
shows a warning if KernelMemory is not supported by the kernel.

This makes it more consistent with the other memory-limit
options.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-02 23:32:25 +01:00
John Howard
08b65e7dd3 Windows CI: Allow npipe protocol for sock requests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-02 14:22:51 -08:00
Vincent Demeester
508a17baba Merge pull request #20388 from hqhq/hq_add_cgroup_driver_info
Add CgroupDriver to docker info
2016-03-02 23:17:27 +01:00
John Starks
882edc3f0e Revendor Microsoft/go-winio and Microsoft/hcsshim
Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-02 14:17:13 -08:00
David Calavera
0e0a8ade61 Merge pull request #20875 from Microsoft/jjh/testlogsapiwithstdout
Windows CI Reliablity: TestLogsApiWithStdout
2016-03-02 13:26:39 -08:00
Yong Tang
d609de989f Optimize slow bottleneck test of DockerSuite.TestBuildHistory.
This PR fix the DockerSuite.TestBuildHistory test in #19425.
It changes the base image from busybox into 'minimalBaseImage()'
and changes the RUN in Dockerfile into LABEL, which greatly
reduces the executation time.
Since the test (DockerSuite.TestBuildHistory) is really about
testing docker history, not about RUN in Dockerfile, the
purpose of the test is not altered.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-02 20:37:47 +00:00
Vincent Demeester
6dcb14ce05 Merge pull request #20860 from runcom/fix-logout-credsStore
api: client: fix login/logout with creds store
2016-03-02 20:17:19 +01:00
John Howard
76a4009293 Windows CI Reliablity: TestLogsApiWithStdout
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-02 10:26:15 -08:00
Sebastiaan van Stijn
34a56d2cae Merge pull request #20839 from icecrime/failing_ci_label
Introduce `status/failing-ci` label
2016-03-02 19:08:56 +01:00
Aaron Lehmann
613d364e23 Merge pull request #20868 from LK4D4/unused_ctx
Remove unused ctx from v1Pusher
2016-03-02 10:05:46 -08:00
David Calavera
1a63023450 Call plugins with custom transports.
Small refactor to be able to use custom transports
to call remote plugins.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-03-02 12:54:53 -05:00
Vincent Demeester
b65fd8e879 Merge pull request #20858 from mountkin/validate-log-opts-again
validate log-opt when creating containers AGAIN (fixing drunkard's code)
2016-03-02 18:27:00 +01:00
John Howard
16437d6a34 Windows CI: TestUpdateRestartPolicy flakiness
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-02 09:14:16 -08:00
Antonio Murdaca
0eccc3838e api: client: fix login/logout with creds store
Make sure credentials are removed from the store at logout (not only
in the config file). Remove not needed error check and auth erasing
at login (auths aren't stored anywhere at that point).
Add regression test.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-02 17:51:50 +01:00
Antonio Murdaca
44152144ca cliconfig: credentials: support getting all auths
docker build is broken because it sends to the daemon the full
cliconfig file which has only Email(s). This patch retrieves all auth
configs from the credentials store.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-03-02 17:48:56 +01:00
David Calavera
8f109829e2 Merge pull request #20475 from Microsoft/jstarks/filegetter
graphdriver: Replace DiffPath with DiffGetter
2016-03-02 08:36:36 -08:00
Alexander Morozov
a4dbbe7d89 Remove unused ctx from v1Pusher
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-02 07:59:12 -08:00
Antonio Murdaca
7c64681ce0 Merge pull request #20861 from thaJeztah/docs-improve-userns-note-for-fedora
docs: improve note for Fedora 22
2016-03-02 16:12:11 +01:00
Sebastiaan van Stijn
069da069cb docs: improve note for Fedora 22
Move the note more up, to prevent people from starting
the daemon with --userns-remap before touching the files.

Also clarify that these steps must be done *before* enabling
userns-remap and starting the daemon.

Also fixed some minor Markup formatting issues.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-02 14:46:18 +01:00
Shijiang Wei
068085005e validate log-opt when creating containers AGAIN
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-03-02 20:30:26 +08:00
Qiang Huang
ca89c329b9 Add CgroupDriver to docker info
Fixes: #19539

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-03-02 20:07:06 +08:00
Vincent Demeester
4eb7a4916f Merge pull request #20841 from aaronlehmann/strengthen-TestPullFromCentralRegistryImplicitRefParts-2
Another attempt to deflake TestPullFromCentralRegistryImplicitRefParts
2016-03-02 10:43:27 +01:00
Wen Cheng Ma
0515d9b9c0 Add tests of unsupported network-scoped alias on default networks
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-03-02 16:57:50 +08:00
Vincent Demeester
621a148da3 Merge pull request #20831 from aaronlehmann/concurrent-upload
Fix concurrent uploads that share layers
2016-03-02 09:09:11 +01:00
Vincent Demeester
b18f9cc29b Merge pull request #20833 from Microsoft/testunit-archive
Windows CI: Unit Tests stop running failing archive test
2016-03-02 08:53:11 +01:00
David Calavera
266a75ac22 Merge pull request #20842 from dongluochen/IPv6Support
Handle IPv6 entries in discovery
2016-03-01 21:03:37 -08:00
David Calavera
04a3cedf44 Merge pull request #20846 from icecrime/remove_theadactyl
Remove @theadactyl
2016-03-01 21:03:23 -08:00
Arnaud Porterie
edeadcd9e1 Remove @theadactyl
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-03-01 20:07:20 -08:00
David Calavera
911bb1b3b5 Merge pull request #20838 from Microsoft/testunit-chrootarchive
Windows CI: Unit Tests stop running failing chrootarchive tests
2016-03-01 19:48:44 -08:00
John Starks
7e884c6cd0 Windows: Default to npipe transport
This changes the default transport for Windows from unencrypted TCP to
npipe. This is similar to how Linux runs with the unix socket transport by
default.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-01 18:27:01 -08:00
Dong Chen
7554e882df Use net.JoinHostPort to handle address format.
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
2016-03-01 17:27:30 -08:00
David Calavera
7f223b72dd Merge pull request #20828 from Microsoft/jjh/xenonworkdirfix
Windows: Don't create working dir for Hyper-V Containers
2016-03-01 17:11:37 -08:00
Sebastiaan van Stijn
3c4d093bab Merge pull request #18766 from mikedanese/gcplogs
Add logging driver for Google Cloud Logging
2016-03-02 02:09:44 +01:00
Aaron Lehmann
0d270cadd4 Another attempt to deflake TestPullFromCentralRegistryImplicitRefParts
Retries after v1 fallbacks were added in #20411. The test still appears
to be flaky. There are two potential problems. The initial pull was not
protected against pulling from v1, so it could be giving us a different
hello-world image to compare against. Also, after experiencing a v1
fallback, we need to restore the original image before doing the next
pull, because otherwise the "Image is up to date for hello-world:latest"
message will not show up as expected.

See #17214.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-01 17:02:06 -08:00
Dong Chen
f7c9214e29 Handle IPv6 entries.
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
2016-03-01 16:56:12 -08:00
Sebastiaan van Stijn
22684de872 Merge pull request #20826 from LK4D4/fix_keys
Fix CONFIG_KEYS check in contrib/check-config.sh
2016-03-02 01:47:50 +01:00
Arnaud Porterie
cf6016c24e Introduce status/failing-ci label
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-03-01 14:52:11 -08:00
Darren Stahl
7f6ef09736 Windows CI: Unit Tests stop running failing chrootarchive tests
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-03-01 14:28:29 -08:00
Sebastiaan van Stijn
793d3b5a3f Merge pull request #20746 from cpuguy83/use_volume_for_bundles_dir
Use anonymous volume for bundles dir
2016-03-01 23:24:24 +01:00
John Howard
5849a55376 Windows: Don't create working dir for Hyper-V Containers
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-01 14:10:40 -08:00
Dan Walsh
843a119d49 Do not relabel if user did not request it for non local volumes
Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2016-03-01 17:09:42 -05:00
Darren Stahl
f9cfc4c387 Windows CI: Unit Tests stop running failing archive test
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-03-01 13:27:44 -08:00
David Calavera
32d1a6cee5 Merge pull request #20817 from tiborvass/skip-TestStatsAllNewContainersAdded-remote-daemon
Skip TestStatsAllNewContainersAdded on remote daemons
2016-03-01 13:10:44 -08:00
Arnaud Porterie
106793dcbe Merge pull request #20825 from LK4D4/unused
Remove some unused structs and fields
2016-03-01 12:58:35 -08:00
Tibor Vass
36401f20ce Merge pull request #20617 from nalind/journald-pkgconfig
Try to handle changing names for journal packages
2016-03-01 15:38:03 -05:00
Derek McGowan
f2d481a299 Login update and endpoint refactor
Further differentiate the APIEndpoint used with V2 with the endpoint type which is only used for v1 registry interactions
Rename Endpoint to V1Endpoint and remove version ambiguity
Use distribution token handler for login

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-01 11:52:32 -08:00
Aaron Lehmann
5c99eebe81 Fix concurrent uploads that share layers
Concurrent uploads which share layers worked correctly as of #18353,
but unfortunately #18785 caused a regression. This PR removed the logic
that shares digests between different push sessions. This overlooked the
case where one session was waiting for another session to upload a
layer.

This commit adds back the ability to propagate this digest information,
using the distribution.Descriptor type because this is what is received
from stats and uploads, and also what is ultimately needed for building
the manifest.

Surprisingly, there was no test covering this case. This commit adds
one. It fails without the fix.

See recent comments on #9132.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-03-01 11:14:44 -08:00
Brian Goff
1b6956cbc3 Merge pull request #20823 from Microsoft/testunit-migratetests
Windows CI: Unit Test stop running failing migration tests
2016-03-01 13:50:00 -05:00
David Calavera
637813b13e Merge pull request #20820 from thaJeztah/remove-registration-docs
Remove some references to "register" through login
2016-03-01 10:39:53 -08:00
David Calavera
8ae0192943 Merge pull request #20822 from Microsoft/jjh/gogit
Go 1.6 Git 2.7.2
2016-03-01 10:36:47 -08:00
Brian Goff
331d2b300f Merge pull request #20797 from Microsoft/testunit-daemonunixtests
Windows CI: Unit Test move Unix specific struct field tests to _unix.go
2016-03-01 13:25:49 -05:00
John Starks
58bec40d16 graphdriver: Replace DiffPath with DiffGetter
This allows a graph driver to provide a custom FileGetter for tar-split
to use. Windows will use this to provide a more efficient implementation
in a follow-up change.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-03-01 10:25:33 -08:00
Alexander Morozov
f5b4e1be6b Fix CONFIG_KEYS check in contrib/check-config.sh
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-01 10:01:12 -08:00
Alexander Morozov
0a352e1a90 Remove some unused structs and fields
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-03-01 09:59:29 -08:00
Brian Goff
d883002fac Merge pull request #20684 from yongtang/13840-follow-symlink
Follow symlink for --device argument.
2016-03-01 12:44:10 -05:00
Brian Goff
0036e0f8f2 Use anonymous volume for bundles dir
This allows the test suite to be able to run without worrying about
the underlying fs used by the container running the daemon (e.g.
aufs-on-aufs), so long as the host running the container is running a
supported fs.
The volume will be cleaned up when the container is removed due to
`--rm`.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-01 12:29:33 -05:00
Darren Stahl
734f52d135 Stopped running failing migration tests on Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-03-01 09:05:20 -08:00
John Howard
fa362e47e0 Go 1.6 Git 2.7.2
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-03-01 09:05:12 -08:00
Tibor Vass
e80f86bce8 Skip TestStatsAllNewContainersAdded on remote daemons
This test is often failing on remote daemons. We tried many approaches
to fix it but none worked. In order to make the CI more reliable, this
will skip the test when running against a remote daemon (e.g. win2lin).

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-03-01 11:49:09 -05:00
Tibor Vass
bcc59fc951 Merge pull request #20587 from MHBauer/termfixes
do not turn post-processing on for linux-cgo terminals
2016-03-01 11:37:26 -05:00
Christy Perez
5b3fc7aab2 Match case for variables in sysinfo pkg
I noticied an inconsistency when reviewing docker/pull/20692.

Changing Ip to IP and Nf to NF.

More info: The golang folks recommend that you keep the initials consistent:
https://github.com/golang/go/wiki/CodeReviewComments#initialisms.

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2016-03-01 10:37:05 -06:00
Tibor Vass
330fb91f7d Merge pull request #20530 from hsinko/myDev
Add some comments for daemon/graphdriver/aufs/aufs.go
2016-03-01 11:35:35 -05:00
Sebastiaan van Stijn
971c080b67 Remove some references to "register" through login
These were left-overs from the now deprecated
and removed functionality to registrer a new account
through "docker login"

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-01 17:33:23 +01:00
Mike Danese
ed1b9fa07a daemon/logger: Add logging driver for Google Cloud Logging
Signed-off-by: Mike Danese <mikedanese@google.com>
2016-03-01 08:06:10 -08:00
Aaron Lehmann
2453262e7b Merge pull request #20565 from kencochrane/remove_email_on_login
Remove email address field from login
2016-03-01 08:02:16 -08:00
Vincent Demeester
ec2efb01d2 Merge pull request #20814 from vincentbernat/fix/zsh-completion-update-5
zsh: Reword some descriptions
2016-03-01 14:40:41 +01:00
Sebastiaan van Stijn
79ec9c8460 Merge pull request #20813 from thaJeztah/update-changelog
Update changelog with changes from 1.10.1 and .2
2016-03-01 14:29:09 +01:00
Vincent Bernat
62a6d3e86c zsh: Reword some descriptions
Use of "Set ..." and "Specify ..." are removed in favor of directly
using nouns.

Also:

 - add description for `run --isolation`
 - reduce description of `run --shm-size`
 - fix `daemon --bip` argument handling

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2016-03-01 14:21:34 +01:00
Vincent Demeester
87fb26bc42 Merge pull request #20310 from hqhq/hq_cgroup_parent_docs
Add docs for cgroup-parent of systemd cgroup
2016-03-01 13:20:23 +01:00
unclejack
6a20165da7 Merge pull request #20418 from calavera/go_1_6
Upgrade Go to 1.6.
2016-03-01 13:52:19 +02:00
Tibor Vass
3da45ee939 Update CHANGELOG for 1.10.2
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7613ee933c)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-01 12:39:42 +01:00
Tibor Vass
8a6ac315ff Correct 1.10.1 CHANGELOG
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit ce4f13f604)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-01 12:39:27 +01:00
Tibor Vass
fce54d772a Update CHANGELOG for 1.10.1
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit f1cd0cabba)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-03-01 12:39:09 +01:00
Qiang Huang
c7f2079a9b Add docs for cgroup-parent of systemd cgroup
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-03-01 18:31:17 +08:00
Sebastiaan van Stijn
9c7e1aeeb1 Merge pull request #20796 from calavera/default_windows_creds_helper
Set default credentials store in Windows.
2016-03-01 11:12:14 +01:00
Sebastiaan van Stijn
d1e7f38338 Merge pull request #20810 from wenchma/remove
Remove the duplication
2016-03-01 11:00:02 +01:00
Wen Cheng Ma
9f8f28684f Remove the duplication
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-03-01 17:53:36 +08:00
Vincent Demeester
dac18985fa Merge pull request #20791 from Microsoft/jjh/testunit-pkgsymlink
Windows CI: Turning off pkg\symlink unit testing
2016-03-01 08:18:44 +01:00
Yong Tang
7ed569efdc Follow symlink for --device argument.
Fixes: #13840

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2016-03-01 07:16:19 +00:00
Wen Cheng Ma
b9ef2682b9 Optimize slow bottleneck tests of TestDaemonStartWithDaemonCommand
* Remvoe integration test of TestDaemonStartWithDaemonCommand
* Rewrite as unit test

Related issue #19425

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-03-01 14:05:39 +08:00
hsinko
772f5495b7 folders->directories
Signed-off-by: hsinko <21551195@zju.edu.cn>
2016-02-29 21:32:30 -08:00
Vincent Demeester
89f6d3b041 Merge pull request #20754 from lyndaoleary/docker-terminology
Changed Docker references to Docker Engine in docs
2016-03-01 05:30:45 +01:00
Darren Stahl
957792e485 Windows CI: Unit Test move Unix specific struct field tests to _unix.go
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-02-29 18:04:06 -08:00
Ken Cochrane
aee260d4eb Remove email address field from login
This removes the email prompt when you use docker login, and also removes the ability to register via the docker cli. Docker login, will strictly be used for logging into a registry server.

Signed-off-by: Ken Cochrane <kencochrane@gmail.com>
2016-02-29 17:53:27 -08:00
Arnaud Porterie
187a2fb403 Merge pull request #20792 from cpuguy83/more_stats_client_cleanup
Fixes issue with stats on start event
2016-02-29 17:33:37 -08:00
Lynda O'Leary
0b882cc014 Changed Docker references to Docker Engine in docs
Signed-off-by: Lynda O'Leary <lyndaoleary29@gmail.com>
2016-03-01 00:57:23 +00:00
Sebastiaan van Stijn
67b16c7381 Merge pull request #20782 from estesp/new-parent-dir-ownership
Fix ownership of non-existing parent dir
2016-03-01 01:45:38 +01:00
Brian Goff
6a96006959 Merge pull request #20710 from Microsoft/sjw/tp4retry_fix
Fixing retry hack for TP4 to return errors in all failure cases.
2016-02-29 19:08:24 -05:00
David Calavera
056c27d895 Set default credentials store in Windows.
Use the Windows Credentials Manager when the helper
is installed in the path.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-29 17:46:07 -05:00
David Calavera
14d5c91d87 Upgrade Go to 1.6.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-29 17:08:52 -05:00
Brian Goff
df95474885 Fixes issue with stats on start event
In situations where a client is called like `docker stats` with no
arguments or flags, if a container which was already created but not
started yet is then subsequently started it will not be added to the
stats list as expected.

Also splits some of the stats helpers to a separate file from the stats
CLI which is already quite long.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-29 16:34:42 -05:00
Sebastiaan van Stijn
29ce086e38 Merge pull request #20107 from calavera/client_auth_store
Client credentials store.
2016-02-29 22:31:34 +01:00
Alexander Morozov
79258eca9b Merge pull request #20785 from runcom/clean-cont
container: container_unix: remove unused func
2016-02-29 13:11:12 -08:00
John Howard
eaa1708e70 Windows CI: Turning off pkg\symlink unit testing
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-29 13:10:50 -08:00
David Calavera
3938ee413d Merge pull request #20790 from Microsoft/jjh/testunit-voltestremove
Windows CI: Unit Test turn off TestRemove
2016-02-29 13:09:48 -08:00
Brian Goff
ea6d2708e2 Merge pull request #20692 from coolljt0725/add_brnf_test_request
Add bridgeNfIptables and bridgeNfIp6tables test request
2016-02-29 15:16:27 -05:00
Vincent Demeester
d878f512fd Merge pull request #20492 from WeiZhang555/export-no-privilege
Clean redundant error message for export
2016-02-29 21:14:28 +01:00
Vincent Demeester
9eb4575f8c Merge pull request #20480 from wenchma/20431-filter_since_before
Enhancement of docker ps before and since filters
2016-02-29 20:57:43 +01:00
David Calavera
a5d98b82ea Merge pull request #20780 from runcom/revert-sudo-user
Revert sudo user
2016-02-29 11:48:24 -08:00
David Calavera
1ba0358a10 Merge pull request #20307 from HuKeping/trust
Refactor trust push
2016-02-29 11:12:09 -08:00
Stefan J. Wernli
0b82202fbb Fixing retry hack for TP4 to return errors in all failure cases.
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2016-02-29 10:53:01 -08:00
David Calavera
ba5a282a83 Merge pull request #20605 from mountkin/optimize-json-log-writer
make the json log writer much faster
2016-02-29 10:47:46 -08:00
Brian Goff
2391794d26 Merge pull request #20749 from mountkin/validate-log-opts
validate log-opt when creating containers
2016-02-29 13:47:25 -05:00
David Calavera
29b2b0c22b Merge pull request #20686 from clintonskitson/bugfix/plugin_desc_leak
Fix plugin file descriptor leaks
2016-02-29 10:44:36 -08:00
David Calavera
cf721c23e7 Client credentials store.
This change implements communication with an external credentials store,
ala git-credential-helper. The client falls back the plain text store,
what we're currently using, if there is no remote store configured.

It shells out to helper program when a credential store is
configured. Those programs can be implemented with any language as long as they
follow the convention to pass arguments and information.

There is an implementation for the OS X keychain in https://github.com/calavera/docker-credential-helpers.
That package also provides basic structure to create other helpers.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-29 13:01:31 -05:00
David Calavera
b1955a66f5 Merge pull request #20787 from itsthenetwork/Fix-Seccomp-Readme
Update seccomp.md
2016-02-29 09:54:48 -08:00
Sebastiaan van Stijn
b211e57f23 Merge pull request #20774 from hqhq/hq_vender_engine_api
Vendor engine-api to 70d266e96080e3c3d63c55a4d8659e00ac1f7e6c
2016-02-29 18:48:55 +01:00
John Howard
de6939817d Windows CI: Unit Test turn off TestRemove
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-29 08:57:30 -08:00
Steven Iveson
244e5fc516 Update seccomp.md
Corrected titles to use title case. Added link to default.json and some numerical detail. Changed example JSON to a portion of the actual default file, with the correct defaultAction.

Signed-off-by: Steven Iveson <steven.iveson@infinityworks.com>
2016-02-29 16:32:45 +00:00
Vincent Demeester
c0c10daebf Merge pull request #20777 from Anonymooseable/document-plugin-types
Document interfaces a plugin can implement
2016-02-29 17:31:06 +01:00
Tibor Vass
0573b814a1 Merge pull request #20737 from mikedougherty/install-sh-multiple-keyservers
Use multiple keyservers in install script
2016-02-29 11:17:13 -05:00
Linus Heckemann
3ef1325828 Remove experimental GraphDriver plugin type
Signed-off-by: Linus Heckemann <anonymouse2048@gmail.com>
2016-02-29 15:59:54 +00:00
Vincent Demeester
6c01d2a0cf Merge pull request #20629 from wallnerryan/intro-volumes
Intro volume drivers in dockervolumes.md
2016-02-29 16:59:43 +01:00
Ryan Wallner
b6fdcd3a34 intro volume plugins in userguide volumes
NOTE should be lowercase

Signed-off-by: Ryan Wallner <ryan.wallner@clusterhq.com>

add link to list of plugins

Signed-off-by: Ryan Wallner <ryan.wallner@clusterhq.com>

address changres

Signed-off-by: Ryan Wallner <ryan.wallner@clusterhq.com>
2016-02-29 10:56:32 -05:00
Tibor Vass
eb22fcc229 Merge pull request #20773 from Microsoft/jjh/testunitdockerlayer
Windows CI Unit Test: Docker layer turn off failing tests
2016-02-29 10:46:32 -05:00
Tibor Vass
8ffec1fca5 Merge pull request #20772 from Microsoft/jjh/testunitdistribution-xfer
Windows CI Unit Test: Distribution\xfer turn off failing tests
2016-02-29 10:45:57 -05:00
Brian Goff
abbb16d7ab Merge pull request #20602 from twistlock/20508_authz_plugin_corrupt_body
Fix #20508 - Authz plugin enabled with large text/JSON POST payload corrupts body
2016-02-29 10:43:02 -05:00
Antonio Murdaca
0e9769ab62 container: container_unix: remove unused func
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-29 16:12:02 +01:00
Brian Goff
7cea7c698d Merge pull request #20756 from runcom/no-dash-d-tests
integration-cli: remove not necessary -d again
2016-02-29 09:47:49 -05:00
Phil Estes
7a61b9ae42 Fix ownership of non-existing parent dir
During "COPY" or other tar unpack operations, a target/destination
parent dir might not exist and should be created with ownership of the
root in the right context (including remapped root when user namespaces
are enabled)

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-29 09:14:23 -05:00
Vincent Demeester
79c24a0820 Merge pull request #20736 from elchris82/master
Changed the Example request in Remote API reference to connect a container to a network
2016-02-29 15:06:20 +01:00
Antonio Murdaca
565712014f cliconfig: use a const for ".docker" string
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-29 14:44:01 +01:00
Antonio Murdaca
863b571617 Revert "resolve the config file from the sudo user"
This reverts commit afde6450ee.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-29 13:51:43 +01:00
Sebastiaan van Stijn
da4f2ce629 Merge pull request #20771 from Microsoft/jjh/disableunittestsdistribution
Windows CI Unit Test: Distribution turn off failing tests
2016-02-29 12:56:10 +01:00
Qiang Huang
53b0d62683 Vendor engine-api to 70d266e96080e3c3d63c55a4d8659e00ac1f7e6c
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-02-29 19:28:37 +08:00
Linus Heckemann
dd729efe02 Document interfaces a plugin can implement
Signed-off-by: Linus Heckemann <lheckemann@twig-world.com>
2016-02-29 09:43:44 +00:00
Vincent Demeester
ffd8a0e0fb Merge pull request #20776 from terryding77/doc_changes
change container word spell in docs
2016-02-29 10:38:06 +01:00
terryding77
adda1060aa change container word spell in docs
Signed-off-by: terryding77 <550147740@qq.com>
2016-02-29 16:59:53 +08:00
Antonio Murdaca
5ef74c6595 Merge pull request #20753 from icecrime/debugging_win2lin
Fix client-side race in `docker stats`
2016-02-29 08:20:17 +01:00
Vincent Demeester
20a038eca6 Merge pull request #20604 from coolljt0725/fix_reload
Fix configuration reloading
2016-02-29 07:14:15 +01:00
John Howard
e17cb9b721 Windows CI Unit Test: Docker layer turn off failing tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-28 20:16:10 -08:00
John Howard
dd2ff281bf Windows CI Unit Test: Distribution\xfer turn off failing tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-28 20:08:34 -08:00
John Howard
621a1b9aca Windows CI Unit Test: Distribution turn off failing tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-28 20:02:51 -08:00
Arnaud Porterie
3041aa53ef Fix client-side race in docker stats
Subscribe to events and monitor for new containers before the initial
listing of currently running containers.

This fixes a race where a new container could appear between the first
list call but before the client was subscribed to events, leading to a
container never appearing in the output of `docker stats`.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-28 18:44:23 -08:00
Sebastiaan van Stijn
67a77934a4 Merge pull request #20760 from vdemeester/fix-cliconfig
Fixing cliconfig getDefaultConfigDir
2016-02-29 00:19:06 +01:00
Sebastiaan van Stijn
ab18b5977a Merge pull request #20757 from spacediver/patch-1
fixed formatting; added handy -y to apt-get install
2016-02-28 23:55:03 +01:00
Sebastiaan van Stijn
0866d63278 Merge pull request #20759 from toogley/master
add google group subscribtion method using only emails
2016-02-28 19:17:00 +01:00
Pavel Sutyrin
30c2770a73 fixed formatting; added handy -y to apt-get install
Signed-off-by: Pavel Sutyrin <pavel.sutyrin@gmail.com>
2016-02-28 20:37:04 +03:00
Vincent Demeester
d3fd0974d5 Fixing getDefaultConfigDir
It seems it's not really checking the right folder.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-28 16:04:48 +01:00
toogley
e3e18584b0 add google group subscribtion method using only emails
* users don't have to create an google account for using the google groups. They
  can simply email to e.g. "docker-user+subscribe@googlegroups.com" to
  subscribe.

* since this behavior is not mentioned on the google group website, i think its
  a good idea to explain this method here.

Signed-off-by: toogley <toogley@mailbox.org>
2016-02-28 15:31:15 +01:00
Antonio Murdaca
e44689139d integration-cli: remove not necessary -d again
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-28 13:48:15 +01:00
Brian Goff
38439733d2 Merge pull request #20748 from runcom/remove-dash-d
integration-cli: remove not necessary -d
2016-02-27 21:58:15 -05:00
Brian Goff
ec268be52e Merge pull request #20706 from calavera/remove_concurrent_access_to_stdtypes
Make stdcopy.StdWriter thread safe.
2016-02-27 21:14:09 -05:00
Arnaud Porterie
15bdca6add Merge pull request #20752 from icecrime/fix_experimental_cross
Pin tpoechtrager/osxcross commit
2016-02-27 17:43:43 -08:00
Arnaud Porterie
2140650b56 Pin tpoechtrager/osxcross commit
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-27 12:04:49 -08:00
Shijiang Wei
7285c9a53a validate log-opt when creating containers
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-02-28 01:51:46 +08:00
Antonio Murdaca
faf4604dac integration-cli: remove not necessary -d
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-27 18:27:25 +01:00
Arnaud Porterie
c7d6f0c30c Merge pull request #20742 from cpuguy83/revert_aufs_fine_locks
Revert aufs fine locks
2016-02-27 08:53:04 -08:00
Arnaud Porterie
c24d4e8ab4 Merge pull request #20734 from cpuguy83/fix_flakey_test
Fix flakey TestStatsAllNewContainersAdded
2016-02-27 07:52:18 -08:00
Brian Goff
e386dfc33f fix double-lock
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-27 09:49:21 -05:00
Vincent Demeester
3f4e49aa61 Merge pull request #20739 from LK4D4/keys_config
Add CONFIG_KEYS to check-config.sh
2016-02-27 14:33:54 +01:00
Brian Goff
c2f7777603 Revert "Add finer-grained locking for aufs"
This reverts commit f31014197c.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-27 08:01:19 -05:00
HuKeping
1a68662736 Messaging both succeed and failure about the signing
It would be good to add a clearer failure or succeed message.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-27 15:46:41 +08:00
HuKeping
5dddf7e98e Refactor trust push
Unlike the untrusted push without an explicit tag will push all
tags for that repo, the trusted push would expect an explicit tag.

So that the code that attempts to do smart logic around signing multiple
tags should be removed.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-27 15:46:35 +08:00
Alexander Morozov
c1996c9245 Add CONFIG_KEYS to check-config.sh
We need this after opencontainers/runc#488

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-02-26 23:40:35 -08:00
Clinton Kitson
799ae78b7e Fixes plugin file descriptor leak on plugin discovery
Signed-off-by: Clinton Kitson <clintonskitson@gmail.com>
2016-02-26 19:43:50 -08:00
Mike Dougherty
adac575dd3 Use multiple keyservers in install script
This improves on an earlier change by adding another keyserver and using a for loop instead of duplicating the command

Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
2016-02-26 17:22:00 -08:00
Lei Jitang
79843b727f Add bridgeNfIptables and bridgeNfIp6tables test request
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-26 19:53:35 -05:00
Christian Böhme
2bd365ae2f Changed the Remote API reference to connect a container to a network in v1.22
and v1.23

Signed-off-by: Christian Böhme <development@boehme3d.de>
2016-02-27 01:31:03 +01:00
David Calavera
df2b74188e Merge pull request #20699 from calavera/remove_static_error_declarations
Remove static errors from errors package.
2016-02-26 16:30:12 -08:00
David Calavera
f666d918fc Merge pull request #20672 from justincormack/personality
Add some uses of personality syscall to default seccomp filter
2016-02-26 14:27:23 -08:00
Tianon Gravi
5bfaab984c Merge pull request #20636 from anusha-ragunathan/apt-ftparchive
Always create apt-ftparchive.conf.
2016-02-26 14:12:06 -08:00
Brian Goff
efd281d6eb Fix flakey TestStatsAllNewContainersAdded
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-26 16:52:36 -05:00
David Calavera
443a5c2021 Make stdcopy.stdWriter goroutine safe.
Stop using global variables as prefixes to inject the writer header.
That can cause issues when two writers set the length of the buffer in
the same header concurrently.

Stop Writing to the internal buffer twice for each write. This could
mess up with the ordering information is written.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-26 16:51:18 -05:00
Alexander Morozov
2f797bb1d9 Merge pull request #20275 from cpuguy83/finer_graph_locks
Finer graph locks
2016-02-26 13:33:34 -08:00
Alexander Morozov
51302c29ed Merge pull request #20729 from estesp/pipework
Add synchronization and closure to IO pipes in userns path
2016-02-26 13:33:02 -08:00
David Calavera
a793564b25 Remove static errors from errors package.
Moving all strings to the errors package wasn't a good idea after all.

Our custom implementation of Go errors predates everything that's nice
and good about working with errors in Go. Take as an example what we
have to do to get an error message:

```go
func GetErrorMessage(err error) string {
	switch err.(type) {
	case errcode.Error:
		e, _ := err.(errcode.Error)
		return e.Message

	case errcode.ErrorCode:
		ec, _ := err.(errcode.ErrorCode)
		return ec.Message()

	default:
		return err.Error()
	}
}
```

This goes against every good practice for Go development. The language already provides a simple, intuitive and standard way to get error messages, that is calling the `Error()` method from an error. Reinventing the error interface is a mistake.

Our custom implementation also makes very hard to reason about errors, another nice thing about Go. I found several (>10) error declarations that we don't use anywhere. This is a clear sign about how little we know about the errors we return. I also found several error usages where the number of arguments was different than the parameters declared in the error, another clear example of how difficult is to reason about errors.

Moreover, our custom implementation didn't really make easier for people to return custom HTTP status code depending on the errors. Again, it's hard to reason about when to set custom codes and how. Take an example what we have to do to extract the message and status code from an error before returning a response from the API:

```go
	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
			}
		}
	}
```

You can notice two things in that code:

1. We have to explain how errors work, because our implementation goes against how easy to use Go errors are.
2. At no moment we arrived to remove that `switch` statement that was the original reason to use our custom implementation.

This change removes all our status errors from the errors package and puts them back in their specific contexts.
IT puts the messages back with their contexts. That way, we know right away when errors used and how to generate their messages.
It uses custom interfaces to reason about errors. Errors that need to response with a custom status code MUST implementent this simple interface:

```go
type errorWithStatus interface {
	HTTPErrorStatusCode() int
}
```

This interface is very straightforward to implement. It also preserves Go errors real behavior, getting the message is as simple as using the `Error()` method.

I included helper functions to generate errors that use custom status code in `errors/errors.go`.

By doing this, we remove the hard dependency we have eeverywhere to our custom errors package. Yes, you can use it as a helper to generate error, but it's still very easy to generate errors without it.

Please, read this fantastic blog post about errors in Go: http://dave.cheney.net/2014/12/24/inspecting-errors

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-26 15:49:09 -05:00
Vincent Demeester
b2a15a2226 Merge pull request #20725 from runcom/fix-subid-files-parsing
pkg: idtools: fix subid files parsing
2016-02-26 21:28:08 +01:00
Phil Estes
995386735c Add synchronization and closure to IO pipes in userns path
The execdriver pipes setup uses OS pipes with fds so that they can be
chown'ed to the remapped root user for proper access. Recent flakiness
in certain short-lived tests (usually via the "exec" path) reveals that
the copy routines are not completing before exit/tear-down.

This fix adds synchronization and proper closure such that these
routines exit successfully.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-26 13:47:34 -05:00
Justin Cormack
39b799ac53 Add some uses of personality syscall to default seccomp filter
We generally want to filter the personality(2) syscall, as it
allows disabling ASLR, and turning on some poorly supported
emulations that have been the target of CVEs. However the use
cases for reading the current value, setting the default
PER_LINUX personality, and setting PER_LINUX32 for 32 bit
emulation are fine.

See issue #20634

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-02-26 18:43:08 +01:00
David Calavera
e330d0749c Merge pull request #20703 from riyazdf/notary-v0.2.0-vendor
Vendor in notary v0.2.0
2016-02-26 08:53:07 -08:00
Brian Goff
c47674efda Merge pull request #20428 from jfrazelle/generate-conversion
generate seccomp profile convert type
2016-02-26 10:28:23 -05:00
Antonio Murdaca
bf04d68db2 pkg: idtools: fix subid files parsing
Since Docker is already skipping newlines in /etc/sub{uid,gid},
this patch skips commented out lines - otherwise Docker fails to start.
Add unit test also.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-26 15:42:05 +01:00
Sebastiaan van Stijn
9792308b84 Merge pull request #20515 from raesene/patch-1
Update security.md with basic User Namespace info.
2016-02-26 14:02:46 +01:00
Sebastiaan van Stijn
d622494c3b Merge pull request #20722 from thaJeztah/remove-vivid-reference
remove leftover Ubuntu 15.04 from install docs
2016-02-26 13:59:36 +01:00
Sebastiaan van Stijn
1ca064cb62 remove leftover Ubuntu 15.04 from install docs
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-26 13:00:27 +01:00
Riyaz Faizullabhoy
0bb1acee37 bumping miekg/pkcs11 dependency for go1.6
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-02-25 21:29:37 -08:00
Brian Goff
6748cc10ac Merge pull request #20655 from hqhq/hq_fix_update_memoryswap
Fix problems when update swap memory
2016-02-25 22:28:53 -05:00
David Calavera
6c35350bab Merge pull request #20263 from Microsoft/jjh/testunit-fileutils
Windows CI: Fixes panic in test-unit for FileUtils
2016-02-25 17:35:32 -08:00
David Calavera
dd53ab14e4 Merge pull request #20481 from HackToday/addcheckfd
Add check for non-systemd fd use case
2016-02-25 16:38:53 -08:00
David Calavera
d8b6e62f50 Merge pull request #20580 from BrianBland/crossRepoPushRetry
Improve auth fallback behavior for cross-repository push
2016-02-25 16:37:04 -08:00
Sebastiaan van Stijn
5cb4693300 Merge pull request #20673 from Microsoft/jjh/testkill
Windows CI: Port TestKill*
2016-02-26 01:11:51 +01:00
Brian Goff
f31014197c Add finer-grained locking for aufs
```
benchmark                       old ns/op       new ns/op     delta
BenchmarkConcurrentAccess-8     10269529748     26834747      -99.74%

benchmark                       old allocs     new allocs     delta
BenchmarkConcurrentAccess-8     309948         7232           -97.67%

benchmark                       old bytes     new bytes     delta
BenchmarkConcurrentAccess-8     23943576      1578441       -93.41%
```

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-25 18:06:41 -05:00
Riyaz Faizullabhoy
84dc2d9e70 Vendor in notary v0.2.0
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-02-25 13:40:00 -08:00
Tibor Vass
6fa5576e30 Merge pull request #20697 from tiborvass/tls-remote-daemon-tests
Support TLS remote test daemon
2016-02-25 16:16:40 -05:00
Tibor Vass
2b819b76df Merge pull request #20663 from calavera/standalone_middlewares
Make server middleware standalone functions.
2016-02-25 15:01:07 -05:00
Brian Goff
55c91f2ab9 Fix some issues with concurrency in aufs.
Adds a benchmark to measure performance under concurrent actions.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-25 14:32:13 -05:00
Tibor Vass
f4a1e3db99 Support TLS remote test daemon
This will allow us to have a windows-to-linux CI, where the linux host
can be anywhere, connecting with TLS.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-25 14:12:17 -05:00
Michael Crosby
6582013207 Merge pull request #20633 from crosbymichael/unit-file
Add "Delegate=yes" to docker's service file
2016-02-25 10:47:46 -08:00
Michael Crosby
d16737f971 Add "Delegate=yes" to docker's service file
We need to add delegate yes to docker's service file so that it can
manage the cgroups of the processes that it launches without systemd
interfering with them and moving the processes after it is reloaded.

```
       Delegate=
           Turns on delegation of further resource control partitioning to
           processes of the unit. For unprivileged services (i.e. those
           using the User= setting), this allows processes to create a
           subhierarchy beneath its control group path. For privileged
           services and scopes, this ensures the processes will have all
           control group controllers enabled.
```

This is the proper fix for issue #20152

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-02-25 10:32:09 -08:00
Alexander Morozov
60e2d5e0b0 Merge pull request #20681 from icecrime/aaronl_maintainer
Add @aaronlehmann to maintainers
2016-02-25 09:18:28 -08:00
Vincent Demeester
61d24e769d Merge pull request #20572 from runcom/sudo-user
resolve the config file from the sudo user
2016-02-25 16:05:25 +01:00
Antonio Murdaca
e4a6a889be Merge pull request #20695 from vdemeester/fix-windowsTP4-check
Fix TestExecApiStartWithDetach on WindowsTP4
2016-02-25 16:04:23 +01:00
Vincent Demeester
21c8511123 Fix TestExecApiStartWithDetach on WindowsTP4
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-25 14:27:22 +01:00
Vincent Demeester
41f2a674b8 Merge pull request #20691 from vincentbernat/doc/simplify-overlay
docs: simplify some steps of the overlay network guide
2016-02-25 13:31:13 +01:00
Vincent Bernat
db5ded0dfc docs: simplify some steps of the overlay network guide
Instead of using a process expansion to feed the right arguments to
docker to run on "mh-keystore", just moves up the next step which makes
"mh-keystore" the default target. This makes the guide a bit shorter and
easier to understand.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2016-02-25 13:17:26 +01:00
Sebastiaan van Stijn
7cf03700f8 Merge pull request #20679 from Microsoft/jjh/testrestart
Windows CI: Port docker_cli_restart_test.go
2016-02-25 10:17:25 +01:00
Vincent Demeester
13b6733ee8 Merge pull request #20685 from estesp/userns-dev-fuse-fix
Filter auto-created device list if user namespaces enabled
2016-02-25 10:01:13 +01:00
Wen Cheng Ma
bc72883fe1 Enhancement of docker ps before and since filters
This enhancement is to fix the wrong list results on
`docker ps` before and since filters specifying the non-running container.

Fixes issue #20431

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-02-25 16:58:31 +08:00
Vincent Demeester
4c014296a1 Merge pull request #20687 from CWSpear/patch-1
Add the Local Persist plugin to docs
2016-02-25 09:39:07 +01:00
Sebastiaan van Stijn
ca7ce05e81 Merge pull request #20677 from Microsoft/jjh/testclilogs
Windows CI: Port docker_cli_logs_test.go
2016-02-25 09:38:23 +01:00
Vincent Demeester
0ad04242b4 Merge pull request #20682 from cpuguy83/fix_volplugin_panics
Fix panic when plugin responds with null volume
2016-02-25 09:32:54 +01:00
Vincent Demeester
9f1ad7850c Merge pull request #20674 from Microsoft/jjh/testlogsapi
Windows CI: Port TestLogsAPI*
2016-02-25 09:11:15 +01:00
Vincent Demeester
a13945dd16 Merge pull request #20680 from cpuguy83/close_plugin_req_body_on_error
Close resp body on plugin call error
2016-02-25 09:10:17 +01:00
Vincent Demeester
abfc480f4b Merge pull request #20664 from Microsoft/jjh/busyboxtop
Windows CI: Integrity check for busybox top
2016-02-25 09:09:37 +01:00
Vincent Demeester
3f7c078aab Merge pull request #20683 from zhangjianfnst/fix-flaws-in-man
Fix some flaws in man.
2016-02-25 09:01:32 +01:00
Vincent Demeester
46c0c5e86b Merge pull request #20671 from nakulpathak3/readme-extension
Add .md extension to readme for markdown rendering
2016-02-25 08:40:00 +01:00
Cameron Spear
cc085be7cc Add the Local Persist plugin
I wasn't 100% sure if it was appropriate to add plugin here, but @thaJeztah invited me to do so, so here it is!

(see https://github.com/CWSpear/local-persist/issues/17#issuecomment-188523784)

Signed-off-by: Cameron Spear <cameronspear@gmail.com>
2016-02-24 23:29:58 -08:00
Liron Levin
ca5c2abecf Fix #20508 - Authz plugin enabled with large text/JSON POST payload corrupts body
Based on the discussion, we have changed the following:

1. Send body only if content-type is application/json (based on the
Docker official daemon REST specification, this is the provided for all
APIs that requires authorization.

2. Correctly verify that the msg body is smaller than max cap (this was
the actual bug). Fix includes UT.

3. Minor: Check content length > 0 (it was -1 for load, altough an
attacker can still modify this)

Signed-off-by: Liron Levin <liron@twistlock.com>
2016-02-25 08:11:55 +02:00
Phil Estes
9a554e8c37 Filter auto-created device list if user namespaces enabled
Because devices will be bind-mounted instead of using `mknod`, we need
to make sure the source exists and filter the list by only those whose
source is a valid path/current device entry.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-25 00:11:36 -05:00
John Howard
10bd587d77 Windows CI: Port docker_cli_logs_test.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-24 20:19:48 -08:00
David Calavera
cee4ff1c4a Merge pull request #20647 from coolljt0725/fix_20638
Fix exec start api with detach and AttachStdin at same time. fixes #2…
2016-02-24 20:17:15 -08:00
Brian Bland
1d3480f9ba Improve fallback behavior for cross-repository push
Attempt layer mounts from up to 3 source repositories, possibly
falling back to a standard blob upload for cross repository pushes.
Addresses compatiblity issues with token servers which do not grant
multiple repository scopes, resulting in an authentication failure for
layer mounts, which would otherwise cause the push to terminate with an
error.

Signed-off-by: Brian Bland <brian.bland@docker.com>
2016-02-24 19:13:35 -08:00
Lei Jitang
b9366c9609 Fix configuration reloading
There are five options 'debug' 'labels' 'cluster-store' 'cluster-store-opts'
and 'cluster-advertise' that can be reconfigured, configure any of these
options should not affect other options which may have configured in flags.
But this is not true, for example, I start a daemon with -D to enable the
debugging, and after a while, I want reconfigure the 'label', so I add a file
'/etc/docker/daemon.json' with content '"labels":["test"]' and send SIGHUP to daemon
to reconfigure the daemon, it work, but the debugging of the daemon is also diabled.
I don't think this is a expeted behaviour.
This patch also have some minor refactor of reconfiguration of cluster-advertiser.
Enable user to reconfigure cluster-advertiser without cluster-store in config file
since cluster-store could also be already set in flag, and we only want to reconfigure
the cluster-advertiser.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-24 21:12:14 -05:00
Lei Jitang
fb0ac1afd9 Fix exec start api with detach and AttachStdin at same time. fixes #20638
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-24 21:04:44 -05:00
Jian Zhang
877e6d76a4 Fix some flaws in man.
Signed-off-by: Jian Zhang <zhangjian.fnst@cn.fujitsu.com>
2016-02-25 09:48:21 +08:00
Brian Goff
96c79a1934 Fix panic when plugin responds with null volume
In cases where the a plugin responds with both a null or empty volume
and a null or empty Err, the daemon would panic.
This is because we assumed the idiom if `err` is nil, then `v` must not
be but in reality the plugin may return whatever it wants and we want to
make sure it doesn't harm the daemon.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-24 20:45:38 -05:00
Arnaud Porterie
5a264f2806 Add @aaronlehmann to maintainers
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-24 17:31:12 -08:00
Brian Goff
93ad9c31fc Close resp body on plugin call error
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-24 20:09:51 -05:00
John Howard
281c1ced6d Windows CI: Port docker_cli_restart_test.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-24 15:21:56 -08:00
Sebastiaan van Stijn
0f01b21702 Merge pull request #20630 from tkopczynski/10084-cmd-entrypoint
Docs: add note about CMD and ENTRYPOINT commands
2016-02-25 00:19:30 +01:00
Tomasz Kopczynski
1ed84770c5 Docs: add note about CMD and ENTRYPOINT commands
Signed-off-by: Tomasz Kopczynski <tomek@kopczynski.net.pl>
2016-02-24 22:57:25 +01:00
John Howard
00f65ae810 Windows CI: Port TestLogsAPI*
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-24 13:43:52 -08:00
John Howard
03e2ff322b Windows CI: Port TestKill*
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-24 13:33:25 -08:00
Rory McCune
c1e53ad1aa Update security.md with basic User Namespace info.
Just some suggested wording to update this page to take account of User Namespaces being available as of 1.10.

Signed-off-by: Rory McCune <rorym@mccune.org.uk>
2016-02-24 20:53:00 +00:00
Nakul Pathak
0f35bb92fe Add .md extension to readme for markdown rendering
Signed-off-by: Nakul Pathak <nakulpathak3@hotmail.com>
2016-02-24 20:39:46 +00:00
David Calavera
1ba44a832f Make server middleware standalone functions.
Removing direct dependencies from the server configuration.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-24 14:48:52 -05:00
John Howard
6a931c3590 Windows CI: Integrity check for busybox top
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-24 11:00:47 -08:00
Mike Danese
123f22004b vendor: add dependencies of gcplogs driver
The added dependencies are:
* golang.org/x/oauth2
* google.golang.org/api
* google.golang.org/cloud

Signed-off-by: Mike Danese <mikedanese@google.com>
2016-02-24 10:42:32 -08:00
Alexander Morozov
a7fefcf16c Merge pull request #20641 from cpuguy83/revert_inotify_changes
Revert fsnotify changes
2016-02-24 10:10:03 -08:00
Arnaud Porterie
467c8b1a6a Merge pull request #20637 from Microsoft/jjh/fixteststartattachmultiplecontainers
Windows CI: Fix TestStartAttachMultipleContainers
2016-02-24 08:46:00 -08:00
Brian Goff
f9524a4d24 add file poller panic fix from 1.10.2
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-24 10:17:29 -05:00
Sebastiaan van Stijn
efb915800a Merge pull request #20649 from runcom/fedora-update-userns
docs: reference: commandline: daemon: fedora 23+ has mapping files
2016-02-24 16:04:02 +01:00
Antonio Murdaca
eb902ef257 docs: reference: commandline: daemon: fedora 23+ has mapping files
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-24 15:43:28 +01:00
Antonio Murdaca
afde6450ee resolve the config file from the sudo user
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-24 15:41:00 +01:00
Sebastiaan van Stijn
5fdfb2985b Merge pull request #20619 from Microsoft/jjh/useraccounts
Windows: Updates for virtual user account
2016-02-24 13:48:27 +01:00
Sebastiaan van Stijn
2cc54a2e57 Merge pull request #20643 from estesp/userns-chkconfig-redhat
Add check for RHEL7/CentOS7 experimental userns disabled
2016-02-24 11:42:26 +01:00
Sebastiaan van Stijn
034a1a8dfd Merge pull request #20017 from calavera/expose_volumes_in_ps
Add mounts to docker ps.
2016-02-24 11:08:21 +01:00
Qiang Huang
fa3b197157 Restore container configs when update failed
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-02-24 14:23:48 +08:00
Qiang Huang
8ae6f6ac28 Support update swap memory only
We should support update swap memory without memory.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-02-24 13:36:47 +08:00
Phil Estes
2355151556 Add check for RHEL7/CentOS7 experimental userns disabled
Add a check in `check-config.sh` to see if we are running on a RHEL7 or
CentOS7 system, which may report that CONFIG_USERNS is OK/enabled, but
user namespaces still won't work because of the experimental feature
flag added by Redhat.

This will add a warning if it is actually disabled and notes what has to
be added to the grub/boot command line to enable it.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-23 23:28:24 -06:00
Brian Goff
91fdfdd537 Revert "use pubsub instead of filenotify to follow json logs"
This reverts commit b1594c59f5.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-23 21:43:52 -05:00
Brian Goff
f78091897a Revert "pkg: remove unused filenotify"
This reverts commit ee99b5f2e9.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-23 21:43:46 -05:00
Brian Goff
d3bffa1639 Revert "vendor: remove fsnotify"
This reverts commit bc195e1558.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-23 21:43:27 -05:00
Arnaud Porterie
2d0c3d1328 Merge pull request #20631 from LK4D4/update_libcontainer
Update libcontainer to 2c3115481ee1782ad687a9e0b4834f89533c2acf
2016-02-23 16:24:46 -08:00
John Howard
ef9f13af3d Windows CI: Fix TestStartAttachMultipleContainers
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-23 16:24:35 -08:00
Anusha Ragunathan
204c7808f9 Always create apt-ftparchive.conf.
The Releases file(s) and other bits for EOL-ed distros such as Ubuntu
Vivid should remain untouched when we are releasing debs.

However, few files in https://apt.dockerproject.org/repo/dists/ubuntu-vivid/
were being updated for the docker 1.10 release including the Release files.
This is due to apt-ftparchive generating index files for vivid as well,
due to the stale apt-ftparchive.conf

This change always creates config using suites in contrib/reprepro/suites.sh.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-02-23 16:06:43 -08:00
Arnaud Porterie
a9e6274224 Merge pull request #20627 from tophj-ibm/fix-flaky-oom-tests
Fix flaky OOM tests
2016-02-23 15:37:32 -08:00
Morgan Bauer
67629c8b52 do not turn post-processing on for linux-cgo term
- fixes #15373
 - remove set OPOST output flag for termios
 - remove latent os.Exit call

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2016-02-23 14:14:58 -08:00
David Calavera
2ed1806b2c Merge pull request #20610 from justechn/fix_docs
Fix docs
2016-02-23 13:45:29 -08:00
Alexander Morozov
4fc5bd295e Update libcontainer to 2c3115481ee1782ad687a9e0b4834f89533c2acf
It includes fix for parsing systemd cgroup names

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-02-23 13:37:20 -08:00
John Howard
b368a9f9b7 Windows CI: Fixes panic in test-unit for FileUtils
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-23 13:31:45 -08:00
Christopher Jones
3abf2a7741 Fix flaky OOM tests
If cgroup swap memory limit isn't enabled, then
the -m flag doesn't work and the container that is created for
both of these tests is very large. Because we are trying to run the
containers out of memory, this takes a very long time and causes the
tests to fail most of the time.

Follow-up to #17913

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-02-23 15:26:26 -05:00
Tibor Vass
9ec015edff Merge pull request #20618 from icecrime/fix_TestExec
Fix flaky TestExec
2016-02-23 13:44:04 -05:00
Ryan McLaughlin
d14cef441d fixing the path of the key pair
Signed-off-by: Ryan McLaughlin <ryanmclaughlin@gmail.com>

Fixed a bit of grammar

Signed-off-by: Ryan McLaughlin <ryanmclaughlin@gmail.com>
2016-02-23 11:32:28 -07:00
Arnaud Porterie
0a7755ab4e Fix flaky TestExec
The container started with `-d` as part of the test requires a `waitRun`
to ensure it is actually running before attempting any other operation.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-23 09:51:09 -08:00
John Howard
800c9e81ea Windows: Updates for virtual user account
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-23 09:47:52 -08:00
Nalin Dahyabhai
6cdc4ba6cd Try to handle changing names for journal packages
When checking if we have the development files for libsystemd's journal
APIs, check for either 'libsystemd >= 209' and 'libsystemd-journal'.  If
we find 'libsystemd', define the 'journald' tag, which defaults to using
the 'libsystemd.pc' file.  If we find the older 'libsystemd-journal',
define both the 'journald' and 'journald_compat' tags, which causes the
'libsystemd-journal.pc' file to be consulted instead.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2016-02-23 12:24:27 -05:00
David Calavera
bd4fb00fb6 Add mounts to docker ps.
- Allow to filter containers by volume with `--filter volume=name` and `filter volume=/dest`.
- Show their names in the list with the custom format `{{ .Mounts }}`.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-23 12:10:24 -05:00
Brian Goff
0f18fa939c Merge pull request #20591 from nerdalert/logrus_dbg_msg
Fixed logrus client/server mismatch debug msg
2016-02-23 11:59:37 -05:00
Vincent Demeester
20fc13b56d Merge pull request #20613 from aidanhs/aphs-ipv6-docs-followup
Update docs for enableipv6
2016-02-23 17:57:58 +01:00
David Calavera
9d882cbb44 Merge pull request #20581 from stweil/master
Fix some typos in comments and strings
2016-02-23 08:20:53 -08:00
David Calavera
1e02a0810e Merge pull request #20590 from HackToday/fixdoc
Fix doc format issue
2016-02-23 08:20:03 -08:00
Aidan Hobson Sayers
82d486848d Update docs for enableipv6
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-02-23 16:10:54 +00:00
Sebastiaan van Stijn
98d6dedde3 Merge pull request #20597 from zhuguihua/fix_markdown_style_error_in_man_page
Fix markdown style error in man page
2016-02-23 16:15:46 +01:00
Sebastiaan van Stijn
f3b5fdc23d Merge pull request #20514 from calavera/github_templates
Add tempates for new issues and pull requests.
2016-02-23 15:27:52 +01:00
Vincent Demeester
783d6c64cf Merge pull request #20500 from ZJUshuaizhou/master
Update docker_remote_api_v1.22.md
2016-02-23 14:54:01 +01:00
Doug Davis
dbec35ffd3 Merge pull request #20598 from wenchma/typo
Fix typo
2016-02-23 07:28:50 -05:00
Shijiang Wei
d7af031114 make the json log writer much faster
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-02-23 19:28:06 +08:00
Wen Cheng Ma
8474bbff45 Fix typo
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-02-23 17:27:55 +08:00
Zhu Guihua
2aa4280d93 Fix markdown style error in man page
Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
2016-02-23 16:10:17 +08:00
ZJUshuaizhou
220a188ae8 update all the versions from v1.19 to v1.23
update v1.22

Signed-off-by: ZJUshuaizhou <21551191@zju.edu.cn>

update all the versions docs

Signed-off-by: ZJUshuaizhou <21551191@zju.edu.cn>

revert v1,20

Signed-off-by: ZJUshuaizhou <21551191@zju.edu.cn>

update v1,20

Signed-off-by: ZJUshuaizhou <21551191@zju.edu.cn>

revert v1,20

Signed-off-by: ZJUshuaizhou <21551191@zju.edu.cn>

update v1,20

Signed-off-by: ZJUshuaizhou <21551191@zju.edu.cn>
2016-02-23 14:34:27 +08:00
Brent Salisbury
a499ad8e4e Fixed logrus client/server mismatch debug msg
Signed-off-by: Brent Salisbury <brent@docker.com>
2016-02-22 23:36:33 -05:00
Kai Qiang Wu(Kennan)
4d4d1e7f82 Fix doc format issue
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-23 03:42:10 +00:00
Brian Goff
0d808683a1 Merge pull request #20588 from WeiZhang555/typo
Fix typo
2016-02-22 21:30:01 -05:00
Zhang Wei
2264bd95b6 Fix typo
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-23 10:25:24 +08:00
David Calavera
921c744bc3 Merge pull request #20579 from MHBauer/cleanup
consistent variable names in api/server/router
2016-02-22 15:20:48 -08:00
David Calavera
9cac2716f7 Add tempates for new issues and pull requests.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-22 14:59:50 -05:00
Stefan Weil
2eee613326 Fix some typos in comments and strings
Most of them were found and fixed by codespell.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2016-02-22 20:27:15 +01:00
Morgan Bauer
9021506502 consistent variable names in api/server/router
- banish 'daemon'

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2016-02-22 10:53:47 -08:00
Brian Goff
40397d8059 Merge pull request #20552 from Microsoft/jjh/dockerfilereliability
Windows CI: Making dockerfile WAAAAAY faster
2016-02-22 13:11:23 -05:00
Vincent Demeester
4a087e4e6b Merge pull request #20557 from hsinko/fix_api_docs
Fix tiny error. And Previous PR missed to update docker_remote_api v1.22 and v1.23
2016-02-22 14:43:50 +01:00
hsinko
5642cdeac5 Update docker_remote_api_v1.22.md and v1.23 to complete the docs
Signed-off-by: hsinko <21551195@zju.edu.cn>

id in example request should be a exact value

Signed-off-by: hsinko <21551195@zju.edu.cn>

revert v1.22 doc

Signed-off-by: hsinko <21551195@zju.edu.cn>

fix tiny errors

Signed-off-by: hsinko <21551195@zju.edu.cn>
2016-02-22 20:49:10 +08:00
Vincent Demeester
5d33ff7e9d Merge pull request #20562 from albers/completion-update--restart
Add bash completion for `docker update --restart`
2016-02-22 13:44:31 +01:00
Vincent Demeester
0542f66823 Merge pull request #20561 from albers/completion-etwlogs
Add bash completion for etwlogs logging driver
2016-02-22 13:42:46 +01:00
Vincent Demeester
074442df7a Merge pull request #20482 from zhuguihua/fix_storage_driver_options_in_man_page
fix storage driver options in man page
2016-02-22 10:40:52 +01:00
Zhu Guihua
13deb4a245 fix storage driver options in man page
Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com>
2016-02-22 17:34:19 +08:00
Kai Qiang Wu(Kennan)
3c69d340eb Add check for non-systemd fd use case
We make the check more user-friendly, and users can learn
start docker with wrong fd used.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-22 01:53:38 +00:00
Harald Albers
dd4aa7f0e9 bash completion for docker update --restart
Signed-off-by: Harald Albers <github@albersweb.de>
2016-02-21 10:21:28 -08:00
Harald Albers
1cd6b545ec bash completion for etwlogs logging driver
Signed-off-by: Harald Albers <github@albersweb.de>
2016-02-21 09:58:42 -08:00
Vincent Demeester
675617bc85 Merge pull request #20549 from estesp/unskip-authz-events
Unskip authz events test after fixes
2016-02-21 09:32:28 +01:00
Vincent Demeester
1b811a8930 Merge pull request #20541 from tracylihui/20536-fix
Update docker_remote_api_v1.21.md to complete the docs
2016-02-21 09:27:50 +01:00
John Howard
c7089b4b46 Windows CI: Making dockerfile WAAAAAY faster
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-20 22:45:08 -08:00
tracylihui
cc2ff8c921 Update docs/reference/api to complete the docs
Signed-off-by: tracylihui <793912329@qq.com>
2016-02-21 10:28:07 +08:00
Phil Estes
4781d5c4fb Unskip authz events test after fixes
Now that the various fixes are all committed, let's see if this gets
less flaky now.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-20 20:19:54 -06:00
Vincent Demeester
3646b14ecd Merge pull request #20528 from cloojure/patch-3
Update dockernetworks.md
2016-02-20 23:25:51 +01:00
Vincent Demeester
41a2bac7cf Merge pull request #20542 from longliqiang88/master2.201
Update doc docker_remote_api_v1.20.md
2016-02-20 19:18:28 +01:00
Sebastiaan van Stijn
d006e32a91 Merge pull request #20519 from lblackstone/update-packager-readme
Update Packagers readme with seccomp info
2016-02-20 19:17:11 +01:00
longliqiang88
47e3ea7dd1 Update doc docker_remote_api_v1.20.md
Update doc docker_remote_api_v1.20.md
Signed-off-by: longliqiang88 <394564827@qq.com>
2016-02-20 19:32:20 +08:00
tracylihui
df3ede95eb Update docker_remote_api_v1.21.md to complete the docs
Signed-off-by: tracylihui <793912329@qq.com>
2016-02-20 19:17:19 +08:00
Antonio Murdaca
076b3558fc Merge pull request #20509 from estesp/cleanup-authz-test
Clean up authz integration-cli test
2016-02-20 12:10:29 +01:00
Sebastiaan van Stijn
dc0a69cbcd Merge pull request #20535 from hsinko/dev
A wrong word
2016-02-20 11:57:29 +01:00
Vincent Demeester
fe275414fe Merge pull request #19116 from WeiZhang555/19025-update-restart
Update RestartPolicy of container
2016-02-20 11:39:31 +01:00
Zhang Wei
ff3ea4c90f Update RestartPolicy of container
Add `--restart` flag for `update` command, so we can change restart
policy for a container no matter it's running or stopped.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-20 17:06:32 +08:00
hsinko
0b64280195 Update configure-dns.md
Modify word error
Signed-off-by: hsinko <21551195@zju.edu.cn>
2016-02-20 11:51:59 +08:00
Tibor Vass
6668326aa8 Merge pull request #20471 from calavera/userland_proxy_config_fix
Avoid setting default truthy values from flags that are not set.
2016-02-19 21:00:37 -05:00
Alan Thompson
549fa67dae Update dockernetworks.md
Fix truncated sentence

Signed-off-by: Alan Thompson <cloojure@gmail.com>
2016-02-19 16:57:13 -08:00
Tibor Vass
3d65e7126c Merge pull request #20446 from estesp/fix-userns-cp
Fix copy chown settings to not default to real root
2016-02-19 19:45:44 -05:00
Phil Estes
fe015c5ce0 Allow post-start load of busybox to remove restarts
The restarts in the authz plugin test suite seems to be causing
flakiness in CI, and can be avoided by separating the daemon start and
busybox image load.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-19 18:44:36 -06:00
David Calavera
64785ff146 Merge pull request #20521 from estesp/vendor-engine-api-fix
Update engine-api vendoring to latest commit
2016-02-19 15:41:17 -08:00
Arnaud Porterie
b9195cd6d4 Merge pull request #20464 from cpuguy83/fix_events_flakiness
Fix events test flakiness.
2016-02-19 15:39:27 -08:00
David Calavera
31cb96dcfa Avoid setting default truthy values from flags that are not set.
When the value for a configuration option in the file is `false`,
and the default value for a flag is `true`, we should not
take the value from the later as final value for the option,
because the user explicitly set `false`.

This change overrides the default value in the flagSet with
the value in the configuration file so we get the correct
result when we merge the two configurations together.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-19 18:39:10 -05:00
Phil Estes
1c2db56d2f Update engine-api vendoring to latest commit
This picks up the change for `Content-Type` which will help solve issues
with authz plugins.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-19 16:20:27 -06:00
Levi Blackstone
b25b9b5709 Update Packagers readme with seccomp info
Signed-off-by: Levi Blackstone <levi.blackstone@rackspace.com>
2016-02-19 15:36:34 -06:00
Antonio Murdaca
11435b674b add seccomp default profile fix tests
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-19 13:32:54 -08:00
Jessica Frazelle
ad600239bc generate seccomp profile convert type
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-19 13:32:54 -08:00
David Calavera
e51457eea8 Merge pull request #20513 from tonistiigi/retake-ref
Fix releasing reference on deletion error
2016-02-19 13:25:26 -08:00
Jess Frazelle
a657cfd68b Merge pull request #20417 from redbaron/fix-deferred-removal-detection
Fix libdevmapper deferred removal detection
2016-02-19 13:58:18 -07:00
Jess Frazelle
3b62a610ec Merge pull request #20288 from tiborvass/debian-jessie
Switch Dockerfile to debian:jessie ... AGAIN
2016-02-19 13:51:30 -07:00
Brian Goff
0e72550c5b Merge pull request #20383 from HackToday/addsort
Make network ls output order
2016-02-19 15:42:48 -05:00
Brian Goff
48701888c2 Merge pull request #20389 from HackToday/addvolumesupport
Make volume ls output order
2016-02-19 15:41:34 -05:00
Arnaud Porterie
9d70aef2c7 Merge pull request #20511 from icecrime/skip_flaky_test
Temporarily skip TestAuthZPluginAllowEventStream
2016-02-19 10:57:30 -08:00
Tonis Tiigi
64530c8e47 Fix releasing reference on deletion error
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-02-19 10:42:29 -08:00
Arnaud Porterie
6e0f873f05 Temporarily skip TestAuthZPluginAllowEventStream
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-19 10:32:05 -08:00
Tibor Vass
aa1fdf42da Merge pull request #20253 from aaronlehmann/smarter-tls-fallback
Smarter push/pull fallback from TLS to plaintext
2016-02-19 13:16:53 -05:00
Phil Estes
074561b0ec Clean up authz integration-cli test
- Order the flow of the handlers more cleanly--read req, do actions,
  write response.
- Add "always allowed" endpoints to handle `/_ping` and `/info` usage
  from the test framework/daemon start/restart management

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-19 10:12:39 -08:00
Vincent Demeester
06af9471f8 Merge pull request #20386 from zhangjianfnst/fix-some-flaws-in-docs
Fix some flaws in docs
2016-02-19 17:07:50 +01:00
Sebastiaan van Stijn
d6576ad9f0 Merge pull request #20504 from fuzzbomb/20503-document-names-format-placeholder-docker-ps-man-page
Document .Names format placeholder in docker-ps man page, fixes #20503.
2016-02-19 16:34:23 +01:00
Andrew Macpherson
22d22eb9e1 Document .Names format placeholder in docker-ps man page, fixes #20503.
Signed-off-by: Andrew Macpherson <hopscotch23@gmail.com>
2016-02-19 15:13:34 +00:00
Sebastiaan van Stijn
787fe507bf Merge pull request #20479 from qunhu/master
fix docs
2016-02-19 15:55:33 +01:00
Sebastiaan van Stijn
33997ba69c Merge pull request #20487 from wenchma/typo-error
Fix typo error of dockernetworks.md
2016-02-19 15:24:59 +01:00
Zhang Wei
439433099e Clean redundant error message for export
When execute `docker export -o path xxx` and path is a directory docker
has no privilege to write to, daemon will print lots of error logs that
most of them are duplicated and redundant.

This will remove unnecessary error logs and print only once.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-19 18:50:11 +08:00
Wen Cheng Ma
f03050cc4c Fix typo error of dockernetworks.md
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-02-19 17:18:52 +08:00
huqun
b96bbf26db fix docs
Signed-off-by: huqun  <huqun@zju.edu.cn>
2016-02-19 13:51:14 +08:00
Arnaud Porterie
117a982d2e Merge pull request #20419 from aboch/cr
Allow passing global datastore to libnetwork and v0.7.0-dev1 vendoring
2016-02-18 17:39:46 -08:00
Jian Zhang
cdc7f26715 Fix some flaws in docs
Signed-off-by: Jian Zhang <zhangjian.fnst@cn.fujitsu.com>
2016-02-19 09:27:03 +08:00
David Calavera
c96564a76c Merge pull request #20433 from runcom/fixies
runconfig: opts: parse: lowercase errors
2016-02-18 17:08:01 -08:00
Arnaud Porterie
7068722678 Merge pull request #20458 from aaronlehmann/migration-close-gzip-writer
Close tarsplit gzip writer when creating tar-split.json.gz files during layer migration
2016-02-18 16:48:50 -08:00
Arnaud Porterie
6a8342d63d Merge pull request #20460 from Microsoft/jjh/latestw2lciscripts
Check in latest Win2Lin Jenkins scripts
2016-02-18 15:58:24 -08:00
Phil Estes
40be5dba47 Fix copy chown settings to not default to real root
This corrects `docker cp` behavior when user namespaces are enabled.
Instead of chown'ing copied-in files to real root (0,0), the code
queries for the remapped root uid & gid and sets the chown option
properly.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-18 14:44:13 -08:00
David Calavera
319bbff799 Merge pull request #20381 from cpuguy83/20378_fix_multiple_deref
Fix issue with multiple volume refs with same name
2016-02-18 13:51:10 -08:00
David Calavera
22ff08e5b2 Merge pull request #20452 from icecrime/roadmap_update
Update ROADMAP.md
2016-02-18 13:50:27 -08:00
Sebastiaan van Stijn
b52cd79cf4 Merge pull request #20459 from ozlerhakan/master
add a new sub-section to each volume page
2016-02-18 22:40:52 +01:00
Brian Goff
abbf2aa6dd Fix events test flakiness.
Since channel is getting a send instead of a close now, this can cause
random issues ranging through the list of channels if the channel is
unbuffered since the send may be blocked.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-18 16:10:29 -05:00
Madhu Venugopal
c9bec2be2a Config-reload IT
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-02-18 12:22:56 -08:00
Santhosh Manohar
e5293f97f2 IT case for sending invalid query to embedded DNS server
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-02-18 12:14:19 -08:00
Alessandro Boch
ed364b69df Invoke ReloadConfiguration on network controller
- It reverts fa163f5619 plus a small change
  in order to allow passing the global scope datastore
  to libnetwork after damon boot.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-02-18 12:14:14 -08:00
John Howard
d86f0d9b6d Check in latest Win2Lin Jenkins scripts
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-18 11:59:08 -08:00
ozlerhakan
910ea8adf6 add a section to each volume page
Signed-off-by: ozlerhakan <hakan.ozler@kodcu.com>
2016-02-18 21:52:15 +02:00
Arnaud Porterie
038c3b8287 Merge pull request #20426 from calavera/remove_channel_close
Remove channel close.
2016-02-18 11:13:30 -08:00
Aaron Lehmann
1c05c65f6f Close tarsplit gzip writer when creating tar-split.json.gz files during layer migration
There is a missing call to Close on the gzip.Writer that is used to
compress newly created tar-split files during layer migration. This can
result in corrupt tar-split files that later cause docker push and
docker save to fail. The Close call is necessary to flush buffered data
to the stream.

Fixes: #20104

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-18 10:55:38 -08:00
David Calavera
2e6c841b82 Merge pull request #17513 from aidanhs/aphs-expose-ipv6-default-bridge
Expose bridge IPv6 setting to `docker network inspect`
2016-02-18 10:35:04 -08:00
Sebastiaan van Stijn
84d2d6acdd Merge pull request #20438 from YeZhenan/nodejs_web_app-update
update the dockfile of dockerizing a Node.js app.
2016-02-18 19:17:59 +01:00
David Calavera
2f283f3cd8 Merge pull request #20447 from cpuguy83/fix_netnone
Fix net=none w/ TestDaemonNoSpaceleftOnDeviceError
2016-02-18 10:10:26 -08:00
Arnaud Porterie
3b65dda2ed Update ROADMAP.md
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-18 09:39:25 -08:00
Brian Goff
aae454cb52 Merge pull request #20292 from Microsoft/jjh/testunit-pkgarchivestep2
Windows CI: test-unit on pkg\archive part 2
2016-02-18 12:12:09 -05:00
Brian Goff
e7b2523751 Merge pull request #20442 from cpuguy83/fix_flakey_TestAuthZPluginAllowEventStream
Fix flakey TestAuthZPluginAllowEventStream
2016-02-18 12:07:20 -05:00
Brian Goff
1fb144cb23 Merge pull request #20365 from calavera/remove_debug_from_server
Remove all docker debugging knowledge from the server.
2016-02-18 12:06:23 -05:00
Brian Goff
8e0e9e0f24 Fix net=none w/ TestDaemonNoSpaceleftOnDeviceError
Broken by bcb9adf49e

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-18 11:34:34 -05:00
Tianon Gravi
fb00fe5ea3 Merge pull request #20434 from cmehay/power8
Update to Golang 1.6 in Power8 Dockerfile
2016-02-18 08:33:38 -08:00
Brian Goff
be5939f407 Merge pull request #20333 from rhatdan/mqueue
/dev/mqueue should never be mounted readonly
2016-02-18 11:02:17 -05:00
Brian Goff
4cf9b725f2 Fix flakey TestAuthZPluginAllowEventStream
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-18 10:19:19 -05:00
Sebastiaan van Stijn
1f97f2232d Merge pull request #20415 from thaJeztah/improve-seccomp-warning
Be more explicit on seccomp availability
2016-02-18 15:18:36 +01:00
Zhenan Ye
883b0567f2 update the file of dockerizing a Node.js app.
Signed-off-by: Zhenan Ye <21551168@zju.edu.cn>
2016-02-18 06:12:11 -08:00
Sebastiaan van Stijn
13839a6d32 Be more explicit on seccomp availability
Seccomp is only *compiled* in binaries built for
distros that ship with seccomp 2.2.1 or higher,
and in the static binaries.

The static binaries are not really useful for
RHEL and CentOS, because devicemapper does
not work properly with the static binaries,
so static binaries is only an option for Ubuntu
and Debian.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-18 14:57:47 +01:00
Sebastiaan van Stijn
a9c73b1a7e Merge pull request #20425 from HackToday/fixindex
Fix wrong index marking
2016-02-18 14:49:15 +01:00
Christophe Mehay
7f0ca59ec2 Update to Golang 1.6 in Power8 Dockerfile
Signed-off-by: Christophe Mehay <cmehay@online.net>
2016-02-18 14:42:19 +01:00
Antonio Murdaca
d266142230 runconfig: opts: parse: lowercase errors
also fix wrong function comment

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-18 11:21:44 +01:00
Sebastiaan van Stijn
3406903fa2 Merge pull request #20423 from HackToday/fixdoc
Add sudo for related command
2016-02-18 10:00:43 +01:00
David Calavera
0109510830 Remove channel close.
Send a message instead, discarding duplicated messages.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-17 22:52:06 -05:00
Kai Qiang Wu(Kennan)
0b4e0ce7cd Fix wrong index marking
The index was wrong set in docs, so let's fix it

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-18 03:08:21 +00:00
Kai Qiang Wu(Kennan)
f7fe2f0992 Add sudo for related command
The du need sudo to perform to get correct results.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-18 02:58:26 +00:00
Aaron Lehmann
79db131a35 Change APIEndpoint to contain the URL in a parsed format
This allows easier URL handling in code that uses APIEndpoint.
If we continued to store the URL unparsed, it would require redundant
parsing whenver we want to extract information from it. Also, parsing
the URL earlier should give improve validation.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-17 17:48:15 -08:00
Alessandro Boch
196b27211b Vendoring libnetwork v0.7.0-dev.3
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-02-17 17:07:33 -08:00
Maxim Ivanov
24152a4231 Fix libdevmapper deferred removal detection
When linking, position of `-l` flags is important since
they muse come _after_ any object files which uses symbols
from a specified library, that is due to --as-needed binutils
ld flag enabled by default

Signed-off-by: Maxim Ivanov <ivanov.maxim@gmail.com>
2016-02-17 23:56:21 +00:00
David Calavera
776c5ee299 Merge pull request #20382 from HuKeping/fixbug
Bugfix: the actions when pull from notary should not contains `push`
2016-02-17 15:20:26 -08:00
David Calavera
e9234d8aaf Merge pull request #20411 from aaronlehmann/strengthen-TestPullFromCentralRegistryImplicitRefParts
Improve resilience of TestPullFromCentralRegistryImplicitRefParts
2016-02-17 15:08:20 -08:00
David Calavera
61aa025faf Merge pull request #20372 from tonistiigi/fix-empty-diffid
Fix migration diffid atomic write
2016-02-17 15:03:42 -08:00
David Calavera
9a81f206b3 Merge pull request #20408 from cpuguy83/use_pool_for_pubsub_wg
Use pool for pubsub `Publish`'s waitgroups
2016-02-17 14:46:13 -08:00
Alexander Morozov
929f62e64d Merge pull request #20187 from cyphar/vendor-runc
[carry 19752] vendor: update runc/libcontainer to v0.0.8
2016-02-17 13:59:00 -08:00
David Calavera
647d3266ea Merge pull request #20260 from Microsoft/jjh/testunit-pkggitutils
Windows CI: Unit tests - port pkg\gitutils
2016-02-17 13:50:17 -08:00
David Calavera
b26c21f704 Merge pull request #20407 from tiborvass/backmerge-1.10.1
Backmerge 1.10.1 fixes to master
2016-02-17 13:45:43 -08:00
Aaron Lehmann
8842011153 Improve resilience of TestPullFromCentralRegistryImplicitRefParts
Sometimes transient network issues will cause
TestPullFromCentralRegistryImplicitRefParts to end up pulling with the
v1 protocol. This violates the assumptions behind the test. To make the
test more robust, allow a few retries if any pull ends up using the v1
protocol.

Fixes #17214

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-17 13:08:51 -08:00
Sebastiaan van Stijn
6b70964fea Merge pull request #20375 from tiborvass/fix-yum-index-output
Fix index generator for apt/yum packages
2016-02-17 21:36:02 +01:00
Brian Goff
58d98f8288 Use pool for pubsub Publish's waitgroups
benchmark             old ns/op      new ns/op      delta
BenchmarkPubSub-8     1036494796     1032443513     -0.39%

benchmark             old allocs     new allocs     delta
BenchmarkPubSub-8     2467           1441           -41.59%

benchmark             old bytes     new bytes     delta
BenchmarkPubSub-8     212216        187792        -11.51%

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-17 14:36:57 -05:00
Alexander Morozov
0cc9720c2a Merge pull request #20406 from aaronlehmann/integration-test-format-string
Fix format string in TestExecApiCreateContainerPaused
2016-02-17 11:28:42 -08:00
Tonis Tiigi
55080fc03b Don’t stop daemon on migration hard failure
Also changes missing storage layer for container
RWLayer to a soft failure.

Fixes #20147

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 2798d7a6a6)
2016-02-17 14:26:30 -05:00
Tonis Tiigi
50a498ea1c Verify layer tarstream
This adds verification for getting layer data out
of layerstore. These failures should only be possible
if layer metadata files have been manually changed
of if something is wrong with tar-split algorithm.

Failing early makes sure we don’t upload invalid data
to the registries where it would fail after someone
tries to pull it.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit e29e580f7f)
2016-02-17 14:26:16 -05:00
Alexander Morozov
11257dc729 Merge pull request #20403 from runcom/use-test-req
integration-cli: use Devicemapper test requirement instead of checkin…
2016-02-17 11:17:26 -08:00
Aaron Lehmann
2210b15e08 Fix format string in TestExecApiCreateContainerPaused
It was s% instead of %s.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-17 11:05:51 -08:00
Antonio Murdaca
337ee2aa63 integration-cli: use Devicemapper test requirement instead of checking strings
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-17 18:18:18 +01:00
Aleksa Sarai
093dd39686 vendor: update runc/libcontainer
This includes all of v0.0.8 as well as a few bug fixes that popped up
during vendoring.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-02-18 01:42:36 +11:00
Brian Goff
7eed9a642e Merge pull request #20396 from cyphar/remove-fsnotify
remove fsnotify
2016-02-17 09:41:31 -05:00
Aleksa Sarai
bc195e1558 vendor: remove fsnotify
It is not longer used by us, so hack/vendor.sh complains because it
removes unused files (but also complains about removing an entire
vendored project).

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-02-18 00:12:53 +11:00
Aleksa Sarai
ee99b5f2e9 pkg: remove unused filenotify
pkg/filenotify isn't used anymore and it causes problems with
hack/vendor.sh (nothing uses it, so hack/vendor.sh will remove the
vendored code).

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-02-18 00:11:43 +11:00
Kai Qiang Wu(Kennan)
60ffd6c880 Make volume ls output order
Fixes: #20384
Add order support for volume ls to make it easy
to external users to consume.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-17 09:01:27 +00:00
Vincent Demeester
2a9e6ace70 Merge pull request #20385 from WeiZhang555/fix-docs
Fix docs
2016-02-17 08:55:02 +01:00
Phil Estes
5c78515430 Merge pull request #20366 from LK4D4/socks_proxy
Add support for forwarding Docker client through SOCKS proxy
2016-02-16 22:29:49 -08:00
Kai Qiang Wu(Kennan)
838ed1866b Make network ls output order
Fixes: #20328
We sort network ls output with incresing order,
it may make output more easy to consume for users.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-17 04:35:36 +00:00
Zhang Wei
899335022f Fix docs
Fix wrong descriptions in docs

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-17 11:55:56 +08:00
Arnaud Porterie
bebad9e5c1 Merge pull request #20379 from crosbymichael/exec-test
Require linux for TestExecAfterContainerRestart
2016-02-16 19:26:13 -08:00
Tibor Vass
7acd3987d3 Fix index generator for apt/yum packages
Some @_@ characters could become visible if filename is longer than 44
characters.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-16 21:54:07 -05:00
Brian Goff
0fe31306d1 Fix issue with multiple volume refs with same name
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-16 21:46:13 -05:00
HuKeping
6b8a2a0fe4 Bugfix: the actions when pull from notary should not contains push
Signed-off-by: Hu Keping <hukeping@huawei.com>
2016-02-17 10:36:09 +08:00
Michael Crosby
46e41dc2f8 Require linux for TestExecAfterContainerRestart
All the other exec tests require linux except this one and it is
causing failures in the TP4 test runs.

ref:
https://jenkins.dockerproject.org/job/Docker-PRs-WoW-TP4/1076/console

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-02-16 17:50:50 -08:00
Alexander Morozov
eae59c4226 Merge pull request #20374 from icecrime/20357_test_logs_since_future_follow
Fix flaky TestLogsSinceFutureFollow
2016-02-16 15:23:19 -08:00
David Calavera
c795d0bab9 Merge pull request #19689 from cednation/etwlogs
Windows: Add ETW logging driver plug-in
2016-02-16 15:01:17 -08:00
Sebastiaan van Stijn
c66d9f5627 Merge pull request #20373 from bastiaanb/fix/docs-trailing-slash-in-dockerfile-copy-example
add missing trailing slash in ADD and COPY /absoluteDir examples.
2016-02-16 23:10:47 +01:00
Alexander Morozov
0f5624d374 Merge pull request #20367 from tonistiigi/fix-import-gzip
Fix docker import on compressed data
2016-02-16 14:09:46 -08:00
Alexander Morozov
8545fdc6dd Merge pull request #19498 from mountkin/refactor-jsonfilelog-reader
use pubsub instead of filenotify to follow json logs
2016-02-16 13:55:48 -08:00
Bastiaan Bakker
f982f08c50 add missing trailing slash in ADD and COPY /absoluteDir examples. According to the specs they are mandatory.
Signed-off-by: Bastiaan Bakker <bbakker@xebia.com>
2016-02-16 22:52:16 +01:00
Arnaud Porterie
4928121992 Fix flaky TestLogsSinceFutureFollow
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-16 13:49:44 -08:00
Cedric Davies
3fe60bbf95 Windows: Add ETW logging driver plug-in
Signed-off-by: Cedric Davies <cedricda@microsoft.com>
2016-02-16 13:24:49 -08:00
David Calavera
80187df257 Merge pull request #19986 from vishh/expose-root-dir
Expose docker's root directory by default as part of `docker info`.
2016-02-16 12:57:57 -08:00
Jess Frazelle
d445eb4808 Merge pull request #20353 from rhatdan/selinux
Only relabel /var/lib/docker on initial install
2016-02-16 12:15:20 -08:00
Tonis Tiigi
056013f97b Fix migration diffid atomic write
Fixes #20267

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-02-16 11:51:35 -08:00
Tonis Tiigi
e1c2eb0d35 Fix docker import on compressed data
Fixes #20296

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-02-16 11:19:23 -08:00
David Calavera
e8f569b324 Remove all docker debugging knowledge from the server.
It should be explicitly told whether to enable the profiler or not.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-16 14:11:16 -05:00
Alexander Morozov
05002c2501 Add support for forwarding Docker client through SOCKS proxy
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-02-16 11:09:28 -08:00
Vishnu kannan
6a3176d4fe Expose docker's root directory by default as part of docker info.
Signed-off-by: Vishnu kannan <vishnuk@google.com>
2016-02-16 10:40:15 -08:00
Jess Frazelle
15d7fa77e1 Merge pull request #20305 from cyphar/fix-apparmor-version-checks
Fix apparmor version checks
2016-02-16 10:11:08 -08:00
Alexander Morozov
16effc66c0 Vendor new engine-api and go-connections
There is SOCKS5 proxy support in new versions.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-02-16 10:05:01 -08:00
David Calavera
556b1369de Merge pull request #20308 from mountkin/fix-20069
request a new token before downloading each layer
2016-02-16 09:55:23 -08:00
Dan Walsh
443ada574d Only relabel /var/lib/docker on initial install
Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2016-02-16 08:27:59 -05:00
Sebastiaan van Stijn
48d4e2d953 Merge pull request #20352 from glensc/x-bit
add execute bit to contrib/report-issue.sh
2016-02-16 12:52:30 +01:00
Elan Ruusamäe
5b62b71093 add execute bit to contrib/report-issue.sh
Signed-off-by: Elan Ruusamäe <glen@delfi.ee>
2016-02-16 12:55:15 +02:00
Sebastiaan van Stijn
3004c61865 Merge pull request #20341 from MichaelCurrie/patch-1
Fix typo
2016-02-16 11:16:29 +01:00
Sebastiaan van Stijn
957bdd9df9 Merge pull request #20343 from HackToday/fixpara
Fix the typo
2016-02-16 11:14:57 +01:00
Kai Qiang Wu(Kennan)
c33cdf9ee3 Fix the typo
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-16 07:00:01 +00:00
Michael Currie
765880a46a Fix typo
Signed-off-by: MichaelCurrie <mcurrie@bruceforceresearch.com>
2016-02-16 02:51:40 +00:00
Vincent Demeester
b16536aeb5 Merge pull request #20336 from robert-wallis/docs-run-typo
Fixing mismatched network name.
2016-02-15 22:32:31 +01:00
Robert Wallis
8779a4ca62 Fixing mismatched network name.
Using `my-net` to be consistent with:
https://docs.docker.com/engine/reference/run/

Signed-off-by: Robert Wallis <smilingrob@gmail.com>
2016-02-15 13:17:05 -08:00
Dan Walsh
adb2e3fedc /dev/mqueue should never be mounted readonly
If user specifies --read-only flag it should not effect /dev/mqueue.
This is causing SELinux issues in docker-1.10.  --read-only blows up
on SELinux enabled machines.  Mounting /dev/mqueue read/only would also
blow up any tool that was going to use /dev/mqueue.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2016-02-15 14:56:07 -05:00
Vincent Demeester
e5a79c5d99 Merge pull request #20330 from thaJeztah/docs-typos
Fix documentation typos
2016-02-15 16:58:49 +01:00
Sebastiaan van Stijn
7da5784b10 Fix documentation typos
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-15 15:46:56 +01:00
Shijiang Wei
1e0f1ec525 optimize pubsub.Publish function
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-02-15 19:25:21 +08:00
Shijiang Wei
b1594c59f5 use pubsub instead of filenotify to follow json logs
inotify event is trigged immediately there's data written to disk.
But at the time that the inotify event is received, the json line might
not fully saved to disk. If the json decoder tries to decode in such
case, an io.UnexpectedEOF will be trigged.
We used to retry for several times to mitigate the io.UnexpectedEOF error.
But there are still flaky tests caused by the partial log entries.

The daemon knows exactly when there are new log entries emitted. We can
use the pubsub package to notify all the log readers instead of inotify.

Signed-off-by: Shijiang Wei <mountkin@gmail.com>

try to fix broken test. will squash once tests pass

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-02-15 19:25:16 +08:00
Aleksa Sarai
284d9d451e apparmor: use correct version for ptrace denial suppression
Ubuntu ships apparmor_parser 2.9 erroniously as "2.8.95". Fix the
incorrect version check for >=2.8, when in fact 2.8 deosn't support the
required feature.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-02-15 20:36:29 +11:00
Aleksa Sarai
4bf7a84c96 apparmor: fix version checks to work properly
Using {{if major}}{{if minor}} doesn't work as expected when the major
version changes. In addition, this didn't support patch levels (which is
necessary in some cases when distributions ship apparmor weirdly).

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-02-15 20:36:07 +11:00
Vincent Demeester
46a61b7240 Merge pull request #20257 from Microsoft/10662-TestBuildCI6
Sixth set of TestBuild CI Enabling for Windows
2016-02-14 10:35:27 +01:00
Shijiang Wei
05b05a358f request a new token before downloading each layer
Fixes #20069

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-02-14 16:56:07 +08:00
Darren Stahl
5fc0de2688 Sixth set of TestBuild CI Enabling for Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-02-13 20:54:59 -08:00
Brian Goff
389a38e1e5 Merge pull request #20281 from FrederikNS/master
Fish tab completion lists all containers on "docker rm -f"
2016-02-13 15:41:52 -05:00
Vincent Demeester
7d9532552b Merge pull request #20280 from rhuss/patch-2
Add network mode `none` to list of possible values
2016-02-13 14:21:27 +01:00
Roland Huß
c80b36c938 Extended explanation of NetworkMode's value
* Add network mode `none` to list of possible values for API version 1.15 - 1.23
* For API version 1.21 - 1.23 add explanation that any other value is taken as a custom network's name

Signed-off-by: Roland Huß <roland@jolokia.org>
2016-02-13 10:00:51 +01:00
Antonio Murdaca
5a9a435d40 Merge pull request #20290 from calavera/fix_stop_signal_merge
Inherit StopSignal from Dockerfile.
2016-02-13 09:26:11 +01:00
Tibor Vass
f27b5dda4a Switch Dockerfile to debian:jessie
Fixes broken-pipe issue when piping s3cmd to grep -q, by removing the -q
flag and redirecting to /dev/null instead.

Add net-tools for ifconfig, because some tests rely on ifconfig.

Harmonize all Dockerfiles in this direction.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-12 21:49:54 -05:00
Jess Frazelle
b384fd6b1b Merge pull request #20141 from cmehay/power8
Build golang 1.6 in power8 Dockerfile
2016-02-12 20:36:57 -05:00
Tianon Gravi
beade8276a Merge pull request #20293 from jfrazelle/fix-release-script
dont clean the db
2016-02-12 16:30:00 -08:00
Jess Frazelle
79edcc5172 Merge pull request #20198 from cpuguy83/check_drivers_b4_vol_create
Check drivers before vol create
2016-02-12 18:41:48 -05:00
John Howard
d6b7819185 Windows CI: test-unit on pkg\archive part 2
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-12 15:40:41 -08:00
Jess Frazelle
64a4605892 Merge pull request #20278 from aaronlehmann/build-authconfig
Pass authentication credentials through to build
2016-02-12 18:37:49 -05:00
Sebastiaan van Stijn
4fea2be134 Merge pull request #20284 from Microsoft/jjh/testunit-pkgarchivestep1
Windows CI: test-unit pkg\archive step 1
2016-02-13 00:37:17 +01:00
David Calavera
bda194491e Merge pull request #20287 from duglin/DebugVerCheck
Lower warning about old client to a debug
2016-02-12 15:34:02 -08:00
David Calavera
a252516ec1 Inherit StopSignal from Dockerfile.
Make sure the image configuration is not overriden by the default
value in the `create` flag.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-12 17:56:40 -05:00
Aaron Lehmann
5e8af46fda Smarter push/pull TLS fallback
With the --insecure-registry daemon option (or talking to a registry on
a local IP), the daemon will first try TLS, and then try plaintext if
something goes wrong with the push or pull. It doesn't make sense to try
plaintext if a HTTP request went through while using TLS. This commit
changes the logic to keep track of host/port combinations where a TLS
attempt managed to do at least one HTTP request (whether the response
code indicated success or not). If the host/port responded to a HTTP
using TLS, we won't try to make plaintext HTTP requests to it.

This will result in better error messages, which sometimes ended up
showing the result of the plaintext attempt, like this:

    Error response from daemon: Get
    http://myregistrydomain.com:5000/v2/: malformed HTTP response
    "\x15\x03\x01\x00\x02\x02"

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-12 13:47:48 -08:00
Jessica Frazelle
477e1fc989 dont clean the db
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-12 13:13:50 -08:00
David Calavera
b734d0e8cc Merge pull request #20285 from moxiegirl/fix-user-guide
Update the userguide to fix user feedback
2016-02-12 11:07:03 -08:00
Jess Frazelle
94b0a6b2d9 Merge pull request #20277 from tiborvass/pgp-mit-fallback
Add pgp.mit.edu fallback in Dockerfile
2016-02-12 13:56:11 -05:00
Doug Davis
059ad5d0a9 Lower warning about old client to a debug
Ideally I would love to just remove this check entirely because its
seems pretty useless.  An old client talking to a new server isn't
an error condition, nor is it something to even worry about - its a normal
part of life.  Flooding my screen (and logs) with a warning that isn't
something I (as an admin) need to be concerned about is silly and a
distraction when I need to look for real issues.  If anything this should
be printed on the cli not the daemon since its the cli that needs to be
concerned, not the daemon.

However, since when you debug an issue it might be interesting to know the
client is old I decided to pull back a little and just change it from
a Warning to a Debug logrus call instead.

If others want it removed I still do that though  :-)

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-02-12 10:53:40 -08:00
Aaron Lehmann
6fed46aeb9 Pass authentication credentials through to build
In Docker 1.10 and earlier, "docker build" can do a build FROM a private
repository that hasn't yet been pulled. This doesn't work on master. I
bisected this to https://github.com/docker/docker/pull/19414.
AuthConfigs is deserialized from the HTTP request, but not included in
the builder options.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-12 10:50:16 -08:00
Frederik Nordahl Jul Sabroe
2541a23c3a Fish completion lists all containers on "docker rm -f"
Signed-off-by: Frederik Nordahl Jul Sabroe <frederikns@gmail.com>
2016-02-12 19:14:35 +01:00
John Howard
1a714e76a2 Windows CI: test-unit pkg\archive step 1
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-12 10:13:44 -08:00
Mary Anthony
bf76b1d686 Update the userguide to fix user feedback
Signed-off-by: Mary Anthony <mary@docker.com>
2016-02-12 10:08:59 -08:00
David Calavera
3a3c953806 Merge pull request #20266 from npcode/fix-docs-dockernetworks-three-options
Fix an erratum; s/two/three/
2016-02-12 09:58:48 -08:00
Tibor Vass
91cdadf37e Add pgp.mit.edu fallback in Dockerfile
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-12 11:54:47 -05:00
Vincent Demeester
c312eab74e Merge pull request #20265 from rhuss/patch-1
Fix some formatting
2016-02-12 17:23:17 +01:00
Morgan Bauer
fffff202fc Merge pull request #20261 from tophj-ibm/change-test-to-use-variable
Change integration test to use declared variable
2016-02-12 07:52:51 -08:00
Yi EungJun
8c93958fcb Fix an erratum; s/two/three/
There are three options because the new one was added at 6f863cf.

Signed-off-by: Yi EungJun <eungjun.yi@navercorp.com>
2016-02-13 00:14:35 +09:00
Tibor Vass
bd758053b5 Merge pull request #20264 from qunhu/master
fix grammar error
2016-02-12 10:07:45 -05:00
Vincent Demeester
e17afedfe0 Merge pull request #20247 from aaronlehmann/distribution-errors
Push/pull errors improvement and cleanup
2016-02-12 11:57:25 +01:00
Roland Huß
03b25e024e Fix some formatting
* Codified example container names
* Emphasised 'link' vs 'legacy link' (instead of using code markup)
* Add a missing ``` for a code example

Signed-off-by: Roland Huß <roland@jolokia.org>
2016-02-12 10:34:55 +01:00
huqun
f609fb4d83 fix grammar error
it is not very important,but I think the modification makes the coders read more conviently!

Signed-off-by: huqun  <huqun@zju.edu.cn>
2016-02-12 16:11:31 +08:00
Vincent Demeester
27ab98e846 Merge pull request #20258 from Microsoft/jjh/testunit-authz
Windows CI: test-unit turn off pkg\authorisation
2016-02-12 08:33:20 +01:00
Vincent Demeester
991cb36d76 Merge pull request #20259 from Microsoft/jjh/testunit-pkgfilenotify
Windows CI: test-unit for pkg\filenotify
2016-02-12 08:32:43 +01:00
Vincent Demeester
659bf08281 Merge pull request #20249 from Microsoft/jjh/testunit-pkgintegration
Windows CI: Fix test-unit for pkg\integration
2016-02-12 08:32:03 +01:00
Arnaud Porterie
9511856e16 Merge pull request #20202 from anusha-ragunathan/arm-dummy-interface
Add "dummy" network module for arm images.
2016-02-11 19:02:25 -08:00
Brian Goff
3723013a1f Merge pull request #20256 from jfrazelle/make-tests-faster
make tests faster no apt-key
2016-02-11 22:01:13 -05:00
Christopher Jones
ce1059973a Change integration test to use variable
Followup to #20246, changes the test to use already declared variable

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-02-11 21:20:00 -05:00
John Howard
eaf41b7410 Windows CI: Unit tests - port pkg\gitutils
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-11 18:19:17 -08:00
John Howard
28ee6fe7ca Windows CI: test-unit for pkg\filenotify
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-11 17:47:26 -08:00
Aidan Hobson Sayers
d736a9d2c3 Add docs for --ipv6 option, also add --internal as appropriate
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-02-12 01:42:15 +00:00
John Howard
57faef5c71 Windows CI: test-unit turn off pkg\authorisation
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-11 17:42:12 -08:00
David Calavera
5ca6d3bafd Merge pull request #20250 from vieux/fix_misspell
fix common misspells
2016-02-11 17:22:06 -08:00
Aaron Lehmann
8f26fe4f59 Push/pull errors improvement and cleanup
Several improvements to error handling:

- Introduce ImageConfigPullError type, wrapping errors related to
  downloading the image configuration blob in schema2. This allows for a
  more descriptive error message to be seen by the end user.

- Change some logrus.Debugf calls that display errors to logrus.Errorf.
  Add log lines in the push/pull fallback cases to make sure the errors
  leading to the fallback are shown.

- Move error-related types and functions which are only used by the
  distribution package out of the registry package.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-11 16:28:56 -08:00
Jessica Frazelle
0d02f2a011 make tests faster no apt-key
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-11 16:28:00 -08:00
David Calavera
2a16099f57 Merge pull request #20241 from aaronlehmann/fallback-on-no-auth-credentials
Fall back to V1 when there are no basic auth credentials
2016-02-11 16:18:26 -08:00
David Calavera
46ec01bd12 Merge pull request #20246 from tophj-ibm/19368-fix-flaky-network-test
Fix flaky test, TestDockerNetworkHostModeUngracefulDaemonRestart
2016-02-11 15:50:40 -08:00
Victor Vieux
99a396902f fix common misspell
Signed-off-by: Victor Vieux <vieux@docker.com>
2016-02-11 15:49:36 -08:00
John Howard
41d3bb43f4 Windows CI: Fix test-unit for pkg\integration
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-11 15:06:22 -08:00
Jess Frazelle
2a64d400b3 Merge pull request #20114 from jfrazelle/fix-release-script
get os arch for release script
2016-02-11 17:28:23 -05:00
Aidan Hobson Sayers
dfb00652aa Expose bridge IPv6 setting to docker network inspect
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-02-11 22:13:47 +00:00
Sebastiaan van Stijn
73ee139d7a Merge pull request #20245 from jfrazelle/20082-cap-add-docs-updates
update cap-add docs for seccomp
2016-02-11 22:52:26 +01:00
Vincent Demeester
4cdd0403cd Merge pull request #20218 from icecrime/fix_remote_integration-cli
Improve remote integration-cli tests
2016-02-11 22:51:20 +01:00
Alexander Morozov
02a37a281c Merge pull request #20239 from calavera/remove_server_port_allocation
Move listeners and port allocation outside the server.
2016-02-11 13:50:48 -08:00
Christopher Jones
045aee2002 Fix flaky test, TestDockerNetworkHostModeUngracefulDaemonRestart
Fixes #19368 by waiting until all container statuses are running
before killing the daemon

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-02-11 16:47:40 -05:00
Jessica Frazelle
1e92e5fdaa update cap-add docs for seccomp
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-11 13:47:08 -08:00
David Calavera
931e78df1b Merge pull request #20231 from vdemeester/move-getcontext-away
Move getContext… function to builder package
2016-02-11 13:38:57 -08:00
Vincent Demeester
312f5e435b Move getContext… function to builder package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-11 20:59:59 +01:00
David Calavera
34c29277c2 Move listeners and port allocation outside the server.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-11 14:42:49 -05:00
Anusha Ragunathan
f3b2233d12 Add "dummy" network module for arm images.
A few libnetwork integration tests require that the kernel be configured
with the "dummy" network interface and has the module loaded. However,
the dummy module is not available by default on arm images. This ensures
that it is built and loaded.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-02-11 10:53:51 -08:00
Aaron Lehmann
7b81bc147c Fall back to V1 when there are no basic auth credentials
This makes the behavior consistent with having incorrect credentials.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-11 10:48:11 -08:00
Aaron Lehmann
4436f07ef4 Update vendored docker/distribution
The registry/client/auth package now provides ErrNoBasicAuthCredentials.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-11 10:28:18 -08:00
Brian Goff
944e4cab2e Merge pull request #20124 from calavera/fix_vendor_codec_cleanup
Do not purge github.com/ugorji/go/codec from vendor.
2016-02-11 12:51:35 -05:00
Sebastiaan van Stijn
d4d0b8a42b Merge pull request #20234 from kiawin/20232-improve-overriding-user-command-details
Improve usage details on overriding USER command in Docker run refere…
2016-02-11 18:18:26 +01:00
Phil Estes
6672d7de20 Merge pull request #20214 from mavenugo/vin0.7.0-dev.1
Vendor libnetwork v0.7.0-dev.2
2016-02-11 12:12:58 -05:00
Brian Goff
f6523a44cc Merge pull request #20233 from tianon/busybox-dbus
Remove "--group-add dbus" from busybox example (no dbus group in busybox anymore)
2016-02-11 11:43:28 -05:00
David Calavera
803e3d4d1e Merge pull request #20230 from estesp/zfs-ref-counting
Add proper refcounting to zfs graphdriver
2016-02-11 08:27:26 -08:00
David Calavera
d11a2c758a Do not purge github.com/ugorji/go/codec from vendor.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-11 11:22:55 -05:00
Tianon Gravi
b1e5c773b2 Remove "--group-add dbus" from busybox example (no dbus group in busybox anymore)
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-02-11 08:20:28 -08:00
Sian Lerk Lau
bc3e02b9ec Improve usage details on overriding USER command in Docker run reference page
Signed-off-by: Sian Lerk Lau <kiawin@gmail.com>
2016-02-12 00:05:32 +08:00
Brian Goff
acd8baccff Merge pull request #20209 from aaronlehmann/upper-case-hostnames
Allow uppercase characters in image reference hostname
2016-02-11 10:50:05 -05:00
Sebastiaan van Stijn
f923e5a5a4 Merge pull request #19720 from vdemeester/carry-pr-18912
Carry #18912 : Docker Remote API documentation update
2016-02-11 16:40:59 +01:00
Brian Goff
2edd5f698c Merge pull request #19840 from aaronlehmann/resumable-downloads
Add support for resuming downloads on transfer failure
2016-02-11 10:32:17 -05:00
Arnaud Porterie
a943c40150 Improve remote integration-cli tests
Progress toward being able to run integration-cli campaign using a
client hitting a remote host.

Most of these fixes imply flagging tests that assume they are running on
the same host than the Daemon. Also fixes the `contrib/httpserver` image
that couldn't run because of a dynamically linked Go binary inside the
busybox image.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-11 07:31:49 -08:00
Anonmily
2c60a9cba2 Docker Remote API documentation update
I was confused for the longest time on how to actually use and make requests against the remote API, so I think that it might help for those getting started with it to know how to actually test it out via curl. I added in parts on how to access the remote API via curl against the default unix socket, and also on how to configure the docker daemon to expose the API on a TCP port as well if desired.

Signed-off-by: Michelle Liu <michelle@michelleliu.io>
2016-02-11 16:28:15 +01:00
Brian Goff
e7cd3b0897 Merge pull request #20222 from vdemeester/update-shakers-vendor-licence
Update shakers vendoring to include the LICENSE 😇
2016-02-11 10:23:10 -05:00
Madhu Venugopal
b2e609176d Vendor libnetwork v0.7.0-dev.2
- Expose EnableIPV6 option
- discoverapi refactoring
- Fixed a few typos & docs update
- Fixes https://github.com/docker/docker/issues/20140

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-02-11 07:09:53 -08:00
Vincent Demeester
2cca097ea8 Merge pull request #20052 from aditirajagopal/19301-overlay-network-unique-hostname
Overlay Network needs Unique Hostname
2016-02-11 15:41:54 +01:00
Sebastiaan van Stijn
89f94ec03b Merge pull request #20161 from tkopczynski/docs-before-since-filters
docker ps before and since filters documentation
2016-02-11 15:32:50 +01:00
Vincent Demeester
5627e400fe Merge pull request #20216 from Microsoft/jjh/testunit-pkgplugins-v2
Windows CI: test-unit on pkg\plugins
2016-02-11 12:39:08 +01:00
Sebastiaan van Stijn
d18c0d88f4 Merge pull request #20213 from Microsoft/jjh/testunit-pkgmount
Windows CI: Unit Test - pkg/mount is Unix specific
2016-02-11 12:27:38 +01:00
Sebastiaan van Stijn
8c0b1218c0 Merge pull request #20219 from moxiegirl/remove-tutorial-build
Update Dockerfile
2016-02-11 12:15:53 +01:00
Vincent Demeester
9ee8f0ad9d Update shakers vendoring to include the LICENSE 😇
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-11 08:38:09 +01:00
Phil Estes
922986b76e Add proper refcounting to zfs graphdriver
Fixes issues with layer remounting (e.g. a running container which then
has `docker cp` used to copy files in or out) by applying the same
refcounting implementation that exists in other graphdrivers like
overlay and aufs.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-11 01:00:54 -05:00
Mary Anthony
8d673d9471 Update Dockerfile
Signed-off-by: Mary Anthony <mary@docker.com>
2016-02-10 20:40:30 -08:00
John Howard
4b3001e85a Windows CI: test-unit on pkg\plugins
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 19:28:30 -08:00
Arnaud Porterie
e2a0618fb1 Merge pull request #20184 from fkautz/pr_out_adding_backup_key_server_in_install_script
Adding backup key server in install script
2016-02-10 19:08:49 -08:00
John Howard
d509e61540 Windows CI: Unit Test - pkg/mount is Unix specific
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 18:09:15 -08:00
Brian Goff
3403a01b07 Remove back-compat hacks from for volume plugins.
Hacks were added as interim support for 1.10 but should not be needed
for 1.11.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-10 20:43:20 -05:00
Brian Goff
00ec6102d9 Probe all drivers if volume driver not specified
This fixes an issue where `docker run -v foo:/bar --volume-driver
<remote driver>` -> daemon restart -> `docker run -v foo:/bar` would
make a `local` volume after the restart instead of using the existing
volume from the remote driver.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-10 20:43:15 -05:00
David Calavera
dfebb6074f Merge pull request #20210 from Microsoft/jjh/hcswin32-v2
Windows: Revendor HCS to use revised error scheme
2016-02-10 17:20:14 -08:00
Sebastiaan van Stijn
ae8551c144 Merge pull request #19903 from londoncalling/cloud-installs-rel-a
added better what's next topics to point to new machine docs related …
2016-02-11 01:33:26 +01:00
David Calavera
9be87be582 Merge pull request #20170 from Microsoft/10662-TestBuildCI5
Fifth set of TestBuild CI enables for Windows
2016-02-10 16:02:26 -08:00
Alexander Morozov
f1bf015ed8 Merge pull request #20208 from Microsoft/jjh/testunit-layer
Windows CI UnitTest TestLayerSize-->Unix
2016-02-10 15:30:14 -08:00
Alexander Morozov
95d827cda2 Merge pull request #20207 from Microsoft/jjh/fix18077-v2
Windows: Fix Isolation
2016-02-10 15:29:39 -08:00
John Howard
54263a9393 Windows: Use new error code mechanism from HCS
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 14:48:24 -08:00
Victoria Bialas
4e9e95fe8d added better what's next topics to point to new machine docs related to Issue #18282
updated cloud install example per Olivier's comments, added better command examples

updates per @thaJeztah comments

fixed links per @theJeztah comments, renamed cloud.md to overview.md for better URL name

updates per @moxiegirl comments, added alias for renamed file, modified links, changed a title

fixed link errors

Signed-off-by: Victoria Bialas <victoria.bialas@docker.com>
2016-02-10 14:19:05 -08:00
John Howard
fadbbd335c Windows: Revendor HCSShim@43858ef3
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 14:14:45 -08:00
Aaron Lehmann
e2afab9c4a Allow uppercase characters in image reference hostname
This PR makes restores the pre-Docker 1.10 behavior of allowing
uppercase characters in registry hostnames.

Note that this only applies to hostnames, not remote image names.
Previous versions also prohibited uppercase letters after the hostname,
but Docker 1.10 extended this to the hostname itself.

- Vendor updated docker/distribution.

- Add a check to "normalize" that rejects remote names with uppercase
  letters.

- Add test cases to TestTagValidPrefixedRepo and
  TestTagInvalidUnprefixedRepo

Fixes: #20056

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-10 14:03:41 -08:00
John Howard
298d280143 Windows CI UnitTest TestLayerSize-->Unix
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 13:57:26 -08:00
John Howard
dfdce6e35c Revendor engine-api @ ddfd776c
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 13:26:35 -08:00
John Howard
d4b0732499 Windows: Fix 'isolation'
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 13:19:19 -08:00
Alexander Morozov
2658341b5f Merge pull request #20205 from calavera/remove_last_daemon_references
Remove daemon dependency from api/server.
2016-02-10 13:13:53 -08:00
Vincent Demeester
ab0102d671 Merge pull request #19814 from Microsoft/10662-TestBuildCI3
Third set of TestBuild* CI enabling for Windows
2016-02-10 21:49:39 +01:00
Darren Stahl
0adcce10a1 Fifth set of TestBuild CI enables for Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-02-10 12:37:58 -08:00
Brian Goff
d2d66e9d55 Merge pull request #20201 from Microsoft/jjh/objectidentifier
Windows CI: Another reliability fix
2016-02-10 15:29:42 -05:00
David Calavera
1af76ef597 Remove daemon dependency from api/server.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-10 15:16:59 -05:00
John Howard
7853193edb Windows CI: Another reliability fix
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-10 11:07:29 -08:00
David Calavera
e18eb6ef39 Merge pull request #20165 from vdemeester/move-validatecontextdirectory-to-builder
Move validateContextDirectory to builder package.
2016-02-10 08:35:25 -08:00
Phil Estes
7e44d0ca58 Merge pull request #20183 from hypriot/fix-20002-for-multiarch
Fix TestAuthZPluginAllowEventStream for multiarch
2016-02-10 09:42:35 -05:00
Antonio Murdaca
c2ebdb3e57 Merge pull request #19835 from ncdc/resize-after-attach
Move resize after attaching
2016-02-10 15:32:51 +01:00
Brian Goff
f9abd42b98 Merge pull request #20181 from mavenugo/v0.6.1-rc2
Vendor libnetwork v0.6.1-rc2
2016-02-10 09:25:55 -05:00
Brian Goff
cfa806378e Merge pull request #20174 from tophj-ibm/remove-power-from-logrus-tests
PPC64LE: Remove testing logrus output from ppc64le
2016-02-10 09:07:47 -05:00
Dan Walsh
dc8259f0ac Add a parent man page for docker volumes command
It is difficult to gather information about docker volumes command
without a parent man page.

This man page attempts to explain docker volumes and then references
the command man pages.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2016-02-10 09:04:41 -05:00
Sebastiaan van Stijn
e54ac9b3a1 Merge pull request #20173 from duglin/FixEnvDoc
Make it clear that env vars must be simple
2016-02-10 13:22:29 +00:00
Christophe Mehay
b8a9812b92 Build golang 1.6 in power8 Dockerfile
Signed-off-by: Christophe Mehay <cmehay@online.net>
2016-02-10 10:08:53 +01:00
Frederick F. Kautz IV
5e0b8b99d1 Adding backup key server in install script
Signed-off-by: Frederick F. Kautz IV <fkautz@redhat.com>
2016-02-09 23:26:45 -08:00
Stefan Scherer
36a974a1a6 Fix TestAuthZPluginAllowEventStream for multiarch
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2016-02-10 07:28:50 +01:00
Madhu Venugopal
84705f15d9 Vendor libnetwork v0.6.1-rc2
- Fixes #20132 #20140 #20019

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-02-09 21:46:50 -08:00
Tibor Vass
61efb4d084 Merge pull request #20135 from vdemeester/20087-fix-since-before-filters
Fix the since and before filter behavior
2016-02-09 21:13:00 -05:00
David Calavera
321f291324 Merge pull request #19661 from shishir-a412ed/tests_rootfs_pr
Tests for PR # 19123: daemon option (--storage-opt dm.basesize) for increasing the base device size on daemon restart
2016-02-09 17:30:48 -08:00
Tibor Vass
0b4a7fb06d Merge pull request #20133 from mlaventure/dont-bind-mount-mqueue
Prevent mqueue from implicitely becoming a bind mount with --ipc=host
2016-02-09 19:55:57 -05:00
Darren Stahl
4603a7259e Third set of TestBuild* CI enabling for Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-02-09 15:19:38 -08:00
David Calavera
d6870238e3 Merge pull request #19985 from Microsoft/CombineSetupWorkingDir
Combine SetupWorkingDirectory for Linux and Windows
2016-02-09 15:18:49 -08:00
David Calavera
b3cb0d196d Merge pull request #18943 from cpuguy83/fix_write_flusher
Remove Exists from backend
2016-02-09 15:16:03 -08:00
Christopher Jones
736e93a468 Remove testing logrus output from ppc64le
This removes two tests on ppc64le.

There is an old bug with a syscall on power #8653, that causes
logrus to default to using logfmt. These two tests look for
logrus format specific strings, and fail if they don't see it.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-02-09 18:02:18 -05:00
Vincent Demeester
08d0a8384f Merge pull request #20059 from Microsoft/10662-TestBuildCI4
Fourth set of enabling Builder CI tests for Windows
2016-02-09 23:19:28 +01:00
David Calavera
cb4a22b1a9 Merge pull request #20167 from jfrazelle/butts
remove tasksmax, people on newer kernels can add it themselves
2016-02-09 14:18:51 -08:00
Kenfe-Mickael Laventure
dba5a7f243 Disable TestRunMountshmmqueuefromhost when using userns
Since we now automatically mount the mqueue device inside the
container (instead of bind mounting the one from the host), when
trying to start a container with --ipc=host, the mount will fail with
EPERM.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-02-09 14:16:08 -08:00
Kenfe-Mickael Laventure
f7d4abdc00 Prevent mqueue from implicitely becoming a bind mount with --ipc=host
Currently, when running a container with --ipc=host, if /dev/mqueue is
a standard directory on the hos the daemon will bind mount it allowing
the container to create/modify files on the host.

This commit forces /dev/mqueue to always be of type mqueue except when
the user explicitely requested something to be bind mounted to
/dev/mqueue.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-02-09 14:16:08 -08:00
Aaron Lehmann
056bf9f25e Attempt to resume downloads after certain errors
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-09 14:12:28 -08:00
Aaron Lehmann
f425529e7e Move temporary download file to download descriptor scope
This will allow it to be reused between download attempts in a
subsequent commit.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-09 14:12:28 -08:00
Jessica Frazelle
6241250824 remove tasksmax, people on newer kernels can add it themselves
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-09 14:07:23 -08:00
Vincent Demeester
fc6122a947 Move validateContextDirectory to builder package.
This feels like it's where it belongs and it makes it exported
again (which is needed for libcompose that was using it before 1.10).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-09 22:19:09 +01:00
Brian Goff
fa860c86ff Merge pull request #20158 from cpuguy83/carry_19504
Dockerfile,contrib,hack: remove buildpack-deps
2016-02-09 14:58:37 -05:00
Tomasz Kopczynski
27fc78abdd Before and since filters documentation
Signed-off-by: Tomasz Kopczynski <tomek@kopczynski.net.pl>
2016-02-09 20:37:33 +01:00
Brian Goff
a77b7dd227 cleanup attach api calls
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-09 14:26:51 -05:00
Brian Goff
3434860d54 Fix horribly broken TestGetContainerStatsNoStream
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-09 14:25:05 -05:00
Brian Goff
ae4ee974e8 Move stream flushes to backend
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-09 14:25:02 -05:00
Brian Goff
96f1a1a10b Cleanup WriteFlusher
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-09 14:02:26 -05:00
David Calavera
10226ac845 Merge pull request #19983 from srust/volume_get_compat_hack
[1.10] Fix volume driver API compatibility mode (a little)
2016-02-09 10:47:30 -08:00
Sebastiaan van Stijn
a03c2a005a Merge pull request #20157 from chadswen/fix-typo-toolbox-upgrade
Fix typo in Docker Toolbox upgrade section
2016-02-09 18:14:30 +00:00
Brian Goff
7c9e9afeb7 use debian:jessie for ensure-syscall-test
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-09 13:13:38 -05:00
Sebastiaan van Stijn
9f2f52de8e Merge pull request #20090 from albers/completion-map-values
Improve key specific bash subcompletions
2016-02-09 17:39:35 +00:00
Chad Swenson
1435c9ea21 Fix typo in Docker Toolbox upgrade section
Signed-off-by: Chad Swenson <chadswen@gmail.com>
2016-02-09 11:36:45 -06:00
Alexander Morozov
d2a2f5bedc Merge pull request #20117 from twistlock/userns_tests
Move userns cli test to a separate file, remove experimental flag
2016-02-09 09:10:44 -08:00
David Calavera
01a1925792 Merge pull request #20130 from Microsoft/sjw/windows_save_fix
Fixing 'docker save' on Windows.
2016-02-09 07:47:58 -08:00
Shishir Mahajan
07184599f7 Tests for PR # 19123: daemon option (--storage-opt dm.basesize) for increasing the base device size on daemon restart
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2016-02-09 10:47:31 -05:00
Sebastiaan van Stijn
f5ed72c931 Merge pull request #20116 from muthu-r/master
Add Horcrux volume plugin to plugins.md
2016-02-09 09:59:26 +00:00
Vincent Demeester
b41dba58a0 Fix the since and before filter behavior
Filters should not include stopped container if `-a` is not specified.
Right now, before and since filter are acting as --before and --since
deprecated flags. This commit is fixing that.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-09 09:26:20 +01:00
Liron Levin
df636ef45a Move userns cli test to a separate file, remove experimental flag
Signed-off-by: Liron Levin <liron@twistlock.com>
2016-02-09 09:31:09 +02:00
Stephen Rust
c3985bdf79 Fix volume driver API compatibility mode (a little)
Signed-off-by: Stephen Rust <srust@blockbridge.com>
2016-02-08 23:12:29 -05:00
Stefan J. Wernli
041a9510c6 Fixing 'docker save' on Windows.
Save was failing file integrity checksums due to bugs in both
Windows and Docker. This commit includes fixes to file time handling
in tarexport and system.chtimes that are necessary along with
the Windows platform fixes to correctly support save. With this
change, sysfile_backups for windowsfilter driver are no longer
needed, so that code is removed.

Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2016-02-08 18:08:49 -08:00
Doug Davis
d579490b2b Make it clear that env vars must be simple
Closes #20169

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-02-08 18:02:37 -08:00
Muthukumar R
58427fd8a6 Add Horcrux volume plugin to plugins.md
Signed-off-by: Muthukumar R <muthur@gmail.com>
2016-02-08 15:16:56 -08:00
David Calavera
ac9d1b7b47 Merge pull request #20118 from aditirajagopal/20110-update-client-lib-projects
Update List of Client Library Projects
2016-02-08 15:06:53 -08:00
Tibor Vass
8c6887c54d Merge pull request #19772 from calavera/decouple-server-routers
[Carry 19133] Decouple server routers from the daemon package.
2016-02-08 17:54:49 -05:00
David Calavera
3846951fce Merge pull request #20106 from jfrazelle/go-generate-json-default-profile
add default seccomp profile as json
2016-02-08 14:48:34 -08:00
Aditi Rajagopal
47dbb59e5b Update List of Client Library Projects
Resolves: #20110
Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2016-02-08 16:16:42 -06:00
Tibor Vass
54b67fe12f Merge pull request #19711 from coolljt0725/fix_19679
Clean up container rootf mounts on daemon start, fixes #19679
2016-02-08 16:21:50 -05:00
Aditi Rajagopal
3024604054 Overlay Network needs Unique Hostname
Resolves: #19301
Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2016-02-08 15:14:38 -06:00
Jessica Frazelle
9bc771af9d add validation for generating default secccomp profile
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-08 13:04:52 -08:00
David Calavera
14c63189a1 Merge pull request #20109 from thaJeztah/add_tcp_tls_proto
Fix 'tcp+tls' protocol not being accepted
2016-02-08 11:22:33 -08:00
Jess Frazelle
4c807379cb Merge pull request #20112 from endophage/notary_go15
adding note about go version 1.5 requirement for hardware signing
2016-02-08 14:19:42 -05:00
Jessica Frazelle
26da52d4a5 get os arch for release script
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-08 10:57:04 -08:00
David Lawrence
1cc950b52e adding note about go version 1.5 requirement for hardware signing
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2016-02-08 10:25:02 -08:00
David Calavera
efdbe2ba5a Merge pull request #20068 from ilkka/patch-1
Tweak VM volume mapping paragraph
2016-02-08 09:54:23 -08:00
David Calavera
06d8f504f7 Move backend types to their own package.
- Remove duplicated structs that we already have in engine-api.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-08 12:42:17 -05:00
Sebastiaan van Stijn
878a0dc85c Fix 'tcp+tls' protocol not being accepted
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-08 17:34:39 +00:00
Alexander Morozov
862f073694 Merge pull request #20002 from twistlock/19575_authz_plugin_support_events
Fix 19575: Docker events doesn't work with authorization plugin
2016-02-08 09:10:39 -08:00
Lukas Waslowski
dd93571c69 Decouple the "container" router from the actual daemon implementation.
This is done by moving the following types to api/types/config.go:
  - ContainersConfig
  - ContainerAttachWithLogsConfig
  - ContainerWsAttachWithLogsConfig
  - ContainerLogsConfig
  - ContainerStatsConfig

Remove dependency on "version" package from types.ContainerStatsConfig.
Decouple the "container" router from the "daemon/exec" implementation.

* This is done by making daemon.ContainerExecInspect() return an interface{}
value. The same trick is already used by daemon.ContainerInspect().

Improve documentation for router packages.
Extract localRoute and router into separate files.
Move local.router to image.imageRouter.

Changes:
  - Move local/image.go to image/image_routes.go.
  - Move local/local.go to image/image.go
  - Rename router to imageRouter.
  - Simplify imports for image/image.go (remove alias for router package).

Merge router/local package into router package.
Decouple the "image" router from the actual daemon implementation.
Add Daemon.GetNetworkByID and Daemon.GetNetworkByName.
Decouple the "network" router from the actual daemon implementation.

This is done by replacing the daemon.NetworkByName constant with
an explicit GetNetworkByName method.

Remove the unused Daemon.GetNetwork method and the associated constants NetworkByID and NetworkByName.

Signed-off-by: Lukas Waslowski <cr7pt0gr4ph7@gmail.com>
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-08 11:30:57 -05:00
Jessica Frazelle
d57816de02 add default seccomp profile as json
profile is created by go generate

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-08 08:19:21 -08:00
Jess Frazelle
e6573a5d18 Merge pull request #19876 from rhatdan/mqueue
Make mqueue container specific
2016-02-08 10:57:15 -05:00
David Calavera
c30a8f42cb Merge pull request #20060 from mavenugo/cos
Vendor libnetwork v0.6.1-rc1
2016-02-07 19:06:49 -08:00
Harald Albers
7e31a96d22 Improve key specific bash subcompletions
The obscure `case "${words[$cword-2]}$prev=" in` idiom is no
longer used for key specific completions in options with map values.

The `__docker_map_key_of_current_option()` function does a much
better job.

Signed-off-by: Harald Albers <github@albersweb.de>
2016-02-07 11:19:04 -08:00
Harald Albers
6f9bd6c1b8 Check key specific bash subcompletions first
This is a refactoring in preparation of cleaning up the handling
of key specific subcompletions.

The new `__docker_map_key_of_current_option()` function will be used
instead of the `__docker_map_key_of_current_option()` idiom in the
following commit.
As this function is very specific, checks using it should be executed
before those checking for `$prev`.

This commit just moves the checks without any modification.

Signed-off-by: Harald Albers <github@albersweb.de>
2016-02-07 10:57:46 -08:00
Alexander Morozov
415dd86886 Merge pull request #20078 from cpuguy83/carry_17329
Carry 17329
2016-02-07 08:59:36 -08:00
Sebastiaan van Stijn
534bad6010 Merge pull request #20075 from eallrich/20074-fix-docker-inspect-command
Adding --format= flag
2016-02-07 16:34:12 +00:00
Brian Goff
e9ab596238 carry 17329
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-06 13:46:21 -05:00
Evan Allrich
78ba5d58e6 Adding --format= flag
Signed-off-by: Evan Allrich <evan@unguku.com>
2016-02-06 09:39:20 -06:00
Ilkka Laukkanen
a3c290536a Tweak VM volume mapping paragraph
The wording looked like there was maybe a copy-paste error there, I tried to make it a bit more clear.

Signed-off-by: Ilkka Laukkanen <ilkka@ilkka.io>
2016-02-06 13:35:02 +02:00
Antonio Murdaca
78f2b8d87d Merge pull request #20058 from tonistiigi/fix-parent-reset
Clear old parent reference on resetting image parent
2016-02-06 10:38:35 +01:00
Madhu Venugopal
2da61086ea Vendor libnetwork v0.6.1-rc1
- Fixes #20026. Programming iptables in container use native API.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-02-05 18:20:22 -08:00
Brian Goff
a70d9957c3 Merge pull request #20049 from kesarion/patch-1
added dockerizer library
2016-02-05 20:52:07 -05:00
Darren Stahl
eed648ac5a Fourth set of enabling Builder CI tests for Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-02-05 17:46:06 -08:00
Tonis Tiigi
4852932494 Clear old parent reference on resetting image parent
On migration 2 different images can end up with same
content addressable ID, meaning `SetParent` will be called
multiple times. Previous version did not clear the old
in-memory reference.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-02-05 17:05:19 -08:00
Jess Frazelle
b3bacb42af Merge pull request #20054 from jfrazelle/fix-generation
fix deb generate
2016-02-05 15:40:27 -08:00
David Calavera
a93cb2b856 Merge pull request #20045 from estesp/zfs-userns-permissions-fix
Fix ZFS permissions bug with user namespaces
2016-02-05 15:32:43 -08:00
Jessica Frazelle
f5afe02b69 fix deb generate
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-05 15:31:12 -08:00
David Calavera
fa8f4aa539 Merge pull request #20050 from tomxtobin/fix-at-sign-docs
Fix mention of at sign in docs
2016-02-05 14:08:20 -08:00
Alexandru Sfirlogea
1cceb854a7 added dockerizer library
Signed-off-by: Kesarion <alexandru.sfirlogea@gmail.com>
Signed-off-by: Alexandru Sfirlogea <alexandru.sfirlogea@gmail.com>
2016-02-05 23:49:36 +02:00
Tom X. Tobin
7f275315ed Fix mention of at sign in docs
The at sign (`@`) was being referred to in the documentation as an
ampersand (`&`).

Signed-off-by: Tom X. Tobin <tomxtobin@tomxtobin.com>
2016-02-05 16:47:57 -05:00
Brian Goff
25941b5020 Merge pull request #20003 from liubogithub/btrfs
Graphdriver/btrfs: Avoid using single d.Get()
2016-02-05 16:35:12 -05:00
David Calavera
f7f1730316 Merge pull request #20038 from doertedev/master
Grep for installed AND held packages.
2016-02-05 13:31:30 -08:00
Alexander Morozov
9f0095f14a Merge pull request #19887 from aaronlehmann/vendor-resumable-downloads
Vendor updated distribution for resumable downloads
2016-02-05 12:58:53 -08:00
Sebastiaan van Stijn
66af3cad7a Merge pull request #20035 from thaJeztah/add-seccomp-compatibility-note
Add note that seccomp 2.2.1 or higher is required
2016-02-05 21:36:35 +01:00
Liron Levin
5ffc810df2 Fix 19575: Docker events doesn't work with authorization plugin
To support the requirement of blocking the request after the daemon
responded the authorization plugin use a `response recorder` that replay
the response after the flow ends.

This commit adds support for commands that hijack the connection and
flushes data via the http.Flusher interface. This resolves the error
with the event endpoint.

Signed-off-by: Liron Levin <liron@twistlock.com>
2016-02-05 22:30:01 +02:00
Sebastiaan van Stijn
6ab52f9f00 Add note that seccomp 2.2.1 or higher is required
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-05 21:26:03 +01:00
Phil Estes
aef0995b02 Fix ZFS permissions bug with user namespaces
Fix root directory of the mountpoint being owned by real root. This is
unique to ZFS because of the way file mountpoints are created using the
ZFS tooling, and the remapping that happens at layer unpack doesn't
impact this root (already created) holding directory for the layer.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-05 14:37:33 -05:00
Darren Stahl
6791230320 Combine SetupWorkingDirectory for Linux and Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-02-05 10:27:10 -08:00
Stefan Staudenmeyer
b3d66ff010 Use grep -qE instead of egrep which is deprecated.
Signed-off-by: Stefan Staudenmeyer <doerte@instana.com>
2016-02-05 18:55:39 +01:00
Sebastiaan van Stijn
1573960dca Merge pull request #20041 from calavera/missing_debug_client_info_doc
Add missing debug client mode info in docs.
2016-02-05 18:35:01 +01:00
David Calavera
4aac8a60b2 Add missing debug client mode info in docs.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-05 12:29:54 -05:00
Stefan Staudenmeyer
996ca75413 Grep for installed AND held packages.
Signed-off-by: Stefan Staudenmeyer <doerte@instana.com>
2016-02-05 17:41:57 +01:00
moxiegirl
e59922a557 Merge pull request #20032 from thaJeztah/fix-systemd-404
Fix incorrect alias for systemd docs
2016-02-05 08:26:15 -08:00
Dan Walsh
ba38d58659 Make mqueue container specific
mqueue can not be mounted on the host os and then shared into the container.
There is only one mqueue per mount namespace, so current code ends up leaking
the /dev/mqueue from the host into ALL containers.  Since SELinux changes the
label of the mqueue, only the last container is able to use the mqueue, all
other containers will get a permission denied.  If you don't have SELinux protections
sharing of the /dev/mqueue allows one container to interact in potentially hostile
ways with other containers.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2016-02-05 16:50:35 +01:00
Sebastiaan van Stijn
039a155ffa Merge pull request #20031 from hypriot/fix-typo-chocolatey
Fix typo in Chocolatey
2016-02-05 16:25:21 +01:00
Sebastiaan van Stijn
50dba63845 Fix incorrect alias for systemd docs
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-05 16:18:26 +01:00
Stefan Scherer
4688efc3ed Fix typo in Chocolatey
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2016-02-05 16:15:20 +01:00
Sebastiaan van Stijn
d13e8d8446 Merge pull request #20028 from tomxtobin/fix-man-typo
Fix typo in config-json man page
2016-02-05 15:56:06 +01:00
Tom X. Tobin
c75581c855 Fix typo in config-json man page
In the NAME section: "confg.json" -> "config.json"

Signed-off-by: Tom X. Tobin <tomxtobin@tomxtobin.com>
2016-02-05 09:52:01 -05:00
Lei Jitang
fae09e2569 Add progress bar to docker load
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-05 02:24:23 -05:00
David Calavera
98aa1d24a3 Merge pull request #20010 from thaJeztah/update-release-checklist
Release checklist - bump versions earlier
2016-02-04 18:07:06 -08:00
David Calavera
d4c8d0519d Merge pull request #20011 from Microsoft/MinimalBaseImage
Move base image selection to a utility function
2016-02-04 18:06:30 -08:00
Aaron Lehmann
4d437a29d2 Vendor updated distribution for resumable downloads
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-04 17:33:37 -08:00
Brian Goff
675fe313ee Merge pull request #20009 from anusha-ragunathan/to-slash
Fix ReadAll to run on Windows.
2016-02-04 19:58:20 -05:00
Jess Frazelle
2da5ad3bb0 Merge pull request #20005 from Microsoft/jjh/testrunrestartmaxretries
Windows CI: Up timeout TestRunRestartMaxRetries
2016-02-04 16:07:42 -08:00
Sebastiaan van Stijn
3f869bfe78 Merge pull request #20013 from thaJeztah/fix-migration-header
Fix Header on migration page
2016-02-05 00:51:13 +01:00
Sebastiaan van Stijn
0a6e0c43d9 Fix Header on migration page
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-05 00:35:49 +01:00
Darren Stahl
96c5221626 Move base image selection to a utility function
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-02-04 15:06:34 -08:00
Sebastiaan van Stijn
354dabf3ca Release checklist - bump versions earlier
Bump both API and VERSION directly after the release
branch is created. All changes to master after that
are (by default) for the *next* release.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-04 23:45:49 +01:00
Anusha Ragunathan
691555fc8b Fix ReadAll to run on Windows.
filepath.Clean converts filenames to filenames with native path
separators. Use ToSlash to normalize.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-02-04 14:01:17 -08:00
Brian Goff
18204ea616 Merge pull request #19357 from chenchun/internal
Display `internal` flag on `network inspect`
2016-02-04 16:31:12 -05:00
Tibor Vass
da58ee42bb Merge pull request #19984 from calavera/vendor_engine_api_master
Vendor engine-api with client context changes.
2016-02-04 16:20:06 -05:00
Jess Frazelle
9a9bbacae5 Merge pull request #20006 from tiborvass/merge_release_v1.10.0
Merge release v1.10.0
2016-02-04 12:48:10 -08:00
Tibor Vass
91028ad8f4 Change version to 1.11.0-dev
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-04 15:44:35 -05:00
Tibor Vass
05adb0bdbb Bump version to v1.10.0
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-04 15:39:02 -05:00
John Howard
4a2122e020 Windows CI: Up timeout TestRunRestartMaxRetries
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-04 11:59:13 -08:00
Jess Frazelle
8038e32237 Merge pull request #19918 from WeiZhang555/restarting
Fix error for restarting container
2016-02-04 11:36:32 -08:00
David Calavera
fe53be4e17 Apply context changes to the client.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-04 13:59:57 -05:00
David Calavera
d8355ead9e Vendor engine-api, go-connections and go-winio.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-04 13:59:57 -05:00
Liu Bo
b2e27fee53 Graphdriver/btrfs: Avoid using single d.Get()
For btrfs driver, in d.Create(), Get() of parentDir is called but not followed
by Put().

If we apply SElinux mount label, we need to mount btrfs subvolumes in d.Get(),
without a Put() would end up with a later Remove() failure on
"Device resourse is busy".

This calls the subvolume helper function directly in d.Create().

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
2016-02-04 10:25:24 -08:00
unclejack
49a45d80f2 Dockerfile,contrib,hack: remove buildpack-deps
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2016-02-04 20:22:34 +02:00
Tianon Gravi
61464701fa Merge pull request #19727 from pandrew/improve_test-deb-install
improve test-deb-install
2016-02-04 10:09:47 -08:00
Paul Liljenberg
620b8250e8 improve test-deb-install
This PR adds support for using the DOCKER_BUILD_PKGS env var to
better help defining what packege to build. It also adds support
for the integration-daemon so we can run it as a bundle.

Signed-off-by: Paul Liljenberg <liljenberg.paul@gmail.com>

add directory test

Adds missing directory test. This helps verifying that
DOCKER_BUILD_PKGS is a directory and exists before continueing.

Signed-off-by: Paul Liljenberg <liljenberg.paul@gmail.com>

fix indent

Signed-off-by: Paul Liljenberg <liljenberg.paul@gmail.com>
2016-02-04 18:14:08 +01:00
Jess Frazelle
60821c6dfd Merge pull request #19997 from boucher/patch-2
Pass KEEPBUNDLE in Docker build environment.
2016-02-04 08:37:12 -08:00
David Calavera
3329c94e25 Merge pull request #19994 from runcom/fix-test-for-19936
integration-cli: fix minimum and default api version test
2016-02-04 08:33:07 -08:00
David Calavera
e2bfedbc40 Merge pull request #19998 from estesp/remove-stray-printf
Remove stray printf
2016-02-04 08:29:11 -08:00
Jess Frazelle
a1b07a8010 Merge pull request #19999 from thaJeztah/carry-19668-wheezy-journald
(carry 19668) don't try to install journald driver on wheezy
2016-02-04 07:44:42 -08:00
Sebastiaan van Stijn
6c2b014d5e dont try to install journald driver on wheezy
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-04 16:22:23 +01:00
Phil Estes
77590d4dae Remove stray printf
This came in with the Windows CI work and I assume was meant for local
debug, but adds a bare printf line to the test output.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-02-04 10:13:31 -05:00
Ross Boucher
d23778168d Pass KEEPBUNDLE in Docker build environment.
This is an alternate solution to the problem described in #19969.

Signed-off-by: Ross Boucher <rboucher@gmail.com>
2016-02-04 09:42:41 -05:00
Antonio Murdaca
fe6b88e3fa integration-cli: fix minimum and default api version test
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-02-04 13:58:08 +01:00
Zhang Wei
3c0a91d227 Fix error for restarting container
Fix error message for `--net container:b` and `--ipc container:b`,
container `b` is a restarting container.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-04 20:14:50 +08:00
Antonio Murdaca
38e774d32c Merge pull request #19949 from Microsoft/jjh/testapiresize
Windows CI: Port docker_api_resize_test.go
2016-02-04 10:11:32 +01:00
Chun Chen
c199506b59 Display internal flag on network inspect
Also adds internal network tests for bridge network

Signed-off-by: Chun Chen <ramichen@tencent.com>
2016-02-04 15:28:37 +08:00
John Howard
4080ce35e0 Windows CI: Port docker_api_resize_test.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-03 20:30:06 -08:00
Tibor Vass
66a4e557f9 Merge pull request #19702 from tiborvass/host-specific-passthru-token
Add test to make sure the new registry pass-thru token is only sent to the intended hosts
2016-02-03 21:57:32 -05:00
Sebastiaan van Stijn
a03e85b448 Merge pull request #19877 from HackToday/fixdoc
Add support details for storage driver
2016-02-04 03:07:15 +01:00
Lei Jitang
af614a19dc Clean up container rootf mounts on daemon start fixes #19679
When the daemon shutdown ungracefully, it will left the running
containers' rootfs still be mounted. This will cause some error
when trying to remove the containers.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-03 20:52:32 -05:00
Jess Frazelle
d47812dd1d Merge pull request #19886 from AndrewGuenther/185160-init-socket-fix
Wait to fire start event until socket is created
2016-02-03 17:38:52 -08:00
Jess Frazelle
dcde68b955 Merge pull request #19952 from WeiZhang555/fix-err-restarting-1
Fix error message for pause a restarting container
2016-02-03 17:34:19 -08:00
Tibor Vass
f0a58947ab Merge pull request #19979 from mavenugo/gccgoci
Use waitRun in TestDockerNetworkHostModeUngracefulDaemonRestart
2016-02-03 20:33:52 -05:00
Jess Frazelle
e74c07b947 Merge pull request #19980 from tonistiigi/fix-microsoft-vendor-dir
Remove case sensitive duplicate dir in vendor
2016-02-03 17:32:14 -08:00
Kai Qiang Wu(Kennan)
feab8b179e Add support details for storage driver
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-04 00:51:02 +00:00
Jess Frazelle
ea4086ea91 Merge pull request #19982 from tianon/seccomp-completion
Add some basic bash completion for seccomp values
2016-02-03 16:15:12 -08:00
Madhu Venugopal
76a765140e Use waitRun in TestDockerNetworkHostModeUngracefulDaemonRestart
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-02-03 14:44:55 -08:00
Jess Frazelle
1ae6da75c8 Merge pull request #19858 from felixge/vboxfs-sendfile-warning
docs: point out known issue with nginx/vboxfs
2016-02-03 13:50:34 -08:00
Tianon Gravi
75aa7dbe4f Add some basic bash completion for seccomp values
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-02-03 13:48:34 -08:00
Jess Frazelle
fdcce4ac03 Merge pull request #19942 from LK4D4/fix_vet_errors
Fix minor vet warnings
2016-02-03 13:31:11 -08:00
Tibor Vass
7ecba9c668 Merge pull request #19973 from icecrime/cross_platforms_logout
Remove unnecessary call to `/info` endpoint
2016-02-03 16:26:43 -05:00
Alexander Morozov
57025bd588 Merge pull request #19972 from jfrazelle/fix-opensuse
fix opensuse rpm
2016-02-03 13:19:51 -08:00
Arnaud Porterie
243d0d6bbe Remove unnecessary call to /info
Avoid using the `/info` endpoint in the `login` and `logout` workflows
when the Registry endpoint is overriden by the user through the command
line.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-03 13:10:25 -08:00
Tonis Tiigi
b9a395c85d Remove case sensitive duplicate dir in vendor
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-02-03 13:06:32 -08:00
Tibor Vass
7e236e623b Merge pull request #19975 from aaronlehmann/resolve-auth-config
Introduce a client-side version of resolveAuthConfig
2016-02-03 15:57:29 -05:00
Tibor Vass
3fa0d09e74 Merge pull request #19971 from aaronlehmann/revert-19743
Revert "Set idle timeouts for HTTP reads and writes in communications with the registry"
2016-02-03 15:33:29 -05:00
Vincent Demeester
e17f2e7f04 Merge pull request #19976 from mbanikazemi/docs-kuryr
Add Kuryr Network Plugin to the docs
2016-02-03 21:13:48 +01:00
Vincent Demeester
9123a24cc8 Merge pull request #19962 from marsmensch/doc_breaking_formatting_fix
Fix formatting in breaking changes doc
2016-02-03 20:43:52 +01:00
Mohammad Banikazemi
4904210d9c Add Kuryr Network Plugin to the docs
Signed-off-by: Mohammad Banikazemi <mb@us.ibm.com>
2016-02-03 14:21:54 -05:00
Alexander Morozov
3b80b1947c Merge pull request #19943 from aboch/ec
Store endpoint config on network connect to a stopped container
2016-02-03 11:06:35 -08:00
Alexander Morozov
bce70cdc2c Merge pull request #18680 from aaronlehmann/duplicate-pull-complete-message
Avoid outputting last progress item twice
2016-02-03 11:01:45 -08:00
Aaron Lehmann
ff17cd0bf0 Introduce a client-side version of resolveAuthConfig
This is similar to the version in the registry package, but uses the
daemon's default index (as opposed to the default for the client's
platform) if using the "official index".

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-03 11:01:29 -08:00
Jess Frazelle
ea28ca4350 Merge pull request #19870 from hqhq/hq_sync_Dockerfile
Sync with Dockerfile
2016-02-03 10:57:36 -08:00
Alexander Morozov
28a7577a02 Merge pull request #19959 from WeiZhang555/fix-cli-print-err
Remove redundant error message
2016-02-03 10:56:19 -08:00
Alexander Morozov
7a20a270bc Fix minor vet warnings
Also use Asserts where it's possible.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-02-03 10:43:01 -08:00
Jessica Frazelle
1cbd772629 fix opensuse rpm
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-03 10:34:17 -08:00
Arnaud Porterie
8ee7ad2209 Enable cross-platforms logout from Registry
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-03 10:32:22 -08:00
Florian Maier
f0df677913 Fix formatting in breaking changes doc
Signed-off-by: Florian Maier <contact@marsmenschen.com>
2016-02-03 19:22:14 +01:00
Aaron Lehmann
cbda80aaff Revert "Set idle timeouts for HTTP reads and writes in communications with the registry"
This reverts commit 84b2162c1a.

The intent of this commit was to set an idle timeout on a HTTP
connection. If a read took more than 60 seconds to complete, or a write
took more than 60 seconds to complete, the connection would be
considered dead.

This doesn't work properly, because the HTTP internals apparently read
from the connection concurrently while writing. An upload that doesn't
complete in 60 seconds leads to a timeout.

Fixes #19967

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-02-03 09:59:56 -08:00
Phil Estes
b2c162a0b3 Merge pull request #19966 from twistlock/user_namespace__unnecessary_text_in_error
user namespaces: duplicate dot in user namespaces error message
2016-02-03 12:51:51 -05:00
Phil Estes
e3f96b093a Merge pull request #19964 from vdemeester/factor-prefix-and-slash-platform
Add a getPrefixAndSlashFromDaemonPlatform …
2016-02-03 11:16:29 -05:00
Vincent Demeester
98c4f0bbc3 Merge pull request #18966 from mariusGundersen/machine-readable-state
Expose the machine readable state of a container when listing containers
2016-02-03 16:41:45 +01:00
Liron Levin
858f852da4 user namespaces: duplicate dot in user namespaces error message
duplicate dot in user namespaces error message:

$ docker run -ti --net=host ubuntu /bin/bash
docker: Error response from daemon: Cannot share the host or a
container's network namespace when user namespaces are enabled..

Signed-off-by: Liron Levin <liron@twistlock.com>
2016-02-03 16:56:34 +02:00
Vincent Demeester
382c96ee7b Add a getPrefixAndSlashFromDaemonPlatform …
… to limit code duplication in integration tests :P

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-03 15:16:00 +01:00
Vincent Demeester
bc08203314 Merge pull request #19948 from Microsoft/jjh/testclirm
Windows CI: Port docker_cli_rm_test.go
2016-02-03 15:05:21 +01:00
Felix Geisendörfer
9afdd436cd docs: point out known issue with nginx/vboxfs
see https://github.com/docker/docker/issues/18666

Signed-off-by: Felix Geisendörfer <felix@debuggable.com>
2016-02-03 15:02:48 +01:00
Sebastiaan van Stijn
f37e10aee3 Merge pull request #19961 from coolljt0725/check_nil
1.10.0-rc3: Check nil before set resource.OomKillDisable
2016-02-03 14:52:18 +01:00
Zhang Wei
2c63ac3a97 Fix error message for pause a restarting container
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-03 21:20:27 +08:00
Sebastiaan van Stijn
0736dba624 Merge pull request #19947 from Microsoft/jjh/testclistart
Windows CI: Port docker_cli_start_test.go
2016-02-03 13:40:55 +01:00
Qiang Huang
d8d47f428d Sync with Dockerfile
Add support for seccomp and buildpack-deps, and
updated some commit numbers.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-02-03 12:09:52 +00:00
Sebastiaan van Stijn
b75d0929b1 Merge pull request #19914 from coolljt0725/fix_top_restart
Fix docker top a restarting container
2016-02-03 11:28:10 +01:00
Lei Jitang
09a33b5f60 Check nil before set resource.OomKillDisable
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-03 04:31:00 -05:00
Vincent Demeester
4ef06e9ef1 Merge pull request #19946 from Microsoft/jjh/stats
Windows: Turn off stats
2016-02-03 09:28:25 +01:00
Vincent Demeester
052e5f222e Merge pull request #19940 from bfirsh/add-1.10-migration-docs
Add 1.10 migration docs
2016-02-03 08:52:17 +01:00
Sebastiaan van Stijn
f3263201ab Merge pull request #19951 from icecrime/18546_carry
Carry #18546
2016-02-03 08:51:54 +01:00
Zhang Wei
894266c1bb Remove redundant error message
Currently some commands including `kill`, `pause`, `restart`, `rm`,
`rmi`, `stop`, `unpause`, `udpate`, `wait` will print a lot of error
message on client side, with a lot of redundant messages, this commit is
trying to remove the unuseful and redundant information for user.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-03 15:45:20 +08:00
David Calavera
d2bc2f081f Merge pull request #19945 from amitkris/master
bump logrus to v0.9.0
2016-02-02 21:10:30 -08:00
Arnaud Porterie
fa160753c1 Merge pull request #19954 from Microsoft/jjh/disableclientsetstls
Disable flakey TestClientSetsTLSServerName
2016-02-02 20:09:16 -08:00
John Howard
6b8341a2d5 Disable flakey TestClientSetsTLSServerName
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-02 19:56:31 -08:00
Arnaud Porterie
2fd35de274 Fix typo
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-02 19:07:58 -08:00
Troy Denton
0e14754766 Update networkingcontainers.md
updated line on how to exit the container after the ping test - in my environment (Ubuntu 14.04.1, bash) ctrl-c does not work to exit the shell, and `exit` must be used instead.

Signed-off-by: Troy Denton <Troy.Denton@younessleeptechnologies.com>
2016-02-02 19:05:55 -08:00
John Howard
07fd173225 Windows CI: Port docker_cli_rm_test.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-02 18:43:50 -08:00
John Howard
b47749102d Windows CI: Port docker_cli_start_test.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-02 18:23:29 -08:00
Lei Jitang
5566ccb7aa Fix docker top a restarting container
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-02-02 21:05:01 -05:00
John Howard
55268f4e91 Windows: Turn off stats
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-02 17:59:11 -08:00
Ben Firshman
c8f263c73d Add 1.10 migration docs
Originally from https://blog.docker.com/2016/01/docker-1-10-rc/

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2016-02-02 17:54:33 -08:00
Amit Krishnan
408092e56b bump logrus to v0.9.0
Signed-off-by: Amit Krishnan <amit.krishnan@oracle.com>
2016-02-02 17:53:51 -08:00
Arnaud Porterie
6f88a3d7d3 Merge pull request #19939 from Microsoft/jjh/testcreate
Windows CI: TestCreate* porting
2016-02-02 17:48:43 -08:00
Alessandro Boch
9b63e4e7f5 Store endpoint config on network connect to a stopped container
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-02-02 17:25:44 -08:00
Alexander Morozov
c2bf90eb59 Merge pull request #19935 from Microsoft/jjh/onemorereliabilityhack
Windows CI: One more reliability hack
2016-02-02 16:49:29 -08:00
Alexander Morozov
1bc4c99372 Merge pull request #19761 from HackToday/enhancesortattr
Sort the attributes for events
2016-02-02 16:08:23 -08:00
John Howard
5e3fdd3c20 Windows CI: TestCreate* porting
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-02 16:00:39 -08:00
Alexander Morozov
83ee24e52b Merge pull request #19911 from Microsoft/jstarks/npipe
Windows: Add support for named pipe protocol
2016-02-02 15:59:45 -08:00
Arnaud Porterie
85a32baa3b Merge pull request #19901 from calavera/debug_cli_tests
Always show debug information in the info output
2016-02-02 15:56:55 -08:00
Arnaud Porterie
5ba3edd486 Merge pull request #19915 from wenchma/add_net_bind_test
Add integration test for network host bind option
2016-02-02 15:34:13 -08:00
Antonio Murdaca
2a35a1a6dc Merge pull request #19936 from vieux/fix_min_version
fix error message on version too low
2016-02-03 00:21:07 +01:00
Alexander Morozov
01cc315322 Merge pull request #19800 from wenchma/19425-TestApiStatsNetworkStats
Optimize TestApiStatsNetworkStats and TestApiStatsNetworkStatsVersioning
2016-02-02 14:56:51 -08:00
Alexander Morozov
67d6154cc2 Merge pull request #19917 from WeiZhang555/add-lock
Lock container when set state to restarting
2016-02-02 14:55:51 -08:00
Victor Vieux
0fd9b4067d fix error message on version too low
Signed-off-by: Victor Vieux <vieux@docker.com>
2016-02-02 14:16:15 -08:00
David Calavera
9f315dd328 Add regression tests for client debug flag.
- Add client debug info to the `docker info` command.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-02 16:57:36 -05:00
John Howard
14c53160d7 Windows CI: One more reliability hack
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-02 13:15:35 -08:00
Tibor Vass
b6a6ed7200 Merge pull request #19932 from calavera/fix_config_validation
Make sure flat options are not parsed as config structures.
2016-02-02 15:36:25 -05:00
David Calavera
b6766e3063 Make sure flat options are not parsed as config structures.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-02 14:45:37 -05:00
Brian Goff
51620020af Merge pull request #19927 from jfrazelle/update-comment
update comment
2016-02-02 14:37:43 -05:00
Arnaud Porterie
6b7a3f0c82 Merge pull request #19926 from Microsoft/jjh/refixcihack
Windows CI: Re-do TP4 CI reliability hack
2016-02-02 11:02:08 -08:00
Sebastiaan van Stijn
f830cec78a Merge pull request #19868 from HackToday/fixwindows
Fix windows CI test
2016-02-02 19:58:29 +01:00
Tibor Vass
6bde64ab2d Merge pull request #19894 from samneirinck/powershell-support
Add powershell completion support
2016-02-02 13:50:45 -05:00
Tibor Vass
b6168e6845 Merge pull request #19929 from icecrime/delegation_exp
Delegation is not experimental
2016-02-02 13:41:44 -05:00
Arnaud Porterie
e516b5651b Delegation is not experimental
Change wording that described user delegation as an experimental
feature.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-02 10:32:14 -08:00
Arnaud Porterie
7abc7b383c Merge pull request #18605 from fgimenez/9969-add-sni-support
Added cli SNI integration test
2016-02-02 10:12:44 -08:00
Jessica Frazelle
9b8d328666 update comment
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-02-02 10:03:52 -08:00
Tianon Gravi
63ad7df2aa Merge pull request #19851 from hqhq/hq_remove_libseccompa
Cleanup libseccomp.a hack since dockerinit is gone
2016-02-02 09:52:35 -08:00
John Howard
6f0831930f Windows CI: Re-do TP4 CI reliability hack
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-02 09:36:18 -08:00
Sebastiaan van Stijn
202cccc3d3 Merge pull request #19924 from moxiegirl/title-per-scott
Changing menu label from Engine > Docker Engine
2016-02-02 18:14:37 +01:00
Sebastiaan van Stijn
6144d24b03 Merge pull request #19923 from thaJeztah/update-etc-hosts-docs
Add note about legacy links
2016-02-02 18:09:22 +01:00
Sebastiaan van Stijn
1cfab85c0e Add note about legacy links
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-02 18:06:09 +01:00
Mary Anthony
c49b6ce4e1 Changing menu label from Engine > Docker Engine
Signed-off-by: Mary Anthony <mary@docker.com>
2016-02-02 09:03:45 -08:00
Sebastiaan van Stijn
4d4c284ef4 Merge pull request #19817 from icecrime/breaking_changes
Add doc page for breaking changes
2016-02-02 17:43:32 +01:00
Vincent Demeester
ef52a53c34 Merge pull request #19865 from mavenugo/ndocs
Docs cleanup for networking features added in 1.10
2016-02-02 17:36:46 +01:00
Arnaud Porterie
4f37e14e9c Merge pull request #18362 from runcom/tunable-SetMaxThreads
daemon_unix: set golang runtime max threads
2016-02-02 08:36:28 -08:00
Vincent Demeester
2b56501480 Merge pull request #19909 from Microsoft/jjh/testunit-daemon
Windows CI: Fix test-unit for daemon
2016-02-02 16:18:02 +01:00
Sebastiaan van Stijn
877f88267b Merge pull request #19920 from thaJeztah/fix-memoryswap-docs
Fix memory-swap description in older API versions
2016-02-02 15:25:42 +01:00
Madhu Venugopal
6f863cfa18 Docs cleanup for networking features added in v1.10
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-02-02 06:10:41 -08:00
Sebastiaan van Stijn
1c95b858ac Fix memory-swap description in older API versions
A value of -1 disables the *limit* so enables unlimited swap

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-02-02 14:49:14 +01:00
Sebastiaan van Stijn
390077fcdc Merge pull request #19912 from HackToday/fiximage
Correct old virtual size
2016-02-02 14:06:58 +01:00
Kai Qiang Wu(Kennan)
1ab7d76f30 Correct old virtual size
In new content addressable model, image no longer
have virtual size column, it is now 'size'. So we
need to update related docs about them.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-02 12:28:33 +00:00
Zhang Wei
155714c596 Lock container when set state to restarting
After exec driver run, container lock is lost, so we should lock
container when changing its state to `restarting`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-02-02 19:50:06 +08:00
Wen Cheng Ma
4f1d876e4c Add integration test for network host bind option
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-02-02 18:01:04 +08:00
Vincent Demeester
5cdc0dfce3 Merge pull request #19822 from Microsoft/jjh/testexeccli
Windows CI: Initial porting CLI TestExec*
2016-02-02 08:32:28 +01:00
Kai Qiang Wu(Kennan)
7ed10d4a4c Fix windows CI test
The windows CI is not clean in some tests, this try address that.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-02 04:54:14 +00:00
John Howard
42f2621b0e Windows CI: Fix test-unit for daemon
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-01 20:40:57 -08:00
John Starks
0906195fbb Windows: Add support for named pipe protocol
This adds an npipe protocol option for Windows hosts, akin to unix
sockets for Linux hosts. This should become the default transport
for Windows, but this change does not yet do that.

It also does not add support for the client side yet since that
code is in engine-api, which will have to be revendored separately.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-02-01 19:46:30 -08:00
Brian Goff
a39ad952ec Merge pull request #19889 from Microsoft/jjh/reliabilitytake2
Windows CI: TP4 reliability hack
2016-02-01 22:30:51 -05:00
Brian Goff
a034ac66eb Merge pull request #19902 from Microsoft/jstarks/revendor_hcsshim_fix_docker_crash
Revendor Microsoft/hcsshim and vendor Microsoft/go-winio
2016-02-01 22:30:08 -05:00
Tibor Vass
ec6bfebc0f Merge pull request #19907 from tiborvass/tty-debug
Prevent stdin from hanging
2016-02-01 21:57:32 -05:00
Brian Goff
193ef9f0c1 Merge pull request #19861 from fangyuan930917/19350-remove-Info
remove the unused Info interface in daemon/execdriver/driver.go
2016-02-01 21:44:39 -05:00
Brian Goff
3c0c115ec8 Merge pull request #19896 from calavera/same_rm_error_message
Make error message consistent when removing containers fail.
2016-02-01 21:19:42 -05:00
John Howard
2ebcb48cf1 Windows CI: TP4 reliability hack
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-01 18:02:57 -08:00
Tibor Vass
51795c0836 Skip Close()-ing stdin on Darwin. The Return.
This was accidentally removed in https://github.com/docker/docker/pull/16289
Now adding it back.

Signed-off-by: Tibor Vass <tibor@docker.com>
2016-02-01 20:38:01 -05:00
Alexander Morozov
f1e8d2c295 Merge pull request #19899 from aboch/vnd
Vendoring libnetwork 0.6.0-rc7
2016-02-01 17:10:31 -08:00
Fangyuan Gao
5d07d83ee0 remove the unused Info interface in daemon/execdriver/driver.go and related code
Signed-off-by: Fangyuan Gao <21551127@zju.edu.cn>
2016-02-02 09:04:52 +08:00
Tibor Vass
19eaa71e85 Merge pull request #19891 from icecrime/windows_login_issue
Enable cross-platforms login to Registry
2016-02-01 19:50:54 -05:00
David Calavera
85475f7dea Merge pull request #19794 from calavera/14358-disable-colors
[Carry 18621] Allow disabling of colored Docker logs via daemon flag.
2016-02-01 15:37:44 -08:00
John Starks
7ccc0e2101 Revendor Microsoft/hcsshim and vendor Microsoft/go-winio
This update changes the way hcsshim invokes Windows DLLs to avoid races
with the garbage collector. It also now uses go-winio to access the
pipes used for communication with processes running in the container;
this reduces the number of threads used by docker.exe, improving
scalability.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-02-01 23:11:25 +00:00
David Calavera
1734571539 Merge pull request #19893 from cpuguy83/19890_debugs_for_all
handle debug mode for clients
2016-02-01 14:53:37 -08:00
Alessandro Boch
b80f761b14 Vendoring libnetwork 0.6.0-rc7
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-02-01 14:52:18 -08:00
Sebastiaan van Stijn
cf93b0bce1 Merge pull request #19898 from joelwurtz/patch-1
Update docker-php link library from stage1
2016-02-01 23:37:11 +01:00
Sebastiaan van Stijn
d95c487213 Merge pull request #19714 from vdemeester/carry-pr-18787
Carry #18787: Update Instructions for Docker Remote API access
2016-02-01 23:26:40 +01:00
David Calavera
898599171e Add test to make sure raw logs are properly activated.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-01 16:52:31 -05:00
Joel Wurtz
9928b244e9 Update docker-php library from stage1
Signed-off-by: Joel Wurtz <joel.wurtz@gmail.com>
2016-02-01 22:45:34 +01:00
Arnaud Porterie
680cf1c8f4 Merge pull request #19553 from anusha-ragunathan/rm-daemonbuilder
Remove package daemonbuilder.
2016-02-01 13:20:00 -08:00
Vincent Woo
87a450a37f Allow disabling of colored Docker logs via daemon flag.
Signed-off-by: Vincent Woo <me@vincentwoo.com>
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-01 16:19:18 -05:00
David Calavera
245d6e83a9 Merge pull request #19416 from mlaventure/warn-on-rm-detach
Print an info message when detaching a container started with --rm
2016-02-01 13:17:23 -08:00
Arnaud Porterie
a898478a79 Merge pull request #19570 from WeiZhang555/18679-flaky-test
Fix flaky test `TestGetContainerStatsRmRunning`
2016-02-01 13:15:20 -08:00
Brian Goff
c28bba0460 Merge pull request #19725 from WeiZhang555/opt-TestRunSeccompDefaultProfile
Optimize `TestRunSeccompDefaultProfile`
2016-02-01 16:01:51 -05:00
David Calavera
0c620d62c2 Merge pull request #19708 from wenchma/19425-TestDaemonCorruptedLogDriverAddress
Optimize slow bottleneck tests of TestDaemonCorruptedLogDriverAddress
2016-02-01 12:59:37 -08:00
David Calavera
50de9fdff1 Make error message consistent when removing containers fail.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-02-01 15:32:50 -05:00
Arnaud Porterie
b2d3615337 Add doc page for breaking changes
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-01 11:55:49 -08:00
Brian Goff
78b0defcf3 handle debug mode for clients
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-02-01 14:36:40 -05:00
Arnaud Porterie
960710bd81 Enable cross-platforms login to Registry
Use a daemon-defined Registry URL for `docker login`. This allows a
Windows client interacting with a Linux daemon to properly use the
default Registry endpoint instead of the Windows specific one.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-02-01 11:18:54 -08:00
David Calavera
c19c08b97a Merge pull request #19885 from tophj-ibm/fix-integration-cli-suite-requirements
Fix integration-cli suite setup requirements
2016-02-01 11:13:39 -08:00
John Howard
a9379b4af2 Windows CI: Initial porting CLI TestExec*
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-02-01 10:19:21 -08:00
Anusha Ragunathan
9c332b164f Remove package daemonbuilder.
Currently, daemonbuilder package (part of daemon) implemented the
builder backend. However, it was a very thin wrapper around daemon
methods and caused an implementation dependency for api/server build
endpoint. api/server buildrouter should only know about the backend
implementing the /build API endpoint.

Removing daemonbuilder involved moving build specific methods to
respective files in the daemon, where they fit naturally.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-02-01 09:57:38 -08:00
Andrew Guenther
9f401254bd Wait to fire start event until socket is created
Previously, this check only worked if no host was specified and was
hard coded to check for "/var/run/docker.sock"

This change generalizes that check and captures any specified socket
and waits for it to be created.

Caveat: This will only check the first socket specified, but it is an
improvement over none at all.

Fixes #185160

Signed-off-by: Andrew Guenther <guenther.andrew.j@gmail.com>
2016-02-01 08:40:26 -08:00
Alexander Morozov
69c381c8d1 Merge pull request #19857 from aboch/vnd
Vendoring libnetwork 0.6.0-rc6
2016-02-01 08:32:02 -08:00
Sam Neirinck
3b35a5b604 Add powershell completion support
Initial version of powershell tab completion. It completes
commands and container names.

Signed-off-by: Sam Neirinck <sam@samneirinck.com>
2016-02-01 17:12:15 +01:00
Brian Goff
967848419a Merge pull request #19873 from HackToday/refactorfs
Make btrfs call same interface as others
2016-02-01 10:36:59 -05:00
Sebastiaan van Stijn
c2d6831fc4 Merge pull request #19695 from Microsoft/10662-TestBuildCI2
Second set of enabling TestBuild CI for Windows
2016-02-01 16:29:52 +01:00
Vincent Demeester
ec67c8c4b6 Merge pull request #19867 from Microsoft/jjh/disableunreliabletests
Windows CI: Turn off unreliable TP4 tests
2016-02-01 13:50:26 +01:00
Sebastiaan van Stijn
179cd3e8bc Merge pull request #19882 from vdemeester/add-ipfs-volume-plugin
Add docker-volume-ipfs plugin to the list.
2016-02-01 13:41:19 +01:00
Vincent Demeester
b01886a556 Add docker-volume-ipfs plugin to the list.
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-02-01 13:30:15 +01:00
Vincent Demeester
63335df3d4 Merge pull request #19883 from quofelix/master
Added link to Quobyte's volume plugin.
2016-02-01 13:10:17 +01:00
Felix Hupfeld
518c20787b Added link to Quobyte's volume plugin.
Signed-off-by: Felix Hupfeld <felix@quobyte.com>
2016-02-01 12:51:05 +01:00
Lei Jitang
743978e3ba Merge pull request #19875 from Qiaohai8866/master
change 'host:port' to `host:port`
2016-02-01 18:47:14 +08:00
qg
7d1018545f change 'host:port' to host:port
Signed-off-by: Gang Qiao <qiaohai8866@gmail.com>
2016-02-01 17:22:16 +08:00
Kai Qiang Wu(Kennan)
feda5d7684 Make btrfs call same interface as others
Most storage drivers call graphdriver.GetFSMagic(home),
it is more clean to easy to maintain. So btrfs need to
adopt such change.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-01 07:50:21 +00:00
Antonio Murdaca
0f124979c2 Merge pull request #19872 from ZhuWeiyang/fix-ubuntulinux-upgrade
Fix upgrade command in ubuntulinux
2016-02-01 07:11:40 +01:00
Weiyang Zhu
a80c404cc6 Fix upgrade command
Signed-off-by: Weiyang Zhu <cnresonant@gmail.com>
2016-02-01 12:59:21 +08:00
Wen Cheng Ma
695b7e8d11 Optimize TestApiStatsNetworkStats and TestApiStatsNetworkStatsVersioning
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-02-01 10:26:27 +08:00
Kai Qiang Wu(Kennan)
746f6af9aa Sort the attributes for events
This is add support for #19559
We tried sort it in client side, and it sort follow go
sort : sorts a slice of strings in increasing order.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-02-01 00:18:33 +00:00
John Howard
59f4369f1a Windows CI: Turn off unreliable TP4 tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-31 15:51:56 -08:00
Sebastiaan van Stijn
40ce2574b4 Merge pull request #19864 from pra85/patch-1
Fix typo
2016-01-31 22:58:19 +01:00
Prayag Verma
86beb6e27e Fix typo
Signed-off-by: Prayag Verma <prayag.verma@gmail.com>
2016-02-01 01:25:59 +05:30
Marius Gundersen
2ed72a5d93 Expose the machine readable state of a container when listing containers
Updated documentation to reflect the new State property in the inspect remote api

Updated API changes for 1.23

Signed-off-by: Marius Gundersen <me@mariusgundersen.net>
2016-01-31 18:40:37 +01:00
Sebastiaan van Stijn
6f86bcee76 Merge pull request #19856 from moxiegirl/carry-close-19240
Updating for CAS changes and new select a driver section
2016-01-31 15:52:14 +01:00
Zhang Wei
9a9ce80a0f Fix flaky test TestGetContainerStatsRmRunning
Remove racey code to fix flaky test

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-31 15:34:22 +08:00
Alessandro Boch
f943fd7d24 Vendoring libnetwork 0.6.0-rc6
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-30 20:03:03 -08:00
Nigel
89923c1f32 Updating for CAS changes and new select a driver section
Adding changes requested by @jamtur01 and wrapping to 80 chars
Adding typo fixes and replacing tabs with 4xspaces
Closes and fixes #19240
Updating with content addressable storage model changes

Signed-off-by: Nigel <nigelpoulton@hotmail.com>
2016-01-30 18:03:04 -08:00
Antonio Murdaca
140a74347d daemon_unix: set golang runtime max threads
SetMaxThreads from runtime/debug in Golang is called to set max threads
value to 90% of /proc/sys/kernel/threads-max

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-30 21:37:24 +01:00
Antonio Murdaca
5f5a752bcf Merge pull request #19847 from Microsoft/jjh/revert19790
Revert PR 19790 (breaks windowsTP4 CI on cache bust)
2016-01-30 20:28:21 +01:00
Sebastiaan van Stijn
d069e8e7b7 Merge pull request #19846 from shin-/remote_api_container_update_doc
Update example request for container update in docs.
2016-01-30 08:05:55 -08:00
Brian Goff
d695cf8de7 Merge pull request #19638 from runcom/remove-redunant-function
cleanup and move stuff where needed
2016-01-30 10:12:38 -05:00
Doug Davis
80c7258e11 Merge pull request #19852 from WeiZhang555/warn-info
Change log level
2016-01-30 09:58:47 -05:00
Federico Gimenez
4ba168b4cb Added cli SNI integration test
Signed-off-by: Federico Gimenez <fgimenez@coit.es>
2016-01-30 15:29:24 +01:00
Antonio Murdaca
667c2245ad Merge pull request #19820 from Microsoft/jjh/testexecapi
Windows CI: Port TestExecApi* tests
2016-01-30 11:50:01 +01:00
Vincent Demeester
6b57380173 Merge pull request #19646 from nishanttotla/19277-CustomInfoField
Display SystemStatus field in docker info
2016-01-30 11:48:01 +01:00
Antonio Murdaca
98ef10f64e Merge pull request #19839 from Microsoft/jjh/testevents
Windows CI: Porting TestEvents*
2016-01-30 11:47:44 +01:00
Zhang Wei
98f74f8383 Change log level
Warning should be printed with real `logrus.Warn`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-30 18:46:16 +08:00
Qiang Huang
a605d641d7 Cleanup libseccomp.a hack since dockerinit is gone
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-01-30 16:17:13 +08:00
Sebastiaan van Stijn
317c89ce9e Merge pull request #19838 from brahmaroutu/fix_notary_gccgo_s390x
Need -lpthread to compile Notary
2016-01-29 22:33:57 -08:00
John Howard
54320d8d18 Signed-off-by: John Howard <jhoward@microsoft.com>
Revert "Combine SetupWorkingDirectory for Linux and Windows"

This reverts commit ec31741ca1.
2016-01-29 20:49:39 -08:00
Brian Goff
0c09dda80f Merge pull request #19841 from aaronlehmann/compress-panic
Fix panic on network timeout during push
2016-01-29 22:15:13 -05:00
Zhang Wei
2e9bb7870a Optimize TestRunSeccompDefaultProfile
Optimize performance of `TestRunSeccompDefaultProfile`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-30 10:42:06 +08:00
Joffrey F
5f0643b082 Update example request for container update in docs.
Signed-off-by: Joffrey F <joffrey@docker.com>
2016-01-29 18:35:29 -08:00
Brian Goff
9c3cca23e9 Merge pull request #19815 from Microsoft/jjh/testruncreatevolumesinsymlinkdir
Fix TestRunCreateVolumesInSymlinkDir
2016-01-29 21:07:51 -05:00
Brian Goff
c8fb886dba Merge pull request #19823 from Microsoft/jjh/maximus5
Improvements to ANSI emulation in conemu
2016-01-29 21:07:22 -05:00
Nishant Totla
6c5e8dd4c2 Adding SystemStatus field for /info endpoint
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
2016-01-29 16:26:43 -08:00
Jess Frazelle
c006c02611 Merge pull request #19735 from jfrazelle/add-repo-scripts
add scripts to clean experimental rpms and debs
2016-01-29 15:52:18 -08:00
Aaron Lehmann
e273445dd4 Fix panic on network timeout during push
`Upload` already closes the reader returned by `compress` and the
progressreader passed into it, before returning. But even so, the
io.Copy inside compress' goroutine needs to attempt a read from the
progressreader to notice that it's closed, and this read has a side
effect of outputting a progress message. If this happens after `Upload`
returns, it can result in a write to a closed channel. Change `compress`
to return a channel that allows the caller to wait for its goroutine to
finish before freeing any resources connected to the reader that was
passed to it.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-29 14:34:50 -08:00
Arnaud Porterie
46018c3cee Merge pull request #19837 from cpuguy83/carry_19085
Carry 19085 -- Improve & cleanup documentation comments
2016-01-29 14:30:25 -08:00
Christopher Jones
d800a4e1ba Fix integration-cli suite setup requirements
This PR moves the testRequires check from within setupRegistry
and setupNotary to when the Suite itself starts up.

This fixes a bug where testRequires() in setupRegistry() would
succeed and start registry, but testRequires() in setupNotary()
would fail. This immediately exits the goroutine with registry
still running.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-01-29 16:35:20 -05:00
Jess Frazelle
e23f24bbbd Merge pull request #18176 from hypriot/17802-build-first-debian-package-for-arm
add support for building first ARM-based debian package
2016-01-29 13:26:20 -08:00
Kenfe-Mickael Laventure
1ebeb2c9b4 Print an info message when detaching a container started with --rm
Closes #17516

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-01-29 13:19:23 -08:00
David Calavera
35ef3efe9a Merge pull request #19805 from WeiZhang555/test-inspect
Make test code consistent
2016-01-29 12:43:58 -08:00
John Howard
bf33742026 Windows CI: Porting TestEvents*
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-29 12:33:56 -08:00
Brian Goff
9c09a79ba5 update doc string
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-29 15:25:25 -05:00
David Calavera
d38cee5e0d Merge pull request #19516 from tophj-ibm/update-registry-on-dockerfile-ppc64le
Update registry version in Dockerfile.ppc64le
2016-01-29 11:53:42 -08:00
Srini Brahmaroutu
6b09413f6b Need -lpthread to compile Notary
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2016-01-29 19:52:39 +00:00
Sebastiaan van Stijn
cfa547922d Merge pull request #19824 from wenchma/name_to_id_for_stats
Change container name to id as actual results
2016-01-29 10:58:42 -08:00
David Calavera
ca48f7350c Merge pull request #19806 from liusdu/forbid-null-login
forbid login of a null-string username
2016-01-29 10:34:16 -08:00
David Calavera
7cc012333f Merge pull request #19836 from jfrazelle/update-completions-for-disable-content-trust
update bash completions for push and pull
2016-01-29 10:29:59 -08:00
Jessica Frazelle
c40f487c5c update bash completions for push and pull
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-29 10:14:36 -08:00
John Howard
90b0292b5b Fix TestRunCreateVolumesInSymlinkDir
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-29 09:28:48 -08:00
Zhang Wei
62a856e912 Assert error in body of function inspectField*
1. Replace raw `docker inspect -f xxx` with `inspectField`, to make code
cleaner and more consistent
2. assert the error in function `inspectField*` so we don't need to
assert the return value of it every time, this will make inspect easier.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-29 23:39:07 +08:00
Liu Hua
755df347fb forbid login of a null-string username
With this patch, the client blocks this type login, no sending
useless messages to daemon and registry. This saves lots of time.

Signed-off-by: Liu Hua <sdu.liu@huawei.com>
2016-01-29 22:39:22 +08:00
Antonio Murdaca
a7d1aeceec postImagesCreate: move auth config decode when it's needed
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-29 14:07:54 +01:00
Antonio Murdaca
505a56d6da api: client: remove redunant function to encode auth
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-29 14:07:54 +01:00
Vincent Demeester
6c6729ef5b Merge pull request #19793 from calavera/full_login_prompt
Always prompt for a password when asking for credentials.
2016-01-29 12:39:57 +01:00
Vincent Demeester
5f63c54192 Merge pull request #19790 from Microsoft/CombineSetupWorkingDir
Combine SetupWorkingDirectory for Linux and Windows
2016-01-29 08:52:08 +01:00
Wen Cheng Ma
d76fba0191 Change container name to id as actual results
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-29 13:54:28 +08:00
John Howard
506722bf9f Improvements to ANSI emulation in conemu
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-28 20:37:42 -08:00
Sebastiaan van Stijn
7d13f2fb7d Merge pull request #19563 from Microsoft/10662-TestBuildCI1
First batch of Windows-Windows TestBuild CI enabling
2016-01-28 17:13:45 -08:00
Tibor Vass
4da9cd5df6 Merge pull request #19795 from jfrazelle/release-checklist
some cleanup to release checklist
2016-01-28 16:43:57 -08:00
Tibor Vass
17be787dca Merge pull request #19811 from albers/completion-user
Improve bash completion for users and groups
2016-01-28 16:39:26 -08:00
Arnaud Porterie
f746cf0440 Merge pull request #19796 from Microsoft/10662-RemoveTestBuildHistory
Temporarily removing TestBuildHistory on Windows for perf reasons
2016-01-28 16:34:55 -08:00
John Howard
9642c8170a Windows CI: Port TestExecApi* tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-28 16:26:06 -08:00
Tibor Vass
f3df50d115 distribution: add test to ensure pass-thru registry token is host-bound
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-01-28 16:23:06 -08:00
Govinda Fichtner
7b31ed432e add support for building first ARM debian package
Signed-off-by: Govinda Fichtner <govinda.fichtner@googlemail.com>
2016-01-29 00:21:17 +01:00
Darren Stahl
2b95f012db Second set of enabling TestBuild CI for Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-01-28 13:43:22 -08:00
Darren Stahl
87839b345e Temporarily removing TestBuildHistory on Windows for perf reasons
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-01-28 13:42:02 -08:00
Brian Goff
5ee4ad1d77 Merge pull request #19812 from jgeiger/patch-1
Fix typos in create.go
2016-01-28 16:12:06 -05:00
Joey Geiger
318b4f0b5f Fix typos in create.go
There were a few spelling issues that I noticed when reading about shared mounts.

Signed-off-by: jgeiger <joey.geiger@irco.com>
2016-01-28 14:08:11 -07:00
David Calavera
630a5a23c7 Merge pull request #19766 from anujbahuguna/master
Adding biologist Christiane Nüsslein Volhard and AI pioneer Marvin Mi…
2016-01-28 11:06:24 -08:00
Brian Goff
0b7acaf4b9 Merge pull request #19733 from calavera/auth_error_on_post_create
Respond with 401 when there is an unauthorized error from the registry.
2016-01-28 13:44:58 -05:00
Harald Albers
0e5ea96fa6 Improve bash completion for users and groups
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-28 09:48:47 -08:00
Anuj Bahuguna
2d459a1600 Adding biologist Christiane Nüsslein Volhard and AI pioneer Marvin Minsky
Signed-off-by: Anuj Bahuguna anujbahuguna.dev@gmail.com

Signed-off-by: Anuj Bahuguna <anujbahuguna.dev@gmail.com>
2016-01-28 14:33:58 +00:00
Vincent Demeester
725b5b595b Merge pull request #19801 from albers/completion-journald-opt-tag
bash completion for journald tag support
2016-01-28 08:58:41 +01:00
Harald Albers
11fe3edacb bash completion for journald tag support
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-28 08:41:37 +01:00
Vincent Demeester
7ee1aaf06d Merge pull request #19769 from HackToday/fixubuntudoc
Make install instruction consistent
2016-01-28 08:31:45 +01:00
Vincent Demeester
adb9fa7362 Merge pull request #19401 from wenchma/18410-default_net_driver
docs: document options for default network driver
2016-01-28 08:30:30 +01:00
Vincent Demeester
36b5e63179 Merge pull request #19773 from coolljt0725/fix_message
Correct the info message when stop container
2016-01-28 08:29:42 +01:00
Kai Qiang Wu(Kennan)
b02552124b Make install instruction consistent
Right now in ubuntu section, instruction is not consistent
for sudo, so it is better to keep it style same.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-28 06:54:59 +00:00
Wen Cheng Ma
ebd1f70165 docs: document options for default network driver
Fixes issue #18410

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-28 11:49:07 +08:00
Darren Stahl
ec31741ca1 Combine SetupWorkingDirectory for Linux and Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-01-27 16:17:35 -08:00
Jessica Frazelle
ca8a4935aa make docs better for scripts as well
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-27 15:57:24 -08:00
Jessica Frazelle
9ca8386c57 add scripts to clean experimental rpms and debs
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-27 15:54:53 -08:00
Jessica Frazelle
404d20861c some cleanup
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-27 15:39:01 -08:00
David Calavera
3dd01713d8 Merge pull request #17849 from daehyeok/remove_empty_file
Remove output file when save/export fail
2016-01-27 15:31:29 -08:00
David Calavera
8ed06af044 Always prompt for a password when asking for credentials.
There is a weird behavior where we don't ask for a password
when the user you type in the prompt is the same you have configured
in the config file.

This is the source of many frustrations and also a bug.
If the authentication with a registry fails because the password
is incorrect, we won't ask for the password again with the current logic.

With this change, we also stop calling `CmdLogin` directly when
authentication fails. We don't need to parse flags from the cli or
setting up input destriptiors again, like the current behavior is doing.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-27 18:26:48 -05:00
Jess Frazelle
07312af8fa Merge pull request #19747 from cpuguy83/nogc
Turn off GC during `make binary`
2016-01-27 15:02:38 -08:00
Sebastiaan van Stijn
e5b1f29ac3 Merge pull request #19788 from cyli/vendor-notary
Include a new version of notary with less verbose INFO+ logging
2016-01-27 14:35:32 -08:00
David Calavera
7a016578db Merge pull request #18041 from jnummelin/feature/fluent-logger-ignore-connect-error-flag
Added flag to ignore fluentd connect error on container start
2016-01-27 14:25:24 -08:00
Sebastiaan van Stijn
c1191eb0e8 Merge pull request #19741 from jfrazelle/better-apparmor-docs
way better apparmor docs
2016-01-27 14:22:54 -08:00
Jessica Frazelle
a6701790ee way better apparmor docs
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-27 14:08:42 -08:00
David Calavera
0f5aa19593 Merge pull request #19767 from icecrime/factorize_sleeping_container
Factorize sleeping containers
2016-01-27 13:42:56 -08:00
Vincent Demeester
7beccdc609 Merge pull request #19721 from bboreham/doc-ip-failure
Improve wording about re-assigning IP addresses
2016-01-27 22:17:06 +01:00
Brian Goff
f4e5eb3f86 Merge pull request #19775 from coolljt0725/fix_prepare_mount
daemon: don't prepare mountpoint for restart container
2016-01-27 16:11:12 -05:00
Sebastiaan van Stijn
b9c8fc5ac9 Merge pull request #19748 from tkopczynski/18884-daemon-not-running-faq
FAQ: add docker daemon unavailable note
2016-01-27 13:10:41 -08:00
Tomasz Kopczynski
83c1fd6f53 FAQ: add docker daemon unavailable note
Signed-off-by: Tomasz Kopczynski <tomek@kopczynski.net.pl>
2016-01-27 21:18:02 +01:00
David Calavera
7bca932182 Respond with 401 when there is an unauthorized error from the registry.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-27 13:55:33 -05:00
Brian Goff
9672afa339 Add DOCKER_BUILD_GOGC to tweak GOGC for compile
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-27 13:35:26 -05:00
Vincent Demeester
fff1511c56 Merge pull request #19564 from bobrik/journald-tag
Add tag support to journald logging driver, closes #19556
2016-01-27 19:21:23 +01:00
Aditi Rajagopal
3fd25d98b8 Update Instructions for Docker Remote API access
Update the location of cert.pem and key.pem to use within the
~/.docker folder
Resolves: #18778

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2016-01-27 18:49:31 +01:00
cyli
71a1caddf0 Include a new version of notary with less verbose INFO+ logging
Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-01-27 09:46:26 -08:00
Jess Frazelle
c39c7e6edf Merge pull request #19760 from cyli/re-vendor-notary
Re-vendor Notary and docker/go
2016-01-27 09:36:26 -08:00
Jess Frazelle
6b2c1ed4c0 Merge pull request #19784 from vdemeester/oh-tools-it
Fix TOOLS.md jenkins plugin link :)
2016-01-27 09:34:29 -08:00
Bryan Boreham
caad94d7bb Improve wording about re-assigning IP addresses
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2016-01-27 17:11:12 +00:00
Arnaud Porterie
777ee34b07 Factorize sleeping containers
Add `runSleepingContainer` and `runSleepingContainerInImage` helper
functions to factor out the way to run system-specific idle containers.

Define a sleeping container as command `top` in image `busybox` for
Unix and as command `sleep 60` in image `busybox` for Windows. Provide a
single point of code to update those.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-01-27 08:48:08 -08:00
Brian Goff
ae14e6cc0a Merge pull request #19071 from icecrime/incremental_builds
Enable incremental builds
2016-01-27 11:21:01 -05:00
Vincent Demeester
8544913754 Fix TOOLS.md jenkins plugin link :)
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-27 16:33:20 +01:00
Brian Goff
c17d4b4ebb Merge pull request #19779 from sillyousu/19777-fix-volume-store-dereference-deadlock
fix dead lock in volume store dereference
2016-01-27 09:28:11 -05:00
Antonio Murdaca
c1b168664f Merge pull request #19764 from Microsoft/jjh/testinspectapi
Windows CI: PortTestInspectApi*
2016-01-27 14:08:28 +01:00
Ivan Babrou
5a3351883b Add tag support to journald logging driver, closes #19556
Signed-off-by: Ivan Babrou <ibobrik@gmail.com>
2016-01-27 10:52:19 +00:00
Vincent Demeester
38424b73d9 Merge pull request #19778 from albers/completion-volume-ls-dangling
Improve bash completion for `docker volume ls -f dangling`
2016-01-27 09:54:24 +01:00
Pei Su
f5310652d3 fix dead lock in volume store dereference
Signed-off-by: Pei Su <sillyousu@gmail.com>
2016-01-27 16:34:10 +08:00
Harald Albers
a381efcf39 Improve bash completion for docker volume ls -f dangling
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-27 09:32:14 +01:00
Vincent Demeester
805a107df4 Merge pull request #19736 from albers/completion-network-rm-custom
Let bash completion for `docker network rm` only complete custom networks
2016-01-27 09:07:47 +01:00
Lei Jitang
6716a3a167 Correct the info message when stop container
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-27 03:06:45 -05:00
Sebastiaan van Stijn
ab8da94531 Merge pull request #19759 from thaJeztah/docs-for-19688
Fix docs for tmpfs (pr 19688)
2016-01-27 00:05:38 -08:00
Sebastiaan van Stijn
386392f799 Fix docs for tmpfs (pr 19688)
Underlying files are no longer copied to the tmpfs.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-26 23:52:14 -08:00
Lei Jitang
0feeab2e43 daemon: don't prepare mountpoint for restart container
The restart container has already prepared the mountpoint, there is
no need to do that again. This can speed up the daemon start if
the restart container has a volume and the volume driver is not
available.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-27 02:43:40 -05:00
Sebastiaan van Stijn
857093fbca Merge pull request #19754 from jfrazelle/revised-release-docs
updates to release checklist
2016-01-26 23:32:18 -08:00
Sebastiaan van Stijn
872b927c76 Merge pull request #19753 from jfrazelle/repo-docs
add docs for package repo maintenance
2016-01-26 23:30:21 -08:00
Jussi Nummelin
3cf82ff1ab Added flag to ignore fluentd connect error on container start
Signed-off-by: Jussi Nummelin <jussi.nummelin@gmail.com>

Changed buffer size to 1M and removed unnecessary fmt call

Signed-off-by: Jussi Nummelin <jussi.nummelin@gmail.com>

Updated docs for the new fluentd opts

Signed-off-by: Jussi Nummelin <jussi.nummelin@gmail.com>
2016-01-27 09:05:44 +02:00
David Calavera
63f8429bf0 Merge pull request #19717 from coolljt0725/fix_load
Daemon: do GetRWLayer after checking if container support the current graph driver
2016-01-26 21:55:32 -08:00
Arnaud Porterie
1445e4db32 Enable incremental builds
Remove the `-a` build flag and introduce `-i` in order to reuse
previously compiled dependencies.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-01-26 21:24:44 -08:00
Daehyeok Mun
b78c736356 Remove output file when save/export fail
Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2016-01-26 22:12:31 -07:00
Arnaud Porterie
d789618ea4 Merge pull request #19765 from Microsoft/jjh/ibrokewindowsci
Darn it, I broke CI due to multiple declarations
2016-01-26 21:05:34 -08:00
John Howard
3c61f00616 Windows CI: PortTestInspectApi*
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-26 20:23:40 -08:00
John Howard
916b9db71d Windows CI: Darn it, I broke due to multiple declarations
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-26 19:58:53 -08:00
Lei Jitang
0ae94303b8 Merge pull request #19722 from WeiZhang555/exec-restarting
Forbid exec a restarting container
2016-01-27 11:43:43 +08:00
Sebastiaan van Stijn
3cf4884787 Merge pull request #19612 from Microsoft/jjh/apicontainerstest
Windows CI: Fixup docker_api_containers_test.go
2016-01-26 19:14:43 -08:00
Arnaud Porterie
603c04a789 Merge pull request #19744 from Microsoft/jjh/testhistory
Windows CI: Enable TestHistory* cli tests
2016-01-26 19:08:33 -08:00
Arnaud Porterie
864cca2287 Merge pull request #19605 from Microsoft/jjh/docker_api_images_test
Windows CI: Porting for docker_api_images_test.go
2016-01-26 19:04:25 -08:00
Arnaud Porterie
70c5e96cb8 Merge pull request #19604 from Microsoft/jjh/testrename
Windows CI: Fix TestRename*
2016-01-26 19:03:31 -08:00
Arnaud Porterie
51d4d8eff2 Merge pull request #19603 from Microsoft/jjh/testps
Windows CI: Address simple failures in TestPS*
2016-01-26 19:01:17 -08:00
Doug Davis
9b82174f93 Merge pull request #19742 from Microsoft/jjh/testrmi
Windows CI: Port TestRmi tests
2016-01-26 21:46:35 -05:00
Zhang Wei
1d2208fed9 Forbid exec a restarting container
Currently if we exec a restarting container, client will fail silently,
and daemon will print error that container can't be found which is not a
very meaningful prompt to user.

This commit will stop user from exec a restarting container and gives
more explicit error message.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-27 10:05:06 +08:00
cyli
0617521ba2 Update integration tests with new error messages, and to use different repos per test.
This way we won't encounter any problems with one test using cached data from a different
test.

Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-01-26 18:02:00 -08:00
cyli
8fd2c8791d Re-vendor notary, as well as change jfrazelle/go to docker/go.
Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-01-26 18:02:00 -08:00
Lei Jitang
899f1b1870 Daemon: do GetRWLayer after checking if container use the current graph driver
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-26 20:20:30 -05:00
Tibor Vass
7992b353c0 Merge pull request #19737 from calavera/fix_reload_docs
Remove cluster storage advertise from reload.
2016-01-26 17:04:46 -08:00
Arnaud Porterie
3a70ab3a2c Merge pull request #19688 from crosbymichael/tmpfs-tar
Remove tar copy-up for tmpfs mounts
2016-01-26 17:03:07 -08:00
Tibor Vass
3eaf878999 Merge pull request #19751 from crosbymichael/update-libcontainer-jan26
Update libcontainer to 3d8a20bb772defc28c355534d83
2016-01-26 16:57:49 -08:00
Jessica Frazelle
6807582cdc updates to release checklist
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-26 16:20:23 -08:00
Sebastiaan van Stijn
eb729a0cb0 Merge pull request #19621 from moxiegirl/new-navigation
New navigation for 1.10
2016-01-26 16:06:29 -08:00
Jessica Frazelle
d0cb7e599e add docs for package repo maintenance
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-26 15:59:08 -08:00
Mary Anthony
e310d070f4 Creating Engine specific menu
Fixing the links
Updating with Seb's comments
Adding weight
Fixing the engine aliases
Updating after Arun pushed
Removing empty file

Signed-off-by: Mary Anthony <mary@docker.com>
2016-01-26 15:58:53 -08:00
Sebastiaan van Stijn
e23ea05e11 Merge pull request #19743 from aaronlehmann/http-idle-timeouts
Set idle timeouts for HTTP reads and writes in communications with a registry
2016-01-26 15:39:52 -08:00
Sebastiaan van Stijn
4bcb6c7fc8 Merge pull request #19150 from mikedougherty/cs-108-rpm-release
[CS-108] Adjust version string processing for RPM build
2016-01-26 15:22:14 -08:00
David Calavera
fa163f5619 Remove cluster storage advertise from reload.
Because libnetwork won't really send container information to the new
storage anyways.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-26 18:19:30 -05:00
Michael Crosby
7b5896702b Update libcontainer to 3d8a20bb772defc28c355534d83
Fixes #14203

This bump fixes the issue of having the container's pipes connection
reset by peer because of using the json.Encoder and having a \n added to
the output.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-01-26 15:00:07 -08:00
Jess Frazelle
03864c1db0 Merge pull request #19730 from jfrazelle/update-tools-urls
update tools urls and remove things we dont use
2016-01-26 14:36:28 -08:00
Tibor Vass
0e4eda1691 Merge pull request #19738 from mrjana/mh
Vendoring libnetwork v0.6.0-rc5
2016-01-26 14:14:39 -08:00
Brian Goff
146e49b039 Merge pull request #19671 from calavera/volume-dangling
Make volume dangling filter return only used volumes with `dangling=false`.
2016-01-26 17:01:20 -05:00
Michael Crosby
ae8ec4860e Move tar copy-up for tmpfs mounts
We cannot rely on the tar command for this type of operation because tar
versions, flags, and functionality can very from distro to distro.
Since this is in the container execution path it is not safe to have
this as a dependency from dockers POV where the user cannot change the
fact that docker is adding these pre and post mount commands.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-01-26 14:00:39 -08:00
Brian Goff
b775efc9bc Merge pull request #19704 from cpuguy83/speedup_build_cache
Use imageStore.Children instead of whole the Map
2016-01-26 16:59:55 -05:00
Antonio Murdaca
0b248e88ff Merge pull request #19734 from Microsoft/jjh/testtag
Windows CI: Port TestTag* cli tests
2016-01-26 22:56:36 +01:00
Sebastiaan van Stijn
d648a100c9 Merge pull request #19745 from cpuguy83/19625_docs_for_mount_prop_with_systemd
Add note about mount propagation on systemd
2016-01-26 13:51:22 -08:00
Brian Goff
7d7b2044b7 Add note about mount propagation on systemd
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-26 16:48:45 -05:00
Tibor Vass
4adb0fb310 Merge pull request #19723 from bboreham/not-preferred
Stop referring to requested IP address as "preferred"
2016-01-26 13:46:09 -08:00
Arnaud Porterie
fd5013e4fa Merge pull request #19569 from aidanhs/aphs-fix-options-api
Permit OPTIONS request against any url, fixes #19398
2016-01-26 13:39:51 -08:00
Tibor Vass
1584e63b9e Merge pull request #19731 from albers/completion-daemon--userns-remap
bash completion for `docker daemon --userns-remap`
2016-01-26 13:14:56 -08:00
John Howard
15c32f39a9 Windows CI: Enable TestHistory* cli tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-26 12:42:09 -08:00
Aaron Lehmann
84b2162c1a Set idle timeouts for HTTP reads and writes in communications with the registry
Otherwise, some operations can get stuck indefinitely when the remote
side is unresponsive.

Fixes #12823

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-26 12:40:39 -08:00
John Howard
94e5fab5ed Windows CI: Port TestRmi tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-26 12:22:37 -08:00
Darren Stahl
563a4d1b9f First batch of Windows-Windows TestBuild CI enabling
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-01-26 12:15:13 -08:00
Sebastiaan van Stijn
589c8a879f Update notary to 1.10-3 in all Dockerfiles
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-26 11:51:22 -08:00
Mike Dougherty
0410023367 Adjust version string processing for RPM build
This will only trim off the last '-' separated token to be checked for
RC status. This allows including a 'cs#' token in the version string.

Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
2016-01-26 11:49:59 -08:00
Jana Radhakrishnan
730a6d2fc2 Vendoring libnetwork v0.6.0-rc5
- Cleanup stale overlay sandboxes

Fixes #19694

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-01-26 11:44:43 -08:00
David Calavera
9e2b63e0ae Fix bash completion for docker volume ls --dangling=false.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-26 14:29:37 -05:00
Brian Goff
1350e8b7b8 Use imageStore.Children instead of whole the Map
daemon cache was getting the whole image map and then iterating through
it to find children. This information is already stored in the image
store.

Prior to this change building the docker repo with a full cache took 30
seconds.
After it takes between 15 seconds or less (As low as 9 seconds).
This is an improvement on docker 1.9.1 which hovered around 17 seconds.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-26 14:12:56 -05:00
Harald Albers
0e1bfdd43e Let bash completion for docker network rm only complete custom networks
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-26 10:57:38 -08:00
John Howard
1723c6477f Windows CI: Port TestTag* cli tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-26 10:41:31 -08:00
Jess Frazelle
b5420be597 Merge pull request #19013 from hqhq/add_support_docker_aarch64
Add support for build and test docker on arm64
2016-01-26 10:33:48 -08:00
Harald Albers
62f366490b bash completion for docker daemon --userns-remap
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-26 10:24:47 -08:00
Jessica Frazelle
8ea5051e78 update tools urls and remove things we dont use
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-26 10:15:47 -08:00
Aaron Lehmann
fde2329eaa Avoid outputting last progress item twice
A watcher would output the current progress item when it was detached,
in case it missed that item earlier, which would leave the user seeing
some intermediate step of the operation. This commit changes it to only
output it on detach if it didn't already output the same item.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-26 10:03:28 -08:00
Jess Frazelle
c56e309d05 Merge pull request #19712 from runcom/test-requires-apparmor
integration-cli: require Apparmor
2016-01-26 09:18:29 -08:00
Arnaud Porterie
269a6d7d36 Merge pull request #19705 from mavenugo/18222
Vendor libnetwork v0.6.0-rc4 & corresponding changes in engine for port-map sandobx handling.
2016-01-26 09:16:57 -08:00
Arnaud Porterie
7a97e938e2 Merge pull request #19490 from cyphar/remove-dockerinit
Remove dockerinit once and for all
2016-01-26 08:27:35 -08:00
Bryan Boreham
7126ecd0ad Stop referring to requested IP address as "preferred",
since it is an error if that address is unavailable.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2016-01-26 15:13:26 +00:00
Doug Davis
fc8e344297 Merge pull request #19715 from coolljt0725/fix_test_daemon
Test utils: fix daemon start utils
2016-01-26 10:08:50 -05:00
Doug Davis
e5b5c0ebe8 Merge pull request #19713 from WeiZhang555/opt-TestEventsContainerFailStartDie
Optimize `TestEventsContainerFailStartDie`
2016-01-26 09:32:52 -05:00
Aleksa Sarai
71c63aa72e vendor: update engine-api
This removes all references to InitPath and InitSha1, as well as pulling
in a few other minor engine-api fixes.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-01-27 00:34:31 +11:00
Lei Jitang
e88258ca2e Test utils: fix daemon start utils
User call `Start` could with args, and the args could
contains `--storage-driver`, but in `Start`, it will add
`--storage-driver` even though user has specified `--storage-driver`
in args.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-26 08:31:50 -05:00
Aleksa Sarai
e72192be40 *: remove documentation references to dockerinit
While the documentation is very patchy on dockerinit, remove all
references in packaging documentation to the now purged dockerinit.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-01-26 23:47:02 +11:00
Aleksa Sarai
4357ed4a73 *: purge dockerinit from source code
dockerinit has been around for a very long time. It was originally used
as a way for us to do configuration for LXC containers once the
container had started. LXC is no longer supported, and /.dockerinit has
been dead code for quite a while. This removes all code and references
in code to dockerinit.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-01-26 23:47:02 +11:00
Madhu Venugopal
e38463b277 Move port-mapping ownership closer to Sandbox (from Endpoint)
https://github.com/docker/libnetwork/pull/810 provides the more complete
solution for moving the Port-mapping ownership away from endpoint and
into Sandbox. But, this PR makes the best use of existing libnetwork
design and get a step closer to the gaol.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-26 03:59:03 -08:00
Zhang Wei
4f7dda3fb2 Optimize TestEventsContainerFailStartDie
Optimize performance of `TestEventsContainerFailStartDie`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-26 19:23:18 +08:00
Antonio Murdaca
7ac8c77877 integration-cli: require Apparmor
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-26 11:57:14 +01:00
Vincent Demeester
141a301dca Merge pull request #19154 from hqhq/hq_verify_cgroupparent
Verify cgroup-parent name for systemd cgroup
2016-01-26 11:44:31 +01:00
Vincent Demeester
613e91f36f Merge pull request #19703 from mountkin/speedup-TestEventsAttach
optimize DockerSuite.TestEventsAttach
2016-01-26 11:41:31 +01:00
Antonio Murdaca
1f2917602e Merge pull request #19103 from vdemeester/events-with-attributes
Add the possibility to log event with specific attributes
2016-01-26 11:01:23 +01:00
Vincent Demeester
cca1e5b2eb Merge pull request #19706 from pwnall/patch-2
Add missing words in selectadriver.md
2016-01-26 10:57:17 +01:00
Vincent Demeester
4158b671f3 Merge pull request #19701 from aaronlehmann/remove-downloads-on-error
Remove temporary layer download file on error
2016-01-26 10:55:43 +01:00
Wen Cheng Ma
07d2c31810 Optimize slow bottleneck tests of TestDaemonCorruptedLogDriverAddress
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-26 14:53:10 +08:00
Tibor Vass
07e2dedecb Merge pull request #19057 from dnephin/remove_version_from_registry_pkg
Remove dockerversion from registry package
2016-01-25 22:45:06 -08:00
Arnaud Porterie
c5380f9118 Merge pull request #19468 from jfrazelle/refactor-sec-profiles-into-own-pkg
Refactor sec profiles their own packages
2016-01-25 22:18:56 -08:00
Victor Costan
e5e90347d2 Add missing words in selectadriver.md
Signed-off-by: Victor Costan <costan@gmail.com>
2016-01-26 01:06:59 -05:00
Madhu Venugopal
7029d9e6ad Vendor libnetwork v0.6.0-rc4
- Add Endpoints() API to Sandbox interface
- Fixes #19677

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-25 19:51:21 -08:00
Sebastiaan van Stijn
5b0183e91c Merge pull request #19683 from calavera/network_config_file
Allow network configuration via daemon config file.
2016-01-25 18:59:20 -08:00
Shijiang Wei
77a0f77e7f optimize DockerSuite.TestEventsAttach
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-01-26 10:45:45 +08:00
Aaron Lehmann
5a363ce60b Remove temporary layer download file on error
Currently, the temporary file storing downloaded layer data is only
removed after a successful download or a digest verification error. A
transport-level error does not cause it to be removed. This is a
regression from 1.9 that could cause disk usage to grow until the Docker
daemon is restarted.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-25 18:20:18 -08:00
Tibor Vass
58c2488d07 Merge pull request #19568 from cpuguy83/17907_fix_rmv
On container rm, don't remove named mountpoints
2016-01-25 18:13:57 -08:00
Tibor Vass
ced2d37901 Merge pull request #19687 from tianon/debian-wheezy
Change the way we install from backports in the deb builder (to force deps too)
2016-01-25 17:13:49 -08:00
Tibor Vass
2cb8fdd327 Merge pull request #19673 from aboch/epcs
Save endpoint config only if endpoint creation succeeds
2016-01-25 16:50:47 -08:00
David Calavera
d4ccd948e9 Merge pull request #19676 from cpuguy83/19672_fix_force_rm
Fix removing mountpoints on container rm fail
2016-01-25 16:44:25 -08:00
Sebastiaan van Stijn
8d096114f2 Merge pull request #19680 from mavenugo/rc2-vin
Vendor libnetwork v0.6.0-rc3
2016-01-25 16:07:56 -08:00
David Calavera
c539be8833 Allow network configuration via daemon config file.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-25 18:54:56 -05:00
Sebastiaan van Stijn
2b97c96742 Merge pull request #19074 from arun-gupta/couchbase
adding docs for Dockerizing Couchbase service
2016-01-25 15:46:56 -08:00
Sebastiaan van Stijn
31adcc96d0 Merge pull request #19682 from aaronlehmann/transfer-release-race
Fix watching a released transfer
2016-01-25 15:37:47 -08:00
Tibor Vass
f7abff4f81 Merge pull request #19560 from aboch/mn
Reject multiple networks on container creation request
2016-01-25 14:57:51 -08:00
Tianon Gravi
722fac7a73 Change the way we install from backports in the deb builder (to force deps too)
Also, add "libsystemd-journal-dev" to the explicit list (which is what prompted the change in how we install).

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-01-25 14:49:05 -08:00
Antonio Murdaca
0f0c35960f Merge pull request #19674 from tonistiigi/19652-fix-create-error-message
Fix error message in container creation
2016-01-25 23:47:57 +01:00
David Calavera
cf44f17258 Merge pull request #19619 from WeiZhang555/test-bottleneck-oomtrue
Optimize TestEventsOOMDisableTrue
2016-01-25 14:24:46 -08:00
Sebastiaan van Stijn
156e2f0e5c Merge pull request #19555 from hypriot/update-registry-on-dockerfile-armhf
Update registry version in Dockerfile.armhf
2016-01-25 14:14:00 -08:00
Tibor Vass
268a20af95 Merge pull request #19528 from cpuguy83/19475_abck_compat_for_vol_drivers
Add back compat for volume drivers `Get` and `Ls`
2016-01-25 13:53:51 -08:00
Alessandro Boch
733245b2e7 Save endpoint config only if endpoint creation succeeds
- Currently it is being save upfront...

Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-25 13:43:32 -08:00
Aaron Lehmann
3e2b50ccaa Fix watching a released transfer
Things could go wrong if Watch was called after the last existing
watcher was released. The call to Watch would succeed even though it was
not really adding a watcher, and the corresponding call to Release would
close hasWatchers a second time.

The fix for this is twofold:

1. We allow transfers to gain new watchers after the watcher count has
touched zero. This means that the channel returned by Released should
not be closed until all watchers have been released AND the transfer is
no longer tracked by the transfer manager, meaning it won't be possible
for additional calls to Watch to race with closing the channel returned
by Released.

The Transfer interface has a new method called Close so the transfer can
know when the transfer manager no longer references it.

Remove the Cancel method. It's not used and should not be exported.

2. Even though (1) makes it possible to add watchers after all the
previous watchers have been released, we want to avoid doing this in
practice. A transfer that has had all its watchers released is in the
process of being cancelled, and attaching to one of these will never be
the correct behavior. Add a check if a watcher is attaching to a
cancelled transfer.  In this case, wait for the transfer to be removed
from the map and try again. This will ensure correct behavior when a
watcher tries to attach during the race window.

Either (1) or (2) should be sufficient to fix the race involved here,
but the combination is the most correct approach. (1) fixes the
low-level plumbing to be resilient to the race condition, and (2) avoids
using it in a racy way.

Fixes #19606

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-25 13:28:02 -08:00
David Calavera
1431b623a4 Make volume dangling filter return only used volumes with dangling=false.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-25 16:26:51 -05:00
Madhu Venugopal
6ac9a2f410 Vendor libnetwork v0.6.0-rc3
- Fixes docker/docker#19576
- Fixed embedded DNS to listen in TCP as well
- Fixed a race-condition in IPAM to choose non-overlapping subnet for concurrent requests

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-25 13:22:47 -08:00
Brian Goff
dd7d1c8a02 On container rm, don't remove named mountpoints
This makes it so when calling `docker run --rm`, or `docker rm -v`, only
volumes specified without a name, e.g. `docker run -v /foo` instead of
`docker run -v awesome:/foo` are removed.

Note that all volumes are named, some are named by the user, some get a
generated name. This is specifically about how the volume was specified
on `run`, assuming that if the user specified it with a name they expect
it to persist after the container is cleaned up.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-25 15:51:28 -05:00
Alessandro Boch
cfa515fd9d Reject multiple networks on container creation
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-25 12:50:01 -08:00
Brian Goff
0eed34755e Fix removing mountpoints on container rm fail
Ensure that the the container's mountpoints are cleaned up if the
container is force removed.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-25 15:49:56 -05:00
Tonis Tiigi
8a68315c38 Fix error message in container creation
Error message was different if image was specified with the full ID.

Fixes #19652

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-25 11:45:20 -08:00
David Calavera
15cc67b73d Merge pull request #19615 from runcom/add-registry-with-auth-testsuite
integration-cli: add suite for testing registries with auth
2016-01-25 11:12:16 -08:00
Brian Goff
997e61add9 Merge pull request #19658 from wenchma/19425-daemon_ipv6
Optimize slow bottleneck tests of TestDaemonIPv6FixedCIDR
2016-01-25 14:04:54 -05:00
David Calavera
7e1b0ea5d7 Merge pull request #19629 from thaJeztah/fix-api-order
Fix remove API order in menu
2016-01-25 11:02:24 -08:00
Brian Goff
d02ed72e30 Merge pull request #19666 from jfrazelle/19620-fix-url
add trailing slash
2016-01-25 12:12:47 -05:00
Brian Goff
48d7cbea55 Merge pull request #19663 from mountkin/speedup-TestDaemonRestartWithContainerRunning
speed up DockerDaemonSuite.TestDaemonRestartWithContainerRunning
2016-01-25 12:08:24 -05:00
Jessica Frazelle
0f379fab31 add trailing slash
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-25 09:01:46 -08:00
Zhang Wei
6bf5b3db9a Optimize slow integration test
Optimize `TestEventsOOMDisableTrue` performance

It's part of #19425 issue.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-26 00:07:20 +08:00
Shijiang Wei
c983996e0b speed up DockerDaemonSuite.TestDaemonRestartWithContainerRunning
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2016-01-25 23:45:13 +08:00
Wen Cheng Ma
73849a5c82 Optimize slow bottleneck tests of TestDaemonIPv6FixedCIDR and TestDaemonIPv6FixedCIDRAndMac
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-25 23:43:49 +08:00
Brian Goff
9211fc36a9 Merge pull request #19655 from sdurrheimer/zsh-completion-cp-follow-link
Add zsh completion for 'docker cp -L --follow-link'
2016-01-25 09:28:26 -05:00
Sebastiaan van Stijn
5719dca1d7 Merge pull request #19657 from sdurrheimer/zsh-completion-new-syslog-over-tls-options
Add zsh completion for new 'docker daemon --log-opt syslog-tls-ca-cer…
2016-01-25 01:21:57 -08:00
Sebastiaan van Stijn
9609cb7344 Merge pull request #19656 from sdurrheimer/zsh-completion-daemon-cluster-store-opt
Add zsh completion for new 'docker daemon --cluster-store-opt discove…
2016-01-25 01:21:23 -08:00
Steve Durrheimer
b3cd453b84 Add zsh completion for new 'docker daemon --log-opt syslog-tls-ca-cert syslog-tls-cert syslog-tls-key syslog-tls-skip-verify' options
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-25 08:21:15 +01:00
Steve Durrheimer
995d1d09ce Add zsh completion for new 'docker daemon --cluster-store-opt discovery.heartbeat discovery.ttl kv.path' options
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-25 08:14:46 +01:00
Steve Durrheimer
490ea6961c Add zsh completion for 'docker cp -L --follow-link'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-25 08:09:30 +01:00
Brian Goff
714587196b Merge pull request #19643 from albers/completion-nospace
fix minor bash completion issue on OSX (compopt)
2016-01-24 20:58:33 -05:00
Vincent Demeester
96009914b0 Merge pull request #19639 from Microsoft/jjh/incontainerlogic
Windows CI: In container logic flaw
2016-01-24 22:19:23 +01:00
Vincent Demeester
84e4fb8b0a Merge pull request #19641 from albers/completion-syslog-tls
bash completion for syslog over TLS log driver
2016-01-24 22:14:54 +01:00
Antonio Murdaca
0764706dcc Merge pull request #19636 from albers/completion-daemon--cluster-store-opt
bash completion for new `--cluster-store-opt` values
2016-01-24 22:12:37 +01:00
Vincent Demeester
460f491457 Merge pull request #19642 from albers/completion-tag-f
Remove completion for `docker tag -f`
2016-01-24 22:10:23 +01:00
Antonio Murdaca
a3cfdb5a31 Merge pull request #19633 from albers/completion-ps-filter-dead
bash completion for `docker ps --filter status=dead`
2016-01-24 22:04:56 +01:00
Antonio Murdaca
672ca81869 Merge pull request #19632 from albers/completion-cp--follow-link
bash completion for `docker cp --follow-link`
2016-01-24 22:04:26 +01:00
Antonio Murdaca
65530f8014 Merge pull request #19634 from albers/completion-images--filter-dangling
bash completion for `docker images --filter dangling=false`
2016-01-24 22:04:00 +01:00
Harald Albers
6b28e1bbe2 fix minor bash completion issue on OSX (compopt)
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-24 10:28:36 -08:00
Harald Albers
1bd5424c38 remove zsh completion for docker tag -f
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-24 10:11:18 -08:00
Harald Albers
59754c4bd8 remove bash completion for docker tag -f
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-24 10:07:04 -08:00
Harald Albers
6723c8aa26 bash completion for syslog over TLS log driver
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-24 09:34:30 -08:00
John Howard
5601fc8507 Windows CI: In container logic flaw
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-24 09:22:50 -08:00
Harald Albers
17eb18899e bash completion for --cluster-store-opt kv.path discovery.{heartbeat,ttl}
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-24 07:24:12 -08:00
Harald Albers
7f345f2ec4 bash completion for docker images -f dangling=false
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-24 06:36:04 -08:00
Harald Albers
0f654bb5eb bash completion for docker ps --filter status=dead
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-24 05:57:57 -08:00
Harald Albers
7b3058b864 bash completion for docker cp --follow-link
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-24 05:39:52 -08:00
Brian Goff
7aafa76662 Merge pull request #19624 from WeiZhang555/test-case-name-consistent
Make test case name consistent
2016-01-24 07:16:11 -05:00
Vincent Demeester
42a0fd7e92 Merge pull request #19627 from pandrew/fix_warning_on_build
Fix warning
2016-01-24 12:49:47 +01:00
Sebastiaan van Stijn
42f6e8d40d Fix remove API order in menu
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-24 02:48:47 -08:00
Paul Liljenberg
0c7201ee73 Fixes #19614
Signed-off-by: Paul Liljenberg <liljenberg.paul@gmail.com>
2016-01-24 10:28:18 +01:00
Sebastiaan van Stijn
037d159981 Merge pull request #19622 from r4j4h/quick-doc-fix
Correcting `overlay` -> `bridge` driver in run.md
2016-01-24 00:42:36 -08:00
Jasmine Hegman
ae5fce9fe0 Correcting overlay -> bridge driver in run.md
Correcting `overlay` -> `bridge` driver in run.md to match the preceding paragraph.

Signed-off-by: Jasmine Hegman <jasmine@jhegman.com>
2016-01-24 01:34:04 -07:00
Zhang Wei
e151ad936a Make test case name consistent
Replace `Tty` with `TTY` in all test case names so that we can run
a bundle of `TTY` related test cases with TESTFLAGS like
`-check.f TestExecTTY*`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-24 16:32:52 +08:00
Sebastiaan van Stijn
a1c6642c45 Merge pull request #19610 from companycy/patch-1
docs: image layers' path in aufs-driver.md
2016-01-23 23:37:03 -08:00
Andy Goldstein
7a948f6a96 Move resize after attaching
Resize by +1 when attaching to force redrawing.

Start monitoring window size after the attach begins instead of before. This way, you see the output
from the container without having to manually resize or hit enter. This makes attach consistent with
run and exec.

Signed-off-by: Andy Goldstein <agoldste@redhat.com>
2016-01-24 02:24:00 -05:00
Sebastiaan van Stijn
717ced8dd7 Merge pull request #19602 from Microsoft/jjh/testrunexitonstdinclose
Windows CI: Fix TestRunExitOnStdinClose flakiness
2016-01-23 18:53:28 -08:00
companycy
ac1eac21c9 Update aufs-driver.md
fix typo in file path for image layers

Signed-off-by: bjcheny <companycy@gmail.com>
2016-01-24 10:03:29 +08:00
John Howard
75d107451a Windows CI: Address simple failures in TestPS*
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-23 16:33:45 -08:00
Antonio Murdaca
011b4f01f4 integration-cli: add suite for testing registries with auth
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-24 01:02:49 +01:00
John Howard
2b0a742237 Windows CI: Fix api_containers_test.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-23 14:40:25 -08:00
Stefan Scherer
11a51649cf Update registry version in Dockerfile.armhf
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2016-01-23 18:46:46 +01:00
John Howard
f21fb2162e Windows CI: Fix TestRename*
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-23 09:25:10 -08:00
John Howard
80b0570671 Windows CI: Porting for docker_api_images_test.go
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-22 21:13:38 -08:00
Alexander Morozov
7be8f72644 Merge pull request #19600 from aaronlehmann/buildenvusage2
Slight TestBuildEnvUsage2 speedup
2016-01-22 20:38:45 -08:00
Brian Goff
f6c20d9b22 Add back compat for volume drivers Get and Ls
Use a back-compat struct to handle listing volumes for volumes we know
about (because, presumably, they are being used by a container) for
volume drivers which don't yet support `List`.

Adds a fall-back for the volume driver `Get` call, which will use
`Create` when the driver returns a `404` for `Get`. The old behavior was
to always use `Create` to get a volume reference.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-22 22:48:17 -05:00
Sebastiaan van Stijn
bf85a49509 Merge pull request #19592 from duglin/Issue15777
Add some helper text for magical ADD
2016-01-22 18:27:44 -08:00
John Howard
4bfc5d4606 Windows CI: Fix TestRunExitOnStdinClose
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-22 18:27:15 -08:00
Phil Estes
67d86d10d8 Merge pull request #19216 from scaleoutsean/master
Add GPFS filesystem IDs
2016-01-22 21:27:03 -05:00
Qiang Huang
5ce5a8e966 Verify cgroup-parent name for systemd cgroup
Fixes: #17126

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-01-22 21:17:23 -05:00
Sebastiaan van Stijn
b3af1d5242 Merge pull request #19598 from tianon/pkg-config
Add pkg-config to our Debian build environment
2016-01-22 17:33:43 -08:00
Sebastiaan van Stijn
2d30720c1e Merge pull request #19596 from Djelibeybi/fix-oracle-install-docs
Updated Oracle Linux install documentation
2016-01-22 17:27:42 -08:00
Sebastiaan van Stijn
bf28c219c5 Merge pull request #19511 from moxiegirl/19473-fix-certificate
Fixing missing certs article; consolidating security material
2016-01-22 17:20:36 -08:00
Avi Miller
081bffc1e1 Updated Oracle Linux install documentation to be more accurate.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2016-01-23 12:18:41 +11:00
Aaron Lehmann
74fafa5dd2 Slight TestBuildEnvUsage2 speedup
TestBuildEnvUsage2 was flagged in https://github.com/docker/docker/issues/19425
as one of the slowest integration tests. It's slow because it has some
comprehensive builder test cases that end up creating a lot of layers.
Even with a busybox base image, this can be expensive. It's not possible
to build "FROM scratch" because the test cases need the shell to ensure
environment variables are set correctly.

Some of the ENV and RUN statements can be combined. This causes fewer
layers to get created. Doing this produces a marginal improvement in the
runtime.

Before:

    PASS: docker_cli_build_test.go:3956: DockerSuite.TestBuildEnvUsage2 43.619s

After:

    PASS: docker_cli_build_test.go:3956: DockerSuite.TestBuildEnvUsage2 31.286s

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-22 17:13:50 -08:00
Sebastiaan van Stijn
6d1455e74b Merge pull request #19579 from cyphar/hotfix-vendor-libcontainer
Hotfix vendor libcontainer
2016-01-22 16:46:04 -08:00
Mary Anthony
4c76c665b7 Fixing missing certs article; consolidating security material
Entering comments from reviewers
Updating with Derek's comments
Fixing bad links reported by build

Signed-off-by: Mary Anthony <mary@docker.com>
2016-01-22 16:44:18 -08:00
Brian Goff
feca36b379 Merge pull request #19519 from calavera/fix_event_channel_closing_race
Fix channel closing race in event tests.
2016-01-22 19:43:28 -05:00
Jess Frazelle
789e887c73 Merge pull request #19599 from nalind/master-deb-pkg-config
Add pkg-config to our RPM build environment
2016-01-22 16:39:28 -08:00
Aidan Hobson Sayers
ada7920479 Permit OPTIONS request against any url, fixes #19398
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-01-23 00:31:08 +00:00
David Calavera
422827fa92 Merge pull request #19527 from aboch/epc
Move Unsupp Network & IP check to the new updateNetworkConfig() func
2016-01-22 15:54:21 -08:00
Nalin Dahyabhai
7d4f52ec6b Add pkg-config to our RPM build environment
While hack/make.sh checks for systemd headers using pkg-config, we
forgot to ensure that they were there in the images that we use for
building binaries for RPM-based distributions.  Add the right packages
to the generate.sh that we use for them, and update the copies of the
generated files that we carry in the source tree.

Notes: Fedora, CentOS, and Oracle Linux put the pkg-config command in
the "pkgconfig" package, while OpenSUSE calls the package "pkg-config".
The systemd-devel package, like systemd, is not in Oracle Linux 6.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2016-01-22 18:46:07 -05:00
Tianon Gravi
9ac671f79e Add pkg-config to our Debian build environment
This is used in `hack/make.sh` for detecting various dependencies such as `libsystemd-journal` -- without this, our packages don't support pulling logs back out of journald. 😢

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-01-22 15:22:04 -08:00
Antonio Murdaca
504a8ad295 Merge pull request #19567 from Microsoft/jjh/testpsnotshowportsofstoppedcontainer
Windows: TestPsNotShowPortsOfStoppedContainer linux only
2016-01-22 21:53:31 +01:00
Brian Goff
455a505749 Merge pull request #19190 from srust/volume_driver_parity_again
Allow external volume drivers to host anonymous volumes again
2016-01-22 15:53:06 -05:00
Phil Estes
34a83f9f2c Merge pull request #19517 from calavera/validate_config_keys
Verify that the configuration keys in the file are valid.
2016-01-22 15:01:29 -05:00
Tibor Vass
2731dbc797 Merge pull request #19509 from BrianBland/master
Fixes layer MediaTypes in manifests created from a cross-repository push
2016-01-22 14:27:47 -05:00
David Calavera
27b060492c Fix channel closing race in event tests.
Divide event matching into two functions, a matcher and
a processor. That way, the error handling doesn't call
the channel closing logic at all.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-22 13:31:46 -05:00
David Calavera
5e80ac0dd1 Make TLSOptions and LogConfig embedded structs.
That way the configuration file becomes flag, without extra keys.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-22 13:20:17 -05:00
Doug Davis
8d94a85d62 Add some helper text for magical ADD
Closes: #15777

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-01-22 10:13:13 -08:00
David Calavera
ae8f7c69e3 Merge pull request #19549 from cpuguy83/bump_plugin_api_version
Bump plugin API version
2016-01-22 09:33:29 -08:00
Jess Frazelle
21ec6d3789 Merge pull request #19146 from mikedougherty/cs-105-download-script
Create a bundle for the install script to support other domains
2016-01-22 09:25:24 -08:00
Tibor Vass
a9fc4939df Merge pull request #19573 from sanimej/libn
Vendor in libnetwork v0.6.0-rc2
2016-01-22 12:07:40 -05:00
Jess Frazelle
05b2f342fd Merge pull request #19588 from tianon/docker.default-systemd
Add a note to /etc/default/docker noting that it does not apply to systemd
2016-01-22 08:52:02 -08:00
Vincent Demeester
73ae424ed8 Merge pull request #19470 from Microsoft/jjh/confans
Windows: VirtualTerminalInput native console
2016-01-22 17:27:47 +01:00
Tibor Vass
cba7ba25f4 Merge pull request #19488 from hypriot/enable-docker-trust-suite-on-arm
Enable DockerTrustSuite for ARM again
2016-01-22 11:23:19 -05:00
Tianon Gravi
90e33640b8 Add a note to /etc/default/docker noting that it does not apply to systemd
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-01-22 07:35:02 -08:00
scaleoutsean
bdc8241da9 Add GPFS
Signed-off-by: Sean Lee <seanlee@tw.ibm.com>
2016-01-22 21:12:47 +08:00
Vincent Demeester
c91045a78b Merge pull request #19558 from LK4D4/reduce_cgroup_parsing
Refactor sysinfo usage
2016-01-22 11:18:53 +01:00
Aleksa Sarai
cc19c7df2a integration-cli: add bad --cgroup-parent tests
To ensure we don't regress on bad --cgroup-parent paths, add some
integration tests that check that the host hasn't toppled (or suddently
started to create files in the host).

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-01-22 20:16:56 +11:00
Aleksa Sarai
40b5eebb0b vendor: *: update libcontainer
This fixes a security vulnerability in Docker, which can cause a DoS
under certain circumstances. This is from the hotfix branch, so the
vendored commit is actually bf899fef451956be4abd63de6d6141d9f9096a02 in
runc master.

Signed-off-by: Aleksa Sarai <asarai@suse.com>
2016-01-22 20:15:09 +11:00
Vincent Demeester
c3a9ecedba Merge pull request #19574 from polonskiy/patch-2
fixed typo
2016-01-22 09:14:58 +01:00
Anton Polonskiy
b0873c2c50 fixed typo
Signed-off-by: Anton Polonskiy <anton.polonskiy@gmail.com>
2016-01-22 09:27:53 +02:00
Santhosh Manohar
da9eadb066 IT for service/network name with '.', corrected libnetwork flag for DNS
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-01-21 20:49:02 -08:00
Santhosh Manohar
02c9d48144 Vendor in libnetwork v0.6.0-rc2
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-01-21 20:46:28 -08:00
Mike Dougherty
51dad1185a Create a bundle for the install script to support other domains
For the CS Engine we need to have an install script like OSS does, but
the locations are all different, as is the GPG key used. This is
accomplished here by slightly altering the script itself and adding a
simple 'sed' based bundle for make.sh.

This install script is used in to change the URLs instead of sed in
release.sh.

Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
2016-01-21 20:42:20 -08:00
Doug Davis
6f22d9ec4e Merge pull request #19562 from MHBauer/nospace-checktheoutput
check the output, not the errcode
2016-01-21 22:09:41 -05:00
John Howard
845dc1b24c Windows: TestPsNotShowPortsOfStoppedContainer linux only
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-21 18:48:21 -08:00
Arun Gupta
e25d47db27 adding docs for Dockerizing Couchbase service
cleaning up instructions, removing redundant output

Signed-off-by: Arun Gupta <arun.gupta@gmail.com>

adding the latest feedback

Signed-off-by: Arun Gupta <arun.gupta@gmail.com>
2016-01-21 17:58:43 -08:00
Jessica Frazelle
bed0bb7d01 move default seccomp profile into package
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-21 16:55:29 -08:00
Jessica Frazelle
35e50119fc move default apparmor policy into package
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-21 16:55:27 -08:00
Phil Estes
3233f45609 Merge pull request #19263 from jfrazelle/update-aa-parser
refactor aaparser pkg, add unit tests
2016-01-21 19:40:53 -05:00
Jess Frazelle
6e16ec2b9c Merge pull request #19529 from Microsoft/jjh/dockerfile
Windows: Update dockerfile for Windows to Windows CI
2016-01-21 15:46:08 -08:00
Morgan Bauer
bcb9adf49e check the output, not the errcode
- errcode of 1 can be returned for cases other than the 'no space left' case

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2016-01-21 15:23:20 -08:00
Brian Goff
9ae51b3e0f Merge pull request #19383 from calavera/container_store
Extract container store from the daemon.
2016-01-21 17:20:47 -05:00
David Calavera
ed4038676f Verify that the configuration keys in the file are valid.
- Return an error if any of the keys don't match valid flags.
- Fix an issue ignoring merged values as named values.
- Fix tlsverify configuration key.
- Fix bug in mflag to avoid panics when one of the flag set doesn't have any flag.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-21 16:56:12 -05:00
Sebastiaan van Stijn
45db4fa70e Merge pull request #19557 from tiborvass/karkhaz-add-dead-to-docker-ps-documentation
Carry 19305: Added `dead` to docs for docker ps -f status=...
2016-01-21 13:46:51 -08:00
Kareem Khazem
859262a82a Added dead to docs for docker ps -f status=...
It is possible to invoke `docker ps -f status=dead`, but the
documentation for docker-ps does not mention `dead` as a valid option.
This commit fixes that.

Signed-off-by: Kareem Khazem <karkhaz@karkhaz.com>
2016-01-21 16:44:33 -05:00
Jess Frazelle
e287bef453 Merge pull request #19316 from Microsoft/jjh/incontainererror
Windows: In container build check
2016-01-21 13:44:19 -08:00
Tibor Vass
3ecba7089b Merge pull request #19552 from aaronlehmann/vendor-distribution-3
Vendor updated distribution package
2016-01-21 16:21:59 -05:00
John Howard
4dbd612d47 Windows: In container build check
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-21 13:15:23 -08:00
John Howard
eacd2fd4da Windows: Update dockerfile.windows
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-21 12:49:03 -08:00
Tibor Vass
0b7e9ef910 Merge pull request #19550 from Microsoft/jjh/testlinksmultiplewithsamename
Windows: Fix TestLinksMultipleWithSameName
2016-01-21 15:38:47 -05:00
Tibor Vass
26334b7a7d Merge pull request #19551 from aaronlehmann/fix-retry-on-enospc
Don't retry downloads when disk is full
2016-01-21 15:37:50 -05:00
Tibor Vass
d2448a0c20 Merge pull request #19524 from LK4D4/iocopy_writeto
Use bufio.Reader in io.Copy source for overlay.copyRegular
2016-01-21 15:37:12 -05:00
Tibor Vass
16faf8f1fc Merge pull request #19518 from dmcgowan/unwrap-url-error-on-retry
Unwrap URL errors on retry
2016-01-21 15:36:41 -05:00
Aaron Lehmann
921eae9d6d Vendor updated distribution package
Another day, another revendor.

This revision of distribution is more tolerant of incorrect Content-Type
headers when fetching manifests.

Fixes #19526

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-21 11:01:14 -08:00
Alessandro Boch
3b0d36dbc1 Move ErrUnsupportedNetwork* checks to updateNetworkConfig() func
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-21 10:56:01 -08:00
Doug Davis
b7a68d0252 Merge pull request #19548 from WeiZhang555/remove-hard-coded
Remove hard coded 'docker' string from package
2016-01-21 13:06:22 -05:00
Aaron Lehmann
4f13ec5551 Don't retry downloads when disk is full
There was already a check that prevented protocol-level fallback in this
situation, but retries within a specific protocol will still happen.
This makes it take a long time for the pull to finally error out.

This fixes slowness in TestDaemonNoSpaceleftOnDeviceError, which used to
take a long time due to the backoff between retry attempts:

PASS: docker_cli_daemon_test.go:1868: DockerDaemonSuite.TestDaemonNoSpaceleftOnDeviceError	5.882s

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-21 10:01:51 -08:00
Arnaud Porterie
eacc9fc2c3 Merge pull request #19547 from tonistiigi/revert-aufs-hardlinks
Revert "Copy aufs hardlinks to top layer"
2016-01-21 09:56:26 -08:00
John Howard
473a32ba8f Windows: Fix TestLinksMultipleWithSameName
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-21 09:52:49 -08:00
Tibor Vass
5f9375cf39 Merge pull request #19349 from jfrazelle/add-link-to-wiki
add warning if upgrading via script to migrate
2016-01-21 12:51:25 -05:00
Vincent Demeester
7aef311269 Merge pull request #19541 from albers/completion-events
Support new events in bash completion
2016-01-21 18:40:54 +01:00
Tibor Vass
7d19ca7c40 Merge pull request #19423 from jfrazelle/apparmor-no-install
disable install of docker-engine for 1.10, try to get ready for 1.11
2016-01-21 12:08:50 -05:00
Alexander Morozov
3f5e1c69b3 Use pools.Copy instead of io.Copy for overlay.copyRegular
That function is pretty heavy used on container start. Autoallocating
buffer can be painful.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-21 08:53:37 -08:00
Brian Goff
54587d861d Bump plugin API version
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-21 11:41:32 -05:00
David Calavera
aed5691644 Merge pull request #19507 from aaronlehmann/certificate-error-message
Clarify error message when a .cert file is missing a corresponding key
2016-01-21 08:29:25 -08:00
Vincent Demeester
5e143d5168 Merge pull request #19540 from A33a/A33a-patch-1
Fixed typo in "/etc/subUid"
2016-01-21 17:24:29 +01:00
David Calavera
8c0dd9d182 Merge pull request #19522 from aaronlehmann/vendor-distribution-2
Vendor updated distribution
2016-01-21 08:15:41 -08:00
Zhang Wei
d44e79a366 Remove hard coded 'docker' string from package
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-22 00:14:52 +08:00
David Calavera
72c425785c Merge pull request #19534 from hqhq/hq_fix_update_swap
Fix comment about swap limit of docker update
2016-01-21 08:12:00 -08:00
Tonis Tiigi
98d0997894 Revert "Copy aufs hardlinks to top layer"
This reverts commit ef05b83417.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-21 07:52:50 -08:00
Tibor Vass
757d686700 Merge pull request #19500 from cpuguy83/fix_loading_with_containerized_plugins
Fix loading with containerized plugins
2016-01-21 08:57:01 -05:00
Vincent Demeester
476edba011 Merge pull request #19483 from coolljt0725/fix_19477
Fix #19477, clean up the ports when release network
2016-01-21 14:29:29 +01:00
Harald Albers
ab01b6f385 Refactor handling of key specific subcompletions
The currently used idiom for handling key specific subcompletions
did not work here: behind `docker event -f type=network `, the completion
of networks triggered. The expected behaviour is not to complete
anything here.

In order to limit the scope of the corresponding PR, the new idiom is
currently only used in `docker events --filter`.

Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-21 14:24:31 +01:00
Harald Albers
fcc035848f Support new events in bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-21 13:57:35 +01:00
Azat Khuyiyakhmetov
935849f17a Fixed typo in "/etc/subUid"
Signed-off-by: Azat Khuziyakhmetov <shadow_uz@mail.ru>
2016-01-21 12:46:29 +01:00
Antonio Murdaca
db25ba1486 Merge pull request #19536 from wenchma/fix_typo
Fixes the typo of docker_cli_network_unix_test.go
2016-01-21 09:42:36 +01:00
Wen Cheng Ma
2e6b1eb309 Fixes the typo of docker_cli_network_unix_test.go
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-21 16:37:17 +08:00
Jess Frazelle
5537a92e45 Merge pull request #19377 from jfrazelle/cleanup-build-rpm-deb
Cleanup build rpm deb
2016-01-20 23:58:33 -08:00
Qiang Huang
603bc69b2c Fix comment about swap limit of docker update
The description "set `-1` to disable swap" is wrong, `build`,
`create` and `run` already fixed, we need to fix `update` as well.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-01-21 13:48:53 +08:00
Sebastiaan van Stijn
7db58948bf Merge pull request #19434 from HackToday/fixmntvolume
Refine the volume mount example
2016-01-20 20:42:24 -08:00
Sebastiaan van Stijn
13dbf52611 Merge pull request #19530 from HackToday/fixtiny
Fix the typo in ps
2016-01-20 20:41:35 -08:00
Kai Qiang Wu(Kennan)
c2b59b03df Fix the typo in ps
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-21 04:26:49 +00:00
Alexander Morozov
781a33b6e7 Reuse subsystems mountpoints between checks
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-20 19:20:59 -08:00
Brian Goff
7bf776f1c3 Merge pull request #19482 from LK4D4/up_osx_sdk
Move long compilations before Go install in Dockerfile
2016-01-20 20:11:32 -05:00
Lei Jitang
6025517b68 Fix #19477, clean up the ports when release network
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-20 20:09:11 -05:00
Alexander Morozov
22ebeede30 Reuse *sysinfo.SysInfo instance in verification
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-20 17:08:10 -08:00
Lei Jitang
bb8d8a645a Merge pull request #19430 from keloyang/StatsNoStreamGetCpu
remove the check of ContentLength in TestApiStatsNoStreamGetCpu
2016-01-21 09:07:00 +08:00
Aaron Lehmann
a160dd4987 Vendor updated distribution
The only changes are https://github.com/docker/distribution/pull/1379
and https://github.com/docker/distribution/pull/1380.

Fixes #19476

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-20 15:46:11 -08:00
David Calavera
ee001d87a9 Merge pull request #19514 from cpuguy83/19444_fix_links_with_same_name
Don't error out when link name in use.
2016-01-20 15:21:58 -08:00
Alexander Morozov
4a9523adc9 Merge pull request #19513 from crosbymichael/tty-restore
Move tty set and restore to caller
2016-01-20 15:05:14 -08:00
Sebastiaan van Stijn
ad87333f79 Merge pull request #19452 from mortonfox/patch-1
cgroups documentation moved
2016-01-20 14:54:24 -08:00
David Calavera
7915077a38 Merge pull request #19485 from HackToday/fixlink
Fix the ulimit link
2016-01-20 14:53:38 -08:00
Sebastiaan van Stijn
048234fcdb Merge pull request #19487 from HackToday/fixcommitcli
Fix commit wrong repository example
2016-01-20 14:45:59 -08:00
Derek McGowan
e9d5292b0c Unwrap URL errors on retry
When authorization errors are returned by the token process the error will be wrapped in url.Error.
In order to check the underlying error for retry this error message should be unwrapped.
Unwrapping this error allows failure to push due to an unauthorized response to keep from retrying, possibly resulting in later 429 responses.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2016-01-20 14:29:38 -08:00
Sebastiaan van Stijn
c21eb2a420 Merge pull request #19501 from vdemeester/remove-validate-vendor-from-default-bundles
Remove validate-vendor from default bundles
2016-01-20 14:29:07 -08:00
Christopher Jones
3aa778d6a0 Update registry in Dockerfile.ppc64le
This updates the Dockerfile registry version on ppc64le to be
consistent with 6309947718

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-01-20 16:57:18 -05:00
Brian Goff
332d95fd0d Don't error out when link name in use.
This preserves old behavior from sqlite links/names.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-20 16:40:56 -05:00
Michael Crosby
a1eb6029cc Move tty set and restore to caller
Fixes #19506

This fixes the issue of errors on create and the tty not being able to
be restored to its previous state because of a race where it was
in the hijack goroutine.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-01-20 13:32:19 -08:00
Alexander Morozov
7bddbdf360 Merge pull request #19503 from jfrazelle/update-logrus
bump logrus
2016-01-20 12:54:49 -08:00
Brian Bland
06e9a056ca Fixes layer MediaTypes in manifests created from a cross-repository push
Signed-off-by: Brian Bland <brian.bland@docker.com>
2016-01-20 12:23:16 -08:00
Tibor Vass
2705fa573b Merge pull request #19457 from calavera/post_config_verification
Fix post config verification without flags.
2016-01-20 14:49:32 -05:00
Aaron Lehmann
d5e2802eae Clarify error message when a .cert file is missing a corresponding key
The daemon uses two similar filename extensions to identify different
kinds of certificates. ".crt" files are interpreted as CA certificates,
and ".cert" files are interprted as client certificates. If a CA
certificate is accidentally given the extension ".cert", it will lead to
the following error message:

    Missing key ca.key for certificate ca.cert

To make this slightly less confusing, clarify the error message with a
note that CA certificates should use the extension ".crt".

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-20 11:34:59 -08:00
David Calavera
bcf155bb7a Merge pull request #19469 from crosbymichael/libcontainer-resource-hf
Update libcontainer to 47e3f834d73e76bc2a6a585b48d
2016-01-20 11:31:14 -08:00
Vincent Demeester
a866e7e2ee Merge pull request #19496 from dbarboza/19495-doc-grammar
Fix minor doc grammar issues
2016-01-20 20:26:15 +01:00
Brian Goff
cfb2c667ad Use fine-grained locks for plugin loading.
This helps ensure that only one thing is trying to intialize a plugin at
once while also keeping the global lock free during initialization.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-20 13:57:52 -05:00
David Calavera
cd3446972e Fix post config verification without flags.
- Set the daemon log level to what's set in the configuration.
- Enable TLS when TLSVerify is enabled.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-20 13:01:07 -05:00
David Calavera
fd79462af3 Merge pull request #19044 from HackToday/18890-validate-volume
Fix volume filter validation
2016-01-20 09:56:30 -08:00
Jessica Frazelle
95695aa38c bump logrus
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-20 09:51:09 -08:00
Vincent Demeester
e5bce74592 Remove validate-vendor from default bundles
Because it's triggered another way :)
See https://github.com/docker/leeroy/pull/44

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-20 18:29:28 +01:00
Sebastiaan van Stijn
b433e1e7fb Merge pull request #19486 from sdurrheimer/zsh-completion-network-links
Zsh completion for '--alias --net-alias --ip --ip6 --link'
2016-01-20 09:28:04 -08:00
Brian Goff
d85b9f8580 Fix loading of containerized plugins
During daemon startup, all containers are registered before any are
started.
During container registration it was calling out to initialize volumes.
If the volume uses a plugin that is running in a container, this will
cause the restart of that container to fail since the plugin is not yet
running.
This also slowed down daemon startup since volume initialization was
happening sequentially, which can be slow (and is flat out slow since
initialization would fail but take 8 seconds for each volume to do it).

This fix holds off on volume initialization until after containers are
restarted and does the initialization in parallel.

The containers that are restarted will have thier volumes initialized
because they are being started. If any of these containers are using a
plugin they will just keep retrying to reach the plugin (up to the
timeout, which is 8seconds) until the container with the plugin is up
and running.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-20 12:23:17 -05:00
Dave Barboza
f50d0d7fdb Fix minor doc grammar issues
Signed-off-by: Dave Barboza <dxbarboza@gmail.com>
2016-01-20 10:52:21 -05:00
Stefan Scherer
acb42c5fab Enable DockerTrustSuite for ARM again
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2016-01-20 14:58:09 +01:00
Doug Davis
bdcc3ebe41 Merge pull request #19447 from sillyousu/19407-fix-exec-store-data-race
Fix race condition in execCommandGC
2016-01-20 07:46:28 -05:00
Vincent Demeester
7646bed1ad Merge pull request #19479 from ywy1ywy/my-branch
fix a spelling error of 'dnsmasq'
2016-01-20 13:33:26 +01:00
Antonio Murdaca
e9ac149472 Merge pull request #19478 from zchee/add-arg-syntax
Add `ARG` instruction syntax for vim
2016-01-20 13:20:47 +01:00
Vincent Demeester
2ba549407a Merge pull request #19467 from sdurrheimer/zsh-completion-detach-keys
Add zsh completion for 'docker {attach,exec,run,start} --detach-keys'
2016-01-20 11:54:13 +01:00
Kai Qiang Wu(Kennan)
3c8042a0cb Fix commit wrong repository example
The old name is invalid in new repository name spec.
So we need to fix them.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-20 10:25:41 +00:00
Steve Durrheimer
fe8a6a5b67 Add zsh completion for 'docker network connect --link'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-20 10:19:03 +01:00
Steve Durrheimer
5284e037ff Add zsh completion for 'docker {network connect, create, run} --ip --ip6'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-20 10:19:03 +01:00
Steve Durrheimer
898b53fafa Add zsh completion for 'docker network connect --alias' and 'docker {create, run} --net-alias'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-20 10:19:03 +01:00
Kai Qiang Wu(Kennan)
8f3c0fdff3 Fix the ulimit link
The old link not existed, we need fix it the right one.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-20 09:18:20 +00:00
Steve Durrheimer
32bd703926 Add zsh completion for 'docker {attach,exec,run,start} --detach-keys'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-20 10:14:35 +01:00
Sebastiaan van Stijn
d45643a865 Merge pull request #19459 from sdurrheimer/zsh-completion-network-create-ipam-opt
Add zsh completion for 'docker network create --ipam-opt'
2016-01-20 00:30:30 -08:00
Vincent Demeester
87b7ff5267 Merge pull request #19465 from mavenugo/sysd
Vendor libnetwork v0.6.0-rc1
2016-01-20 09:02:21 +01:00
Alexander Morozov
c38cba3b8c Move long compilations before Go install in Dockerfile
Now we can avoid long compilations on Go update.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-19 22:43:42 -08:00
Kai Qiang Wu(Kennan)
9e3c1f2609 Refine the volume mount example
The path here should be absolute, else it would
deem it as volume name.

Also link to release page to contain static binary,
the old link not work, because it is just used to
install docker in os distro, it can not be used
as static binary directly.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-20 06:40:46 +00:00
Wenyu You
5e450bc5df fix a spelling error of 'dnsmasq'
Signed-off-by: Wenyu You <21551128@zju.edu.cn>
2016-01-20 06:12:22 +00:00
Koichi Shiraishi
b15247868c Add ARG instruction syntax for vim
Signed-off-by: Koichi Shiraishi <k@zchee.io>
2016-01-20 15:08:45 +09:00
Sebastiaan van Stijn
cd1ed858d3 Merge pull request #19471 from thaJeztah/fix-19393-increase-timeout
Fix DockerTrustSuite SetUpTest
2016-01-19 21:58:24 -08:00
Pei Su
e5e62b96ce Fix race condition in execCommandGC
`daemon.execCommandGC`
The daemon object (grep execCommandGC) iterate over a map
(grep execCommands.Commands) in a goroutine.
Lock can't protect concurrency access in this case.
Exec command storage object should return a copy of commands instead.

Signed-off-by: Pei Su <sillyousu@gmail.com>
2016-01-20 12:52:05 +08:00
Tibor Vass
7657e233f7 Merge pull request #19466 from aaronlehmann/vendor-distribution
Vendor updated docker/distribution package
2016-01-19 21:05:43 -05:00
Jessica Frazelle
0bff2515f7 add a way to only build requested pkgs
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-19 17:47:27 -08:00
Sebastiaan van Stijn
910a5fc234 Fix DockerTrustSuite SetUpTest
This hopefully makes DockerTrustSuite.SetUpTest
less flaky.

Increased the number of attempts to check
if Notary is available before giving up.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-19 16:45:47 -08:00
John Howard
33729d3b5a Windows: VirtualTerminalInput native console
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-19 15:59:21 -08:00
Jessica Frazelle
60d44d8b80 add warning if upgrading via script to migrate
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-19 15:41:08 -08:00
Michael Crosby
5f73ab8952 Update libcontainer to 47e3f834d73e76bc2a6a585b48d
This adds a fix for the resource struct in the cgroups type and seccomp
IsEnabled function

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-01-19 15:34:08 -08:00
Sebastiaan van Stijn
e11a7f5371 Merge pull request #19458 from dmcgowan/layerstore-error-handling
Add more robust error handling on layer store creation
2016-01-19 14:37:23 -08:00
Jess Frazelle
389784abe1 Merge pull request #19462 from tophj-ibm/fix-arm-integration-cli-requirement
Fix test requirement for ARM
2016-01-19 14:24:28 -08:00
Madhu Venugopal
8799218d01 IT for remote network driver & ungraceful restart
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-19 14:09:11 -08:00
Madhu Venugopal
ee3b42f385 Vendor libnetwork v0.6.0-rc1
- Fixes docker/docker#19404
- Fixes ungraceful daemon restart issue in systemd with remote
  network plugin (https://github.com/docker/libnetwork/issues/813)

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-19 13:50:17 -08:00
Aaron Lehmann
588e27f9a5 Vendor updated docker/distribution package
Fixes #19400

Note that this introduces an incompatibility with Docker 1.10-rc1,
because the media type used for schema1 manifests has been corrected in
the upstream distribution code. Docker 1.10-rc1 won't be able to pull
old manifests from Registry 2.3-rc0 and up, but because of this vendor
update, Docker 1.10-rc2 won't have this problem.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-19 13:28:51 -08:00
Doug Davis
c18b4943ea Merge pull request #19460 from LK4D4/remove_comment
Remove obsolete comment
2016-01-19 15:29:46 -05:00
Christopher Jones
d12f4babdd Fix test requirement for ARM
Correctly passes the DOCKER_ENGINE_GOARCH env var
to the testing environment

Also fixes logic for skipping a test if on ARM.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-01-19 15:23:46 -05:00
Alexander Morozov
3dc8829a83 Remove obsolete comment
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-19 12:17:40 -08:00
Steve Durrheimer
da26fc26b2 Add zsh completion for 'docker network create --ipam-opt' + Reordering for better maintainability
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-19 21:16:16 +01:00
Sebastiaan van Stijn
4b63689679 Merge pull request #19385 from runcom/better-git-error
api: client: build: do not fall through if git isn't installed
2016-01-19 11:39:05 -08:00
Derek McGowan
caef48f4e2 Add more robust error handling on layer store creation
Add continue when layer fails on store creation
Trim whitespace from layerstore files to keep trailing space from failing a layer load

Fixes #19449

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2016-01-19 11:17:08 -08:00
David Calavera
3c82fad441 Extract container store from the daemon.
- Generalize in an interface.
- Stop abusing of List for everything.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-19 13:21:41 -05:00
Morton Fox
596836e0e4 cgroups documentation moved
Signed-off-by: Morton Fox <github@qslw.com>
2016-01-19 11:26:58 -05:00
Antonio Murdaca
167cc42986 api: client: build: do not fall through if git isn't installed
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-19 16:50:14 +01:00
Tibor Vass
30e42a2799 Merge pull request #19432 from jfrazelle/fix-x32
add send, recv, and x32 so we can install i386 pkgs on amd64
2016-01-19 10:20:01 -05:00
Tibor Vass
e8ce350669 Merge pull request #19424 from aaronlehmann/revert-multiple-pull-errors
Revert reporting of multiple pull errors
2016-01-19 09:51:54 -05:00
Vincent Demeester
011ca5f206 Merge pull request #19426 from sanimej/restart
Vendoring miekg/dns @ 75e6e86cc601825c5dbcd4e0c209eab180997cd7
2016-01-19 10:28:33 +01:00
Vincent Demeester
05e36d254f Merge pull request #19437 from HackToday/fixulimit
Fix ulimit command form
2016-01-19 10:26:02 +01:00
Vincent Demeester
25f4f71512 Merge pull request #19436 from HackToday/fixhostdev
Fix add host device example
2016-01-19 10:25:08 +01:00
Sebastiaan van Stijn
0f04f3ba9f Merge pull request #19433 from HackToday/fixclidoc
Fix the privileged example
2016-01-19 00:37:30 -08:00
Kai Qiang Wu(Kennan)
98e5a8efcc Fix ulimit command form
The ulimit is builtin, so we need shell form to execute it.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-19 07:44:58 +00:00
Antonio Murdaca
6a1100cafc Merge pull request #19429 from mavenugo/epv21
nil ptr check for endpointsettings when used with older clients
2016-01-19 08:43:04 +01:00
Kai Qiang Wu(Kennan)
62b525f75d Fix add host device example
The example is not right in parameter, and also
one command is same as first one, it should be typo
before, we should use 'rw' as example for that.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-19 07:00:58 +00:00
Kai Qiang Wu(Kennan)
3cc5550003 Fix the privileged example
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-19 06:41:49 +00:00
Lei Jitang
42ee908b3f Merge pull request #19431 from WeiZhang555/19422-default-network
bugfix: prevent creating network 'default'
2016-01-19 14:18:20 +08:00
yangshukui
d474f7fb86 remove the check of ContentLength in TestApiStatsNoStreamGetCpu
Signed-off-by: yangshukui <yangshukui@huawei.com>
2016-01-19 12:06:01 +08:00
Jessica Frazelle
308eff99e8 add send, recv, and x32 so we can install i386 pkgs on amd64
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-18 19:24:01 -08:00
Zhang Wei
31dae442c8 bugfix: prevent creating network 'default'
Default is predefined network and is reserved, so we should stop user
from creating network with name `default`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-19 11:06:36 +08:00
Madhu Venugopal
35dbce109b nil ptr check for endpointsettings when used with older clients
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-18 17:15:59 -08:00
Brian Goff
b6be645197 Merge pull request #19420 from clnperez/close-notify-fix
Move closeNotify to fix panic with newer golang
2016-01-18 20:08:25 -05:00
Aaron Lehmann
87338bf0fa Revert reporting of multiple pull errors
Revert the portions of #17617 that report all errors when a pull
falls back, and go back to just reporting the last error. This was nice
to have, but causes some UX issues because nonexistent images show
additional "unauthorized" errors.

Keep the part of the PR that handled ENOSPC, as this appears to work
even without tracking multiple errors.

Fixes #19419

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-18 15:49:08 -08:00
Jess Frazelle
637f49b5af Merge pull request #19196 from Microsoft/jjh/tp4ci
Windows CI: Setup for testing against Windows
2016-01-18 15:22:08 -08:00
Jess Frazelle
416de85359 Merge pull request #19412 from hypriot/skip-tests-on-arm
Skip failing tests on ARM to get red/green feedback from Jenkins
2016-01-18 14:40:46 -08:00
Jessica Frazelle
c4bc9657b9 disable install of docker-engine for 1.10, try to get ready for 1.11
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-18 13:38:29 -08:00
Antonio Murdaca
a495c148a5 Merge pull request #19414 from anusha-ragunathan/postBuild
Make daemonbuilder.Docker leaner.
2016-01-18 21:46:49 +01:00
Christy Perez
2df5dafdaf Move closeNotify to fix panic with newer golang
This is happening now due to improvements in net/http:
99fb19194c

To test, change the go version in the Dockerfile:
-ENV GO_VERSION 1.5.3
+ENV GO_VERSION 1.6beta2

More info here: https://github.com/golang/go/issues/14001

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2016-01-18 14:24:25 -06:00
Brian Goff
3044a08326 Merge pull request #19372 from cloudflare/fix-log-copier
only close LogDriver after LogCopier is done
2016-01-18 14:38:34 -05:00
Brian Goff
2cd74f9932 Merge pull request #19391 from cdauth/systemd_tasks_max
Set TasksMax in addition to LimitNPROC in systemd service files
2016-01-18 13:33:07 -05:00
Jess Frazelle
afa9b75c7c Merge pull request #19310 from tophj-ibm/add-registry-remove-notary-on-power
update registry and remove notary on ppc64le
2016-01-18 09:51:02 -08:00
Jess Frazelle
a7652ad276 Merge pull request #19410 from tophj-ibm/add-gccgo-target-to-makefile
Add gccgo target to Makefile
2016-01-18 09:50:44 -08:00
Daniel Dao
84e14754e1 only close LogDriver after LogCopier is done
this prevents the copier from sending messages in the buffer to the closed
driver. If the copied took longer than the timeout to drain the buffer, this
aborts the copier read loop and return back so we can cleanup resources
properly.

Signed-off-by: Daniel Dao <dqminh@cloudflare.com>
2016-01-18 17:47:57 +00:00
Anusha Ragunathan
14215ed5a1 Make daemonbuilder.Docker leaner.
Currently builder.Backend is implemented by daemonbuilder.Docker{} for
the daemon. This registration happens in the API/server code. However,
this is too implementation specific. Ideally we should be able to specify
that docker daemon (or any other) is implementing the Backend and abstract
the implementation details. So we should remove package daemonbuilder
dependency in build_routes.go

With this change, daemonbuilder.Docker is nothing more than the daemon.
A follow on change will remove the daemonbuilder package and move relevant
methods under daemon, so that API only knows about the backend.

Also cleanup code in api/client/build.go. docker cli always performs build
context tar download for remoteURLs and sends an empty remoteContext. So
remove relevant dead code.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-18 09:16:11 -08:00
Tianon Gravi
8a4b4f5950 Merge pull request #19409 from albers/completion-network-links
bash completion for container linking and aliasing
2016-01-18 08:36:33 -08:00
Tianon Gravi
f5299b64aa Merge pull request #19411 from albers/completion-network-create--internal
Update bash completion for `docker network create`
2016-01-18 08:34:59 -08:00
Stefan Scherer
4f339570cb Skip failing tests on ARM to get red/green feedback from Jenkins
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2016-01-18 17:00:15 +01:00
Harald Albers
6ae4ffb6e5 bash completion for docker network create --internal, --ipam-opt
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-18 07:50:26 -08:00
Christopher Jones
06f48a26f8 Add gccgo target to Makefile
Adds a gccgo target to the Makefile

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-01-18 10:40:45 -05:00
Harald Albers
67fe772ca6 bash completion for container linking and aliasing
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-18 07:11:19 -08:00
Kai Qiang Wu(Kennan)
66c253cbf7 Fix volume filter validation
Fixes: #18890
This fix add same filter validation logic as images. We should
add such check to make sure filters work make sense to end-users

Right now, we keep old use 1 as filter, but in long term, it should
be have same interface checking as images, it could be improved in
other patches.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-18 10:07:42 +00:00
Santhosh Manohar
bccf653082 Vendoring miekg/dns @ 75e6e86cc601825c5dbcd4e0c209eab180997cd7
- Fixes the issue of Shutdown() not working, resulting in hung
  goroutines

Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-01-17 08:17:13 -08:00
Vincent Demeester
1d8ccc6ae7 Add the possibility to log event with specific attributes
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-17 12:14:01 +01:00
Candid Dauth
105778343a Set TasksMax in addition to LimitNPROC in systemd service files
systemd sets an additional limit on processes and threads that defaults to 512 when run under Linux >= 4.3.
See more information here: http://unix.stackexchange.com/a/255603/59955

Signed-off-by: Candid Dauth <cdauth@cdauth.eu>
2016-01-16 18:45:41 +01:00
Brian Goff
82401a4b13 Merge pull request #19386 from sdurrheimer/zsh-completion-network-create-internal
Add zsh completion for 'docker network create --internal'
2016-01-16 08:04:05 -05:00
Brian Goff
a2b72dc4ba Merge pull request #19387 from sdurrheimer/zsh-completion-network-connect-disconnect-stopped-containers
Modify zsh completion for connecting/disconnecting non-running contai…
2016-01-16 07:57:13 -05:00
Steve Durrheimer
0a9508e821 Modify zsh completion for connecting/disconnecting non-running containers to networks
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-16 12:59:20 +01:00
Steve Durrheimer
581a55d54c Add zsh completion for 'docker network create --internal'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-16 12:53:50 +01:00
Sebastiaan van Stijn
f1c6cd57fa Merge pull request #19320 from cilium-team/fixing-inspect-api-container-volume-driver
Fixing TestInspectApiContainerVolumeDriver
2016-01-16 01:04:32 -08:00
Sebastiaan van Stijn
785493226b Merge pull request #19379 from thaJeztah/update-windows-dockerfile
Switch Windows Dockerfile to golang 1.5.3
2016-01-16 01:00:19 -08:00
Sebastiaan van Stijn
d232ed4cea Merge pull request #19382 from Collinux/master
Fixed typo in experimental/plugins_graphdriver.md
2016-01-15 18:51:29 -08:00
Collin Guarino
aabe39be01 Fixed typo in experimental/plugins_graphdriver.md
Signed-off-by: Collin Guarino <collin.guarino@gmail.com>
2016-01-15 21:33:36 -05:00
Jess Frazelle
b69243e951 Merge pull request #19169 from Djelibeybi/fix-ol6-build
Restoring the RPM build process for Oracle Linux 6
2016-01-15 16:56:11 -08:00
Sebastiaan van Stijn
e281f640c6 Switch Windows Dockerfile to golang 1.5.3
Also renamed the env-variable to match what
we use in other locations (for easier finding)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-15 15:52:53 -08:00
Jess Frazelle
4e9ee2a239 Merge pull request #19373 from Microsoft/jjh/makefile
Windows: Update makefile
2016-01-15 15:42:47 -08:00
Jess Frazelle
b70d615222 Merge pull request #18348 from hypriot/add-dockerfile-for-windows
Add initial support building Windows docker in docker
2016-01-15 15:42:11 -08:00
Jessica Frazelle
3466e5c911 fix selinux version for contrib/builder generation
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-15 15:29:43 -08:00
David Calavera
15e5cd14d6 Merge pull request #19255 from hqhq/hq_build_args_makefile
Add DOCKER_BUILD_ARGS support for make build
2016-01-15 14:21:37 -08:00
Alexander Morozov
790e648c06 Merge pull request #19340 from Microsoft/jjh/rsrcfix
Windows: Remove linkmode internal hack
2016-01-15 14:10:56 -08:00
Vincent Demeester
c476b2e3b5 Merge pull request #19041 from Akasurde/11556
Updated documentation related to apt-cacher-ng
2016-01-15 22:44:46 +01:00
Alexander Morozov
402ba93f68 Merge pull request #19374 from Microsoft/jjh/termdeadcode
Windows: Remove dead/unused code
2016-01-15 13:30:23 -08:00
Phil Estes
dd104eb91d Merge pull request #19345 from tianon/fast-syscall-compile
Switch "syscall-test" image from "debian:jessie" to "buildpack-deps:jessie" so that "gcc" is already included
2016-01-15 16:06:14 -05:00
John Howard
76ebd3dd17 Windows: Remove dead code
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-15 12:48:40 -08:00
Phil Estes
bc13e4a99e Merge pull request #19369 from cpuguy83/19362_fix_exec_panic
Fix panic on starting exec more than once
2016-01-15 15:17:52 -05:00
John Howard
08fe0a18f8 Windows: Update makefile
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-15 11:45:13 -08:00
David Calavera
b63b43dc4c Merge pull request #19219 from runcom/add-log
integration-cli: log error when starting registry
2016-01-15 09:44:47 -08:00
Daniel Nephin
61a49bb6ba Remove the use of dockerversion from the registry package
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-15 12:43:54 -05:00
Brian Goff
1a60a805bf Fix panic on starting exec more than once
Issue was caused when exec is tarted, exits, then stated again.
In this case, `Close` is called twice, which closes a channel twice.

Changes execConfig.ExitCode to a pointer so we can test if the it has
been set or not.
This allows us to return early when the exec has already been run.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-15 11:57:23 -05:00
Tibor Vass
012a3b6e74 Merge pull request #19365 from tiborvass/bump_apiversion_to_v1.23
Bump API Version to v1.23
2016-01-15 10:48:15 -05:00
Tibor Vass
a0fab35fe8 Bump API Version to v1.23
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-01-15 10:44:02 -05:00
Qiang Huang
66d24c2b44 Add support for build and test docker on arm64
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-01-15 14:25:03 +00:00
Stefan Scherer
6c88b8efea Add initial support building Windows docker in docker
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2016-01-15 00:20:50 +01:00
Tianon Gravi
9b2aab3fc8 Switch "syscall-test" image from "debian:jessie" to "buildpack-deps:jessie" so that "gcc" is already included
This results in a significant time savings during repeated builds (since we don't have to re-download gcc for every test run).

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-01-14 13:51:30 -08:00
John Howard
6ca5a2c476 Windows: Remove linkmode internal hack
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-14 13:09:28 -08:00
André Martins
693b5c4298 Fixing TestInspectApiContainerVolumeDriver
Currently the TestInspectApiContainerVolumeDriver is testing the
existence of a volume driver without specifing any volume driver.
This commit fixes that.

Signed-off-by: André Martins <aanm90@gmail.com>
2016-01-14 03:22:53 +00:00
Christopher Jones
7465a3149f update registry and remove notary on ppc64le
ppc64le now installs the second registry used for
f11b6a2ab3

Also, removed notary until the change to go 1.5.1+

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2016-01-13 13:55:29 -05:00
Jessica Frazelle
446f498eba refactor aaparser pkg, add unit tests
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-13 08:43:12 -08:00
Abhijeet Kasurde
ac627fbb38 Updated documentation related to apt-cacher-ng
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2016-01-12 05:14:45 -05:00
Qiang Huang
d104ddb564 Add DOCKER_BUILD_ARGS support for make build
We always need proxy for build, so we always use "docker build"
command instead of "make build", but now for some reasons, we need
macro defined in Makefile, so it would be helpful if we can use
"make build" without touching Dockerfile.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-01-12 15:15:17 +08:00
John Howard
a4b77dc1af Windows CI: Setup for testing against Windows
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-11 11:52:03 -08:00
Antonio Murdaca
55cec657bb integration-cli: log error when starting registry
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-11 20:16:13 +01:00
Stephen Rust
7c70ad058f Allow external volume drivers to host anonymous volumes and copy existing data from image.
Signed-off-by: Stephen Rust <srust@blockbridge.com>
2016-01-08 15:06:42 -05:00
Lukas Waslowski
a4ce361ac8 Improve docs for Daemon.TagImage and dockerfile.BuildFromConfig.
Signed-off-by: Lukas Waslowski <cr7pt0gr4ph7@gmail.com>
2016-01-08 14:51:09 +01:00
Avi Miller
c64f9407a4 Add missing ? to specfile variable.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2016-01-08 11:06:21 +11:00
Avi Miller
28f52bd06a Restoring the RPM build process for Oracle Linux 6 and updating the docker-engine.spec
file to require the Unbreakable Enterprise Kernel Release 4 on both Oracle Linux 6
and Oracle Linux 7.

The UEK R4 provides the required kernel functionality for VxLAN support
required by Docker 1.9 and user namespace support required for 1.10+.

The build of Docker on Oracle Linux 6 requires some manipulation of the build
environment so that the CGO compiler uses the UEK R4 headers instead of the old
default kernel headers.

Signed-off-by: Avi Miller <avi.miller@oracle.com>
2016-01-08 08:09:47 +11:00
1511 changed files with 90515 additions and 45096 deletions

51
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,51 @@
<!--
If you are reporting a new issue, make sure that we do not have any duplicates
already open. You can ensure this by searching the issue list for this
repository. If there is a duplicate, please close your issue and add a comment
to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to
include the BUG REPORT INFORMATION shown below. If you fail to provide this
information within 7 days, we cannot debug your issue and will close it. We
will, however, reopen it if you later provide the information.
For more information about reporting issues, see
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues
---------------------------------------------------
BUG REPORT INFORMATION
---------------------------------------------------
Use the commands below to provide key information from your environment:
You do NOT have to include this information if this is a FEATURE REQUEST
-->
**Output of `docker version`:**
```
(paste your output here)
```
**Output of `docker info`:**
```
(paste your output here)
```
**Additional environment details (AWS, VirtualBox, physical, etc.):**
**Steps to reproduce the issue:**
1.
2.
3.
**Describe the results you received:**
**Describe the results you expected:**
**Additional information you deem important (e.g. issue happens only occasionally):**

23
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,23 @@
<!--
Please make sure you've read and understood our contributing guidelines;
https://github.com/docker/docker/blob/master/CONTRIBUTING.md
** Make sure all your commits include a signature generated with `git commit -s` **
For additional information on our contributing process, read our contributing
guide https://docs.docker.com/opensource/code/
If this is a bug fix, make sure your description includes "fixes #xxxx", or
"closes #xxxx"
Please provide the following information:
-->
**- What I did**
**- How I did it**
**- How to verify it**
**- A picture of a cute animal (not mandatory but encouraged)**

11
.gitignore vendored
View File

@@ -7,18 +7,8 @@
*.test
.*.swp
.DS_Store
.bashrc
.dotcloud
.flymake*
.git/
.gopath/
.hg/
.vagrant*
Vagrantfile
a.out
autogen/
bin
build_src
bundles/
docker/docker
dockerversion/version_autogen.go
@@ -34,5 +24,4 @@ docs/changed-files
man/man1
man/man5
man/man8
pyenv
vendor/pkg/

View File

@@ -93,7 +93,8 @@ Sven Dowideit <SvenDowideit@home.org.au> <¨SvenDowideit@home.org.au¨>
Sven Dowideit <SvenDowideit@home.org.au> <SvenDowideit@users.noreply.github.com>
Sven Dowideit <SvenDowideit@home.org.au> <sven@t440s.home.gateway>
<alexl@redhat.com> <alexander.larsson@gmail.com>
Alexandr Morozov <lk4d4math@gmail.com>
Alexander Morozov <lk4d4@docker.com> <lk4d4math@gmail.com>
Alexander Morozov <lk4d4@docker.com>
<git.nivoc@neverbox.com> <kuehnle@online.de>
O.S. Tezer <ostezer@gmail.com>
<ostezer@gmail.com> <ostezer@users.noreply.github.com>
@@ -106,7 +107,9 @@ Roberto G. Hashioka <roberto.hashioka@docker.com> <roberto_hashioka@hotmail.com>
Sridhar Ratnakumar <sridharr@activestate.com>
Sridhar Ratnakumar <sridharr@activestate.com> <github@srid.name>
Liang-Chi Hsieh <viirya@gmail.com>
Aleksa Sarai <cyphar@cyphar.com>
Aleksa Sarai <asarai@suse.de>
Aleksa Sarai <asarai@suse.de> <asarai@suse.com>
Aleksa Sarai <asarai@suse.de> <cyphar@cyphar.com>
Will Weaver <monkey@buildingbananas.com>
Timothy Hobbs <timothyhobbs@seznam.cz>
Nathan LeClaire <nathan.leclaire@docker.com> <nathan.leclaire@gmail.com>
@@ -117,24 +120,27 @@ Nathan LeClaire <nathan.leclaire@docker.com> <nathanleclaire@gmail.com>
<marc@marc-abramowitz.com> <msabramo@gmail.com>
Matthew Heon <mheon@redhat.com> <mheon@mheonlaptop.redhat.com>
<bernat@luffy.cx> <vincent@bernat.im>
<bernat@luffy.cx> <Vincent.Bernat@exoscale.ch>
<p@pwaller.net> <peter@scraperwiki.com>
<andrew.weiss@outlook.com> <andrew.weiss@microsoft.com>
Francisco Carriedo <fcarriedo@gmail.com>
<julienbordellier@gmail.com> <git@julienbordellier.com>
<ahmetb@microsoft.com> <ahmetalpbalkan@gmail.com>
<lk4d4@docker.com> <lk4d4math@gmail.com>
<arnaud.porterie@docker.com> <icecrime@gmail.com>
<baloo@gandi.net> <superbaloo+registrations.github@superbaloo.net>
Brian Goff <cpuguy83@gmail.com>
<cpuguy83@gmail.com> <bgoff@cpuguy83-mbp.home>
<ewindisch@docker.com> <eric@windisch.us>
<eric@windisch.us> <ewindisch@docker.com>
<frank.rosquin+github@gmail.com> <frank.rosquin@gmail.com>
Hollie Teal <hollie@docker.com>
<hollie@docker.com> <hollie.teal@docker.com>
<hollie@docker.com> <hollietealok@users.noreply.github.com>
<huu@prismskylabs.com> <whoshuu@gmail.com>
Jessica Frazelle <jess@docker.com> Jessie Frazelle <jfrazelle@users.noreply.github.com>
<jess@docker.com> <jfrazelle@users.noreply.github.com>
Jessica Frazelle <jess@mesosphere.com>
Jessica Frazelle <jess@mesosphere.com> <jfrazelle@users.noreply.github.com>
Jessica Frazelle <jess@mesosphere.com> <acidburn@docker.com>
Jessica Frazelle <jess@mesosphere.com> <jess@docker.com>
Jessica Frazelle <jess@mesosphere.com> <princess@docker.com>
<konrad.wilhelm.kleine@gmail.com> <kwk@users.noreply.github.com>
<tintypemolly@gmail.com> <tintypemolly@Ohui-MacBook-Pro.local>
<estesp@linux.vnet.ibm.com> <estesp@gmail.com>
@@ -142,6 +148,8 @@ 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> <amurdaca@redhat.com>
Antonio Murdaca <antonio.murdaca@gmail.com> <runcom@redhat.com>
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>
@@ -151,8 +159,9 @@ 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>
John Howard (VM) <John.Howard@microsoft.com>
John Howard (VM) <John.Howard@microsoft.com> <john.howard@microsoft.com>
John Howard (VM) <John.Howard@microsoft.com> <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>
@@ -169,3 +178,60 @@ 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>
Allen Sun <allen.sun@daocloud.io>
Adrien Gallouët <adrien@gallouet.fr> <angt@users.noreply.github.com>
<aanm90@gmail.com> <martins@noironetworks.com>
Anuj Bahuguna <anujbahuguna.dev@gmail.com>
Anusha Ragunathan <anusha.ragunathan@docker.com> <anusha@docker.com>
Avi Miller <avi.miller@oracle.com> <avi.miller@gmail.com>
Brent Salisbury <brent.salisbury@docker.com> <brent@docker.com>
Chander G <chandergovind@gmail.com>
Chun Chen <ramichen@tencent.com> <chenchun.feed@gmail.com>
Ying Li <cyli@twistedmatrix.com>
Daehyeok Mun <daehyeok@gmail.com> <daehyeok@daehyeok-ui-MacBook-Air.local>
<dqminh@cloudflare.com> <dqminh89@gmail.com>
Daniel, Dao Quang Minh <dqminh@cloudflare.com>
Daniel Nephin <dnephin@docker.com> <dnephin@gmail.com>
Dave Tucker <dt@docker.com> <dave@dtucker.co.uk>
Doug Tangren <d.tangren@gmail.com>
Frederick F. Kautz IV <fkautz@redhat.com> <fkautz@alumni.cmu.edu>
Ben Golub <ben.golub@dotcloud.com>
Harold Cooper <hrldcpr@gmail.com>
hsinko <21551195@zju.edu.cn> <hsinko@users.noreply.github.com>
Josh Hawn <josh.hawn@docker.com> <jlhawn@berkeley.edu>
Justin Cormack <justin.cormack@docker.com>
<justin.cormack@docker.com> <justin.cormack@unikernel.com>
<justin.cormack@docker.com> <justin@specialbusservice.com>
Kamil Domański <kamil@domanski.co>
Lei Jitang <leijitang@huawei.com>
<leijitang@huawei.com> <leijitang@gmail.com>
Linus Heckemann <lheckemann@twig-world.com>
<lheckemann@twig-world.com> <anonymouse2048@gmail.com>
Lynda O'Leary <lyndaoleary29@gmail.com>
<lyndaoleary29@gmail.com> <lyndaoleary@hotmail.com>
Marianna Tessel <mtesselh@gmail.com>
Michael Huettermann <michael@huettermann.net>
Moysés Borges <moysesb@gmail.com>
<moysesb@gmail.com> <moyses.furtado@wplex.com.br>
Nigel Poulton <nigelpoulton@hotmail.com>
Qiang Huang <h.huangqiang@huawei.com>
<h.huangqiang@huawei.com> <qhuang@10.0.2.15>
Boaz Shuster <ripcurld.github@gmail.com>
Shuwei Hao <haosw@cn.ibm.com>
<haosw@cn.ibm.com> <haoshuwei24@gmail.com>
Soshi Katsuta <soshi.katsuta@gmail.com>
<soshi.katsuta@gmail.com> <katsuta_soshi@cyberagent.co.jp>
Stefan Berger <stefanb@linux.vnet.ibm.com>
<stefanb@linux.vnet.ibm.com> <stefanb@us.ibm.com>
Stephen Day <stephen.day@docker.com>
<stephen.day@docker.com> <stevvooe@users.noreply.github.com>
Toli Kuznets <toli@docker.com>
Tristan Carel <tristan@cogniteev.com>
<tristan@cogniteev.com> <tristan.carel@gmail.com>
Vincent Demeester <vincent@sbr.pm>
<vincent@sbr.pm> <vincent+github@demeester.fr>
Vishnu Kannan <vishnuk@google.com>
xlgao-zju <xlgao@zju.edu.cn> xlgao <xlgao@zju.edu.cn>
yuchangchun <yuchangchun1@huawei.com> y00277921 <yuchangchun1@huawei.com>
<zij@case.edu> <zjaffee@us.ibm.com>

461
AUTHORS

File diff suppressed because it is too large Load Diff

View File

@@ -2,18 +2,273 @@
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
https://docs.docker.com/engine/deprecated/ where target removal dates can also
be found.
## 1.11.0 (2016-04-13)
**IMPORTANT**: With Docker 1.11, a Linux docker installation is now made of 4 binaries (`docker`, [`docker-containerd`](https://github.com/docker/containerd), [`docker-containerd-shim`](https://github.com/docker/containerd) and [`docker-runc`](https://github.com/opencontainers/runc)). If you have scripts relying on docker being a single static binaries, please make sure to update them. Interaction with the daemon stay the same otherwise, the usage of the other binaries should be transparent. A Windows docker installation remains a single binary, `docker.exe`.
### Builder
- Fix a bug where Docker would not used the correct uid/gid when processing the `WORKDIR` command ([#21033](https://github.com/docker/docker/pull/21033))
- Fix a bug where copy operations with userns would not use the proper uid/gid ([#20782](https://github.com/docker/docker/pull/20782), [#21162](https://github.com/docker/docker/pull/21162))
### Client
* Usage of the `:` separator for security option has been deprecated. `=` should be used instead ([#21232](https://github.com/docker/docker/pull/21232))
+ The client user agent is now passed to the registry on `pull`, `build`, `push`, `login` and `search` operations ([#21306](https://github.com/docker/docker/pull/21306), [#21373](https://github.com/docker/docker/pull/21373))
* Allow setting the Domainname and Hostname separately through the API ([#20200](https://github.com/docker/docker/pull/20200))
* Docker info will now warn users if it can not detect the kernel version or the operating system ([#21128](https://github.com/docker/docker/pull/21128))
- Fix an issue where `docker stats --no-stream` output could be all 0s ([#20803](https://github.com/docker/docker/pull/20803))
- Fix a bug where some newly started container would not appear in a running `docker stats` command ([#20792](https://github.com/docker/docker/pull/20792))
* Post processing is no longer enabled for linux-cgo terminals ([#20587](https://github.com/docker/docker/pull/20587))
- Values to `--hostname` are now refused if they do not comply with [RFC1123](https://tools.ietf.org/html/rfc1123) ([#20566](https://github.com/docker/docker/pull/20566))
+ Docker learned how to use a SOCKS proxy ([#20366](https://github.com/docker/docker/pull/20366), [#18373](https://github.com/docker/docker/pull/18373))
+ Docker now supports external credential stores ([#20107](https://github.com/docker/docker/pull/20107))
* `docker ps` now supports displaying the list of volumes mounted inside a container ([#20017](https://github.com/docker/docker/pull/20017))
* `docker info` now also report Docker's root directory location ([#19986](https://github.com/docker/docker/pull/19986))
- Docker now prohibits login in with an empty username (spaces are trimmed) ([#19806](https://github.com/docker/docker/pull/19806))
* Docker events attributes are now sorted by key ([#19761](https://github.com/docker/docker/pull/19761))
* `docker ps` no longer show exported port for stopped containers ([#19483](https://github.com/docker/docker/pull/19483))
- Docker now cleans after itself if a save/export command fails ([#17849](https://github.com/docker/docker/pull/17849))
* Docker load learned how to display a progress bar ([#17329](https://github.com/docker/docker/pull/17329), [#120078](https://github.com/docker/docker/pull/20078))
### Distribution
- Fix a panic that occurred when pulling an images with 0 layers ([#21222](https://github.com/docker/docker/pull/21222))
- Fix a panic that could occur on error while pushing to a registry with a misconfigured token service ([#21212](https://github.com/docker/docker/pull/21212))
+ All first-level delegation roles are now signed when doing a trusted push ([#21046](https://github.com/docker/docker/pull/21046))
+ OAuth support for registries was added ([#20970](https://github.com/docker/docker/pull/20970))
* `docker login` now handles token using the implementation found in [docker/distribution](https://github.com/docker/distribution) ([#20832](https://github.com/docker/docker/pull/20832))
* `docker login` will no longer prompt for an email ([#20565](https://github.com/docker/docker/pull/20565))
* Docker will now fallback to registry V1 if no basic auth credentials are available ([#20241](https://github.com/docker/docker/pull/20241))
* Docker will now try to resume layer download where it left off after a network error/timeout ([#19840](https://github.com/docker/docker/pull/19840))
- Fix generated manifest mediaType when pushing cross-repository ([#19509](https://github.com/docker/docker/pull/19509))
- Fix docker requesting additional push credentials when pulling an image if Content Trust is enabled ([#20382](https://github.com/docker/docker/pull/20382))
### Logging
- Fix a race in the journald log driver ([#21311](https://github.com/docker/docker/pull/21311))
* Docker syslog driver now uses the RFC-5424 format when emitting logs ([#20121](https://github.com/docker/docker/pull/20121))
* Docker GELF log driver now allows to specify the compression algorithm and level via the `gelf-compression-type` and `gelf-compression-level` options ([#19831](https://github.com/docker/docker/pull/19831))
* Docker daemon learned to output uncolorized logs via the `--raw-logs` options ([#19794](https://github.com/docker/docker/pull/19794))
+ Docker, on Windows platform, now includes an ETW (Event Tracing in Windows) logging driver named `etwlogs` ([#19689](https://github.com/docker/docker/pull/19689))
* Journald log driver learned how to handle tags ([#19564](https://github.com/docker/docker/pull/19564))
+ The fluentd log driver learned the following options: `fluentd-address`, `fluentd-buffer-limit`, `fluentd-retry-wait`, `fluentd-max-retries` and `fluentd-async-connect` ([#19439](https://github.com/docker/docker/pull/19439))
+ Docker learned to send log to Google Cloud via the new `gcplogs` logging driver. ([#18766](https://github.com/docker/docker/pull/18766))
### Misc
+ When saving linked images together with `docker save` a subsequent `docker load` will correctly restore their parent/child relationship ([#21385](https://github.com/docker/docker/pull/c))
+ Support for building the Docker cli for OpenBSD was added ([#21325](https://github.com/docker/docker/pull/21325))
+ Labels can now be applied at network, volume and image creation ([#21270](https://github.com/docker/docker/pull/21270))
* The `dockremap` is now created as a system user ([#21266](https://github.com/docker/docker/pull/21266))
- Fix a few response body leaks ([#21258](https://github.com/docker/docker/pull/21258))
- Docker, when run as a service with systemd, will now properly manage its processes cgroups ([#20633](https://github.com/docker/docker/pull/20633))
* Docker info now reports the value of cgroup KernelMemory or emits a warning if it is not supported ([#20863](https://github.com/docker/docker/pull/20863))
* Docker info now also reports the cgroup driver in use ([#20388](https://github.com/docker/docker/pull/20388))
* Docker completion is now available on PowerShell ([#19894](https://github.com/docker/docker/pull/19894))
* `dockerinit` is no more ([#19490](https://github.com/docker/docker/pull/19490),[#19851](https://github.com/docker/docker/pull/19851))
+ Support for building Docker on arm64 was added ([#19013](https://github.com/docker/docker/pull/19013))
+ Experimental support for building docker.exe in a native Windows Docker installation ([#18348](https://github.com/docker/docker/pull/18348))
### Networking
- Fix panic if a node is forcibly removed from the cluster ([#21671](https://github.com/docker/docker/pull/21671))
- Fix "error creating vxlan interface" when starting a container in a Swarm cluster ([#21671](https://github.com/docker/docker/pull/21671))
* `docker network inspect` will now report all endpoints whether they have an active container or not ([#21160](https://github.com/docker/docker/pull/21160))
+ Experimental support for the MacVlan and IPVlan network drivers have been added ([#21122](https://github.com/docker/docker/pull/21122))
* Output of `docker network ls` is now sorted by network name ([#20383](https://github.com/docker/docker/pull/20383))
- Fix a bug where Docker would allow a network to be created with the reserved `default` name ([#19431](https://github.com/docker/docker/pull/19431))
* `docker network inspect` returns whether a network is internal or not ([#19357](https://github.com/docker/docker/pull/19357))
+ Control IPv6 via explicit option when creating a network (`docker network create --ipv6`). This shows up as a new `EnableIPv6` field in `docker network inspect` ([#17513](https://github.com/docker/docker/pull/17513))
* Support for AAAA Records (aka IPv6 Service Discovery) in embedded DNS Server ([#21396](https://github.com/docker/docker/pull/21396))
- Fix to not forward docker domain IPv6 queries to external servers ([#21396](https://github.com/docker/docker/pull/21396))
* Multiple A/AAAA records from embedded DNS Server for DNS Round robin ([#21019](https://github.com/docker/docker/pull/21019))
- Fix endpoint count inconsistency after an ungraceful dameon restart ([#21261](https://github.com/docker/docker/pull/21261))
- Move the ownership of exposed ports and port-mapping options from Endpoint to Sandbox ([#21019](https://github.com/docker/docker/pull/21019))
- Fixed a bug which prevents docker reload when host is configured with ipv6.disable=1 ([#21019](https://github.com/docker/docker/pull/21019))
- Added inbuilt nil IPAM driver ([#21019](https://github.com/docker/docker/pull/21019))
- Fixed bug in iptables.Exists() logic [#21019](https://github.com/docker/docker/pull/21019)
- Fixed a Veth interface leak when using overlay network ([#21019](https://github.com/docker/docker/pull/21019))
- Fixed a bug which prevents docker reload after a network delete during shutdown ([#20214](https://github.com/docker/docker/pull/20214))
- Make sure iptables chains are recreated on firewalld reload ([#20419](https://github.com/docker/docker/pull/20419))
- Allow to pass global datastore during config reload ([#20419](https://github.com/docker/docker/pull/20419))
- For anonymous containers use the alias name for IP to name mapping, ie:DNS PTR record ([#21019](https://github.com/docker/docker/pull/21019))
- Fix a panic when deleting an entry from /etc/hosts file ([#21019](https://github.com/docker/docker/pull/21019))
- Source the forwarded DNS queries from the container net namespace ([#21019](https://github.com/docker/docker/pull/21019))
- Fix to retain the network internal mode config for bridge networks on daemon reload ([#21780] (https://github.com/docker/docker/pull/21780))
- Fix to retain IPAM driver option configs on daemon reload ([#21914] (https://github.com/docker/docker/pull/21914))
### Plugins
- Fix a file descriptor leak that would occur every time plugins were enumerated ([#20686](https://github.com/docker/docker/pull/20686))
- Fix an issue where Authz plugin would corrupt the payload body when faced with a large amount of data ([#20602](https://github.com/docker/docker/pull/20602))
### Runtime
- Fix a panic that could occur when cleanup after a container started with invalid parameters ([#21716](https://github.com/docker/docker/pull/21716))
- Fix a race with event timers stopping early ([#21692](https://github.com/docker/docker/pull/21692))
- Fix race conditions in the layer store, potentially corrupting the map and crashing the process ([#21677](https://github.com/docker/docker/pull/21677))
- Un-deprecate auto-creation of host directories for mounts. This feature was marked deprecated in ([#21666](https://github.com/docker/docker/pull/21666))
Docker 1.9, but was decided to be too much of an backward-incompatible change, so it was decided to keep the feature.
+ It is now possible for containers to share the NET and IPC namespaces when `userns` is enabled ([#21383](https://github.com/docker/docker/pull/21383))
+ `docker inspect <image-id>` will now expose the rootfs layers ([#21370](https://github.com/docker/docker/pull/21370))
+ Docker Windows gained a minimal `top` implementation ([#21354](https://github.com/docker/docker/pull/21354))
* Docker learned to report the faulty exe when a container cannot be started due to its condition ([#21345](https://github.com/docker/docker/pull/21345))
* Docker with device mapper will now refuse to run if `udev sync` is not available ([#21097](https://github.com/docker/docker/pull/21097))
- Fix a bug where Docker would not validate the config file upon configuration reload ([#21089](https://github.com/docker/docker/pull/21089))
- Fix a hang that would happen on attach if initial start was to fail ([#21048](https://github.com/docker/docker/pull/21048))
- Fix an issue where registry service options in the daemon configuration file were not properly taken into account ([#21045](https://github.com/docker/docker/pull/21045))
- Fix a race between the exec and resize operations ([#21022](https://github.com/docker/docker/pull/21022))
- Fix an issue where nanoseconds were not correctly taken in account when filtering Docker events ([#21013](https://github.com/docker/docker/pull/21013))
- Fix the handling of Docker command when passed a 64 bytes id ([#21002](https://github.com/docker/docker/pull/21002))
* Docker will now return a `204` (i.e http.StatusNoContent) code when it successfully deleted a network ([#20977](https://github.com/docker/docker/pull/20977))
- Fix a bug where the daemon would wait indefinitely in case the process it was about to killed had already exited on its own ([#20967](https://github.com/docker/docker/pull/20967)
* The devmapper driver learned the `dm.min_free_space` option. If the mapped device free space reaches the passed value, new device creation will be prohibited. ([#20786](https://github.com/docker/docker/pull/20786))
+ Docker can now prevent processes in container to gain new privileges via the `--security-opt=no-new-privileges` flag ([#20727](https://github.com/docker/docker/pull/20727))
- Starting a container with the `--device` option will now correctly resolves symlinks ([#20684](https://github.com/docker/docker/pull/20684))
+ Docker now relies on [`containerd`](https://github.com/docker/containerd) and [`runc`](https://github.com/opencontainers/runc) to spawn containers. ([#20662](https://github.com/docker/docker/pull/20662))
- Fix docker configuration reloading to only alter value present in the given config file ([#20604](https://github.com/docker/docker/pull/20604))
+ Docker now allows setting a container hostname via the `--hostname` flag when `--net=host` ([#20177](https://github.com/docker/docker/pull/20177))
+ Docker now allows executing privileged container while running with `--userns-remap` if both `--privileged` and the new `--userns=host` flag are specified ([#20111](https://github.com/docker/docker/pull/20111))
- Fix Docker not cleaning up correctly old containers upon restarting after a crash ([#19679](https://github.com/docker/docker/pull/19679))
* Docker will now error out if it doesn't recognize a configuration key within the config file ([#19517](https://github.com/docker/docker/pull/19517))
- Fix container loading, on daemon startup, when they depends on a plugin running within a container ([#19500](https://github.com/docker/docker/pull/19500))
* `docker update` learned how to change a container restart policy ([#19116](https://github.com/docker/docker/pull/19116))
* `docker inspect` now also returns a new `State` field containing the container state in a human readable way (i.e. one of `created`, `restarting`, `running`, `paused`, `exited` or `dead`)([#18966](https://github.com/docker/docker/pull/18966))
+ Docker learned to limit the number of active pids (i.e. processes) within the container via the `pids-limit` flags. NOTE: This requires `CGROUP_PIDS=y` to be in the kernel configuration. ([#18697](https://github.com/docker/docker/pull/18697))
- `docker load` now has a `--quiet` option to suppress the load output ([#20078](https://github.com/docker/docker/pull/20078))
- Fix a bug in neighbor discovery for IPv6 peers ([#20842](https://github.com/docker/docker/pull/20842))
- Fix a panic during cleanup if a container was started with invalid options ([#21802](https://github.com/docker/docker/pull/21802))
- Fix a situation where a container cannot be stopped if the terminal is closed ([#21840](https://github.com/docker/docker/pull/21840))
### Security
* Object with the `pcp_pmcd_t` selinux type were given management access to `/var/lib/docker(/.*)?` ([#21370](https://github.com/docker/docker/pull/21370))
* `restart_syscall`, `copy_file_range`, `mlock2` joined the list of allowed calls in the default seccomp profile ([#21117](https://github.com/docker/docker/pull/21117), [#21262](https://github.com/docker/docker/pull/21262))
* `send`, `recv` and `x32` were added to the list of allowed syscalls and arch in the default seccomp profile ([#19432](https://github.com/docker/docker/pull/19432))
* Docker Content Trust now requests the server to perform snapshot signing ([#21046](https://github.com/docker/docker/pull/21046))
* Support for using YubiKeys for Content Trust signing has been moved out of experimental ([#21591](https://github.com/docker/docker/pull/21591))
### Volumes
* Output of `docker volume ls` is now sorted by volume name ([#20389](https://github.com/docker/docker/pull/20389))
* Local volumes can now accepts options similar to the unix `mount` tool ([#20262](https://github.com/docker/docker/pull/20262))
- Fix an issue where one letter directory name could not be used as source for volumes ([#21106](https://github.com/docker/docker/pull/21106))
+ `docker run -v` now accepts a new flag `nocopy`. This tell the runtime not to copy the container path content into the volume (which is the default behavior) ([#21223](https://github.com/docker/docker/pull/21223))
## 1.10.3 (2016-03-10)
### Runtime
- Fix Docker client exiting with an "Unrecognized input header" error [#20706](https://github.com/docker/docker/pull/20706)
- Fix Docker exiting if Exec is started with both `AttachStdin` and `Detach` [#20647](https://github.com/docker/docker/pull/20647)
### Distribution
- Fix a crash when pushing multiple images sharing the same layers to the same repository in parallel [#20831](https://github.com/docker/docker/pull/20831)
- Fix a panic when pushing images to a registry which uses a misconfigured token service [#21030](https://github.com/docker/docker/pull/21030)
### Plugin system
- Fix issue preventing volume plugins to start when SELinux is enabled [#20834](https://github.com/docker/docker/pull/20834)
- Prevent Docker from exiting if a volume plugin returns a null response for Get requests [#20682](https://github.com/docker/docker/pull/20682)
- Fix plugin system leaking file descriptors if a plugin has an error [#20680](https://github.com/docker/docker/pull/20680)
### Security
- Fix linux32 emulation to fail during docker build [#20672](https://github.com/docker/docker/pull/20672)
It was due to the `personality` syscall being blocked by the default seccomp profile.
- Fix Oracle XE 10g failing to start in a container [#20981](https://github.com/docker/docker/pull/20981)
It was due to the `ipc` syscall being blocked by the default seccomp profile.
- Fix user namespaces not working on Linux From Scratch [#20685](https://github.com/docker/docker/pull/20685)
- Fix issue preventing daemon to start if userns is enabled and the `subuid` or `subgid` files contain comments [#20725](https://github.com/docker/docker/pull/20725)
## 1.10.2 (2016-02-22)
### Runtime
- Prevent systemd from deleting containers' cgroups when its configuration is reloaded [#20518](https://github.com/docker/docker/pull/20518)
- Fix SELinux issues by disregarding `--read-only` when mounting `/dev/mqueue` [#20333](https://github.com/docker/docker/pull/20333)
- Fix chown permissions used during `docker cp` when userns is used [#20446](https://github.com/docker/docker/pull/20446)
- Fix configuration loading issue with all booleans defaulting to `true` [#20471](https://github.com/docker/docker/pull/20471)
- Fix occasional panic with `docker logs -f` [#20522](https://github.com/docker/docker/pull/20522)
### Distribution
- Keep layer reference if deletion failed to avoid a badly inconsistent state [#20513](https://github.com/docker/docker/pull/20513)
- Handle gracefully a corner case when canceling migration [#20372](https://github.com/docker/docker/pull/20372)
- Fix docker import on compressed data [#20367](https://github.com/docker/docker/pull/20367)
- Fix tar-split files corruption during migration that later cause docker push and docker save to fail [#20458](https://github.com/docker/docker/pull/20458)
### Networking
- Fix daemon crash if embedded DNS is sent garbage [#20510](https://github.com/docker/docker/pull/20510)
### Volumes
- Fix issue with multiple volume references with same name [#20381](https://github.com/docker/docker/pull/20381)
### Security
- Fix potential cache corruption and delegation conflict issues [#20523](https://github.com/docker/docker/pull/20523)
## 1.10.1 (2016-02-11)
### Runtime
* Do not stop daemon on migration hard failure [#20156](https://github.com/docker/docker/pull/20156)
- Fix various issues with migration to content-addressable images [#20058](https://github.com/docker/docker/pull/20058)
- Fix ZFS permission bug with user namespaces [#20045](https://github.com/docker/docker/pull/20045)
- Do not leak /dev/mqueue from the host to all containers, keep it container-specific [#19876](https://github.com/docker/docker/pull/19876) [#20133](https://github.com/docker/docker/pull/20133)
- Fix `docker ps --filter before=...` to not show stopped containers without providing `-a` flag [#20135](https://github.com/docker/docker/pull/20135)
### Security
- Fix issue preventing docker events to work properly with authorization plugin [#20002](https://github.com/docker/docker/pull/20002)
### Distribution
* Add additional verifications and prevent from uploading invalid data to registries [#20164](https://github.com/docker/docker/pull/20164)
- Fix regression preventing uppercase characters in image reference hostname [#20175](https://github.com/docker/docker/pull/20175)
### Networking
- Fix embedded DNS for user-defined networks in the presence of firewalld [#20060](https://github.com/docker/docker/pull/20060)
- Fix issue where removing a network during shutdown left Docker inoperable [#20181](https://github.com/docker/docker/issues/20181) [#20235](https://github.com/docker/docker/issues/20235)
- Embedded DNS is now able to return compressed results [#20181](https://github.com/docker/docker/issues/20181)
- Fix port-mapping issue with `userland-proxy=false` [#20181](https://github.com/docker/docker/issues/20181)
### Logging
- Fix bug where tcp+tls protocol would be rejected [#20109](https://github.com/docker/docker/pull/20109)
### Volumes
- Fix issue whereby older volume drivers would not receive volume options [#19983](https://github.com/docker/docker/pull/19983)
### Misc
- Remove TasksMax from Docker systemd service [#20167](https://github.com/docker/docker/pull/20167)
## 1.10.0 (2016-02-04)
**IMPORTANT**: Docker 1.10 uses a new content-addressable storage for images and layers.
A migration is performed the first time docker is run, and can take a significant amount of time depending on the number of images present.
Refer to this page on the wiki for more information: https://github.com/docker/docker/wiki/Engine-v1.10.0-content-addressability-migration
We also released a cool migration utility that enables you to perform the migration before updating to reduce downtime.
Engine 1.10 migrator can be found on Docker Hub: https://hub.docker.com/r/docker/v1.10-migrator/
### Runtime
+ New `docker update` command that allows updating resource constraints on running containers [#15078](https://github.com/docker/docker/pull/15078)
+ Add `--tmpfs` flag to `docker run` to create a tmpfs mount in a container [#13587](https://github.com/docker/docker/pull/13587)
+ Add `--format` flag to `docker images` command [#17692](https://github.com/docker/docker/pull/17692)
+ Allow to set daemon configuration in a file and hot-reload it with the `SIGHUP` signal [#18587](https://github.com/docker/docker/pull/18587)
+ Updated docker events to include more meta-data and event types [#18888](https://github.com/docker/docker/pull/18888)
+ Updated docker events to include more meta-data and event types [#18888](https://github.com/docker/docker/pull/18888)
This change is backward compatible in the API, but not on the CLI.
+ Add `--blkio-weight-device` flag to `docker run` [#13959](https://github.com/docker/docker/pull/13959)
+ Add `--device-read-bps` and `--device-write-bps` flags to `docker run` [#14466](https://github.com/docker/docker/pull/14466)
@@ -36,11 +291,8 @@ be found.
* Permit `OPTIONS` request against any url, thus fixing issue with CORS [#19569](https://github.com/docker/docker/pull/19569)
- Fix the `--quiet` flag on `docker build` to actually be quiet [#17428](https://github.com/docker/docker/pull/17428)
- Fix `docker images --filter dangling=false` to now show all non-dangling images [#19326](https://github.com/docker/docker/pull/19326)
- Fix `docker volumes ls --dangling=false` to now show all non-dangling volumes [#19671](https://github.com/docker/docker/pull/19671)
- Fix race condition causing autorestart turning off on restart [#17629](https://github.com/docker/docker/pull/17629)
- Recognize GPFS filesystems [#19216](https://github.com/docker/docker/pull/19216)
- Fix issues preventing volume drivers from being containerized [#19500](https://github.com/docker/docker/pull/19500)
- Do not remove named mountpoints on container removal [#19568](https://github.com/docker/docker/pull/19568)
- Fix obscure bug preventing to start containers [#19751](https://github.com/docker/docker/pull/19751)
- Forbid `exec` during container restart [#19722](https://github.com/docker/docker/pull/19722)
- devicemapper: Increasing `--storage-opt dm.basesize` will now increase the base device size on daemon restart [#19123](https://github.com/docker/docker/pull/19123)
@@ -51,17 +303,18 @@ be found.
+ Add support for custom seccomp profiles in `--security-opt` [#17989](https://github.com/docker/docker/pull/17989)
+ Add default seccomp profile [#18780](https://github.com/docker/docker/pull/18780)
+ Add `--authorization-plugin` flag to `daemon` to customize ACLs [#15365](https://github.com/docker/docker/pull/15365)
+ Docker Content Trust now supports the ability to read and write user delegations [#18887](https://github.com/docker/docker/pull/18887)
This is an optional, opt-in feature that requires the explicit use of the Notary command-line utility in order to be enabled.
+ Docker Content Trust now supports the ability to read and write user delegations [#18887](https://github.com/docker/docker/pull/18887)
This is an optional, opt-in feature that requires the explicit use of the Notary command-line utility in order to be enabled.
Enabling delegation support in a specific repository will break the ability of Docker 1.9 and 1.8 to pull from that repository, if content trust is enabled.
* Allow SELinux to run in a container when using the BTRFS storage driver [#16452](https://github.com/docker/docker/pull/16452)
### Distribution
* Use content-addressable storage for images and layers [#17924](https://github.com/docker/docker/pull/17924)
Note that a migration is performed the first time docker is run; it can take a significant amount of time depending on the number of images and containers present.
Images no longer depend on the parent chain but contain a list of layer references.
* Use content-addressable storage for images and layers [#17924](https://github.com/docker/docker/pull/17924)
Note that a migration is performed the first time docker is run; it can take a significant amount of time depending on the number of images and containers present.
Images no longer depend on the parent chain but contain a list of layer references.
`docker load`/`docker save` tarballs now also contain content-addressable image configurations.
For more information: https://github.com/docker/docker/wiki/Engine-v1.10.0-content-addressability-migration
* Add support for the new [manifest format ("schema2")](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md) [#18785](https://github.com/docker/docker/pull/18785)
* Lots of improvements for push and pull: performance++, retries on failed downloads, cancelling on client disconnect [#18353](https://github.com/docker/docker/pull/18353), [#18418](https://github.com/docker/docker/pull/18418), [#19109](https://github.com/docker/docker/pull/19109), [#18353](https://github.com/docker/docker/pull/18353)
* Limit v1 protocol fallbacks [#18590](https://github.com/docker/docker/pull/18590)
@@ -103,10 +356,13 @@ be found.
### Volumes
+ Add support to set the mount propagation mode for a volume [#17034](https://github.com/docker/docker/pull/17034)
* Add `ls` and `inspect` endpoints to volume plugin API [#16534](https://github.com/docker/docker/pull/16534)
Existing plugins need to make use of these new APIs to satisfy users' expectation
* Add `ls` and `inspect` endpoints to volume plugin API [#16534](https://github.com/docker/docker/pull/16534)
Existing plugins need to make use of these new APIs to satisfy users' expectation
For that, please use the new MIME type `application/vnd.docker.plugins.v1.2+json` [#19549](https://github.com/docker/docker/pull/19549)
- Fix data not being copied to named volumes [#19175](https://github.com/docker/docker/pull/19175)
- Fix issues preventing volume drivers from being containerized [#19500](https://github.com/docker/docker/pull/19500)
- Fix `docker volumes ls --dangling=false` to now show all non-dangling volumes [#19671](https://github.com/docker/docker/pull/19671)
- Do not remove named volumes on container removal [#19568](https://github.com/docker/docker/pull/19568)
- Allow external volume drivers to host anonymous volumes [#19190](https://github.com/docker/docker/pull/19190)
### Builder
@@ -1430,7 +1686,7 @@ With the ongoing changes to the networking and execution subsystems of docker te
+ Add -rm to docker run for removing a container on exit
- Remove error messages which are not actually errors
- Fix `docker rm` with volumes
- Fix some error cases where a HTTP body might not be closed
- Fix some error cases where an HTTP body might not be closed
- Fix panic with wrong dockercfg file
- Fix the attach behavior with -i
* Record termination time in state.
@@ -1764,7 +2020,7 @@ With the ongoing changes to the networking and execution subsystems of docker te
+ Containers can expose public UDP ports (eg, '-p 123/udp')
+ Optionally specify an exact public port (eg. '-p 80:4500')
* 'docker login' supports additional options
- Dont save a container`s hostname when committing an image.
- Don't save a container`s hostname when committing an image.
#### Registry

View File

@@ -152,8 +152,10 @@ However, there might be a way to implement that feature *on top of* Docker.
<a href="https://groups.google.com/forum/#!forum/docker-user" target="_blank">Docker-user</a>
is for people using Docker containers.
The <a href="https://groups.google.com/forum/#!forum/docker-dev" target="_blank">docker-dev</a>
group is for contributors and other people contributing to the Docker
project.
group is for contributors and other people contributing to the Docker project.
You can join them without a google account by sending an email to
<a href="mailto:docker-dev+subscribe@googlegroups.com">docker-dev+subscribe@googlegroups.com</a>.
After receiving the join-request message, you can simply reply to that to confirm the subscribtion.
</td>
</tr>
<tr>

View File

@@ -23,22 +23,30 @@
# the case. Therefore, you don't have to disable it anymore.
#
FROM ubuntu:trusty
FROM debian:jessie
# add zfs ppa
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys E871F18B51E0147C77796AC81196BA81F6B0FC61
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys E871F18B51E0147C77796AC81196BA81F6B0FC61 \
|| apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys E871F18B51E0147C77796AC81196BA81F6B0FC61
RUN echo deb http://ppa.launchpad.net/zfs-native/stable/ubuntu trusty main > /etc/apt/sources.list.d/zfs.list
# add llvm repo
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 6084F3CF814B57C1CF12EFD515CF4D18AF4F7421
RUN echo deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty main > /etc/apt/sources.list.d/llvm.list
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 6084F3CF814B57C1CF12EFD515CF4D18AF4F7421 \
|| apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 6084F3CF814B57C1CF12EFD515CF4D18AF4F7421
RUN echo deb http://llvm.org/apt/jessie/ llvm-toolchain-jessie-3.8 main > /etc/apt/sources.list.d/llvm.list
# allow replacing httpredir mirror
ARG APT_MIRROR=httpredir.debian.org
RUN sed -i s/httpredir.debian.org/$APT_MIRROR/g /etc/apt/sources.list
# Packaged dependencies
RUN apt-get update && apt-get install -y \
apparmor \
apt-utils \
aufs-tools \
automake \
bash-completion \
bsdmainutils \
btrfs-tools \
build-essential \
clang-3.8 \
@@ -56,17 +64,19 @@ RUN apt-get update && apt-get install -y \
libsystemd-journal-dev \
libtool \
mercurial \
net-tools \
pkg-config \
python-dev \
python-mock \
python-pip \
python-websocket \
s3cmd=1.1.0* \
ubuntu-zfs \
xfsprogs \
libzfs-dev \
tar \
zip \
--no-install-recommends \
&& pip install awscli==1.10.15 \
&& ln -snf /usr/bin/clang-3.8 /usr/local/bin/clang \
&& ln -snf /usr/bin/clang++-3.8 /usr/local/bin/clang++
@@ -86,11 +96,37 @@ RUN cd /usr/local/lvm2 \
&& make install_device-mapper
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# Configure the container for OSX cross compilation
ENV OSX_SDK MacOSX10.11.sdk
ENV OSX_CROSS_COMMIT 8aa9b71a394905e6c5f4b59e2b97b87a004658a4
RUN set -x \
&& export OSXCROSS_PATH="/osxcross" \
&& git clone https://github.com/tpoechtrager/osxcross.git $OSXCROSS_PATH \
&& ( cd $OSXCROSS_PATH && git checkout -q $OSX_CROSS_COMMIT) \
&& curl -sSL https://s3.dockerproject.org/darwin/v2/${OSX_SDK}.tar.xz -o "${OSXCROSS_PATH}/tarballs/${OSX_SDK}.tar.xz" \
&& UNATTENDED=yes OSX_VERSION_MIN=10.6 ${OSXCROSS_PATH}/build.sh
ENV PATH /osxcross/target/bin:$PATH
# install seccomp: the version shipped in trusty is too old
ENV SECCOMP_VERSION 2.3.0
RUN set -x \
&& export SECCOMP_PATH="$(mktemp -d)" \
&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
&& ( \
cd "$SECCOMP_PATH" \
&& ./configure --prefix=/usr/local \
&& make \
&& make install \
&& ldconfig \
) \
&& rm -rf "$SECCOMP_PATH"
# Install Go
# IMPORTANT: If the version of Go is updated, the Windows to Linux CI machines
# will need updating, to avoid errors. Ping #docker-maintainers on IRC
# will need updating, to avoid errors. Ping #docker-maintainers on IRC
# with a heads-up.
ENV GO_VERSION 1.5.3
ENV GO_VERSION 1.5.4
RUN curl -fsSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" \
| tar -xzC /usr/local
ENV PATH /go/bin:/usr/local/go/bin:$PATH
@@ -103,9 +139,6 @@ ENV DOCKER_CROSSPLATFORMS \
freebsd/amd64 freebsd/386 freebsd/arm \
windows/amd64 windows/386
# (set an explicit GOARM of 5 for maximum compatibility)
ENV GOARM 5
# This has been commented out and kept as reference because we don't support compiling with older Go anymore.
# ENV GOFMT_VERSION 1.3.3
# RUN curl -sSL https://storage.googleapis.com/golang/go${GOFMT_VERSION}.$(go env GOOS)-$(go env GOARCH).tar.gz | tar -C /go/bin -xz --strip-components=2 go/bin/gofmt
@@ -124,32 +157,6 @@ 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
# Configure the container for OSX cross compilation
ENV OSX_SDK MacOSX10.11.sdk
RUN set -x \
&& export OSXCROSS_PATH="/osxcross" \
&& git clone --depth 1 https://github.com/tpoechtrager/osxcross.git $OSXCROSS_PATH \
&& curl -sSL https://s3.dockerproject.org/darwin/${OSX_SDK}.tar.xz -o "${OSXCROSS_PATH}/tarballs/${OSX_SDK}.tar.xz" \
&& UNATTENDED=yes OSX_VERSION_MIN=10.6 ${OSXCROSS_PATH}/build.sh
ENV PATH /osxcross/target/bin:$PATH
# install seccomp
# this can be changed to the ubuntu package libseccomp-dev if dockerinit is removed,
# we need libseccomp.a (which the package does not provide) for dockerinit
ENV SECCOMP_VERSION 2.2.3
RUN set -x \
&& export SECCOMP_PATH="$(mktemp -d)" \
&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
&& ( \
cd "$SECCOMP_PATH" \
&& ./configure --prefix=/usr/local \
&& make \
&& make install \
&& ldconfig \
) \
&& rm -rf "$SECCOMP_PATH"
# Install two versions of the registry. The first is an older version that
# only supports schema1 manifests. The second is a newer version that supports
# both. This allows integration-cli tests to cover push/pull with both schema1
@@ -168,14 +175,15 @@ RUN set -x \
&& rm -rf "$GOPATH"
# Install notary server
ENV NOTARY_VERSION docker-v1.10-5
ENV NOTARY_VERSION docker-v1.11-3
RUN set -x \
&& export GO15VENDOREXPERIMENT=1 \
&& 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_VERSION") \
&& GOPATH="$GOPATH/src/github.com/docker/notary/Godeps/_workspace:$GOPATH" \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary-server github.com/docker/notary/cmd/notary-server \
&& GOPATH="$GOPATH/src/github.com/docker/notary/Godeps/_workspace:$GOPATH" \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary github.com/docker/notary/cmd/notary \
&& rm -rf "$GOPATH"
@@ -186,13 +194,6 @@ RUN git clone https://github.com/docker/docker-py.git /docker-py \
&& git checkout -q $DOCKER_PY_COMMIT \
&& pip install -r test-requirements.txt
# Setup s3cmd config
RUN { \
echo '[default]'; \
echo 'access_key=$AWS_ACCESS_KEY'; \
echo 'secret_key=$AWS_SECRET_KEY'; \
} > ~/.s3cfg
# Set user.email so crosbymichael's in-container merge commits go smoothly
RUN git config --global user.email 'docker-dummy@example.com'
@@ -202,7 +203,7 @@ RUN useradd --create-home --gid docker unprivilegeduser
VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
ENV DOCKER_BUILDTAGS apparmor pkcs11 seccomp selinux
# Let us use a .bashrc file
RUN ln -sfv $PWD/.bashrc ~/.bashrc
@@ -213,8 +214,9 @@ 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-v2.sh /go/src/github.com/docker/docker/contrib/
RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
buildpack-deps:jessie@sha256:25785f89240fbcdd8a74bdaf30dd5599a9523882c6dfc567f2e9ef7cf6f79db6 \
busybox:latest@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0 \
debian:jessie@sha256:24a900d1671b269d6640b4224e7b63801880d8e3cb2bcbfaa10a5dddcf4469ed \
debian:jessie@sha256:f968f10b4b523737e253a97eac59b0d1420b5c19b69928d35801a6373ffe330e \
hello-world:latest@sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
# see also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
@@ -237,13 +239,36 @@ RUN set -x \
&& rm -rf "$GOPATH"
# Build/install the tool for embedding resources in Windows binaries
ENV RSRC_VERSION v2
ENV RSRC_COMMIT ba14da1f827188454a4591717fff29999010887f
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone --depth 1 -b "$RSRC_VERSION" https://github.com/akavel/rsrc.git "$GOPATH/src/github.com/akavel/rsrc" \
&& git clone https://github.com/akavel/rsrc.git "$GOPATH/src/github.com/akavel/rsrc" \
&& (cd "$GOPATH/src/github.com/akavel/rsrc" && git checkout -q "$RSRC_COMMIT") \
&& go build -v -o /usr/local/bin/rsrc github.com/akavel/rsrc \
&& rm -rf "$GOPATH"
# Install runc
ENV RUNC_COMMIT e87436998478d222be209707503c27f6f91be0c5
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
&& cd "$GOPATH/src/github.com/opencontainers/runc" \
&& git checkout -q "$RUNC_COMMIT" \
&& make static BUILDTAGS="seccomp apparmor selinux" \
&& cp runc /usr/local/bin/docker-runc
# Install containerd
ENV CONTAINERD_COMMIT d2f03861c91edaafdcb3961461bf82ae83785ed7
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
&& cd "$GOPATH/src/github.com/docker/containerd" \
&& git checkout -q "$CONTAINERD_COMMIT" \
&& make static \
&& cp bin/containerd /usr/local/bin/docker-containerd \
&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
# Wrap all commands in the "docker-in-docker" script to allow nested containers
ENTRYPOINT ["hack/dind"]

209
Dockerfile.aarch64 Normal file
View File

@@ -0,0 +1,209 @@
# This file describes the standard way to build Docker on aarch64, using docker
#
# Usage:
#
# # Assemble the full dev environment. This is slow the first time.
# docker build -t docker -f Dockerfile.aarch64 .
#
# # Mount your source in an interactive container for quick testing:
# docker run -v `pwd`:/go/src/github.com/docker/docker --privileged -i -t docker bash
#
# # Run the test suite:
# docker run --privileged docker hack/make.sh test
#
# 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 aarch64/ubuntu:wily
# Packaged dependencies
RUN apt-get update && apt-get install -y \
apparmor \
aufs-tools \
automake \
bash-completion \
btrfs-tools \
build-essential \
createrepo \
curl \
dpkg-sig \
g++ \
gcc \
git \
iptables \
jq \
libapparmor-dev \
libc6-dev \
libcap-dev \
libsqlite3-dev \
libsystemd-dev \
mercurial \
net-tools \
parallel \
pkg-config \
python-dev \
python-mock \
python-pip \
python-websocket \
gccgo \
--no-install-recommends
# Install armhf loader to use armv6 binaries on armv8
RUN dpkg --add-architecture armhf \
&& apt-get update \
&& apt-get install -y libc6:armhf
# Get lvm2 source for compiling statically
ENV LVM2_VERSION 2.02.103
RUN mkdir -p /usr/local/lvm2 \
&& curl -fsSL "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${LVM2_VERSION}.tgz" \
| tar -xzC /usr/local/lvm2 --strip-components=1
# see https://git.fedorahosted.org/cgit/lvm2.git/refs/tags for release tags
# fix platform enablement in lvm2 to support aarch64 properly
RUN set -e \
&& for f in config.guess config.sub; do \
curl -fsSL -o "/usr/local/lvm2/autoconf/$f" "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=$f;hb=HEAD"; \
done
# "arch.c:78:2: error: #error the arch code needs to know about your machine type"
# Compile and install lvm2
RUN cd /usr/local/lvm2 \
&& ./configure \
--build="$(gcc -print-multiarch)" \
--enable-static_link \
&& make device-mapper \
&& make install_device-mapper
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# install seccomp: the version shipped in trusty is too old
ENV SECCOMP_VERSION 2.3.0
RUN set -x \
&& export SECCOMP_PATH="$(mktemp -d)" \
&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
&& ( \
cd "$SECCOMP_PATH" \
&& ./configure --prefix=/usr/local \
&& make \
&& make install \
&& ldconfig \
) \
&& rm -rf "$SECCOMP_PATH"
# Install Go
# We don't have official binary tarballs for ARM64, eigher for Go or bootstrap,
# so we use the official armv6 released binaries as a GOROOT_BOOTSTRAP, and
# build Go from source code.
ENV GO_VERSION 1.5.4
RUN mkdir /usr/src/go && curl -fsSL https://storage.googleapis.com/golang/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/src/go -xz --strip-components=1 \
&& cd /usr/src/go/src \
&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash
ENV PATH /usr/src/go/bin:$PATH
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
# Only install one version of the registry, because old version which support
# schema1 manifests is not working on ARM64, we should skip integration-cli
# tests for schema1 manifests on ARM64.
ENV REGISTRY_COMMIT 47a064d4195a9b56133891bbb13620c3ac83a827
RUN set -x \
&& 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_VERSION docker-v1.11-3
RUN set -x \
&& export GO15VENDOREXPERIMENT=1 \
&& 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_VERSION") \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary-server github.com/docker/notary/cmd/notary-server \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary github.com/docker/notary/cmd/notary \
&& rm -rf "$GOPATH"
# Get the "docker-py" source so we can run their integration tests
ENV DOCKER_PY_COMMIT e2878cbcc3a7eef99917adc1be252800b0e41ece
RUN git clone https://github.com/docker/docker-py.git /docker-py \
&& cd /docker-py \
&& git checkout -q $DOCKER_PY_COMMIT \
&& pip install -r test-requirements.txt
# Set user.email so crosbymichael's in-container merge commits go smoothly
RUN git config --global user.email 'docker-dummy@example.com'
# 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 pkcs11 seccomp selinux
# Let us use a .bashrc file
RUN ln -sfv $PWD/.bashrc ~/.bashrc
# Register Docker's bash completion.
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-v2.sh /go/src/github.com/docker/docker/contrib/
RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
aarch64/buildpack-deps:jessie@sha256:6aa1d6910791b7ac78265fd0798e5abd6cb3f27ae992f6f960f6c303ec9535f2 \
aarch64/busybox:latest@sha256:b23a6a37cf269dff6e46d2473b6e227afa42b037e6d23435f1d2bc40fc8c2828 \
aarch64/debian:jessie@sha256:4be74a41a7c70ebe887b634b11ffe516cf4fcd56864a54941e56bb49883c3170 \
aarch64/hello-world:latest@sha256:65a4a158587b307bb02db4de41b836addb0c35175bdc801367b1ac1ddeb9afda
# see also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
# Download man page generator
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone --depth 1 -b v1.0.4 https://github.com/cpuguy83/go-md2man.git "$GOPATH/src/github.com/cpuguy83/go-md2man" \
&& git clone --depth 1 -b v1.4 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 \
&& 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"
# Install runc
ENV RUNC_COMMIT e87436998478d222be209707503c27f6f91be0c5
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
&& cd "$GOPATH/src/github.com/opencontainers/runc" \
&& git checkout -q "$RUNC_COMMIT" \
&& make static BUILDTAGS="seccomp apparmor selinux" \
&& cp runc /usr/local/bin/docker-runc
# Install containerd
ENV CONTAINERD_COMMIT d2f03861c91edaafdcb3961461bf82ae83785ed7
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
&& cd "$GOPATH/src/github.com/docker/containerd" \
&& git checkout -q "$CONTAINERD_COMMIT" \
&& make static \
&& cp bin/containerd /usr/local/bin/docker-containerd \
&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
# 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

@@ -11,19 +11,11 @@
# # Run the test suite:
# docker run --privileged docker hack/make.sh test
#
# # Publish a release:
# docker run --privileged \
# -e AWS_S3_BUCKET=baz \
# -e AWS_ACCESS_KEY=foo \
# -e AWS_SECRET_KEY=bar \
# -e GPG_PASSPHRASE=gloubiboulga \
# docker hack/release.sh
#
# 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 armhf/ubuntu:trusty
FROM armhf/debian:jessie
# Packaged dependencies
RUN apt-get update && apt-get install -y \
@@ -73,14 +65,11 @@ RUN cd /usr/local/lvm2 \
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# Install Go
#ENV GO_VERSION 1.5.3
# TODO update GO_TOOLS_COMMIT below when this updates to 1.5+
ENV GO_VERSION 1.4.3
RUN curl -fsSL "https://github.com/hypriot/golang-armbuilds/releases/download/v${GO_VERSION}/go${GO_VERSION}.linux-armv7.tar.gz" \
# TODO Update to 1.5.4 once available, or build from source, as these builds
# are marked "end of life", see http://dave.cheney.net/unofficial-arm-tarballs
ENV GO_VERSION 1.5.3
RUN curl -fsSL "http://dave.cheney.net/paste/go${GO_VERSION}.linux-arm.tar.gz" \
| tar -xzC /usr/local
# temporarily using Hypriot's tarballs while we wait for official 1.6+
#RUN curl -fsSL https://golang.org/dl/go${GO_VERSION}.linux-arm6.tar.gz \
# | tar -xzC /usr/local
ENV PATH /go/bin:/usr/local/go/bin:$PATH
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
@@ -92,9 +81,7 @@ ENV GOARM 7
# ENV GOFMT_VERSION 1.3.3
# RUN curl -sSL https://storage.googleapis.com/golang/go${GOFMT_VERSION}.$(go env GOOS)-$(go env GOARCH).tar.gz | tar -C /go/bin -xz --strip-components=2 go/bin/gofmt
#ENV GO_TOOLS_COMMIT 823804e1ae08dbb14eb807afc7db9993bc9e3cc3
# TODO update this sha when we upgrade to Go 1.5+
ENV GO_TOOLS_COMMIT 069d2f3bcb68257b627205f0486d6cc69a231ff9
ENV GO_TOOLS_COMMIT 823804e1ae08dbb14eb807afc7db9993bc9e3cc3
# Grab Go's cover tool for dead-simple code coverage testing
# Grab Go's vet tool for examining go code to find suspicious constructs
# and help prevent errors that the compiler might not catch
@@ -103,17 +90,13 @@ RUN git clone https://github.com/golang/tools.git /go/src/golang.org/x/tools \
&& 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 32a87160691b3c96046c0c678fe57c5bef761456
# TODO update this sha when we upgrade to Go 1.5+
ENV GO_LINT_COMMIT f42f5c1c440621302702cb0741e9d2ca547ae80f
ENV GO_LINT_COMMIT 32a87160691b3c96046c0c678fe57c5bef761456
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
# install seccomp
# this can be changed to the ubuntu package libseccomp-dev if dockerinit is removed,
# we need libseccomp.a (which the package does not provide) for dockerinit
ENV SECCOMP_VERSION 2.2.3
# install seccomp: the version shipped in trusty is too old
ENV SECCOMP_VERSION 2.3.0
RUN set -x \
&& export SECCOMP_PATH="$(mktemp -d)" \
&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
@@ -132,7 +115,7 @@ RUN set -x \
# both. This allows integration-cli tests to cover push/pull with both schema1
# and schema2 manifests.
ENV REGISTRY_COMMIT_SCHEMA1 ec87e9b6971d831f0eff752ddb54fb64693e51cd
ENV REGISTRY_COMMIT a7ae88da459b98b481a245e5b1750134724ac67d
ENV REGISTRY_COMMIT cb08de17d74bef86ce6c5abe8b240e282f5750be
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone https://github.com/docker/distribution.git "$GOPATH/src/github.com/docker/distribution" \
@@ -145,14 +128,15 @@ RUN set -x \
&& rm -rf "$GOPATH"
# Install notary server
ENV NOTARY_VERSION docker-v1.10-5
ENV NOTARY_VERSION docker-v1.11-3
RUN set -x \
&& export GO15VENDOREXPERIMENT=1 \
&& 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_VERSION") \
&& GOPATH="$GOPATH/src/github.com/docker/notary/Godeps/_workspace:$GOPATH" \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary-server github.com/docker/notary/cmd/notary-server \
&& GOPATH="$GOPATH/src/github.com/docker/notary/Godeps/_workspace:$GOPATH" \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary github.com/docker/notary/cmd/notary \
&& rm -rf "$GOPATH"
@@ -172,7 +156,7 @@ RUN useradd --create-home --gid docker unprivilegeduser
VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
ENV DOCKER_BUILDTAGS apparmor pkcs11 seccomp selinux
# Let us use a .bashrc file
RUN ln -sfv $PWD/.bashrc ~/.bashrc
@@ -183,8 +167,9 @@ 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-v2.sh /go/src/github.com/docker/docker/contrib/
RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
armhf/buildpack-deps:jessie@sha256:ca6cce8e5bf5c952129889b5cc15cd6aa8d995d77e55e3749bbaadae50e476cb \
armhf/busybox:latest@sha256:d98a7343ac750ffe387e3d514f8521ba69846c216778919b01414b8617cfb3d4 \
armhf/debian:jessie@sha256:094687129906d2a43cb4e5946ea379b5619c9ca8e4e27b3ba28b40f237a4150c \
armhf/debian:jessie@sha256:4a2187483f04a84f9830910fe3581d69b3c985cc045d9f01d8e2f3795b28107b \
armhf/hello-world:latest@sha256:161dcecea0225975b2ad5f768058212c1e0d39e8211098666ffa1ac74cfb7791
# see also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
@@ -214,7 +199,28 @@ RUN set -x \
&& go build -v -o /usr/local/bin/rsrc github.com/akavel/rsrc \
&& rm -rf "$GOPATH"
# Wrap all commands in the "docker-in-docker" script to allow nested containers
# Install runc
ENV RUNC_COMMIT e87436998478d222be209707503c27f6f91be0c5
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
&& cd "$GOPATH/src/github.com/opencontainers/runc" \
&& git checkout -q "$RUNC_COMMIT" \
&& make static BUILDTAGS="seccomp apparmor selinux" \
&& cp runc /usr/local/bin/docker-runc
# Install containerd
ENV CONTAINERD_COMMIT d2f03861c91edaafdcb3961461bf82ae83785ed7
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
&& cd "$GOPATH/src/github.com/docker/containerd" \
&& git checkout -q "$CONTAINERD_COMMIT" \
&& make static \
&& cp bin/containerd /usr/local/bin/docker-containerd \
&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
ENTRYPOINT ["hack/dind"]
# Upload docker source

View File

@@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y \
libcap-dev \
libsqlite3-dev \
mercurial \
net-tools \
parallel \
python-dev \
python-mock \
@@ -41,10 +42,8 @@ RUN cd /usr/local/lvm2 \
&& make install_device-mapper
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# install seccomp
# this can be changed to the ubuntu package libseccomp-dev if dockerinit is removed,
# we need libseccomp.a (which the package does not provide) for dockerinit
ENV SECCOMP_VERSION v2.2.3
# install seccomp: the version shipped in jessie is too old
ENV SECCOMP_VERSION v2.3.0
RUN set -x \
&& export SECCOMP_PATH=$(mktemp -d) \
&& git clone https://github.com/seccomp/libseccomp.git "$SECCOMP_PATH" \
@@ -74,6 +73,28 @@ VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
# Install runc
ENV RUNC_COMMIT e87436998478d222be209707503c27f6f91be0c5
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
&& cd "$GOPATH/src/github.com/opencontainers/runc" \
&& git checkout -q "$RUNC_COMMIT" \
&& make static BUILDTAGS="seccomp apparmor selinux" \
&& cp runc /usr/local/bin/docker-runc
# Install containerd
ENV CONTAINERD_COMMIT d2f03861c91edaafdcb3961461bf82ae83785ed7
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
&& cd "$GOPATH/src/github.com/docker/containerd" \
&& git checkout -q "$CONTAINERD_COMMIT" \
&& make static \
&& cp bin/containerd /usr/local/bin/docker-containerd \
&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
# Wrap all commands in the "docker-in-docker" script to allow nested containers
ENTRYPOINT ["hack/dind"]

View File

@@ -11,14 +11,6 @@
# # Run the test suite:
# docker run --privileged docker hack/make.sh test
#
# # Publish a release:
# docker run --privileged \
# -e AWS_S3_BUCKET=baz \
# -e AWS_ACCESS_KEY=foo \
# -e AWS_SECRET_KEY=bar \
# -e GPG_PASSPHRASE=gloubiboulga \
# docker hack/release.sh
#
# Note: AppArmor used to mess with privileged mode, but this is no longer
# the case. Therefore, you don't have to disable it anymore.
#
@@ -82,15 +74,28 @@ RUN cd /usr/local/lvm2 \
# TODO install Go, using gccgo as GOROOT_BOOTSTRAP (Go 1.5+ supports ppc64le properly)
# possibly a ppc64le/golang image?
ENV PATH /go/bin:$PATH
## BUILD GOLANG
ENV GO_VERSION 1.5.4
ENV GO_DOWNLOAD_URL https://golang.org/dl/go${GO_VERSION}.src.tar.gz
ENV GO_DOWNLOAD_SHA256 002acabce7ddc140d0d55891f9d4fcfbdd806b9332fb8b110c91bc91afb0bc93
ENV GOROOT_BOOTSTRAP /usr/local
RUN curl -fsSL "$GO_DOWNLOAD_URL" -o golang.tar.gz \
&& echo "$GO_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
&& tar -C /usr/src -xzf golang.tar.gz \
&& rm golang.tar.gz \
&& cd /usr/src/go/src && ./make.bash 2>&1
ENV GOROOT_BOOTSTRAP /usr/src/
ENV PATH /usr/src/go/bin/:/go/bin:$PATH
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
# This has been commented out and kept as reference because we don't support compiling with older Go anymore.
# ENV GOFMT_VERSION 1.3.3
# RUN curl -sSL https://storage.googleapis.com/golang/go${GOFMT_VERSION}.$(go env GOOS)-$(go env GOARCH).tar.gz | tar -C /go/bin -xz --strip-components=2 go/bin/gofmt
# TODO update this sha when we upgrade to Go 1.5+
ENV GO_TOOLS_COMMIT 069d2f3bcb68257b627205f0486d6cc69a231ff9
ENV GO_TOOLS_COMMIT 823804e1ae08dbb14eb807afc7db9993bc9e3cc3
# Grab Go's cover tool for dead-simple code coverage testing
# Grab Go's vet tool for examining go code to find suspicious constructs
# and help prevent errors that the compiler might not catch
@@ -99,31 +104,40 @@ RUN git clone https://github.com/golang/tools.git /go/src/golang.org/x/tools \
&& 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
ENV GO_LINT_COMMIT 32a87160691b3c96046c0c678fe57c5bef761456
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
# Install registry
ENV REGISTRY_COMMIT ec87e9b6971d831f0eff752ddb54fb64693e51cd
# Install two versions of the registry. The first is an older version that
# only supports schema1 manifests. The second is a newer version that supports
# both. This allows integration-cli tests to cover push/pull with both schema1
# and schema2 manifests.
ENV REGISTRY_COMMIT_SCHEMA1 ec87e9b6971d831f0eff752ddb54fb64693e51cd
ENV REGISTRY_COMMIT 47a064d4195a9b56133891bbb13620c3ac83a827
RUN set -x \
&& 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 \
&& (cd "$GOPATH/src/github.com/docker/distribution" && git checkout -q "$REGISTRY_COMMIT_SCHEMA1") \
&& GOPATH="$GOPATH/src/github.com/docker/distribution/Godeps/_workspace:$GOPATH" \
go build -o /usr/local/bin/registry-v2-schema1 github.com/docker/distribution/cmd/registry \
&& rm -rf "$GOPATH"
# Install notary server
#ENV NOTARY_VERSION docker-v1.10-5
#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_VERSION") \
# && 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"
# Install notary and notary-server
ENV NOTARY_VERSION docker-v1.11-3
RUN set -x \
&& export GO15VENDOREXPERIMENT=1 \
&& 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_VERSION") \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary-server github.com/docker/notary/cmd/notary-server \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary github.com/docker/notary/cmd/notary \
&& rm -rf "$GOPATH"
# Get the "docker-py" source so we can run their integration tests
ENV DOCKER_PY_COMMIT e2878cbcc3a7eef99917adc1be252800b0e41ece
@@ -141,7 +155,7 @@ RUN useradd --create-home --gid docker unprivilegeduser
VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor selinux
ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux
# Let us use a .bashrc file
RUN ln -sfv $PWD/.bashrc ~/.bashrc
@@ -152,8 +166,9 @@ 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-v2.sh /go/src/github.com/docker/docker/contrib/
RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
ppc64le/buildpack-deps:jessie@sha256:902bfe4ef1389f94d143d64516dd50a2de75bca2e66d4a44b1d73f63ddf05dda \
ppc64le/busybox:latest@sha256:38bb82085248d5a3c24bd7a5dc146f2f2c191e189da0441f1c2ca560e3fc6f1b \
ppc64le/debian:jessie@sha256:74e06e6506b23cf8abd00250782838b2d19910824d8e7eab3d14dc1845ea10c6 \
ppc64le/debian:jessie@sha256:412845f51b6ab662afba71bc7a716e20fdb9b84f185d180d4c7504f8a75c4f91 \
ppc64le/hello-world:latest@sha256:186a40a9a02ca26df0b6c8acdfb8ac2f3ae6678996a838f977e57fac9d963974
# see also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
@@ -183,6 +198,28 @@ RUN set -x \
&& go build -v -o /usr/local/bin/rsrc github.com/akavel/rsrc \
&& rm -rf "$GOPATH"
# Install runc
ENV RUNC_COMMIT e87436998478d222be209707503c27f6f91be0c5
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
&& cd "$GOPATH/src/github.com/opencontainers/runc" \
&& git checkout -q "$RUNC_COMMIT" \
&& make static BUILDTAGS="apparmor selinux" \
&& cp runc /usr/local/bin/docker-runc
# Install containerd
ENV CONTAINERD_COMMIT d2f03861c91edaafdcb3961461bf82ae83785ed7
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
&& cd "$GOPATH/src/github.com/docker/containerd" \
&& git checkout -q "$CONTAINERD_COMMIT" \
&& make static \
&& cp bin/containerd /usr/local/bin/docker-containerd \
&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
# Wrap all commands in the "docker-in-docker" script to allow nested containers
ENTRYPOINT ["hack/dind"]

View File

@@ -11,14 +11,6 @@
# # Run the test suite:
# docker run --privileged docker hack/make.sh test
#
# # Publish a release:
# docker run --privileged \
# -e AWS_S3_BUCKET=baz \
# -e AWS_ACCESS_KEY=foo \
# -e AWS_SECRET_KEY=bar \
# -e GPG_PASSPHRASE=gloubiboulga \
# docker hack/release.sh
#
# Note: AppArmor used to mess with privileged mode, but this is no longer
# the case. Therefore, you don't have to disable it anymore.
#
@@ -116,12 +108,13 @@ RUN set -x \
&& rm -rf "$GOPATH"
# Install notary server
ENV NOTARY_VERSION docker-v1.10-5
ENV NOTARY_VERSION docker-v1.11-3
RUN set -x \
&& export GO15VENDOREXPERIMENT=1 \
&& 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_VERSION") \
&& GOPATH="$GOPATH/src/github.com/docker/notary/Godeps/_workspace:$GOPATH" \
&& GOPATH="$GOPATH/src/github.com/docker/notary/vendor:$GOPATH" \
go build -o /usr/local/bin/notary-server github.com/docker/notary/cmd/notary-server \
&& rm -rf "$GOPATH"
@@ -141,7 +134,7 @@ RUN useradd --create-home --gid docker unprivilegeduser
VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor selinux
ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux
# Let us use a .bashrc file
RUN ln -sfv $PWD/.bashrc ~/.bashrc
@@ -152,8 +145,9 @@ 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-v2.sh /go/src/github.com/docker/docker/contrib/
RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
s390x/buildpack-deps:jessie@sha256:4d1381224acaca6c4bfe3604de3af6972083a8558a99672cb6989c7541780099 \
s390x/busybox:latest@sha256:dd61522c983884a66ed72d60301925889028c6d2d5e0220a8fe1d9b4c6a4f01b \
s390x/debian:jessie@sha256:3c478e199f60c877c00306356267798d32727dc3cd38512cdb4b060659ea9d20 \
s390x/debian:jessie@sha256:b74c863400909eff3c5e196cac9bfd1f6333ce47aae6a38398d87d5875da170a \
s390x/hello-world:latest@sha256:780d80b3a7677c3788c0d5cd9168281320c8d4a6d9183892d8ee5cdd610f5699
# see also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
@@ -183,6 +177,28 @@ RUN set -x \
&& go build -v -o /usr/local/bin/rsrc github.com/akavel/rsrc \
&& rm -rf "$GOPATH"
# Install runc
ENV RUNC_COMMIT e87436998478d222be209707503c27f6f91be0c5
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
&& cd "$GOPATH/src/github.com/opencontainers/runc" \
&& git checkout -q "$RUNC_COMMIT" \
&& make static BUILDTAGS="seccomp apparmor selinux" \
&& cp runc /usr/local/bin/docker-runc
# Install containerd
ENV CONTAINERD_COMMIT d2f03861c91edaafdcb3961461bf82ae83785ed7
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
&& cd "$GOPATH/src/github.com/docker/containerd" \
&& git checkout -q "$CONTAINERD_COMMIT" \
&& make static \
&& cp bin/containerd /usr/local/bin/docker-containerd \
&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
# Wrap all commands in the "docker-in-docker" script to allow nested containers
ENTRYPOINT ["hack/dind"]

View File

@@ -29,6 +29,28 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
aufs-tools \
&& rm -rf /var/lib/apt/lists/*
# Install runc
ENV RUNC_COMMIT e87436998478d222be209707503c27f6f91be0c5
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc" \
&& cd "$GOPATH/src/github.com/opencontainers/runc" \
&& git checkout -q "$RUNC_COMMIT" \
&& make static BUILDTAGS="seccomp apparmor selinux" \
&& cp runc /usr/local/bin/docker-runc
# Install containerd
ENV CONTAINERD_COMMIT d2f03861c91edaafdcb3961461bf82ae83785ed7
RUN set -x \
&& export GOPATH="$(mktemp -d)" \
&& git clone git://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd" \
&& cd "$GOPATH/src/github.com/docker/containerd" \
&& git checkout -q "$CONTAINERD_COMMIT" \
&& make static \
&& cp bin/containerd /usr/local/bin/docker-containerd \
&& cp bin/containerd-shim /usr/local/bin/docker-containerd-shim \
&& cp bin/ctr /usr/local/bin/docker-containerd-ctr
ENV AUTO_GOPATH 1
WORKDIR /usr/src/docker
COPY . /usr/src/docker

101
Dockerfile.windows Executable file
View File

@@ -0,0 +1,101 @@
# This file describes the standard way to build Docker, using a docker container on Windows
# Server 2016
#
# Usage:
#
# # Assemble the full dev environment. This is slow the first time. Run this from
# # a directory containing the sources you are validating. For example from
# # c:\go\src\github.com\docker\docker
#
# docker build -t docker -f Dockerfile.windows .
#
#
# # Build docker in a container. Run the following from a Windows cmd command prommpt,
# # replacing c:\built with the directory you want the binaries to be placed on the
# # host system.
#
# docker run --rm -v "c:\built:c:\target" docker sh -c 'cd /c/go/src/github.com/docker/docker; hack/make.sh binary; ec=$?; if [ $ec -eq 0 ]; then robocopy /c/go/src/github.com/docker/docker/bundles/$(cat VERSION)/binary /c/target/binary; fi; exit $ec'
#
# Important notes:
# ---------------
#
# 'Start-Sleep' is a deliberate workaround for a current problem on containers in Windows
# Server 2016. It ensures that the network is up and available for when the command is
# network related. This bug is being tracked internally at Microsoft and exists in TP4.
# Generally sleep 1 or 2 is probably enough, but making it 5 to make the build file
# as bullet proof as possible. This isn't a big deal as this only runs the first time.
#
# The cygwin posix utilities from GIT aren't usable interactively as at January 2016. This
# is because they require a console window which isn't present in a container in Windows.
# See the example at the top of this file. Do NOT use -it in that docker run!!!
#
# Don't try to use a volume for passing the source through. The cygwin posix utilities will
# balk at reparse points. Again, see the example at the top of this file on how use a volume
# to get the built binary out of the container.
#
# The steps are minimised dramatically to improve performance (TP4 is slow on commit)
FROM windowsservercore
# Environment variable notes:
# - GO_VERSION must consistent with 'Dockerfile' used by Linux'.
# - FROM_DOCKERFILE is used for detection of building within a container.
ENV GO_VERSION=1.5.4 \
GIT_LOCATION=https://github.com/git-for-windows/git/releases/download/v2.7.2.windows.1/Git-2.7.2-64-bit.exe \
RSRC_COMMIT=ba14da1f827188454a4591717fff29999010887f \
GOPATH=C:/go;C:/go/src/github.com/docker/docker/vendor \
FROM_DOCKERFILE=1
WORKDIR c:/
# Everything downloaded/installed in one go (better performance, esp on TP4)
RUN \
setx /M Path "c:\git\cmd;c:\git\bin;c:\git\usr\bin;%Path%;c:\gcc\bin;c:\go\bin" && \
setx GOROOT "c:\go" && \
powershell -command \
$ErrorActionPreference = 'Stop'; \
Start-Sleep -Seconds 5; \
Function Download-File([string] $source, [string] $target) { \
$wc = New-Object net.webclient; $wc.Downloadfile($source, $target) \
} \
\
Write-Host INFO: Downloading git...; \
Download-File %GIT_LOCATION% gitsetup.exe; \
\
Write-Host INFO: Downloading go...; \
Download-File https://storage.googleapis.com/golang/go%GO_VERSION%.windows-amd64.msi go.msi; \
\
Write-Host INFO: Downloading compiler 1 of 3...; \
Download-File https://raw.githubusercontent.com/jhowardmsft/docker-tdmgcc/master/gcc.zip gcc.zip; \
\
Write-Host INFO: Downloading compiler 2 of 3...; \
Download-File https://raw.githubusercontent.com/jhowardmsft/docker-tdmgcc/master/runtime.zip runtime.zip; \
\
Write-Host INFO: Downloading compiler 3 of 3...; \
Download-File https://raw.githubusercontent.com/jhowardmsft/docker-tdmgcc/master/binutils.zip binutils.zip; \
\
Write-Host INFO: Installing git...; \
Start-Process gitsetup.exe -ArgumentList '/VERYSILENT /SUPPRESSMSGBOXES /CLOSEAPPLICATIONS /DIR=c:\git\' -Wait; \
\
Write-Host INFO: Installing go..."; \
Start-Process msiexec -ArgumentList '-i go.msi -quiet' -Wait; \
\
Write-Host INFO: Unzipping compiler...; \
c:\git\usr\bin\unzip.exe -q -o gcc.zip -d /c/gcc; \
c:\git\usr\bin\unzip.exe -q -o runtime.zip -d /c/gcc; \
c:\git\usr\bin\unzip.exe -q -o binutils.zip -d /c/gcc"; \
\
Write-Host INFO: Removing interim files; \
Remove-Item *.zip; \
Remove-Item go.msi; \
Remove-Item gitsetup.exe; \
\
Write-Host INFO: Cloning and installing RSRC; \
c:\git\bin\git.exe clone https://github.com/akavel/rsrc.git c:\go\src\github.com\akavel\rsrc; \
cd \go\src\github.com\akavel\rsrc; c:\git\bin\git.exe checkout -q %RSRC_COMMIT%; c:\go\bin\go.exe install -v; \
\
Write-Host INFO: Completed
# Prepare for building
COPY . /go/src/github.com/docker/docker

View File

@@ -26,6 +26,7 @@
# the release process is clear and up-to-date.
people = [
"aaronlehmann",
"calavera",
"coolljt0725",
"cpuguy83",
@@ -33,6 +34,7 @@
"duglin",
"estesp",
"icecrime",
"jhowardmsft",
"jfrazelle",
"lk4d4",
"mhbauer",
@@ -69,6 +71,7 @@
# - close an issue or pull request when it's inappropriate or off-topic
people = [
"programmerq",
"thajeztah"
]
@@ -79,7 +82,7 @@
# Thank you!
people = [
# As a maintainer, Erik was responsible for the "builder", and
# As a maintainer, Erik was responsible for the "builder", and
# started the first designs for the new networking model in
# Docker. Erik is now working on all kinds of plugins for Docker
# (https://github.com/contiv) and various open source projects
@@ -111,6 +114,11 @@
# ADD YOURSELF HERE IN ALPHABETICAL ORDER
[people.aaronlehmann]
Name = "Aaron Lehmann"
Email = "aaron.lehmann@docker.com"
GitHub = "aaronlehmann"
[people.calavera]
Name = "David Calavera"
Email = "david.calavera@gmail.com"
@@ -156,9 +164,14 @@
Email = "james@lovedthanlost.net"
GitHub = "jamtur01"
[people.jhowardmsft]
Name = "John Howard"
Email = "jhoward@microsoft.com"
GitHub = "jhowardmsft"
[people.jfrazelle]
Name = "Jessie Frazelle"
Email = "j@docker.com"
Email = "jess@linux.com"
GitHub = "jfrazelle"
[people.lk4d4]
@@ -176,6 +189,11 @@
Email = "mary.anthony@docker.com"
GitHub = "moxiegirl"
[people.programmerq]
Name = "Jeff Anderson"
Email = "jeff@docker.com"
GitHub = "programmerq"
[people.runcom]
Name = "Antonio Murdaca"
Email = "runcom@redhat.com"
@@ -196,11 +214,6 @@
Email = "github@gone.nl"
GitHub = "thaJeztah"
[people.theadactyl]
Name = "Thea Lamkin"
Email = "thea@docker.com"
GitHub = "theadactyl"
[people.tianon]
Name = "Tianon Gravi"
Email = "admwiggin@gmail.com"

View File

@@ -1,38 +1,22 @@
.PHONY: all binary build cross default docs docs-build docs-shell shell test test-docker-py test-integration-cli test-unit validate
# get OS/Arch of docker engine
DOCKER_OSARCH := $(shell bash -c 'source hack/make/.detect-daemon-osarch && echo $${DOCKER_ENGINE_OSARCH:+$$DOCKER_CLIENT_OSARCH}')
# default for linux/amd64 and others
DOCKERFILE := Dockerfile
# switch to different Dockerfile for linux/arm
ifeq ($(DOCKER_OSARCH), linux/arm)
DOCKERFILE := Dockerfile.armhf
else
ifeq ($(DOCKER_OSARCH), linux/arm64)
# TODO .arm64
DOCKERFILE := Dockerfile.armhf
else
ifeq ($(DOCKER_OSARCH), linux/ppc64le)
DOCKERFILE := Dockerfile.ppc64le
else
ifeq ($(DOCKER_OSARCH), linux/s390x)
DOCKERFILE := Dockerfile.s390x
endif
endif
endif
endif
export DOCKERFILE
DOCKER_OSARCH := $(shell bash -c 'source hack/make/.detect-daemon-osarch && echo $${DOCKER_ENGINE_OSARCH:-$$DOCKER_CLIENT_OSARCH}')
DOCKERFILE := $(shell bash -c 'source hack/make/.detect-daemon-osarch && echo $${DOCKERFILE}')
# env vars passed through directly to Docker's build scripts
# to allow things like `make DOCKER_CLIENTONLY=1 binary` easily
# `docs/sources/contributing/devenvironment.md ` and `project/PACKAGERS.md` have some limited documentation of some of these
DOCKER_ENVS := \
-e BUILDFLAGS \
-e KEEPBUNDLE \
-e DOCKER_BUILD_GOGC \
-e DOCKER_BUILD_PKGS \
-e DOCKER_CLIENTONLY \
-e DOCKER_DEBUG \
-e DOCKER_EXPERIMENTAL \
-e DOCKERFILE \
-e DOCKER_GRAPHDRIVER \
-e DOCKER_INCREMENTAL_BINARY \
-e DOCKER_REMAP_ROOT \
-e DOCKER_STORAGE_OPTS \
-e DOCKER_USERLANDPROXY \
@@ -47,6 +31,10 @@ 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)")
# This allows the test suite to be able to run without worrying about the underlying fs used by the container running the daemon (e.g. aufs-on-aufs), so long as the host running the container is running a supported fs.
# The volume will be cleaned up when the container is removed due to `--rm`.
# Note that `BIND_DIR` will already be set to `bundles` if `DOCKER_HOST` is not set (see above BIND_DIR line), in such case this will do nothing since `DOCKER_MOUNT` will already be set.
DOCKER_MOUNT := $(if $(DOCKER_MOUNT),$(DOCKER_MOUNT),-v "/go/src/github.com/docker/docker/bundles")
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
DOCKER_IMAGE := docker-dev$(if $(GIT_BRANCH),:$(GIT_BRANCH))
@@ -73,7 +61,7 @@ binary: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary
build: bundles
docker build -t "$(DOCKER_IMAGE)" -f "$(DOCKERFILE)" .
docker build ${DOCKER_BUILD_ARGS} -t "$(DOCKER_IMAGE)" -f "$(DOCKERFILE)" .
bundles:
mkdir bundles
@@ -81,12 +69,21 @@ bundles:
cross: build
$(DOCKER_RUN_DOCKER) hack/make.sh dynbinary binary cross
win: build
$(DOCKER_RUN_DOCKER) hack/make.sh win
tgz: build
$(DOCKER_RUN_DOCKER) hack/make.sh dynbinary binary cross tgz
deb: build
$(DOCKER_RUN_DOCKER) hack/make.sh dynbinary build-deb
docs:
$(MAKE) -C docs docs
gccgo: build
$(DOCKER_RUN_DOCKER) hack/make.sh gccgo
rpm: build
$(DOCKER_RUN_DOCKER) hack/make.sh dynbinary build-rpm
@@ -106,4 +103,4 @@ test-unit: build
$(DOCKER_RUN_DOCKER) hack/make.sh test-unit
validate: build
$(DOCKER_RUN_DOCKER) hack/make.sh validate-dco validate-gofmt validate-pkg validate-lint validate-test validate-toml validate-vet validate-vendor
$(DOCKER_RUN_DOCKER) hack/make.sh validate-dco validate-default-seccomp validate-gofmt validate-pkg validate-lint validate-test validate-toml validate-vet validate-vendor

View File

@@ -216,7 +216,7 @@ We are always open to suggestions on process improvements, and are always lookin
<td>Internet&nbsp;Relay&nbsp;Chat&nbsp;(IRC)</td>
<td>
<p>
IRC a direct line to our most knowledgeable Docker users; we have
IRC is a direct line to our most knowledgeable Docker users; we have
both the <code>#docker</code> and <code>#docker-dev</code> group on
<strong>irc.freenode.net</strong>.
IRC is a rich chat protocol but it can overwhelm new users. You can search
@@ -234,6 +234,8 @@ We are always open to suggestions on process improvements, and are always lookin
The <a href="https://groups.google.com/forum/#!forum/docker-dev" target="_blank">docker-dev</a>
group is for contributors and other people contributing to the Docker
project.
You can join them without an google account by sending an email to e.g. "docker-user+subscribe@googlegroups.com".
After receiving the join-request message, you can simply reply to that to confirm the subscribtion.
</td>
</tr>
<tr>

View File

@@ -33,97 +33,58 @@ won't be accepting pull requests adding or removing items from this file.
# 1. Features and refactoring
## 1.1 Security
## 1.1 Runtime improvements
Security is a top objective for the Docker Engine. The most notable items we intend to provide in
the near future are:
We recently introduced [`runC`](https://runc.io) as a standalone low-level tool for container
execution. The initial goal was to integrate runC as a replacement in the Engine for the traditional
default libcontainer `execdriver`, but the Engine internals were not ready for this.
- 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)
As runC continued evolving, and the OCI specification along with it, we created
[`containerd`](https://containerd.tools/), a daemon to control and monitor multiple `runC`. This is
the new target for Engine integration, as it can entirely replace the whole `execdriver`
architecture, and container monitoring along with it.
## 1.2 Plumbing project
Docker Engine will rely on a long-running `containerd` companion daemon for all container execution
related operations. This could open the door in the future for Engine restarts without interrupting
running containers.
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.
## 1.2 Plugins improvements
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.
Docker Engine 1.7.0 introduced plugin support, initially for the use cases of volumes and networks
extensions. The plugin infrastructure was kept minimal as we were collecting use cases and real
world feedback before optimizing for any particular workflow.
The architectural details are still being worked on, but one thing we know for sure is that we need
to technically decouple the pieces.
In the future, we'd like plugins to become first class citizens, and encourage an ecosystem of
plugins. This implies in particular making it trivially easy to distribute plugins as containers
through any Registry instance, as well as solving the commonly heard pain points of plugins needing
to be treated as somewhat special (being active at all time, started before any other user
containers, and not as easily dismissed).
### 1.2.1 Runtime
## 1.3 Internal decoupling
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.
A lot of work has been done in trying to decouple the Docker Engine's internals. In particular, the
API implementation has been refactored and ongoing work is happening to move the code to a separate
repository ([`docker/engine-api`](https://github.com/docker/engine-api)), and the Builder side of
the daemon is now [fully independent](https://github.com/docker/docker/tree/master/builder) while
still residing in the same repository.
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.
We are exploring ways to go further with that decoupling, capitalizing on the work introduced by the
runtime renovation and plugins improvement efforts. Indeed, the combination of `containerd` support
with the concept of "special" containers opens the door for bootstrapping more Engine internals
using the same facilities.
### 1.2.2 Builder
## 1.4 Cluster capable Engine
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.
The community has been pushing for a more cluster capable Docker Engine, and a huge effort was spent
adding features such as multihost networking, and node discovery down at the Engine level. Yet, the
Engine is currently incapable of taking scheduling decisions alone, and continues relying on Swarm
for that.
### 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.
We plan to complete this effort and make Engine fully cluster capable. Multiple instances of the
Docker Engine being already capable of discovering each other and establish overlay networking for
their container to communicate, the next step is for a given Engine to gain ability to dispatch work
to another node in the cluster. This will be introduced in a backward compatible way, such that a
`docker run` invocation on a particular node remains fully deterministic.
# 2 Frozen features
@@ -139,45 +100,41 @@ The Dockerfile syntax as we know it is simple, and has proven successful in supp
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.
- 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.
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.
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:
Currently, only the following commands cause interaction with a remote registry:
- push
- pull
- run
- build
- search
- login
- 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.
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.10.0-rc3
1.11.0

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"io"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -24,7 +26,7 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
cmd.ParseFlags(args, true)
c, err := cli.client.ContainerInspect(cmd.Arg(0))
c, err := cli.client.ContainerInspect(context.Background(), cmd.Arg(0))
if err != nil {
return err
}
@@ -41,12 +43,6 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
return err
}
if c.Config.Tty && cli.isTerminalOut {
if err := cli.monitorTtySize(cmd.Arg(0), false); err != nil {
logrus.Debugf("Error monitoring TTY size: %s", err)
}
}
if *detachKeys != "" {
cli.configFile.DetachKeys = *detachKeys
}
@@ -70,7 +66,7 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
defer signal.StopCatch(sigc)
}
resp, err := cli.client.ContainerAttach(options)
resp, err := cli.client.ContainerAttach(context.Background(), options)
if err != nil {
return err
}
@@ -82,6 +78,21 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
defer cli.restoreTerminal(in)
}
if c.Config.Tty && cli.isTerminalOut {
height, width := cli.getTtySize()
// To handle the case where a user repeatedly attaches/detaches without resizing their
// terminal, the only way to get the shell prompt to display for attaches 2+ is to artificially
// resize it, then go back to normal. Without this, every attach after the first will
// require the user to manually resize or hit enter.
cli.resizeTtyTo(cmd.Arg(0), height+1, width+1, false)
// After the above resizing occurs, the call to monitorTtySize below will handle resetting back
// to the actual size.
if err := cli.monitorTtySize(cmd.Arg(0), false); err != nil {
logrus.Debugf("Error monitoring TTY size: %s", err)
}
}
if err := cli.holdHijackedConnection(c.Config.Tty, in, cli.out, cli.err, resp); err != nil {
return err
}

View File

@@ -6,23 +6,20 @@ import (
"bytes"
"fmt"
"io"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
"regexp"
"runtime"
"strings"
"golang.org/x/net/context"
"github.com/docker/docker/api"
"github.com/docker/docker/builder"
"github.com/docker/docker/builder/dockerignore"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/fileutils"
"github.com/docker/docker/pkg/gitutils"
"github.com/docker/docker/pkg/httputils"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/progress"
@@ -63,7 +60,10 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
flCgroupParent := cmd.String([]string{"-cgroup-parent"}, "", "Optional parent cgroup for the container")
flBuildArg := opts.NewListOpts(runconfigopts.ValidateEnv)
cmd.Var(&flBuildArg, []string{"-build-arg"}, "Set build-time variables")
isolation := cmd.String([]string{"-isolation"}, "", "Container isolation level")
isolation := cmd.String([]string{"-isolation"}, "", "Container isolation technology")
flLabels := opts.NewListOpts(nil)
cmd.Var(&flLabels, []string{"-label"}, "Set metadata for an image")
ulimits := make(map[string]*units.Ulimit)
flUlimits := runconfigopts.NewUlimitOpt(&ulimits)
@@ -77,9 +77,8 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
cmd.ParseFlags(args, true)
var (
context io.ReadCloser
isRemote bool
err error
ctx io.ReadCloser
err error
)
specifiedContext := cmd.Arg(0)
@@ -101,13 +100,13 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
switch {
case specifiedContext == "-":
context, relDockerfile, err = getContextFromReader(cli.in, *dockerfileName)
ctx, relDockerfile, err = builder.GetContextFromReader(cli.in, *dockerfileName)
case urlutil.IsGitURL(specifiedContext):
tempDir, relDockerfile, err = getContextFromGitURL(specifiedContext, *dockerfileName)
tempDir, relDockerfile, err = builder.GetContextFromGitURL(specifiedContext, *dockerfileName)
case urlutil.IsURL(specifiedContext):
context, relDockerfile, err = getContextFromURL(progBuff, specifiedContext, *dockerfileName)
ctx, relDockerfile, err = builder.GetContextFromURL(progBuff, specifiedContext, *dockerfileName)
default:
contextDir, relDockerfile, err = getContextFromLocalDir(specifiedContext, *dockerfileName)
contextDir, relDockerfile, err = builder.GetContextFromLocalDir(specifiedContext, *dockerfileName)
}
if err != nil {
@@ -122,7 +121,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
contextDir = tempDir
}
if context == nil {
if ctx == nil {
// And canonicalize dockerfile name to a platform-independent one
relDockerfile, err = archive.CanonicalTarNameForPath(relDockerfile)
if err != nil {
@@ -142,7 +141,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
}
}
if err := validateContextDirectory(contextDir, excludes); err != nil {
if err := builder.ValidateContextDirectory(contextDir, excludes); err != nil {
return fmt.Errorf("Error checking context: '%s'.", err)
}
@@ -160,7 +159,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
includes = append(includes, ".dockerignore", relDockerfile)
}
context, err = archive.TarWithOptions(contextDir, &archive.TarOptions{
ctx, err = archive.TarWithOptions(contextDir, &archive.TarOptions{
Compression: archive.Uncompressed,
ExcludePatterns: excludes,
IncludeFiles: includes,
@@ -174,13 +173,13 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
if isTrusted() {
// Wrap the tar archive to replace the Dockerfile entry with the rewritten
// Dockerfile which uses trusted pulls.
context = replaceDockerfileTarWrapper(context, relDockerfile, cli.trustedReference, &resolvedTags)
ctx = replaceDockerfileTarWrapper(ctx, relDockerfile, cli.trustedReference, &resolvedTags)
}
// Setup an upload progress bar
progressOutput := streamformatter.NewStreamFormatter().NewProgressOutput(progBuff, true)
var body io.Reader = progress.NewProgressReader(context, progressOutput, 0, "", "Sending build context to Docker daemon")
var body io.Reader = progress.NewProgressReader(ctx, progressOutput, 0, "", "Sending build context to Docker daemon")
var memory int64
if *flMemoryString != "" {
@@ -212,23 +211,17 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
}
}
var remoteContext string
if isRemote {
remoteContext = cmd.Arg(0)
}
options := types.ImageBuildOptions{
Context: body,
Memory: memory,
MemorySwap: memorySwap,
Tags: flTags.GetAll(),
SuppressOutput: *suppressOutput,
RemoteContext: remoteContext,
NoCache: *noCache,
Remove: *rm,
ForceRemove: *forceRm,
PullParent: *pull,
IsolationLevel: container.IsolationLevel(*isolation),
Isolation: container.Isolation(*isolation),
CPUSetCPUs: *flCPUSetCpus,
CPUSetMems: *flCPUSetMems,
CPUShares: *flCPUShares,
@@ -239,13 +232,15 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
ShmSize: shmSize,
Ulimits: flUlimits.GetList(),
BuildArgs: runconfigopts.ConvertKVStringsToMap(flBuildArg.GetAll()),
AuthConfigs: cli.configFile.AuthConfigs,
AuthConfigs: cli.retrieveAuthConfigs(),
Labels: runconfigopts.ConvertKVStringsToMap(flLabels.GetAll()),
}
response, err := cli.client.ImageBuild(options)
response, err := cli.client.ImageBuild(context.Background(), options)
if err != nil {
return err
}
defer response.Body.Close()
err = jsonmessage.DisplayJSONMessagesStream(response.Body, buildBuff, cli.outFd, cli.isTerminalOut, nil)
if err != nil {
@@ -286,54 +281,6 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
return nil
}
// validateContextDirectory checks if all the contents of the directory
// can be read and returns an error if some files can't be read
// symlinks which point to non-existing files don't trigger an error
func validateContextDirectory(srcPath string, excludes []string) error {
contextRoot, err := getContextRoot(srcPath)
if err != nil {
return err
}
return filepath.Walk(contextRoot, func(filePath string, f os.FileInfo, err error) error {
// skip this directory/file if it's not in the path, it won't get added to the context
if relFilePath, err := filepath.Rel(contextRoot, filePath); err != nil {
return err
} else if skip, err := fileutils.Matches(relFilePath, excludes); err != nil {
return err
} else if skip {
if f.IsDir() {
return filepath.SkipDir
}
return nil
}
if err != nil {
if os.IsPermission(err) {
return fmt.Errorf("can't stat '%s'", filePath)
}
if os.IsNotExist(err) {
return nil
}
return err
}
// skip checking if symlinks point to non-existing files, such symlinks can be useful
// also skip named pipes, because they hanging on open
if f.Mode()&(os.ModeSymlink|os.ModeNamedPipe) != 0 {
return nil
}
if !f.IsDir() {
currentFile, err := os.Open(filePath)
if err != nil && os.IsPermission(err) {
return fmt.Errorf("no permission to read from '%s'", filePath)
}
currentFile.Close()
}
return nil
})
}
// validateTag checks if the given image name can be resolved.
func validateTag(rawRepo string) (string, error) {
_, err := reference.ParseNamed(rawRepo)
@@ -344,213 +291,6 @@ func validateTag(rawRepo string) (string, error) {
return rawRepo, 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. Returns a tar archive used as a context and a
// path to the Dockerfile inside the tar.
func getContextFromReader(r io.ReadCloser, dockerfileName string) (out io.ReadCloser, relDockerfile string, err error) {
buf := bufio.NewReader(r)
magic, err := buf.Peek(archive.HeaderSize)
if err != nil && err != io.EOF {
return nil, "", fmt.Errorf("failed to peek context header from STDIN: %v", err)
}
if archive.IsArchive(magic) {
return ioutils.NewReadCloserWrapper(buf, func() error { return r.Close() }), dockerfileName, nil
}
// Input should be read as a Dockerfile.
tmpDir, err := ioutil.TempDir("", "docker-build-context-")
if err != nil {
return nil, "", fmt.Errorf("unbale to create temporary context directory: %v", err)
}
f, err := os.Create(filepath.Join(tmpDir, api.DefaultDockerfileName))
if err != nil {
return nil, "", err
}
_, err = io.Copy(f, buf)
if err != nil {
f.Close()
return nil, "", err
}
if err := f.Close(); err != nil {
return nil, "", err
}
if err := r.Close(); err != nil {
return nil, "", err
}
tar, err := archive.Tar(tmpDir, archive.Uncompressed)
if err != nil {
return nil, "", err
}
return ioutils.NewReadCloserWrapper(tar, func() error {
err := tar.Close()
os.RemoveAll(tmpDir)
return err
}), api.DefaultDockerfileName, nil
}
// 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 _, err := exec.LookPath("git"); err != nil {
return "", "", fmt.Errorf("unable to find 'git': %v", err)
}
if absContextDir, err = gitutils.Clone(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 tar archive.
// Returns the tar archive used for the context and a path of the
// dockerfile inside the tar.
func getContextFromURL(out io.Writer, remoteURL, dockerfileName string) (io.ReadCloser, string, error) {
response, err := httputils.Download(remoteURL)
if err != nil {
return nil, "", fmt.Errorf("unable to download remote context %s: %v", remoteURL, err)
}
progressOutput := streamformatter.NewStreamFormatter().NewProgressOutput(out, true)
// Pass the response body through a progress reader.
progReader := progress.NewProgressReader(response.Body, progressOutput, response.ContentLength, "", fmt.Sprintf("Downloading build context from remote url: %s", remoteURL))
return getContextFromReader(ioutils.NewReadCloserWrapper(progReader, func() error { return response.Body.Close() }), 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#]+)`)
// resolvedTag records the repository, tag, and resolved digest reference

View File

@@ -11,10 +11,12 @@ import (
"github.com/docker/docker/api"
"github.com/docker/docker/cli"
"github.com/docker/docker/cliconfig"
"github.com/docker/docker/cliconfig/credentials"
"github.com/docker/docker/dockerversion"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/term"
"github.com/docker/engine-api/client"
"github.com/docker/go-connections/sockets"
"github.com/docker/go-connections/tlsconfig"
)
@@ -124,6 +126,9 @@ func NewDockerCli(in io.ReadCloser, out, err io.Writer, clientFlags *cli.ClientF
if e != nil {
fmt.Fprintf(cli.err, "WARNING: Error loading config file:%v\n", e)
}
if !configFile.ContainsAuth() {
credentials.DetectDefaultStore(configFile)
}
cli.configFile = configFile
host, err := getServerHost(clientFlags.Common.Hosts, clientFlags.Common.TLSOptions)
@@ -135,19 +140,19 @@ func NewDockerCli(in io.ReadCloser, out, err io.Writer, clientFlags *cli.ClientF
if customHeaders == nil {
customHeaders = map[string]string{}
}
customHeaders["User-Agent"] = "Docker-Client/" + dockerversion.Version + " (" + runtime.GOOS + ")"
customHeaders["User-Agent"] = clientUserAgent()
verStr := api.DefaultVersion.String()
if tmpStr := os.Getenv("DOCKER_API_VERSION"); tmpStr != "" {
verStr = tmpStr
}
clientTransport, err := newClientTransport(clientFlags.Common.TLSOptions)
httpClient, err := newHTTPClient(host, clientFlags.Common.TLSOptions)
if err != nil {
return err
}
client, err := client.NewClient(host, verStr, clientTransport, customHeaders)
client, err := client.NewClient(host, verStr, httpClient, customHeaders)
if err != nil {
return err
}
@@ -176,25 +181,35 @@ func getServerHost(hosts []string, tlsOptions *tlsconfig.Options) (host string,
return "", errors.New("Please specify only one -H")
}
defaultHost := opts.DefaultTCPHost
if tlsOptions != nil {
defaultHost = opts.DefaultTLSHost
}
host, err = opts.ParseHost(defaultHost, host)
host, err = opts.ParseHost(tlsOptions != nil, host)
return
}
func newClientTransport(tlsOptions *tlsconfig.Options) (*http.Transport, error) {
func newHTTPClient(host string, tlsOptions *tlsconfig.Options) (*http.Client, error) {
if tlsOptions == nil {
return &http.Transport{}, nil
// let the api client configure the default transport.
return nil, nil
}
config, err := tlsconfig.Client(*tlsOptions)
if err != nil {
return nil, err
}
return &http.Transport{
tr := &http.Transport{
TLSClientConfig: config,
}
proto, addr, _, err := client.ParseHost(host)
if err != nil {
return nil, err
}
sockets.ConfigureTransport(tr, proto, addr)
return &http.Client{
Transport: tr,
}, nil
}
func clientUserAgent() string {
return "Docker-Client/" + dockerversion.Version + " (" + runtime.GOOS + ")"
}

View File

@@ -5,6 +5,8 @@ import (
"errors"
"fmt"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
@@ -73,7 +75,7 @@ func (cli *DockerCli) CmdCommit(args ...string) error {
Config: config,
}
response, err := cli.client.ContainerCommit(options)
response, err := cli.client.ContainerCommit(context.Background(), options)
if err != nil {
return err
}

View File

@@ -7,6 +7,8 @@ import (
"path/filepath"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/archive"
flag "github.com/docker/docker/pkg/mflag"
@@ -125,7 +127,7 @@ func splitCpArg(arg string) (container, path string) {
}
func (cli *DockerCli) statContainerPath(containerName, path string) (types.ContainerPathStat, error) {
return cli.client.ContainerStatPath(containerName, path)
return cli.client.ContainerStatPath(context.Background(), containerName, path)
}
func resolveLocalPath(localPath string) (absPath string, err error) {
@@ -165,7 +167,7 @@ func (cli *DockerCli) copyFromContainer(srcContainer, srcPath, dstPath string, c
}
content, stat, err := cli.client.CopyFromContainer(srcContainer, srcPath)
content, stat, err := cli.client.CopyFromContainer(context.Background(), srcContainer, srcPath)
if err != nil {
return err
}
@@ -292,5 +294,5 @@ func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string, cpP
AllowOverwriteDirWithFile: false,
}
return cli.client.CopyToContainer(options)
return cli.client.CopyToContainer(context.Background(), options)
}

View File

@@ -5,6 +5,8 @@ import (
"io"
"os"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/jsonmessage"
"github.com/docker/docker/reference"
@@ -40,8 +42,8 @@ func (cli *DockerCli) pullImageCustomOut(image string, out io.Writer) error {
return err
}
// Resolve the Auth config relevant for this server
encodedAuth, err := cli.encodeRegistryAuth(repoInfo.Index)
authConfig := cli.resolveAuthConfig(repoInfo.Index)
encodedAuth, err := encodeAuthToBase64(authConfig)
if err != nil {
return err
}
@@ -52,7 +54,7 @@ func (cli *DockerCli) pullImageCustomOut(image string, out io.Writer) error {
RegistryAuth: encodedAuth,
}
responseBody, err := cli.client.ImageCreate(options)
responseBody, err := cli.client.ImageCreate(context.Background(), options)
if err != nil {
return err
}
@@ -90,29 +92,30 @@ func (cli *DockerCli) createContainer(config *container.Config, hostConfig *cont
defer containerIDFile.Close()
}
ref, err := reference.ParseNamed(config.Image)
var trustedRef reference.Canonical
_, ref, err := reference.ParseIDOrReference(config.Image)
if err != nil {
return nil, err
}
ref = reference.WithDefaultTag(ref)
if ref != nil {
ref = reference.WithDefaultTag(ref)
var trustedRef reference.Canonical
if ref, ok := ref.(reference.NamedTagged); ok && isTrusted() {
var err error
trustedRef, err = cli.trustedReference(ref)
if err != nil {
return nil, err
if ref, ok := ref.(reference.NamedTagged); ok && isTrusted() {
var err error
trustedRef, err = cli.trustedReference(ref)
if err != nil {
return nil, err
}
config.Image = trustedRef.String()
}
config.Image = trustedRef.String()
}
//create the container
response, err := cli.client.ContainerCreate(config, hostConfig, networkingConfig, name)
response, err := cli.client.ContainerCreate(context.Background(), config, hostConfig, networkingConfig, name)
//if image not found try to pull it
if err != nil {
if client.IsErrImageNotFound(err) {
if client.IsErrImageNotFound(err) && ref != nil {
fmt.Fprintf(cli.err, "Unable to find image '%s' locally\n", ref.String())
// we don't want to write to stdout anything apart from container.ID
@@ -126,7 +129,7 @@ func (cli *DockerCli) createContainer(config *container.Config, hostConfig *cont
}
// Retry
var retryErr error
response, retryErr = cli.client.ContainerCreate(config, hostConfig, networkingConfig, name)
response, retryErr = cli.client.ContainerCreate(context.Background(), config, hostConfig, networkingConfig, name)
if retryErr != nil {
return nil, retryErr
}

View File

@@ -3,6 +3,8 @@ package client
import (
"fmt"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/archive"
flag "github.com/docker/docker/pkg/mflag"
@@ -25,7 +27,7 @@ func (cli *DockerCli) CmdDiff(args ...string) error {
return fmt.Errorf("Container name cannot be empty")
}
changes, err := cli.client.ContainerDiff(cmd.Arg(0))
changes, err := cli.client.ContainerDiff(context.Background(), cmd.Arg(0))
if err != nil {
return err
}

View File

@@ -4,9 +4,14 @@ import (
"encoding/json"
"fmt"
"io"
"sort"
"strings"
"sync"
"time"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/jsonlog"
@@ -47,7 +52,7 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
Filters: eventFilterArgs,
}
responseBody, err := cli.client.Events(options)
responseBody, err := cli.client.Events(context.Background(), options)
if err != nil {
return err
}
@@ -99,10 +104,43 @@ func printOutput(event eventtypes.Message, output io.Writer) {
if len(event.Actor.Attributes) > 0 {
var attrs []string
for k, v := range event.Actor.Attributes {
var keys []string
for k := range event.Actor.Attributes {
keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
v := event.Actor.Attributes[k]
attrs = append(attrs, fmt.Sprintf("%s=%s", k, v))
}
fmt.Fprintf(output, " (%s)", strings.Join(attrs, ", "))
}
fmt.Fprint(output, "\n")
}
type eventHandler struct {
handlers map[string]func(eventtypes.Message)
mu sync.Mutex
}
func (w *eventHandler) Handle(action string, h func(eventtypes.Message)) {
w.mu.Lock()
w.handlers[action] = h
w.mu.Unlock()
}
// Watch ranges over the passed in event chan and processes the events based on the
// handlers created for a given action.
// To stop watching, close the event chan.
func (w *eventHandler) Watch(c <-chan eventtypes.Message) {
for e := range c {
w.mu.Lock()
h, exists := w.handlers[e.Action]
w.mu.Unlock()
if !exists {
continue
}
logrus.Debugf("event handler: received event: %v", e)
go h(e)
}
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"io"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -31,7 +33,7 @@ func (cli *DockerCli) CmdExec(args ...string) error {
// Send client escape keys
execConfig.DetachKeys = cli.configFile.DetachKeys
response, err := cli.client.ContainerExecCreate(*execConfig)
response, err := cli.client.ContainerExecCreate(context.Background(), *execConfig)
if err != nil {
return err
}
@@ -53,7 +55,7 @@ func (cli *DockerCli) CmdExec(args ...string) error {
Tty: execConfig.Tty,
}
if err := cli.client.ContainerExecStart(execID, execStartCheck); err != nil {
if err := cli.client.ContainerExecStart(context.Background(), execID, execStartCheck); err != nil {
return err
}
// For now don't print this - wait for when we support exec wait()
@@ -82,7 +84,7 @@ func (cli *DockerCli) CmdExec(args ...string) error {
}
}
resp, err := cli.client.ContainerExecAttach(execID, *execConfig)
resp, err := cli.client.ContainerExecAttach(context.Background(), execID, *execConfig)
if err != nil {
return err
}

View File

@@ -3,7 +3,8 @@ package client
import (
"errors"
"io"
"os"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -21,25 +22,21 @@ func (cli *DockerCli) CmdExport(args ...string) error {
cmd.ParseFlags(args, true)
var (
output = cli.out
err error
)
if *outfile != "" {
output, err = os.Create(*outfile)
if err != nil {
return err
}
} else if cli.isTerminalOut {
if *outfile == "" && cli.isTerminalOut {
return errors.New("Cowardly refusing to save to a terminal. Use the -o flag or redirect.")
}
responseBody, err := cli.client.ContainerExport(cmd.Arg(0))
responseBody, err := cli.client.ContainerExport(context.Background(), cmd.Arg(0))
if err != nil {
return err
}
defer responseBody.Close()
_, err = io.Copy(output, responseBody)
return err
if *outfile == "" {
_, err := io.Copy(cli.out, responseBody)
return err
}
return copyToFile(*outfile, responseBody)
}

View File

@@ -31,6 +31,7 @@ const (
repositoryHeader = "REPOSITORY"
tagHeader = "TAG"
digestHeader = "DIGEST"
mountsHeader = "MOUNTS"
)
type containerContext struct {
@@ -142,6 +143,25 @@ func (c *containerContext) Label(name string) string {
return c.c.Labels[name]
}
func (c *containerContext) Mounts() string {
c.addHeader(mountsHeader)
var name string
var mounts []string
for _, m := range c.c.Mounts {
if m.Name == "" {
name = m.Source
} else {
name = m.Name
}
if c.trunc {
name = stringutils.Truncate(name, 15)
}
mounts = append(mounts, name)
}
return strings.Join(mounts, ",")
}
type imageContext struct {
baseSubContext
trunc bool

View File

@@ -12,7 +12,7 @@ import (
func TestContainerPsContext(t *testing.T) {
containerID := stringid.GenerateRandomID()
unix := time.Now().Unix()
unix := time.Now().Add(-65 * time.Second).Unix()
var ctx containerContext
cases := []struct {
@@ -55,7 +55,7 @@ func TestContainerPsContext(t *testing.T) {
{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},
{types.Container{Created: unix}, true, "About a minute", runningForHeader, ctx.RunningFor},
}
for _, c := range cases {

View File

@@ -9,6 +9,7 @@ import (
"text/template"
"github.com/docker/docker/reference"
"github.com/docker/docker/utils/templates"
"github.com/docker/engine-api/types"
)
@@ -54,7 +55,7 @@ func (c *Context) preformat() {
}
func (c *Context) parseFormat() (*template.Template, error) {
tmpl, err := template.New("").Parse(c.finalFormat)
tmpl, err := templates.Parse(c.finalFormat)
if err != nil {
c.buffer.WriteString(fmt.Sprintf("Template parsing error: %v\n", err))
c.buffer.WriteTo(c.Output)

View File

@@ -7,6 +7,8 @@ import (
"text/tabwriter"
"time"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/stringid"
@@ -26,7 +28,7 @@ func (cli *DockerCli) CmdHistory(args ...string) error {
cmd.ParseFlags(args, true)
history, err := cli.client.ImageHistory(cmd.Arg(0))
history, err := cli.client.ImageHistory(context.Background(), cmd.Arg(0))
if err != nil {
return err
}

View File

@@ -1,6 +1,8 @@
package client
import (
"golang.org/x/net/context"
"github.com/docker/docker/api/client/formatter"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
@@ -48,7 +50,7 @@ func (cli *DockerCli) CmdImages(args ...string) error {
Filters: imageFilterArgs,
}
images, err := cli.client.ImageList(options)
images, err := cli.client.ImageList(context.Background(), options)
if err != nil {
return err
}

View File

@@ -5,6 +5,8 @@ import (
"io"
"os"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/jsonmessage"
@@ -70,7 +72,7 @@ func (cli *DockerCli) CmdImport(args ...string) error {
Changes: changes,
}
responseBody, err := cli.client.ImageImport(options)
responseBody, err := cli.client.ImageImport(context.Background(), options)
if err != nil {
return err
}

View File

@@ -4,9 +4,12 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/ioutils"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/utils"
"github.com/docker/go-units"
)
@@ -19,7 +22,7 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
cmd.ParseFlags(args, true)
info, err := cli.client.Info()
info, err := cli.client.Info(context.Background())
if err != nil {
return err
}
@@ -49,6 +52,7 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
}
ioutils.FprintfIfNotEmpty(cli.out, "Execution Driver: %s\n", info.ExecutionDriver)
ioutils.FprintfIfNotEmpty(cli.out, "Logging Driver: %s\n", info.LoggingDriver)
ioutils.FprintfIfNotEmpty(cli.out, "Cgroup Driver: %s\n", info.CgroupDriver)
fmt.Fprintf(cli.out, "Plugins: \n")
fmt.Fprintf(cli.out, " Volume:")
@@ -72,16 +76,15 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
fmt.Fprintf(cli.out, "Total Memory: %s\n", units.BytesSize(float64(info.MemTotal)))
ioutils.FprintfIfNotEmpty(cli.out, "Name: %s\n", info.Name)
ioutils.FprintfIfNotEmpty(cli.out, "ID: %s\n", info.ID)
fmt.Fprintf(cli.out, "Docker Root Dir: %s\n", info.DockerRootDir)
fmt.Fprintf(cli.out, "Debug mode (client): %v\n", utils.IsDebugEnabled())
fmt.Fprintf(cli.out, "Debug mode (server): %v\n", info.Debug)
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)
}
ioutils.FprintfIfNotEmpty(cli.out, "Http Proxy: %s\n", info.HTTPProxy)
@@ -92,8 +95,8 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
u := cli.configFile.AuthConfigs[info.IndexServerAddress].Username
if len(u) > 0 {
fmt.Fprintf(cli.out, "Username: %v\n", u)
fmt.Fprintf(cli.out, "Registry: %v\n", info.IndexServerAddress)
}
fmt.Fprintf(cli.out, "Registry: %v\n", info.IndexServerAddress)
}
// Only output these warnings if the server does not support these features
@@ -104,6 +107,9 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
if !info.SwapLimit {
fmt.Fprintln(cli.err, "WARNING: No swap limit support")
}
if !info.KernelMemory {
fmt.Fprintln(cli.err, "WARNING: No kernel memory limit support")
}
if !info.OomKillDisable {
fmt.Fprintln(cli.err, "WARNING: No oom kill disable support")
}

View File

@@ -1,23 +1,17 @@
package client
import (
"encoding/json"
"fmt"
"text/template"
"golang.org/x/net/context"
"github.com/docker/docker/api/client/inspect"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/utils/templates"
"github.com/docker/engine-api/client"
)
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...]
@@ -49,23 +43,23 @@ func (cli *DockerCli) CmdInspect(args ...string) error {
func (cli *DockerCli) inspectContainers(getSize bool) inspectSearcher {
return func(ref string) (interface{}, []byte, error) {
return cli.client.ContainerInspectWithRaw(ref, getSize)
return cli.client.ContainerInspectWithRaw(context.Background(), ref, getSize)
}
}
func (cli *DockerCli) inspectImages(getSize bool) inspectSearcher {
return func(ref string) (interface{}, []byte, error) {
return cli.client.ImageInspectWithRaw(ref, getSize)
return cli.client.ImageInspectWithRaw(context.Background(), ref, getSize)
}
}
func (cli *DockerCli) inspectAll(getSize bool) inspectSearcher {
return func(ref string) (interface{}, []byte, error) {
c, rawContainer, err := cli.client.ContainerInspectWithRaw(ref, getSize)
c, rawContainer, err := cli.client.ContainerInspectWithRaw(context.Background(), ref, getSize)
if err != nil {
// Search for image with that id if a container doesn't exist.
if client.IsErrContainerNotFound(err) {
i, rawImage, err := cli.client.ImageInspectWithRaw(ref, getSize)
i, rawImage, err := cli.client.ImageInspectWithRaw(context.Background(), ref, getSize)
if err != nil {
if client.IsErrImageNotFound(err) {
return nil, nil, fmt.Errorf("Error: No such image or container: %s", ref)
@@ -123,7 +117,7 @@ func (cli *DockerCli) inspectErrorStatus(err error) (status int) {
func (cli *DockerCli) newInspectorWithTemplate(tmplStr string) (inspect.Inspector, error) {
elementInspector := inspect.NewIndentedInspector(cli.out)
if tmplStr != "" {
tmpl, err := template.New("").Funcs(funcMap).Parse(tmplStr)
tmpl, err := templates.Parse(tmplStr)
if err != nil {
return nil, fmt.Errorf("Template parsing error: %s", err)
}

View File

@@ -4,7 +4,8 @@ import (
"bytes"
"strings"
"testing"
"text/template"
"github.com/docker/docker/utils/templates"
)
type testElement struct {
@@ -13,7 +14,7 @@ type testElement struct {
func TestTemplateInspectorDefault(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := template.New("test").Parse("{{.DNS}}")
tmpl, err := templates.Parse("{{.DNS}}")
if err != nil {
t.Fatal(err)
}
@@ -32,7 +33,7 @@ func TestTemplateInspectorDefault(t *testing.T) {
func TestTemplateInspectorEmpty(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := template.New("test").Parse("{{.DNS}}")
tmpl, err := templates.Parse("{{.DNS}}")
if err != nil {
t.Fatal(err)
}
@@ -48,7 +49,7 @@ func TestTemplateInspectorEmpty(t *testing.T) {
func TestTemplateInspectorTemplateError(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := template.New("test").Parse("{{.Foo}}")
tmpl, err := templates.Parse("{{.Foo}}")
if err != nil {
t.Fatal(err)
}
@@ -66,7 +67,7 @@ func TestTemplateInspectorTemplateError(t *testing.T) {
func TestTemplateInspectorRawFallback(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := template.New("test").Parse("{{.Dns}}")
tmpl, err := templates.Parse("{{.Dns}}")
if err != nil {
t.Fatal(err)
}
@@ -85,7 +86,7 @@ func TestTemplateInspectorRawFallback(t *testing.T) {
func TestTemplateInspectorRawFallbackError(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := template.New("test").Parse("{{.Dns}}")
tmpl, err := templates.Parse("{{.Dns}}")
if err != nil {
t.Fatal(err)
}
@@ -102,7 +103,7 @@ func TestTemplateInspectorRawFallbackError(t *testing.T) {
func TestTemplateInspectorMultiple(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := template.New("test").Parse("{{.DNS}}")
tmpl, err := templates.Parse("{{.DNS}}")
if err != nil {
t.Fatal(err)
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -20,8 +22,8 @@ func (cli *DockerCli) CmdKill(args ...string) error {
var errs []string
for _, name := range cmd.Args() {
if err := cli.client.ContainerKill(name, *signal); err != nil {
errs = append(errs, fmt.Sprintf("Failed to kill container (%s): %s", name, err))
if err := cli.client.ContainerKill(context.Background(), name, *signal); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}

View File

@@ -4,6 +4,8 @@ import (
"io"
"os"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
@@ -17,6 +19,7 @@ import (
func (cli *DockerCli) CmdLoad(args ...string) error {
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")
quiet := cmd.Bool([]string{"q", "-quiet"}, false, "Suppress the load output")
cmd.Require(flag.Exact, 0)
cmd.ParseFlags(args, true)
@@ -29,14 +32,16 @@ func (cli *DockerCli) CmdLoad(args ...string) error {
defer file.Close()
input = file
}
response, err := cli.client.ImageLoad(input)
if !cli.isTerminalOut {
*quiet = true
}
response, err := cli.client.ImageLoad(context.Background(), input, *quiet)
if err != nil {
return err
}
defer response.Body.Close()
if response.JSON {
if response.Body != nil && response.JSON {
return jsonmessage.DisplayJSONMessagesStream(response.Body, cli.out, cli.outFd, cli.isTerminalOut, nil)
}

View File

@@ -8,15 +8,17 @@ import (
"runtime"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/cliconfig"
"github.com/docker/docker/cliconfig/credentials"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/registry"
"github.com/docker/engine-api/client"
"github.com/docker/engine-api/types"
)
// CmdLogin logs in or registers a user to a Docker registry service.
// CmdLogin logs in a user to a Docker registry service.
//
// If no server is specified, the user will be logged into or registered to the registry's index server.
//
@@ -27,7 +29,9 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
flUser := cmd.String([]string{"u", "-username"}, "", "Username")
flPassword := cmd.String([]string{"p", "-password"}, "", "Password")
flEmail := cmd.String([]string{"e", "-email"}, "", "Email")
// Deprecated in 1.11: Should be removed in docker 1.13
cmd.String([]string{"#e", "#-email"}, "", "Email")
cmd.ParseFlags(args, true)
@@ -36,43 +40,35 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
cli.in = os.Stdin
}
// The daemon `/info` endpoint informs us of the default registry being
// used. This is essential in cross-platforms environment, where for
// example a Linux client might be interacting with a Windows daemon, hence
// the default registry URL might be Windows specific.
serverAddress := registry.IndexServer
if info, err := cli.client.Info(); err != nil {
fmt.Fprintf(cli.out, "Warning: failed to get default registry endpoint from daemon (%v). Using system default: %s\n", err, serverAddress)
} else {
serverAddress = info.IndexServerAddress
}
var serverAddress string
var isDefaultRegistry bool
if len(cmd.Args()) > 0 {
serverAddress = cmd.Arg(0)
} else {
serverAddress = cli.electAuthServer()
isDefaultRegistry = true
}
authConfig, err := cli.configureAuth(*flUser, *flPassword, *flEmail, serverAddress)
authConfig, err := cli.configureAuth(*flUser, *flPassword, serverAddress, isDefaultRegistry)
if err != nil {
return err
}
response, err := cli.client.RegistryLogin(authConfig)
response, err := cli.client.RegistryLogin(context.Background(), authConfig)
if err != nil {
if client.IsErrUnauthorized(err) {
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)
}
}
return err
}
if err := cli.configFile.Save(); err != nil {
return fmt.Errorf("Error saving config file: %v", err)
if response.IdentityToken != "" {
authConfig.Password = ""
authConfig.IdentityToken = response.IdentityToken
}
if err := storeCredentials(cli.configFile, authConfig); err != nil {
return fmt.Errorf("Error saving credentials: %v", err)
}
fmt.Fprintf(cli.out, "WARNING: login credentials saved in %s\n", cli.configFile.Filename())
if response.Status != "" {
fmt.Fprintf(cli.out, "%s\n", response.Status)
fmt.Fprintln(cli.out, response.Status)
}
return nil
}
@@ -85,13 +81,19 @@ func (cli *DockerCli) promptWithDefault(prompt string, configDefault string) {
}
}
func (cli *DockerCli) configureAuth(flUser, flPassword, flEmail, serverAddress string) (types.AuthConfig, error) {
authconfig, ok := cli.configFile.AuthConfigs[serverAddress]
if !ok {
authconfig = types.AuthConfig{}
func (cli *DockerCli) configureAuth(flUser, flPassword, serverAddress string, isDefaultRegistry bool) (types.AuthConfig, error) {
authconfig, err := getCredentials(cli.configFile, serverAddress)
if err != nil {
return authconfig, err
}
if flUser == "" {
authconfig.Username = strings.TrimSpace(authconfig.Username)
if flUser = strings.TrimSpace(flUser); flUser == "" {
if isDefaultRegistry {
// if this is a defauly registry (docker hub), then display the following message.
fmt.Fprintln(cli.out, "Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.")
}
cli.promptWithDefault("Username", authconfig.Username)
flUser = readInput(cli.in, cli.out)
flUser = strings.TrimSpace(flUser)
@@ -100,6 +102,10 @@ func (cli *DockerCli) configureAuth(flUser, flPassword, flEmail, serverAddress s
}
}
if flUser == "" {
return authconfig, fmt.Errorf("Error: Non-null Username Required")
}
if flPassword == "" {
oldState, err := term.SaveState(cli.inFd)
if err != nil {
@@ -113,34 +119,15 @@ func (cli *DockerCli) configureAuth(flUser, flPassword, flEmail, serverAddress s
term.RestoreTerminal(cli.inFd, oldState)
if flPassword == "" {
return authconfig, fmt.Errorf("Error : Password Required")
return authconfig, fmt.Errorf("Error: Password Required")
}
}
// Assume that a different username means they may not want to use
// the email from the config file, so prompt it
if flUser != authconfig.Username {
if flEmail == "" {
cli.promptWithDefault("Email", authconfig.Email)
flEmail = readInput(cli.in, cli.out)
if flEmail == "" {
flEmail = authconfig.Email
}
}
} else {
// However, if they don't override the username use the
// email from the cmd line if specified. IOW, allow
// then to change/override them. And if not specified, just
// use what's in the config file
if flEmail == "" {
flEmail = authconfig.Email
}
}
authconfig.Username = flUser
authconfig.Password = flPassword
authconfig.Email = flEmail
authconfig.ServerAddress = serverAddress
cli.configFile.AuthConfigs[serverAddress] = authconfig
authconfig.IdentityToken = ""
return authconfig, nil
}
@@ -153,3 +140,38 @@ func readInput(in io.Reader, out io.Writer) string {
}
return string(line)
}
// getCredentials loads the user credentials from a credentials store.
// The store is determined by the config file settings.
func getCredentials(c *cliconfig.ConfigFile, serverAddress string) (types.AuthConfig, error) {
s := loadCredentialsStore(c)
return s.Get(serverAddress)
}
func getAllCredentials(c *cliconfig.ConfigFile) (map[string]types.AuthConfig, error) {
s := loadCredentialsStore(c)
return s.GetAll()
}
// storeCredentials saves the user credentials in a credentials store.
// The store is determined by the config file settings.
func storeCredentials(c *cliconfig.ConfigFile, auth types.AuthConfig) error {
s := loadCredentialsStore(c)
return s.Store(auth)
}
// eraseCredentials removes the user credentials from a credentials store.
// The store is determined by the config file settings.
func eraseCredentials(c *cliconfig.ConfigFile, serverAddress string) error {
s := loadCredentialsStore(c)
return s.Erase(serverAddress)
}
// loadCredentialsStore initializes a new credentials store based
// in the settings provided in the configuration file.
func loadCredentialsStore(c *cliconfig.ConfigFile) credentials.Store {
if c.CredentialsStore != "" {
return credentials.NewNativeStore(c)
}
return credentials.NewFileStore(c)
}

View File

@@ -5,7 +5,6 @@ import (
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/registry"
)
// CmdLogout logs a user out from a Docker registry.
@@ -14,25 +13,28 @@ import (
//
// Usage: docker logout [SERVER]
func (cli *DockerCli) CmdLogout(args ...string) error {
cmd := Cli.Subcmd("logout", []string{"[SERVER]"}, Cli.DockerCommands["logout"].Description+".\nIf no server is specified \""+registry.IndexServer+"\" is the default.", true)
cmd := Cli.Subcmd("logout", []string{"[SERVER]"}, Cli.DockerCommands["logout"].Description+".\nIf no server is specified, the default is defined by the daemon.", true)
cmd.Require(flag.Max, 1)
cmd.ParseFlags(args, true)
serverAddress := registry.IndexServer
var serverAddress string
if len(cmd.Args()) > 0 {
serverAddress = cmd.Arg(0)
} else {
serverAddress = cli.electAuthServer()
}
// check if we're logged in based on the records in the config file
// which means it couldn't have user/pass cause they may be in the creds store
if _, ok := cli.configFile.AuthConfigs[serverAddress]; !ok {
fmt.Fprintf(cli.out, "Not logged in to %s\n", serverAddress)
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)
if err := eraseCredentials(cli.configFile, serverAddress); err != nil {
fmt.Fprintf(cli.out, "WARNING: could not erase credentials: %v\n", err)
}
return nil

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"io"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/stdcopy"
@@ -30,7 +32,7 @@ func (cli *DockerCli) CmdLogs(args ...string) error {
name := cmd.Arg(0)
c, err := cli.client.ContainerInspect(name)
c, err := cli.client.ContainerInspect(context.Background(), name)
if err != nil {
return err
}
@@ -48,7 +50,7 @@ func (cli *DockerCli) CmdLogs(args ...string) error {
Follow: *follow,
Tail: *tail,
}
responseBody, err := cli.client.ContainerLogs(options)
responseBody, err := cli.client.ContainerLogs(context.Background(), options)
if err != nil {
return err
}

View File

@@ -3,9 +3,12 @@ package client
import (
"fmt"
"net"
"sort"
"strings"
"text/tabwriter"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
@@ -41,6 +44,7 @@ func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
flIpamGateway := opts.NewListOpts(nil)
flIpamAux := opts.NewMapOpts(nil, nil)
flIpamOpt := opts.NewMapOpts(nil, nil)
flLabels := opts.NewListOpts(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")
@@ -48,8 +52,10 @@ func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
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.Var(flIpamOpt, []string{"-ipam-opt"}, "set IPAM driver specific options")
cmd.Var(&flLabels, []string{"-label"}, "set metadata on a network")
flInternal := cmd.Bool([]string{"-internal"}, false, "restricts external access to the network")
flIPv6 := cmd.Bool([]string{"-ipv6"}, false, "enable IPv6 networking")
cmd.Require(flag.Exact, 1)
err := cmd.ParseFlags(args, true)
@@ -77,9 +83,11 @@ func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
Options: flOpts.GetAll(),
CheckDuplicate: true,
Internal: *flInternal,
EnableIPv6: *flIPv6,
Labels: runconfigopts.ConvertKVStringsToMap(flLabels.GetAll()),
}
resp, err := cli.client.NetworkCreate(nc)
resp, err := cli.client.NetworkCreate(context.Background(), nc)
if err != nil {
return err
}
@@ -99,7 +107,7 @@ func (cli *DockerCli) CmdNetworkRm(args ...string) error {
status := 0
for _, net := range cmd.Args() {
if err := cli.client.NetworkRemove(net); err != nil {
if err := cli.client.NetworkRemove(context.Background(), net); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
@@ -134,7 +142,7 @@ func (cli *DockerCli) CmdNetworkConnect(args ...string) error {
Links: flLinks.GetAll(),
Aliases: flAliases.GetAll(),
}
return cli.client.NetworkConnect(cmd.Arg(0), cmd.Arg(1), epConfig)
return cli.client.NetworkConnect(context.Background(), cmd.Arg(0), cmd.Arg(1), epConfig)
}
// CmdNetworkDisconnect disconnects a container from a network
@@ -148,7 +156,7 @@ func (cli *DockerCli) CmdNetworkDisconnect(args ...string) error {
return err
}
return cli.client.NetworkDisconnect(cmd.Arg(0), cmd.Arg(1), *force)
return cli.client.NetworkDisconnect(context.Background(), cmd.Arg(0), cmd.Arg(1), *force)
}
// CmdNetworkLs lists all the networks managed by docker daemon
@@ -181,7 +189,7 @@ func (cli *DockerCli) CmdNetworkLs(args ...string) error {
Filters: netFilterArgs,
}
networkResources, err := cli.client.NetworkList(options)
networkResources, err := cli.client.NetworkList(context.Background(), options)
if err != nil {
return err
}
@@ -192,7 +200,7 @@ func (cli *DockerCli) CmdNetworkLs(args ...string) error {
if !*quiet {
fmt.Fprintln(wr, "NETWORK ID\tNAME\tDRIVER")
}
sort.Sort(byNetworkName(networkResources))
for _, networkResource := range networkResources {
ID := networkResource.ID
netName := networkResource.Name
@@ -214,6 +222,12 @@ func (cli *DockerCli) CmdNetworkLs(args ...string) error {
return nil
}
type byNetworkName []types.NetworkResource
func (r byNetworkName) Len() int { return len(r) }
func (r byNetworkName) Swap(i, j int) { r[i], r[j] = r[j], r[i] }
func (r byNetworkName) Less(i, j int) bool { return r[i].Name < r[j].Name }
// CmdNetworkInspect inspects the network object for more details
//
// Usage: docker network inspect [OPTIONS] <NETWORK> [NETWORK...]
@@ -227,7 +241,7 @@ func (cli *DockerCli) CmdNetworkInspect(args ...string) error {
}
inspectSearcher := func(name string) (interface{}, []byte, error) {
i, err := cli.client.NetworkInspect(name)
i, err := cli.client.NetworkInspect(context.Background(), name)
return i, nil, err
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -19,8 +21,8 @@ func (cli *DockerCli) CmdPause(args ...string) error {
var errs []string
for _, name := range cmd.Args() {
if err := cli.client.ContainerPause(name); err != nil {
errs = append(errs, fmt.Sprintf("Failed to pause container (%s): %s", name, err))
if err := cli.client.ContainerPause(context.Background(), name); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/go-connections/nat"
@@ -19,7 +21,7 @@ func (cli *DockerCli) CmdPort(args ...string) error {
cmd.ParseFlags(args, true)
c, err := cli.client.ContainerInspect(cmd.Arg(0))
c, err := cli.client.ContainerInspect(context.Background(), cmd.Arg(0))
if err != nil {
return err
}

View File

@@ -1,6 +1,8 @@
package client
import (
"golang.org/x/net/context"
"github.com/docker/docker/api/client/formatter"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
@@ -56,7 +58,7 @@ func (cli *DockerCli) CmdPs(args ...string) error {
Filter: psFilterArgs,
}
containers, err := cli.client.ContainerList(options)
containers, err := cli.client.ContainerList(context.Background(), options)
if err != nil {
return err
}

View File

@@ -4,6 +4,8 @@ import (
"errors"
"fmt"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
@@ -54,7 +56,7 @@ func (cli *DockerCli) CmdPull(args ...string) error {
return err
}
authConfig := registry.ResolveAuthConfig(cli.configFile.AuthConfigs, repoInfo.Index)
authConfig := cli.resolveAuthConfig(repoInfo.Index)
requestPrivilege := cli.registryAuthenticationPrivilegedFunc(repoInfo.Index, "pull")
if isTrusted() && !ref.HasDigest() {
@@ -77,7 +79,7 @@ func (cli *DockerCli) imagePullPrivileged(authConfig types.AuthConfig, imageID,
RegistryAuth: encodedAuth,
}
responseBody, err := cli.client.ImagePull(options, requestPrivilege)
responseBody, err := cli.client.ImagePull(context.Background(), options, requestPrivilege)
if err != nil {
return err
}

View File

@@ -4,6 +4,8 @@ import (
"errors"
"io"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
@@ -42,7 +44,7 @@ func (cli *DockerCli) CmdPush(args ...string) error {
return err
}
// Resolve the Auth config relevant for this server
authConfig := registry.ResolveAuthConfig(cli.configFile.AuthConfigs, repoInfo.Index)
authConfig := cli.resolveAuthConfig(repoInfo.Index)
requestPrivilege := cli.registryAuthenticationPrivilegedFunc(repoInfo.Index, "push")
if isTrusted() {
@@ -70,5 +72,5 @@ func (cli *DockerCli) imagePushPrivileged(authConfig types.AuthConfig, imageID,
RegistryAuth: encodedAuth,
}
return cli.client.ImagePush(options, requestPrivilege)
return cli.client.ImagePush(context.Background(), options, requestPrivilege)
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -24,7 +26,7 @@ func (cli *DockerCli) CmdRename(args ...string) error {
return fmt.Errorf("Error: Neither old nor new names may be empty")
}
if err := cli.client.ContainerRename(oldName, newName); err != nil {
if err := cli.client.ContainerRename(context.Background(), oldName, newName); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
return fmt.Errorf("Error: failed to rename container named %s", oldName)
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -20,8 +22,8 @@ func (cli *DockerCli) CmdRestart(args ...string) error {
var errs []string
for _, name := range cmd.Args() {
if err := cli.client.ContainerRestart(name, *nSeconds); err != nil {
errs = append(errs, fmt.Sprintf("Failed to kill container (%s): %s", name, err))
if err := cli.client.ContainerRestart(context.Background(), name, *nSeconds); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/engine-api/types"
@@ -28,15 +30,8 @@ func (cli *DockerCli) CmdRm(args ...string) error {
}
name = strings.Trim(name, "/")
options := types.ContainerRemoveOptions{
ContainerID: name,
RemoveVolumes: *v,
RemoveLinks: *link,
Force: *force,
}
if err := cli.client.ContainerRemove(options); err != nil {
errs = append(errs, fmt.Sprintf("Failed to remove container (%s): %s", name, err))
if err := cli.removeContainer(name, *v, *link, *force); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}
@@ -46,3 +41,16 @@ func (cli *DockerCli) CmdRm(args ...string) error {
}
return nil
}
func (cli *DockerCli) removeContainer(containerID string, removeVolumes, removeLinks, force bool) error {
options := types.ContainerRemoveOptions{
ContainerID: containerID,
RemoveVolumes: removeVolumes,
RemoveLinks: removeLinks,
Force: force,
}
if err := cli.client.ContainerRemove(context.Background(), options); err != nil {
return err
}
return nil
}

View File

@@ -5,6 +5,8 @@ import (
"net/url"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/engine-api/types"
@@ -37,9 +39,9 @@ func (cli *DockerCli) CmdRmi(args ...string) error {
PruneChildren: !*noprune,
}
dels, err := cli.client.ImageRemove(options)
dels, err := cli.client.ImageRemove(context.Background(), options)
if err != nil {
errs = append(errs, fmt.Sprintf("Failed to remove image (%s): %s", name, err))
errs = append(errs, err.Error())
} else {
for _, del := range dels {
if del.Deleted != "" {

View File

@@ -7,9 +7,10 @@ import (
"runtime"
"strings"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
Cli "github.com/docker/docker/cli"
derr "github.com/docker/docker/errors"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/promise"
"github.com/docker/docker/pkg/signal"
@@ -18,6 +19,11 @@ import (
"github.com/docker/libnetwork/resolvconf/dns"
)
const (
errCmdNotFound = "not found or does not exist."
errCmdCouldNotBeInvoked = "could not be invoked."
)
func (cid *cidFile) Close() error {
cid.file.Close()
@@ -43,21 +49,16 @@ func (cid *cidFile) Write(id string) error {
// return 125 for generic docker daemon failures
func runStartContainerErr(err error) error {
trimmedErr := strings.Trim(err.Error(), "Error response from daemon: ")
statusError := Cli.StatusError{}
derrCmdNotFound := derr.ErrorCodeCmdNotFound.Message()
derrCouldNotInvoke := derr.ErrorCodeCmdCouldNotBeInvoked.Message()
derrNoSuchImage := derr.ErrorCodeNoSuchImageHash.Message()
derrNoSuchImageTag := derr.ErrorCodeNoSuchImageTag.Message()
switch trimmedErr {
case derrCmdNotFound:
statusError = Cli.StatusError{StatusCode: 127}
case derrCouldNotInvoke:
statusError = Cli.StatusError{StatusCode: 126}
case derrNoSuchImage, derrNoSuchImageTag:
statusError = Cli.StatusError{StatusCode: 125}
default:
statusError = Cli.StatusError{StatusCode: 125}
statusError := Cli.StatusError{StatusCode: 125}
if strings.HasPrefix(trimmedErr, "Container command") {
if strings.Contains(trimmedErr, errCmdNotFound) {
statusError = Cli.StatusError{StatusCode: 127}
} else if strings.Contains(trimmedErr, errCmdCouldNotBeInvoked) {
statusError = Cli.StatusError{StatusCode: 126}
}
}
return statusError
}
@@ -203,7 +204,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
DetachKeys: cli.configFile.DetachKeys,
}
resp, err := cli.client.ContainerAttach(options)
resp, err := cli.client.ContainerAttach(context.Background(), options)
if err != nil {
return err
}
@@ -218,20 +219,16 @@ func (cli *DockerCli) CmdRun(args ...string) error {
})
}
defer func() {
if *flAutoRemove {
options := types.ContainerRemoveOptions{
ContainerID: createResponse.ID,
RemoveVolumes: true,
if *flAutoRemove {
defer func() {
if err := cli.removeContainer(createResponse.ID, true, false, false); err != nil {
fmt.Fprintf(cli.err, "%v\n", err)
}
if err := cli.client.ContainerRemove(options); err != nil {
fmt.Fprintf(cli.err, "Error deleting container: %s\n", err)
}
}
}()
}()
}
//start the container
if err := cli.client.ContainerStart(createResponse.ID); err != nil {
if err := cli.client.ContainerStart(context.Background(), createResponse.ID); err != nil {
cmd.ReportError(err.Error(), false)
return runStartContainerErr(err)
}
@@ -262,7 +259,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
if *flAutoRemove {
// Autoremove: wait for the container to finish, retrieve
// the exit code and remove the container
if status, err = cli.client.ContainerWait(createResponse.ID); err != nil {
if status, err = cli.client.ContainerWait(context.Background(), createResponse.ID); err != nil {
return runStartContainerErr(err)
}
if _, status, err = getExitCode(cli, createResponse.ID); err != nil {
@@ -272,7 +269,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
// No Autoremove: Simply retrieve the exit code
if !config.Tty {
// In non-TTY mode, we can't detach, so we must wait for container exit
if status, err = cli.client.ContainerWait(createResponse.ID); err != nil {
if status, err = cli.client.ContainerWait(context.Background(), createResponse.ID); err != nil {
return err
}
} else {

View File

@@ -3,7 +3,8 @@ package client
import (
"errors"
"io"
"os"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -21,26 +22,21 @@ func (cli *DockerCli) CmdSave(args ...string) error {
cmd.ParseFlags(args, true)
var (
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 != "" {
if output, err = os.Create(*outfile); err != nil {
return err
}
}
responseBody, err := cli.client.ImageSave(cmd.Args())
responseBody, err := cli.client.ImageSave(context.Background(), cmd.Args())
if err != nil {
return err
}
defer responseBody.Close()
_, err = io.Copy(output, responseBody)
return err
if *outfile == "" {
_, err := io.Copy(cli.out, responseBody)
return err
}
return copyToFile(*outfile, responseBody)
}

View File

@@ -7,6 +7,8 @@ import (
"strings"
"text/tabwriter"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/stringutils"
@@ -36,7 +38,7 @@ func (cli *DockerCli) CmdSearch(args ...string) error {
return err
}
authConfig := registry.ResolveAuthConfig(cli.configFile.AuthConfigs, indexInfo)
authConfig := cli.resolveAuthConfig(indexInfo)
requestPrivilege := cli.registryAuthenticationPrivilegedFunc(indexInfo, "search")
encodedAuth, err := encodeAuthToBase64(authConfig)
@@ -49,7 +51,7 @@ func (cli *DockerCli) CmdSearch(args ...string) error {
RegistryAuth: encodedAuth,
}
unorderedResults, err := cli.client.ImageSearch(options, requestPrivilege)
unorderedResults, err := cli.client.ImageSearch(context.Background(), options, requestPrivilege)
if err != nil {
return err
}

View File

@@ -6,6 +6,8 @@ import (
"os"
"strings"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -19,7 +21,7 @@ func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal {
signal.CatchAll(sigc)
go func() {
for s := range sigc {
if s == signal.SIGCHLD {
if s == signal.SIGCHLD || s == signal.SIGPIPE {
continue
}
var sig string
@@ -34,7 +36,7 @@ func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal {
continue
}
if err := cli.client.ContainerKill(cid, sig); err != nil {
if err := cli.client.ContainerKill(context.Background(), cid, sig); err != nil {
logrus.Debugf("Error sending signal: %s", err)
}
}
@@ -63,7 +65,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
// 2. Attach to the container.
containerID := cmd.Arg(0)
c, err := cli.client.ContainerInspect(containerID)
c, err := cli.client.ContainerInspect(context.Background(), containerID)
if err != nil {
return err
}
@@ -91,7 +93,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
in = cli.in
}
resp, err := cli.client.ContainerAttach(options)
resp, err := cli.client.ContainerAttach(context.Background(), options)
if err != nil {
return err
}
@@ -108,7 +110,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
})
// 3. Start the container.
if err := cli.client.ContainerStart(containerID); err != nil {
if err := cli.client.ContainerStart(context.Background(), containerID); err != nil {
return err
}
@@ -140,7 +142,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
func (cli *DockerCli) startContainersWithoutAttachments(containerIDs []string) error {
var failedContainers []string
for _, containerID := range containerIDs {
if err := cli.client.ContainerStart(containerID); err != nil {
if err := cli.client.ContainerStart(context.Background(), containerID); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
failedContainers = append(failedContainers, containerID)
} else {

View File

@@ -1,138 +1,21 @@
package client
import (
"encoding/json"
"fmt"
"io"
"sort"
"strings"
"sync"
"text/tabwriter"
"time"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/events"
"github.com/docker/engine-api/types/filters"
"github.com/docker/go-units"
)
type containerStats struct {
Name string
CPUPercentage float64
Memory float64
MemoryLimit float64
MemoryPercentage float64
NetworkRx float64
NetworkTx float64
BlockRead float64
BlockWrite float64
mu sync.RWMutex
err error
}
type stats struct {
mu sync.Mutex
cs []*containerStats
}
func (s *containerStats) Collect(cli *DockerCli, streamStats bool) {
responseBody, err := cli.client.ContainerStats(s.Name, streamStats)
if err != nil {
s.mu.Lock()
s.err = err
s.mu.Unlock()
return
}
defer responseBody.Close()
var (
previousCPU uint64
previousSystem uint64
dec = json.NewDecoder(responseBody)
u = make(chan error, 1)
)
go func() {
for {
var v *types.StatsJSON
if err := dec.Decode(&v); err != nil {
u <- err
return
}
var memPercent = 0.0
var cpuPercent = 0.0
// MemoryStats.Limit will never be 0 unless the container is not running and we haven't
// got any data from cgroup
if v.MemoryStats.Limit != 0 {
memPercent = float64(v.MemoryStats.Usage) / float64(v.MemoryStats.Limit) * 100.0
}
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, s.NetworkTx = calculateNetwork(v.Networks)
s.BlockRead = float64(blkRead)
s.BlockWrite = float64(blkWrite)
s.mu.Unlock()
u <- nil
if !streamStats {
return
}
}
}()
for {
select {
case <-time.After(2 * time.Second):
// zero out the values if we have not received an update within
// the specified duration.
s.mu.Lock()
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 {
s.mu.Lock()
s.err = err
s.mu.Unlock()
return
}
}
if !streamStats {
return
}
}
}
func (s *containerStats) Display(w io.Writer) error {
s.mu.RLock()
defer s.mu.RUnlock()
if s.err != nil {
return s.err
}
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.BlockRead), units.HumanSize(s.BlockWrite))
return nil
}
// CmdStats displays a live stream of resource usage statistics for one or more containers.
//
// This shows real-time information on CPU usage, memory usage, and network I/O.
@@ -147,125 +30,143 @@ func (cli *DockerCli) CmdStats(args ...string) error {
names := cmd.Args()
showAll := len(names) == 0
closeChan := make(chan error)
if showAll {
// monitorContainerEvents watches for container creation and removal (only
// used when calling `docker stats` without arguments).
monitorContainerEvents := func(started chan<- struct{}, c chan events.Message) {
f := filters.NewArgs()
f.Add("type", "container")
options := types.EventsOptions{
Filters: f,
}
resBody, err := cli.client.Events(context.Background(), options)
// Whether we successfully subscribed to events or not, we can now
// unblock the main goroutine.
close(started)
if err != nil {
closeChan <- err
return
}
defer resBody.Close()
decodeEvents(resBody, func(event events.Message, err error) error {
if err != nil {
closeChan <- err
return nil
}
c <- event
return nil
})
}
// waitFirst is a WaitGroup to wait first stat data's reach for each container
waitFirst := &sync.WaitGroup{}
cStats := stats{}
// getContainerList simulates creation event for all previously existing
// containers (only used when calling `docker stats` without arguments).
getContainerList := func() {
options := types.ContainerListOptions{
All: *all,
}
cs, err := cli.client.ContainerList(options)
cs, err := cli.client.ContainerList(context.Background(), options)
if err != nil {
return err
closeChan <- err
}
for _, c := range cs {
names = append(names, c.ID[:12])
for _, container := range cs {
s := &containerStats{Name: container.ID[:12]}
if cStats.add(s) {
waitFirst.Add(1)
go s.Collect(cli.client, !*noStream, waitFirst)
}
}
}
if len(names) == 0 && !showAll {
return fmt.Errorf("No containers found")
}
sort.Strings(names)
var (
cStats = stats{}
w = tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
)
if showAll {
// If no names were specified, start a long running goroutine which
// monitors container events. We make sure we're subscribed before
// retrieving the list of running containers to avoid a race where we
// would "miss" a creation.
started := make(chan struct{})
eh := eventHandler{handlers: make(map[string]func(events.Message))}
eh.Handle("create", func(e events.Message) {
if *all {
s := &containerStats{Name: e.ID[:12]}
if cStats.add(s) {
waitFirst.Add(1)
go s.Collect(cli.client, !*noStream, waitFirst)
}
}
})
eh.Handle("start", func(e events.Message) {
s := &containerStats{Name: e.ID[:12]}
if cStats.add(s) {
waitFirst.Add(1)
go s.Collect(cli.client, !*noStream, waitFirst)
}
})
eh.Handle("die", func(e events.Message) {
if !*all {
cStats.remove(e.ID[:12])
}
})
eventChan := make(chan events.Message)
go eh.Watch(eventChan)
go monitorContainerEvents(started, eventChan)
defer close(eventChan)
<-started
// Start a short-lived goroutine to retrieve the initial list of
// containers.
getContainerList()
} else {
// Artificially send creation events for the containers we were asked to
// monitor (same code path than we use when monitoring all containers).
for _, name := range names {
s := &containerStats{Name: name}
if cStats.add(s) {
waitFirst.Add(1)
go s.Collect(cli.client, !*noStream, waitFirst)
}
}
// We don't expect any asynchronous errors: closeChan can be closed.
close(closeChan)
// Do a quick pause to detect any error with the provided list of
// container names.
time.Sleep(1500 * time.Millisecond)
var errs []string
cStats.mu.Lock()
for _, c := range cStats.cs {
c.mu.Lock()
if c.err != nil {
errs = append(errs, fmt.Sprintf("%s: %v", c.Name, c.err))
}
c.mu.Unlock()
}
cStats.mu.Unlock()
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, ", "))
}
}
// before print to screen, make sure each container get at least one valid stat data
waitFirst.Wait()
w := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
printHeader := func() {
if !*noStream {
fmt.Fprint(cli.out, "\033[2J")
fmt.Fprint(cli.out, "\033[H")
}
io.WriteString(w, "CONTAINER\tCPU %\tMEM USAGE / LIMIT\tMEM %\tNET I/O\tBLOCK I/O\n")
io.WriteString(w, "CONTAINER\tCPU %\tMEM USAGE / LIMIT\tMEM %\tNET I/O\tBLOCK I/O\tPIDS\n")
}
for _, n := range names {
s := &containerStats{Name: n}
// no need to lock here since only the main goroutine is running here
cStats.cs = append(cStats.cs, s)
go s.Collect(cli, !*noStream)
}
closeChan := make(chan error)
if showAll {
type watch struct {
cid string
event string
err error
}
getNewContainers := func(c chan<- watch) {
f := filters.NewArgs()
f.Add("type", "container")
options := types.EventsOptions{
Filters: f,
}
resBody, err := cli.client.Events(options)
if err != nil {
c <- watch{err: err}
return
}
defer resBody.Close()
decodeEvents(resBody, func(event events.Message, err error) error {
if err != nil {
c <- watch{err: err}
return nil
}
c <- watch{event.ID[:12], event.Action, nil}
return nil
})
}
go func(stopChan chan<- error) {
cChan := make(chan watch)
go getNewContainers(cChan)
for {
c := <-cChan
if c.err != nil {
stopChan <- c.err
return
}
switch c.event {
case "create":
s := &containerStats{Name: c.cid}
cStats.mu.Lock()
cStats.cs = append(cStats.cs, s)
cStats.mu.Unlock()
go s.Collect(cli, !*noStream)
case "stop":
case "die":
if !*all {
var remove int
// cStats cannot be O(1) with a map cause ranging over it would cause
// containers in stats to move up and down in the list...:(
cStats.mu.Lock()
for i, s := range cStats.cs {
if s.Name == c.cid {
remove = i
break
}
}
cStats.cs = append(cStats.cs[:remove], cStats.cs[remove+1:]...)
cStats.mu.Unlock()
}
}
}
}(closeChan)
} else {
close(closeChan)
}
// 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(1500 * time.Millisecond)
var errs []string
cStats.mu.Lock()
for _, c := range cStats.cs {
c.mu.Lock()
if c.err != nil {
errs = append(errs, fmt.Sprintf("%s: %v", c.Name, c.err))
}
c.mu.Unlock()
}
cStats.mu.Unlock()
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, ", "))
}
for range time.Tick(500 * time.Millisecond) {
printHeader()
toRemove := []int{}
@@ -305,40 +206,3 @@ func (cli *DockerCli) CmdStats(args ...string) error {
}
return nil
}
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) - float64(previousCPU)
// calculate the change for the entire system between readings
systemDelta = float64(v.CPUStats.SystemUsage) - float64(previousSystem)
)
if systemDelta > 0.0 && cpuDelta > 0.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
}

219
api/client/stats_helpers.go Normal file
View File

@@ -0,0 +1,219 @@
package client
import (
"encoding/json"
"fmt"
"io"
"strings"
"sync"
"time"
"github.com/docker/engine-api/client"
"github.com/docker/engine-api/types"
"github.com/docker/go-units"
"golang.org/x/net/context"
)
type containerStats struct {
Name string
CPUPercentage float64
Memory float64
MemoryLimit float64
MemoryPercentage float64
NetworkRx float64
NetworkTx float64
BlockRead float64
BlockWrite float64
PidsCurrent uint64
mu sync.RWMutex
err error
}
type stats struct {
mu sync.Mutex
cs []*containerStats
}
func (s *stats) add(cs *containerStats) bool {
s.mu.Lock()
defer s.mu.Unlock()
if _, exists := s.isKnownContainer(cs.Name); !exists {
s.cs = append(s.cs, cs)
return true
}
return false
}
func (s *stats) remove(id string) {
s.mu.Lock()
if i, exists := s.isKnownContainer(id); exists {
s.cs = append(s.cs[:i], s.cs[i+1:]...)
}
s.mu.Unlock()
}
func (s *stats) isKnownContainer(cid string) (int, bool) {
for i, c := range s.cs {
if c.Name == cid {
return i, true
}
}
return -1, false
}
func (s *containerStats) Collect(cli client.APIClient, streamStats bool, waitFirst *sync.WaitGroup) {
var (
getFirst bool
previousCPU uint64
previousSystem uint64
u = make(chan error, 1)
)
defer func() {
// if error happens and we get nothing of stats, release wait group whatever
if !getFirst {
getFirst = true
waitFirst.Done()
}
}()
responseBody, err := cli.ContainerStats(context.Background(), s.Name, streamStats)
if err != nil {
s.mu.Lock()
s.err = err
s.mu.Unlock()
return
}
defer responseBody.Close()
dec := json.NewDecoder(responseBody)
go func() {
for {
var v *types.StatsJSON
if err := dec.Decode(&v); err != nil {
u <- err
return
}
var memPercent = 0.0
var cpuPercent = 0.0
// MemoryStats.Limit will never be 0 unless the container is not running and we haven't
// got any data from cgroup
if v.MemoryStats.Limit != 0 {
memPercent = float64(v.MemoryStats.Usage) / float64(v.MemoryStats.Limit) * 100.0
}
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, s.NetworkTx = calculateNetwork(v.Networks)
s.BlockRead = float64(blkRead)
s.BlockWrite = float64(blkWrite)
s.PidsCurrent = v.PidsStats.Current
s.mu.Unlock()
u <- nil
if !streamStats {
return
}
}
}()
for {
select {
case <-time.After(2 * time.Second):
// zero out the values if we have not received an update within
// the specified duration.
s.mu.Lock()
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.PidsCurrent = 0
s.mu.Unlock()
// if this is the first stat you get, release WaitGroup
if !getFirst {
getFirst = true
waitFirst.Done()
}
case err := <-u:
if err != nil {
s.mu.Lock()
s.err = err
s.mu.Unlock()
return
}
// if this is the first stat you get, release WaitGroup
if !getFirst {
getFirst = true
waitFirst.Done()
}
}
if !streamStats {
return
}
}
}
func (s *containerStats) Display(w io.Writer) error {
s.mu.RLock()
defer s.mu.RUnlock()
if s.err != nil {
return s.err
}
fmt.Fprintf(w, "%s\t%.2f%%\t%s / %s\t%.2f%%\t%s / %s\t%s / %s\t%d\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.BlockRead), units.HumanSize(s.BlockWrite),
s.PidsCurrent)
return nil
}
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) - float64(previousCPU)
// calculate the change for the entire system between readings
systemDelta = float64(v.CPUStats.SystemUsage) - float64(previousSystem)
)
if systemDelta > 0.0 && cpuDelta > 0.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

@@ -19,6 +19,7 @@ func TestDisplay(t *testing.T) {
NetworkTx: 800 * 1024 * 1024,
BlockRead: 100 * 1024 * 1024,
BlockWrite: 800 * 1024 * 1024,
PidsCurrent: 1,
mu: sync.RWMutex{},
}
var b bytes.Buffer
@@ -26,7 +27,7 @@ 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\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\t1\n"
if got != want {
t.Fatalf("c.Display() = %q, want %q", got, want)
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -22,8 +24,8 @@ func (cli *DockerCli) CmdStop(args ...string) error {
var errs []string
for _, name := range cmd.Args() {
if err := cli.client.ContainerStop(name, *nSeconds); err != nil {
errs = append(errs, fmt.Sprintf("Failed to stop container (%s): %s", name, err))
if err := cli.client.ContainerStop(context.Background(), name, *nSeconds); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}

View File

@@ -3,6 +3,8 @@ package client
import (
"errors"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/reference"
@@ -40,5 +42,5 @@ func (cli *DockerCli) CmdTag(args ...string) error {
Force: *force,
}
return cli.client.ImageTag(options)
return cli.client.ImageTag(context.Background(), options)
}

View File

@@ -5,6 +5,8 @@ import (
"strings"
"text/tabwriter"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -23,7 +25,7 @@ func (cli *DockerCli) CmdTop(args ...string) error {
arguments = cmd.Args()[1:]
}
procList, err := cli.client.ContainerTop(cmd.Arg(0), arguments)
procList, err := cli.client.ContainerTop(context.Background(), cmd.Arg(0), arguments)
if err != nil {
return err
}

View File

@@ -15,6 +15,8 @@ import (
"strconv"
"time"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/distribution/digest"
"github.com/docker/distribution/registry/client/auth"
@@ -106,7 +108,17 @@ func (scs simpleCredentialStore) Basic(u *url.URL) (string, string) {
return scs.auth.Username, scs.auth.Password
}
func (cli *DockerCli) getNotaryRepository(repoInfo *registry.RepositoryInfo, authConfig types.AuthConfig) (*client.NotaryRepository, error) {
func (scs simpleCredentialStore) RefreshToken(u *url.URL, service string) string {
return scs.auth.IdentityToken
}
func (scs simpleCredentialStore) SetRefreshToken(*url.URL, string, string) {
}
// getNotaryRepository returns a NotaryRepository which stores all the
// information needed to operate on a notary repository.
// It creates a HTTP transport providing authentication support.
func (cli *DockerCli) getNotaryRepository(repoInfo *registry.RepositoryInfo, authConfig types.AuthConfig, actions ...string) (*client.NotaryRepository, error) {
server, err := trustServer(repoInfo.Index)
if err != nil {
return nil, err
@@ -139,7 +151,7 @@ func (cli *DockerCli) getNotaryRepository(repoInfo *registry.RepositoryInfo, aut
}
// Skip configuration headers since request is not going to Docker daemon
modifiers := registry.DockerHeaders(http.Header{})
modifiers := registry.DockerHeaders(clientUserAgent(), http.Header{})
authTransport := transport.NewTransport(base, modifiers...)
pingClient := &http.Client{
Transport: authTransport,
@@ -168,7 +180,7 @@ func (cli *DockerCli) getNotaryRepository(repoInfo *registry.RepositoryInfo, aut
}
creds := simpleCredentialStore{auth: authConfig}
tokenHandler := auth.NewTokenHandler(authTransport, creds, repoInfo.FullName(), "push", "pull")
tokenHandler := auth.NewTokenHandler(authTransport, creds, repoInfo.FullName(), actions...)
basicHandler := auth.NewBasicHandler(creds)
modifiers = append(modifiers, transport.RequestModifier(auth.NewAuthorizer(challengeManager, tokenHandler, basicHandler)))
tr := transport.NewTransport(base, modifiers...)
@@ -190,17 +202,17 @@ func convertTarget(t client.Target) (target, error) {
func (cli *DockerCli) getPassphraseRetriever() passphrase.Retriever {
aliasMap := map[string]string{
"root": "root",
"snapshot": "repository",
"targets": "repository",
"targets/releases": "repository",
"root": "root",
"snapshot": "repository",
"targets": "repository",
"default": "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"),
"targets/releases": os.Getenv("DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE"),
"root": os.Getenv("DOCKER_CONTENT_TRUST_ROOT_PASSPHRASE"),
"snapshot": os.Getenv("DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE"),
"targets": os.Getenv("DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE"),
"default": os.Getenv("DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE"),
}
// Backwards compatibility with old env names. We should remove this in 1.10
@@ -210,11 +222,11 @@ func (cli *DockerCli) getPassphraseRetriever() passphrase.Retriever {
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"] == "" || env["targets/releases"] == "" {
if env["snapshot"] == "" || env["targets"] == "" || env["default"] == "" {
if passphrase := os.Getenv("DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE"); passphrase != "" {
env["snapshot"] = passphrase
env["targets"] = passphrase
env["targets/releases"] = passphrase
env["default"] = 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")
}
}
@@ -223,6 +235,10 @@ func (cli *DockerCli) getPassphraseRetriever() passphrase.Retriever {
if v := env[alias]; v != "" {
return v, numAttempts > 1, nil
}
// For non-root roles, we can also try the "default" alias if it is specified
if v := env["default"]; v != "" && alias != data.CanonicalRootRole {
return v, numAttempts > 1, nil
}
return baseRetriever(keyName, alias, createNew, numAttempts)
}
}
@@ -234,9 +250,9 @@ func (cli *DockerCli) trustedReference(ref reference.NamedTagged) (reference.Can
}
// Resolve the Auth config relevant for this server
authConfig := registry.ResolveAuthConfig(cli.configFile.AuthConfigs, repoInfo.Index)
authConfig := cli.resolveAuthConfig(repoInfo.Index)
notaryRepo, err := cli.getNotaryRepository(repoInfo, authConfig)
notaryRepo, err := cli.getNotaryRepository(repoInfo, authConfig, "pull")
if err != nil {
fmt.Fprintf(cli.out, "Error establishing connection to trust repository: %s\n", err)
return nil, err
@@ -246,6 +262,11 @@ func (cli *DockerCli) trustedReference(ref reference.NamedTagged) (reference.Can
if err != nil {
return nil, err
}
// Only list tags in the top level targets role or the releases delegation role - ignore
// all other delegation roles
if t.Role != releasesRole && t.Role != data.CanonicalTargetsRole {
return nil, notaryError(repoInfo.FullName(), fmt.Errorf("No trust data for %s", ref.Tag()))
}
r, err := convertTarget(t.Target)
if err != nil {
return nil, err
@@ -265,7 +286,7 @@ func (cli *DockerCli) tagTrusted(trustedRef reference.Canonical, ref reference.N
Force: true,
}
return cli.client.ImageTag(options)
return cli.client.ImageTag(context.Background(), options)
}
func notaryError(repoName string, err error) error {
@@ -301,7 +322,7 @@ func notaryError(repoName string, err error) error {
func (cli *DockerCli) trustedPull(repoInfo *registry.RepositoryInfo, ref registry.Reference, authConfig types.AuthConfig, requestPrivilege apiclient.RequestPrivilegeFunc) error {
var refs []target
notaryRepo, err := cli.getNotaryRepository(repoInfo, authConfig)
notaryRepo, err := cli.getNotaryRepository(repoInfo, authConfig, "pull")
if err != nil {
fmt.Fprintf(cli.out, "Error establishing connection to trust repository: %s\n", err)
return err
@@ -319,13 +340,28 @@ func (cli *DockerCli) trustedPull(repoInfo *registry.RepositoryInfo, ref registr
fmt.Fprintf(cli.out, "Skipping target for %q\n", repoInfo.Name())
continue
}
// Only list tags in the top level targets role or the releases delegation role - ignore
// all other delegation roles
if tgt.Role != releasesRole && tgt.Role != data.CanonicalTargetsRole {
continue
}
refs = append(refs, t)
}
if len(refs) == 0 {
return notaryError(repoInfo.FullName(), fmt.Errorf("No trusted tags for %s", repoInfo.FullName()))
}
} else {
t, err := notaryRepo.GetTargetByName(ref.String(), releasesRole, data.CanonicalTargetsRole)
if err != nil {
return notaryError(repoInfo.FullName(), err)
}
// Only get the tag if it's in the top level targets role or the releases delegation role
// ignore it if it's in any other delegation roles
if t.Role != releasesRole && t.Role != data.CanonicalTargetsRole {
return notaryError(repoInfo.FullName(), fmt.Errorf("No trust data for %s", ref.String()))
}
logrus.Debugf("retrieving target for %s role\n", t.Role)
r, err := convertTarget(t.Target)
if err != nil {
return err
@@ -371,82 +407,153 @@ func (cli *DockerCli) trustedPush(repoInfo *registry.RepositoryInfo, tag string,
defer responseBody.Close()
targets := []target{}
// If it is a trusted push we would like to find the target entry which match the
// tag provided in the function and then do an AddTarget later.
target := &client.Target{}
// Count the times of calling for handleTarget,
// if it is called more that once, that should be considered an error in a trusted push.
cnt := 0
handleTarget := func(aux *json.RawMessage) {
cnt++
if cnt > 1 {
// handleTarget should only be called one. This will be treated as an error.
return
}
var pushResult distribution.PushResult
err := json.Unmarshal(*aux, &pushResult)
if err == nil && pushResult.Tag != "" && pushResult.Digest.Validate() == nil {
targets = append(targets, target{
reference: registry.ParseReference(pushResult.Tag),
digest: pushResult.Digest,
size: int64(pushResult.Size),
})
h, err := hex.DecodeString(pushResult.Digest.Hex())
if err != nil {
target = nil
return
}
target.Name = registry.ParseReference(pushResult.Tag).String()
target.Hashes = data.Hashes{string(pushResult.Digest.Algorithm()): h}
target.Length = int64(pushResult.Size)
}
}
err = jsonmessage.DisplayJSONMessagesStream(responseBody, cli.out, cli.outFd, cli.isTerminalOut, handleTarget)
if err != nil {
// We want trust signatures to always take an explicit tag,
// otherwise it will act as an untrusted push.
if tag == "" {
if err = jsonmessage.DisplayJSONMessagesStream(responseBody, cli.out, cli.outFd, cli.isTerminalOut, nil); err != nil {
return err
}
fmt.Fprintln(cli.out, "No tag specified, skipping trust metadata push")
return nil
}
if err = jsonmessage.DisplayJSONMessagesStream(responseBody, cli.out, cli.outFd, cli.isTerminalOut, handleTarget); err != nil {
return err
}
if tag == "" {
fmt.Fprintf(cli.out, "No tag specified, skipping trust metadata push\n")
return nil
if cnt > 1 {
return fmt.Errorf("internal error: only one call to handleTarget expected")
}
if len(targets) == 0 {
fmt.Fprintf(cli.out, "No targets found, skipping trust metadata push\n")
if target == nil {
fmt.Fprintln(cli.out, "No targets found, please provide a specific tag in order to sign it")
return nil
}
fmt.Fprintf(cli.out, "Signing and pushing trust metadata\n")
fmt.Fprintln(cli.out, "Signing and pushing trust metadata")
repo, err := cli.getNotaryRepository(repoInfo, authConfig)
repo, err := cli.getNotaryRepository(repoInfo, authConfig, "push", "pull")
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, releasesRole); err != nil {
return err
}
}
// get the latest repository metadata so we can figure out which roles to sign
_, err = repo.Update(false)
err = repo.Publish()
if _, ok := err.(client.ErrRepoNotInitialized); !ok {
switch err.(type) {
case client.ErrRepoNotInitialized, client.ErrRepositoryNotExist:
keys := repo.CryptoService.ListKeys(data.CanonicalRootRole)
var rootKeyID string
// always select the first root key
if len(keys) > 0 {
sort.Strings(keys)
rootKeyID = keys[0]
} else {
rootPublicKey, err := repo.CryptoService.Create(data.CanonicalRootRole, "", data.ECDSAKey)
if err != nil {
return err
}
rootKeyID = rootPublicKey.ID()
}
// Initialize the notary repository with a remotely managed snapshot key
if err := repo.Initialize(rootKeyID, data.CanonicalSnapshotRole); err != nil {
return notaryError(repoInfo.FullName(), err)
}
fmt.Fprintf(cli.out, "Finished initializing %q\n", repoInfo.FullName())
err = repo.AddTarget(target, data.CanonicalTargetsRole)
case nil:
// already initialized and we have successfully downloaded the latest metadata
err = cli.addTargetToAllSignableRoles(repo, target)
default:
return notaryError(repoInfo.FullName(), err)
}
keys := repo.CryptoService.ListKeys(data.CanonicalRootRole)
var rootKeyID string
// always select the first root key
if len(keys) > 0 {
sort.Strings(keys)
rootKeyID = keys[0]
} else {
rootPublicKey, err := repo.CryptoService.Create(data.CanonicalRootRole, data.ECDSAKey)
if err != nil {
return err
}
rootKeyID = rootPublicKey.ID()
if err == nil {
err = repo.Publish()
}
if err := repo.Initialize(rootKeyID); err != nil {
if err != nil {
fmt.Fprintf(cli.out, "Failed to sign %q:%s - %s\n", repoInfo.FullName(), tag, err.Error())
return notaryError(repoInfo.FullName(), err)
}
fmt.Fprintf(cli.out, "Finished initializing %q\n", repoInfo.FullName())
return notaryError(repoInfo.FullName(), repo.Publish())
fmt.Fprintf(cli.out, "Successfully signed %q:%s\n", repoInfo.FullName(), tag)
return nil
}
// Attempt to add the image target to all the top level delegation roles we can
// (based on whether we have the signing key and whether the role's path allows
// us to).
// If there are no delegation roles, we add to the targets role.
func (cli *DockerCli) addTargetToAllSignableRoles(repo *client.NotaryRepository, target *client.Target) error {
var signableRoles []string
// translate the full key names, which includes the GUN, into just the key IDs
allCanonicalKeyIDs := make(map[string]struct{})
for fullKeyID := range repo.CryptoService.ListAllKeys() {
allCanonicalKeyIDs[path.Base(fullKeyID)] = struct{}{}
}
allDelegationRoles, err := repo.GetDelegationRoles()
if err != nil {
return err
}
// if there are no delegation roles, then just try to sign it into the targets role
if len(allDelegationRoles) == 0 {
return repo.AddTarget(target, data.CanonicalTargetsRole)
}
// there are delegation roles, find every delegation role we have a key for, and
// attempt to sign into into all those roles.
for _, delegationRole := range allDelegationRoles {
// We do not support signing any delegation role that isn't a direct child of the targets role.
// Also don't bother checking the keys if we can't add the target
// to this role due to path restrictions
if path.Dir(delegationRole.Name) != data.CanonicalTargetsRole || !delegationRole.CheckPaths(target.Name) {
continue
}
for _, canonicalKeyID := range delegationRole.KeyIDs {
if _, ok := allCanonicalKeyIDs[canonicalKeyID]; ok {
signableRoles = append(signableRoles, delegationRole.Name)
break
}
}
}
if len(signableRoles) == 0 {
return fmt.Errorf("no valid signing keys for delegation roles")
}
return repo.AddTarget(target, signableRoles...)
}

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -19,8 +21,8 @@ func (cli *DockerCli) CmdUnpause(args ...string) error {
var errs []string
for _, name := range cmd.Args() {
if err := cli.client.ContainerUnpause(name); err != nil {
errs = append(errs, fmt.Sprintf("Failed to unpause container (%s): %s", name, err))
if err := cli.client.ContainerUnpause(context.Background(), name); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}

View File

@@ -4,8 +4,11 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/runconfig/opts"
"github.com/docker/engine-api/types/container"
"github.com/docker/go-units"
)
@@ -25,6 +28,7 @@ func (cli *DockerCli) CmdUpdate(args ...string) error {
flMemoryReservation := cmd.String([]string{"-memory-reservation"}, "", "Memory soft limit")
flMemorySwap := cmd.String([]string{"-memory-swap"}, "", "Swap limit equal to memory plus swap: '-1' to enable unlimited swap")
flKernelMemory := cmd.String([]string{"-kernel-memory"}, "", "Kernel memory limit")
flRestartPolicy := cmd.String([]string{"-restart"}, "", "Restart policy to apply when a container exits")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
@@ -69,6 +73,14 @@ func (cli *DockerCli) CmdUpdate(args ...string) error {
}
}
var restartPolicy container.RestartPolicy
if *flRestartPolicy != "" {
restartPolicy, err = opts.ParseRestartPolicy(*flRestartPolicy)
if err != nil {
return err
}
}
resources := container.Resources{
BlkioWeight: *flBlkioWeight,
CpusetCpus: *flCpusetCpus,
@@ -83,14 +95,15 @@ func (cli *DockerCli) CmdUpdate(args ...string) error {
}
updateConfig := container.UpdateConfig{
Resources: resources,
Resources: resources,
RestartPolicy: restartPolicy,
}
names := cmd.Args()
var errs []string
for _, name := range names {
if err := cli.client.ContainerUpdate(name, updateConfig); err != nil {
errs = append(errs, fmt.Sprintf("Failed to update container (%s): %s", name, err))
if err := cli.client.ContainerUpdate(context.Background(), name, updateConfig); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}

View File

@@ -4,11 +4,16 @@ import (
"encoding/base64"
"encoding/json"
"fmt"
"io"
"io/ioutil"
"os"
gosignal "os/signal"
"path/filepath"
"runtime"
"time"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/pkg/signal"
"github.com/docker/docker/pkg/term"
@@ -18,6 +23,20 @@ import (
registrytypes "github.com/docker/engine-api/types/registry"
)
func (cli *DockerCli) electAuthServer() string {
// The daemon `/info` endpoint informs us of the default registry being
// used. This is essential in cross-platforms environment, where for
// example a Linux client might be interacting with a Windows daemon, hence
// the default registry URL might be Windows specific.
serverAddress := registry.IndexServer
if info, err := cli.client.Info(context.Background()); err != nil {
fmt.Fprintf(cli.out, "Warning: failed to get default registry endpoint from daemon (%v). Using system default: %s\n", err, serverAddress)
} else {
serverAddress = info.IndexServerAddress
}
return serverAddress
}
// encodeAuthToBase64 serializes the auth configuration as JSON base64 payload
func encodeAuthToBase64(authConfig types.AuthConfig) (string, error) {
buf, err := json.Marshal(authConfig)
@@ -27,16 +46,11 @@ func encodeAuthToBase64(authConfig types.AuthConfig) (string, error) {
return base64.URLEncoding.EncodeToString(buf), nil
}
func (cli *DockerCli) encodeRegistryAuth(index *registrytypes.IndexInfo) (string, error) {
authConfig := registry.ResolveAuthConfig(cli.configFile.AuthConfigs, index)
return encodeAuthToBase64(authConfig)
}
func (cli *DockerCli) registryAuthenticationPrivilegedFunc(index *registrytypes.IndexInfo, cmdName string) client.RequestPrivilegeFunc {
return func() (string, error) {
fmt.Fprintf(cli.out, "\nPlease login prior to %s:\n", cmdName)
indexServer := registry.GetAuthConfigKey(index)
authConfig, err := cli.configureAuth("", "", "", indexServer)
authConfig, err := cli.configureAuth("", "", indexServer, false)
if err != nil {
return "", err
}
@@ -46,6 +60,10 @@ func (cli *DockerCli) registryAuthenticationPrivilegedFunc(index *registrytypes.
func (cli *DockerCli) resizeTty(id string, isExec bool) {
height, width := cli.getTtySize()
cli.resizeTtyTo(id, height, width, isExec)
}
func (cli *DockerCli) resizeTtyTo(id string, height, width int, isExec bool) {
if height == 0 && width == 0 {
return
}
@@ -58,9 +76,9 @@ func (cli *DockerCli) resizeTty(id string, isExec bool) {
var err error
if isExec {
err = cli.client.ContainerExecResize(options)
err = cli.client.ContainerExecResize(context.Background(), options)
} else {
err = cli.client.ContainerResize(options)
err = cli.client.ContainerResize(context.Background(), options)
}
if err != nil {
@@ -71,7 +89,7 @@ func (cli *DockerCli) resizeTty(id string, isExec bool) {
// 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) {
c, err := cli.client.ContainerInspect(containerID)
c, err := cli.client.ContainerInspect(context.Background(), containerID)
if err != nil {
// If we can't connect, then the daemon probably died.
if err != client.ErrConnectionFailed {
@@ -86,7 +104,7 @@ 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) {
resp, err := cli.client.ContainerExecInspect(execID)
resp, err := cli.client.ContainerExecInspect(context.Background(), execID)
if err != nil {
// If we can't connect, then the daemon probably died.
if err != client.ErrConnectionFailed {
@@ -140,3 +158,45 @@ func (cli *DockerCli) getTtySize() (int, int) {
}
return int(ws.Height), int(ws.Width)
}
func copyToFile(outfile string, r io.Reader) error {
tmpFile, err := ioutil.TempFile(filepath.Dir(outfile), ".docker_temp_")
if err != nil {
return err
}
tmpPath := tmpFile.Name()
_, err = io.Copy(tmpFile, r)
tmpFile.Close()
if err != nil {
os.Remove(tmpPath)
return err
}
if err = os.Rename(tmpPath, outfile); err != nil {
os.Remove(tmpPath)
return err
}
return nil
}
// resolveAuthConfig is like registry.ResolveAuthConfig, but if using the
// default index, it uses the default index name for the daemon's platform,
// not the client's platform.
func (cli *DockerCli) resolveAuthConfig(index *registrytypes.IndexInfo) types.AuthConfig {
configKey := index.Name
if index.Official {
configKey = cli.electAuthServer()
}
a, _ := getCredentials(cli.configFile, configKey)
return a
}
func (cli *DockerCli) retrieveAuthConfigs() map[string]types.AuthConfig {
acs, _ := getAllCredentials(cli.configFile)
return acs
}

View File

@@ -5,10 +5,13 @@ import (
"text/template"
"time"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/dockerversion"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/utils"
"github.com/docker/docker/utils/templates"
"github.com/docker/engine-api/types"
)
@@ -48,7 +51,7 @@ func (cli *DockerCli) CmdVersion(args ...string) (err error) {
}
var tmpl *template.Template
if tmpl, err = template.New("").Funcs(funcMap).Parse(templateFormat); err != nil {
if tmpl, err = templates.Parse(templateFormat); err != nil {
return Cli.StatusError{StatusCode: 64,
Status: "Template parsing error: " + err.Error()}
}
@@ -66,7 +69,7 @@ func (cli *DockerCli) CmdVersion(args ...string) (err error) {
},
}
serverVersion, err := cli.client.ServerVersion()
serverVersion, err := cli.client.ServerVersion(context.Background())
if err == nil {
vd.Server = &serverVersion
}

View File

@@ -2,11 +2,15 @@ package client
import (
"fmt"
"sort"
"text/tabwriter"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
runconfigopts "github.com/docker/docker/runconfig/opts"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/filters"
)
@@ -58,7 +62,7 @@ func (cli *DockerCli) CmdVolumeLs(args ...string) error {
}
}
volumes, err := cli.client.VolumeList(volFilterArgs)
volumes, err := cli.client.VolumeList(context.Background(), volFilterArgs)
if err != nil {
return err
}
@@ -72,6 +76,7 @@ func (cli *DockerCli) CmdVolumeLs(args ...string) error {
fmt.Fprintf(w, "\n")
}
sort.Sort(byVolumeName(volumes.Volumes))
for _, vol := range volumes.Volumes {
if *quiet {
fmt.Fprintln(w, vol.Name)
@@ -83,6 +88,14 @@ func (cli *DockerCli) CmdVolumeLs(args ...string) error {
return nil
}
type byVolumeName []*types.Volume
func (r byVolumeName) Len() int { return len(r) }
func (r byVolumeName) Swap(i, j int) { r[i], r[j] = r[j], r[i] }
func (r byVolumeName) Less(i, j int) bool {
return r[i].Name < r[j].Name
}
// CmdVolumeInspect displays low-level information on one or more volumes.
//
// Usage: docker volume inspect [OPTIONS] VOLUME [VOLUME...]
@@ -98,7 +111,7 @@ func (cli *DockerCli) CmdVolumeInspect(args ...string) error {
}
inspectSearcher := func(name string) (interface{}, []byte, error) {
i, err := cli.client.VolumeInspect(name)
i, err := cli.client.VolumeInspect(context.Background(), name)
return i, nil, err
}
@@ -116,6 +129,9 @@ func (cli *DockerCli) CmdVolumeCreate(args ...string) error {
flDriverOpts := opts.NewMapOpts(nil, nil)
cmd.Var(flDriverOpts, []string{"o", "-opt"}, "Set driver specific options")
flLabels := opts.NewListOpts(nil)
cmd.Var(&flLabels, []string{"-label"}, "Set metadata for a volume")
cmd.Require(flag.Exact, 0)
cmd.ParseFlags(args, true)
@@ -123,9 +139,10 @@ func (cli *DockerCli) CmdVolumeCreate(args ...string) error {
Driver: *flDriver,
DriverOpts: flDriverOpts.GetAll(),
Name: *flName,
Labels: runconfigopts.ConvertKVStringsToMap(flLabels.GetAll()),
}
vol, err := cli.client.VolumeCreate(volReq)
vol, err := cli.client.VolumeCreate(context.Background(), volReq)
if err != nil {
return err
}
@@ -145,7 +162,7 @@ func (cli *DockerCli) CmdVolumeRm(args ...string) error {
var status = 0
for _, name := range cmd.Args() {
if err := cli.client.VolumeRemove(name); err != nil {
if err := cli.client.VolumeRemove(context.Background(), name); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -21,9 +23,9 @@ func (cli *DockerCli) CmdWait(args ...string) error {
var errs []string
for _, name := range cmd.Args() {
status, err := cli.client.ContainerWait(name)
status, err := cli.client.ContainerWait(context.Background(), name)
if err != nil {
errs = append(errs, fmt.Sprintf("Failed to wait container (%s): %s", name, err))
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%d\n", status)
}

View File

@@ -18,14 +18,11 @@ import (
// Common constants for daemon and client.
const (
// Version of Current REST API
DefaultVersion version.Version = "1.22"
DefaultVersion version.Version = "1.23"
// MinVersion represents Minimum REST API version supported
MinVersion version.Version = "1.12"
// DefaultDockerfileName is the Default filename with Docker commands, read by docker build
DefaultDockerfileName string = "Dockerfile"
// NoBaseImageSpecifier is the symbol used by the FROM
// command to specify that no base image is to be used.
NoBaseImageSpecifier string = "scratch"

View File

@@ -310,7 +310,7 @@ func TestLoadOrCreateTrustKeyCreateKey(t *testing.T) {
}
// With the need to create the folder hierarchy as tmpKeyFie is in a path
// where some folder do not exists.
// where some folders do not exist.
tmpKeyFile = filepath.Join(tmpKeyFolderPath, "folder/hierarchy/keyfile")
if key, err := LoadOrCreateTrustKey(tmpKeyFile); err != nil || key == nil {

View File

@@ -0,0 +1,69 @@
package httputils
import (
"net/http"
"strings"
"github.com/Sirupsen/logrus"
)
// httpStatusError is an interface
// that errors with custom status codes
// implement to tell the api layer
// which response status to set.
type httpStatusError interface {
HTTPErrorStatusCode() int
}
// inputValidationError is an interface
// that errors generated by invalid
// inputs can implement to tell the
// api layer to set a 400 status code
// in the response.
type inputValidationError interface {
IsValidationError() bool
}
// 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
}
var statusCode int
errMsg := err.Error()
switch e := err.(type) {
case httpStatusError:
statusCode = e.HTTPErrorStatusCode()
case inputValidationError:
statusCode = http.StatusBadRequest
default:
// FIXME: this is brittle and should not be necessary, but we still need to identify if
// there are errors falling back into this logic.
// If we need to differentiate between different possible error types,
// we should create appropriate error types that implement the httpStatusError interface.
errStr := strings.ToLower(errMsg)
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
}
http.Error(w, errMsg, statusCode)
}

View File

@@ -9,8 +9,6 @@ import (
"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"
)
@@ -18,8 +16,11 @@ import (
// APIVersionKey is the client's requested API version.
const APIVersionKey = "api-version"
// UAStringKey is used as key type for user-agent string in net/context struct
const UAStringKey = "upstream-user-agent"
// 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).
// Any function that has the appropriate signature can be registered 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
@@ -77,7 +78,7 @@ func ParseForm(r *http.Request) error {
return nil
}
// ParseMultipartForm ensure the request form is parsed, even with invalid content types.
// ParseMultipartForm ensures 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
@@ -85,78 +86,6 @@ func ParseMultipartForm(r *http.Request) error {
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
}
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")

View File

@@ -1,195 +1,41 @@
package server
import (
"bufio"
"encoding/json"
"io"
"net/http"
"runtime"
"strings"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/api/server/middleware"
"github.com/docker/docker/dockerversion"
"github.com/docker/docker/errors"
"github.com/docker/docker/pkg/authorization"
"github.com/docker/docker/pkg/ioutils"
"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
// debugRequestMiddleware dumps the request to logger
func debugRequestMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
logrus.Debugf("%s %s", r.Method, r.RequestURI)
if r.Method != "POST" {
return handler(ctx, w, r, vars)
}
if err := httputils.CheckForJSON(r); err != nil {
return handler(ctx, w, r, vars)
}
maxBodySize := 4096 // 4KB
if r.ContentLength > int64(maxBodySize) {
return handler(ctx, w, r, vars)
}
body := r.Body
bufReader := bufio.NewReaderSize(body, maxBodySize)
r.Body = ioutils.NewReadCloserWrapper(bufReader, func() error { return body.Close() })
b, err := bufReader.Peek(maxBodySize)
if err != io.EOF {
// either there was an error reading, or the buffer is full (in which case the request is too large)
return handler(ctx, w, r, vars)
}
var postForm map[string]interface{}
if err := json.Unmarshal(b, &postForm); err == nil {
if _, exists := postForm["password"]; exists {
postForm["password"] = "*****"
}
formStr, errMarshal := json.Marshal(postForm)
if errMarshal == nil {
logrus.Debugf("form data: %s", string(formStr))
} else {
logrus.Debugf("form data: %q", postForm)
}
}
return handler(ctx, w, r, vars)
}
}
// authorizationMiddleware perform authorization on the request.
func (s *Server) authorizationMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
// FIXME: fill when authN gets in
// User and UserAuthNMethod are taken from AuthN plugins
// Currently tracked in https://github.com/docker/docker/pull/13994
user := ""
userAuthNMethod := ""
authCtx := authorization.NewCtx(s.authZPlugins, user, userAuthNMethod, r.Method, r.RequestURI)
if err := authCtx.AuthZRequest(w, r); err != nil {
logrus.Errorf("AuthZRequest for %s %s returned error: %s", r.Method, r.RequestURI, err)
return err
}
rw := authorization.NewResponseModifier(w)
if err := handler(ctx, rw, r, vars); err != nil {
logrus.Errorf("Handler for %s %s returned error: %s", r.Method, r.RequestURI, err)
return err
}
if err := authCtx.AuthZResponse(rw, r); err != nil {
logrus.Errorf("AuthZResponse for %s %s returned error: %s", r.Method, r.RequestURI, err)
return err
}
return nil
}
}
// 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.DefaultVersion
}
if apiVersion.GreaterThan(api.DefaultVersion) {
return errors.ErrorCodeNewerClientVersion.WithArgs(apiVersion, api.DefaultVersion)
}
if apiVersion.LessThan(api.MinVersion) {
return errors.ErrorCodeOldClientVersion.WithArgs(apiVersion, api.DefaultVersion)
}
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 evaluated 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,
next := handler
handleVersion := middleware.NewVersionMiddleware(dockerversion.Version, api.DefaultVersion, api.MinVersion)
next = handleVersion(next)
if s.cfg.EnableCors {
handleCORS := middleware.NewCORSMiddleware(s.cfg.CorsHeaders)
next = handleCORS(next)
}
handleUserAgent := middleware.NewUserAgentMiddleware(s.cfg.Version)
next = handleUserAgent(next)
// Only want this on debug level
if s.cfg.Logging && logrus.GetLevel() == logrus.DebugLevel {
middlewares = append(middlewares, debugRequestMiddleware)
next = middleware.DebugRequestMiddleware(next)
}
if len(s.cfg.AuthorizationPluginNames) > 0 {
s.authZPlugins = authorization.NewPlugins(s.cfg.AuthorizationPluginNames)
middlewares = append(middlewares, s.authorizationMiddleware)
handleAuthorization := middleware.NewAuthorizationMiddleware(s.authZPlugins)
next = handleAuthorization(next)
}
h := handler
for _, m := range middlewares {
h = m(h)
}
return h
return next
}

View File

@@ -0,0 +1,42 @@
package middleware
import (
"net/http"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/pkg/authorization"
"golang.org/x/net/context"
)
// NewAuthorizationMiddleware creates a new Authorization middleware.
func NewAuthorizationMiddleware(plugins []authorization.Plugin) Middleware {
return func(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
// FIXME: fill when authN gets in
// User and UserAuthNMethod are taken from AuthN plugins
// Currently tracked in https://github.com/docker/docker/pull/13994
user := ""
userAuthNMethod := ""
authCtx := authorization.NewCtx(plugins, user, userAuthNMethod, r.Method, r.RequestURI)
if err := authCtx.AuthZRequest(w, r); err != nil {
logrus.Errorf("AuthZRequest for %s %s returned error: %s", r.Method, r.RequestURI, err)
return err
}
rw := authorization.NewResponseModifier(w)
if err := handler(ctx, rw, r, vars); err != nil {
logrus.Errorf("Handler for %s %s returned error: %s", r.Method, r.RequestURI, err)
return err
}
if err := authCtx.AuthZResponse(rw, r); err != nil {
logrus.Errorf("AuthZResponse for %s %s returned error: %s", r.Method, r.RequestURI, err)
return err
}
return nil
}
}
}

View File

@@ -0,0 +1,33 @@
package middleware
import (
"net/http"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"golang.org/x/net/context"
)
// NewCORSMiddleware creates a new CORS middleware.
func NewCORSMiddleware(defaultHeaders string) Middleware {
return func(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 := defaultHeaders
if corsHeaders == "" {
corsHeaders = "*"
}
writeCorsHeaders(w, r, corsHeaders)
return handler(ctx, w, r, vars)
}
}
}
func writeCorsHeaders(w http.ResponseWriter, r *http.Request, corsHeaders string) {
logrus.Debugf("CORS header is enabled and set to: %s", corsHeaders)
w.Header().Add("Access-Control-Allow-Origin", corsHeaders)
w.Header().Add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, X-Registry-Auth")
w.Header().Add("Access-Control-Allow-Methods", "HEAD, GET, POST, DELETE, PUT, OPTIONS")
}

View File

@@ -0,0 +1,56 @@
package middleware
import (
"bufio"
"encoding/json"
"io"
"net/http"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/pkg/ioutils"
"golang.org/x/net/context"
)
// DebugRequestMiddleware dumps the request to logger
func DebugRequestMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
logrus.Debugf("Calling %s %s", r.Method, r.RequestURI)
if r.Method != "POST" {
return handler(ctx, w, r, vars)
}
if err := httputils.CheckForJSON(r); err != nil {
return handler(ctx, w, r, vars)
}
maxBodySize := 4096 // 4KB
if r.ContentLength > int64(maxBodySize) {
return handler(ctx, w, r, vars)
}
body := r.Body
bufReader := bufio.NewReaderSize(body, maxBodySize)
r.Body = ioutils.NewReadCloserWrapper(bufReader, func() error { return body.Close() })
b, err := bufReader.Peek(maxBodySize)
if err != io.EOF {
// either there was an error reading, or the buffer is full (in which case the request is too large)
return handler(ctx, w, r, vars)
}
var postForm map[string]interface{}
if err := json.Unmarshal(b, &postForm); err == nil {
if _, exists := postForm["password"]; exists {
postForm["password"] = "*****"
}
formStr, errMarshal := json.Marshal(postForm)
if errMarshal == nil {
logrus.Debugf("form data: %s", string(formStr))
} else {
logrus.Debugf("form data: %q", postForm)
}
}
return handler(ctx, w, r, vars)
}
}

View File

@@ -0,0 +1,7 @@
package middleware
import "github.com/docker/docker/api/server/httputils"
// Middleware is an adapter to allow the use of ordinary functions as Docker API filters.
// Any function that has the appropriate signature can be registered as a middleware.
type Middleware func(handler httputils.APIFunc) httputils.APIFunc

View File

@@ -0,0 +1,37 @@
package middleware
import (
"net/http"
"strings"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/pkg/version"
"golang.org/x/net/context"
)
// NewUserAgentMiddleware creates a new UserAgent middleware.
func NewUserAgentMiddleware(versionCheck string) Middleware {
serverVersion := version.Version(versionCheck)
return func(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
ctx = context.WithValue(ctx, httputils.UAStringKey, r.Header.Get("User-Agent"))
if strings.Contains(r.Header.Get("User-Agent"), "Docker-Client/") {
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 && !serverVersion.Equal(version.Version(userAgent[1])) {
logrus.Debugf("Client and server don't have the same version (client: %s, server: %s)", userAgent[1], serverVersion)
}
}
return handler(ctx, w, r, vars)
}
}
}

View File

@@ -0,0 +1,45 @@
package middleware
import (
"fmt"
"net/http"
"runtime"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/pkg/version"
"golang.org/x/net/context"
)
type badRequestError struct {
error
}
func (badRequestError) HTTPErrorStatusCode() int {
return http.StatusBadRequest
}
// NewVersionMiddleware creates a new Version middleware.
func NewVersionMiddleware(versionCheck string, defaultVersion, minVersion version.Version) Middleware {
serverVersion := version.Version(versionCheck)
return func(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 = defaultVersion
}
if apiVersion.GreaterThan(defaultVersion) {
return badRequestError{fmt.Errorf("client is newer than server (client API version: %s, server API version: %s)", apiVersion, defaultVersion)}
}
if apiVersion.LessThan(minVersion) {
return badRequestError{fmt.Errorf("client version %s is too old. Minimum supported API version is %s, please upgrade your client to a newer version", apiVersion, minVersion)}
}
header := fmt.Sprintf("Docker/%s (%s)", serverVersion, runtime.GOOS)
w.Header().Set("Server", header)
ctx = context.WithValue(ctx, httputils.APIVersionKey, apiVersion)
return handler(ctx, w, r, vars)
}
}
}

View File

@@ -1,13 +1,13 @@
package server
package middleware
import (
"net/http"
"net/http/httptest"
"strings"
"testing"
"github.com/docker/distribution/registry/api/errcode"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/errors"
"github.com/docker/docker/pkg/version"
"golang.org/x/net/context"
)
@@ -19,7 +19,10 @@ func TestVersionMiddleware(t *testing.T) {
return nil
}
h := versionMiddleware(handler)
defaultVersion := version.Version("1.10.0")
minVersion := version.Version("1.2.0")
m := NewVersionMiddleware(defaultVersion.String(), defaultVersion, minVersion)
h := m(handler)
req, _ := http.NewRequest("GET", "/containers/json", nil)
resp := httptest.NewRecorder()
@@ -37,7 +40,10 @@ func TestVersionMiddlewareWithErrors(t *testing.T) {
return nil
}
h := versionMiddleware(handler)
defaultVersion := version.Version("1.10.0")
minVersion := version.Version("1.2.0")
m := NewVersionMiddleware(defaultVersion.String(), defaultVersion, minVersion)
h := m(handler)
req, _ := http.NewRequest("GET", "/containers/json", nil)
resp := httptest.NewRecorder()
@@ -45,13 +51,14 @@ func TestVersionMiddlewareWithErrors(t *testing.T) {
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)
if !strings.Contains(err.Error(), "client version 0.1 is too old. Minimum supported API version is 1.2.0") {
t.Fatalf("Expected too old client error, 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)
if !strings.Contains(err.Error(), "client is newer than server") {
t.Fatalf("Expected client newer than server error, got %v", err)
}
}

View File

@@ -9,8 +9,10 @@ import (
"github.com/gorilla/mux"
)
func profilerSetup(mainRouter *mux.Router, path string) {
var r = mainRouter.PathPrefix(path).Subrouter()
const debugPathPrefix = "/debug/"
func profilerSetup(mainRouter *mux.Router) {
var r = mainRouter.PathPrefix(debugPathPrefix).Subrouter()
r.HandleFunc("/vars", expVars)
r.HandleFunc("/pprof/", pprof.Index)
r.HandleFunc("/pprof/cmdline", pprof.Cmdline)

View File

@@ -1,5 +1,13 @@
package build
import (
"io"
"github.com/docker/docker/builder"
"github.com/docker/engine-api/types"
"golang.org/x/net/context"
)
// Backend abstracts an image builder whose only purpose is to build an image referenced by an imageID.
type Backend interface {
// Build builds a Docker image referenced by an imageID string.
@@ -8,5 +16,5 @@ type Backend interface {
// by the caller.
//
// TODO: make this return a reference instead of string
Build() (imageID string)
Build(clientCtx context.Context, config *types.ImageBuildOptions, context builder.Context, stdout io.Writer, stderr io.Writer, out io.Writer, clientGone <-chan bool) (string, error)
}

View File

@@ -1,19 +1,15 @@
package build
import (
"github.com/docker/docker/api/server/router"
"github.com/docker/docker/api/server/router/local"
"github.com/docker/docker/daemon"
)
import "github.com/docker/docker/api/server/router"
// buildRouter is a router to talk with the build controller
type buildRouter struct {
backend *daemon.Daemon
backend Backend
routes []router.Route
}
// NewRouter initializes a new build router
func NewRouter(b *daemon.Daemon) router.Router {
func NewRouter(b Backend) router.Router {
r := &buildRouter{
backend: b,
}
@@ -28,6 +24,6 @@ func (r *buildRouter) Routes() []router.Route {
func (r *buildRouter) initRoutes() {
r.routes = []router.Route{
local.NewPostRoute("/build", r.postBuild),
router.NewPostRoute("/build", r.postBuild),
}
}

View File

@@ -4,70 +4,25 @@ import (
"bytes"
"encoding/base64"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"strconv"
"strings"
"sync"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/builder"
"github.com/docker/docker/builder/dockerfile"
"github.com/docker/docker/daemon/daemonbuilder"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/chrootarchive"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/progress"
"github.com/docker/docker/pkg/streamformatter"
"github.com/docker/docker/reference"
"github.com/docker/docker/utils"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
"github.com/docker/go-units"
"golang.org/x/net/context"
)
// sanitizeRepoAndTags parses the raw "t" parameter received from the client
// to a slice of repoAndTag.
// It also validates each repoName and tag.
func sanitizeRepoAndTags(names []string) ([]reference.Named, error) {
var (
repoAndTags []reference.Named
// This map is used for deduplicating the "-t" parameter.
uniqNames = make(map[string]struct{})
)
for _, repo := range names {
if repo == "" {
continue
}
ref, err := reference.ParseNamed(repo)
if err != nil {
return nil, err
}
ref = reference.WithDefaultTag(ref)
if _, isCanonical := ref.(reference.Canonical); isCanonical {
return nil, errors.New("build tag cannot contain a digest")
}
if _, isTagged := ref.(reference.NamedTagged); !isTagged {
ref, err = reference.WithTag(ref, reference.DefaultTag)
}
nameWithTag := ref.String()
if _, exists := uniqNames[nameWithTag]; !exists {
uniqNames[nameWithTag] = struct{}{}
repoAndTags = append(repoAndTags, ref)
}
}
return repoAndTags, nil
}
func newImageBuildOptions(ctx context.Context, r *http.Request) (*types.ImageBuildOptions, error) {
version := httputils.VersionFromContext(ctx)
options := &types.ImageBuildOptions{}
@@ -94,6 +49,7 @@ func newImageBuildOptions(ctx context.Context, r *http.Request) (*types.ImageBui
options.CPUSetCPUs = r.FormValue("cpusetcpus")
options.CPUSetMems = r.FormValue("cpusetmems")
options.CgroupParent = r.FormValue("cgroupparent")
options.Tags = r.Form["t"]
if r.Form.Get("shmsize") != "" {
shmSize, err := strconv.ParseInt(r.Form.Get("shmsize"), 10, 64)
@@ -103,11 +59,11 @@ func newImageBuildOptions(ctx context.Context, r *http.Request) (*types.ImageBui
options.ShmSize = shmSize
}
if i := container.IsolationLevel(r.FormValue("isolation")); i != "" {
if !container.IsolationLevel.IsValid(i) {
if i := container.Isolation(r.FormValue("isolation")); i != "" {
if !container.Isolation.IsValid(i) {
return nil, fmt.Errorf("Unsupported isolation: %q", i)
}
options.IsolationLevel = i
options.Isolation = i
}
var buildUlimits = []*units.Ulimit{}
@@ -127,9 +83,30 @@ func newImageBuildOptions(ctx context.Context, r *http.Request) (*types.ImageBui
}
options.BuildArgs = buildArgs
}
var labels = map[string]string{}
labelsJSON := r.FormValue("labels")
if labelsJSON != "" {
if err := json.NewDecoder(strings.NewReader(labelsJSON)).Decode(&labels); err != nil {
return nil, err
}
options.Labels = labels
}
return options, nil
}
type syncWriter struct {
w io.Writer
mu sync.Mutex
}
func (s *syncWriter) Write(b []byte) (count int, err error) {
s.mu.Lock()
count, err = s.w.Write(b)
s.mu.Unlock()
return
}
func (br *buildRouter) postBuild(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
var (
authConfigs = map[string]types.AuthConfig{}
@@ -160,7 +137,7 @@ func (br *buildRouter) postBuild(ctx context.Context, w http.ResponseWriter, r *
if !output.Flushed() {
return err
}
_, err = w.Write(sf.FormatError(errors.New(utils.GetErrorMessage(err))))
_, err = w.Write(sf.FormatError(err))
if err != nil {
logrus.Warnf("could not write error response: %v", err)
}
@@ -172,11 +149,6 @@ func (br *buildRouter) postBuild(ctx context.Context, w http.ResponseWriter, r *
return errf(err)
}
repoAndTags, err := sanitizeRepoAndTags(r.Form["t"])
if err != nil {
return errf(err)
}
remoteURL := r.FormValue("remote")
// Currently, only used if context is from a remote url.
@@ -192,8 +164,9 @@ func (br *buildRouter) postBuild(ctx context.Context, w http.ResponseWriter, r *
var (
context builder.ModifiableContext
dockerfileName string
out io.Writer
)
context, dockerfileName, err = daemonbuilder.DetectContextFromRemoteURL(r.Body, remoteURL, createProgressReader)
context, dockerfileName, err = builder.DetectContextFromRemoteURL(r.Body, remoteURL, createProgressReader)
if err != nil {
return errf(err)
}
@@ -206,62 +179,28 @@ func (br *buildRouter) postBuild(ctx context.Context, w http.ResponseWriter, r *
buildOptions.Dockerfile = dockerfileName
}
uidMaps, gidMaps := br.backend.GetUIDGIDMaps()
defaultArchiver := &archive.Archiver{
Untar: chrootarchive.Untar,
UIDMaps: uidMaps,
GIDMaps: gidMaps,
}
buildOptions.AuthConfigs = authConfigs
docker := &daemonbuilder.Docker{
Daemon: br.backend,
OutOld: output,
AuthConfigs: authConfigs,
Archiver: defaultArchiver,
}
out = output
if buildOptions.SuppressOutput {
docker.OutOld = notVerboseBuffer
out = notVerboseBuffer
}
out = &syncWriter{w: out}
stdout := &streamformatter.StdoutFormatter{Writer: out, StreamFormatter: sf}
stderr := &streamformatter.StderrFormatter{Writer: out, StreamFormatter: sf}
closeNotifier := make(<-chan bool)
if notifier, ok := w.(http.CloseNotifier); ok {
closeNotifier = notifier.CloseNotify()
}
b, err := dockerfile.NewBuilder(
buildOptions, // result of newBuildConfig
docker,
imgID, err := br.backend.Build(ctx, buildOptions,
builder.DockerIgnoreContext{ModifiableContext: context},
nil)
stdout, stderr, out,
closeNotifier)
if err != nil {
return errf(err)
}
b.Stdout = &streamformatter.StdoutFormatter{Writer: output, StreamFormatter: sf}
b.Stderr = &streamformatter.StderrFormatter{Writer: output, StreamFormatter: sf}
if buildOptions.SuppressOutput {
b.Stdout = &streamformatter.StdoutFormatter{Writer: notVerboseBuffer, StreamFormatter: sf}
b.Stderr = &streamformatter.StderrFormatter{Writer: notVerboseBuffer, StreamFormatter: sf}
}
if closeNotifier, ok := w.(http.CloseNotifier); ok {
finished := make(chan struct{})
defer close(finished)
clientGone := closeNotifier.CloseNotify()
go func() {
select {
case <-finished:
case <-clientGone:
logrus.Infof("Client disconnected, cancelling job: build")
b.Cancel()
}
}()
}
imgID, err := b.Build()
if err != nil {
return errf(err)
}
for _, rt := range repoAndTags {
if err := br.backend.TagImage(rt, imgID); err != nil {
return errf(err)
}
}
// Everything worked so if -q was provided the output from the daemon
// should be just the image ID and we'll print that to stdout.

View File

@@ -4,8 +4,7 @@ import (
"io"
"time"
"github.com/docker/docker/daemon"
"github.com/docker/docker/daemon/exec"
"github.com/docker/docker/api/types/backend"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/version"
"github.com/docker/engine-api/types"
@@ -15,7 +14,7 @@ import (
// execBackend includes functions to implement to provide exec functionality.
type execBackend interface {
ContainerExecCreate(config *types.ExecConfig) (string, error)
ContainerExecInspect(id string) (*exec.Config, error)
ContainerExecInspect(id string) (*backend.ExecInspect, error)
ContainerExecResize(name string, height, width int) error
ContainerExecStart(name string, stdin io.ReadCloser, stdout io.Writer, stderr io.Writer) error
ExecExists(name string) (bool, error)
@@ -44,24 +43,22 @@ type stateBackend interface {
ContainerUnpause(name string) error
ContainerUpdate(name string, hostConfig *container.HostConfig) ([]string, error)
ContainerWait(name string, timeout time.Duration) (int, error)
Exists(id string) bool
}
// monitorBackend includes functions to implement to provide containers monitoring functionality.
type monitorBackend interface {
ContainerChanges(name string) ([]archive.Change, error)
ContainerInspect(name string, size bool, version version.Version) (interface{}, error)
ContainerLogs(name string, config *daemon.ContainerLogsConfig) error
ContainerStats(name string, config *daemon.ContainerStatsConfig) error
ContainerLogs(name string, config *backend.ContainerLogsConfig, started chan struct{}) error
ContainerStats(name string, config *backend.ContainerStatsConfig) error
ContainerTop(name string, psArgs string) (*types.ContainerProcessList, error)
Containers(config *daemon.ContainersConfig) ([]*types.Container, error)
Containers(config *types.ContainerListOptions) ([]*types.Container, error)
}
// attachBackend includes function to implement to provide container attaching functionality.
type attachBackend interface {
ContainerAttachWithLogs(name string, c *daemon.ContainerAttachWithLogsConfig) error
ContainerWsAttachWithLogs(name string, c *daemon.ContainerWsAttachWithLogsConfig) error
ContainerAttach(name string, c *backend.ContainerAttachConfig) error
}
// Backend is all the methods that need to be implemented to provide container specific functionality.

View File

@@ -1,9 +1,6 @@
package container
import (
"github.com/docker/docker/api/server/router"
"github.com/docker/docker/api/server/router/local"
)
import "github.com/docker/docker/api/server/router"
// containerRouter is a router to talk with the container controller
type containerRouter struct {
@@ -20,7 +17,7 @@ func NewRouter(b Backend) router.Router {
return r
}
// Routes returns the available routers to the container controller
// Routes returns the available routes to the container controller
func (r *containerRouter) Routes() []router.Route {
return r.routes
}
@@ -29,38 +26,38 @@ func (r *containerRouter) Routes() []router.Route {
func (r *containerRouter) initRoutes() {
r.routes = []router.Route{
// HEAD
local.NewHeadRoute("/containers/{name:.*}/archive", r.headContainersArchive),
router.NewHeadRoute("/containers/{name:.*}/archive", r.headContainersArchive),
// GET
local.NewGetRoute("/containers/json", r.getContainersJSON),
local.NewGetRoute("/containers/{name:.*}/export", r.getContainersExport),
local.NewGetRoute("/containers/{name:.*}/changes", r.getContainersChanges),
local.NewGetRoute("/containers/{name:.*}/json", r.getContainersByName),
local.NewGetRoute("/containers/{name:.*}/top", r.getContainersTop),
local.NewGetRoute("/containers/{name:.*}/logs", r.getContainersLogs),
local.NewGetRoute("/containers/{name:.*}/stats", r.getContainersStats),
local.NewGetRoute("/containers/{name:.*}/attach/ws", r.wsContainersAttach),
local.NewGetRoute("/exec/{id:.*}/json", r.getExecByID),
local.NewGetRoute("/containers/{name:.*}/archive", r.getContainersArchive),
router.NewGetRoute("/containers/json", r.getContainersJSON),
router.NewGetRoute("/containers/{name:.*}/export", r.getContainersExport),
router.NewGetRoute("/containers/{name:.*}/changes", r.getContainersChanges),
router.NewGetRoute("/containers/{name:.*}/json", r.getContainersByName),
router.NewGetRoute("/containers/{name:.*}/top", r.getContainersTop),
router.NewGetRoute("/containers/{name:.*}/logs", r.getContainersLogs),
router.NewGetRoute("/containers/{name:.*}/stats", r.getContainersStats),
router.NewGetRoute("/containers/{name:.*}/attach/ws", r.wsContainersAttach),
router.NewGetRoute("/exec/{id:.*}/json", r.getExecByID),
router.NewGetRoute("/containers/{name:.*}/archive", r.getContainersArchive),
// POST
local.NewPostRoute("/containers/create", r.postContainersCreate),
local.NewPostRoute("/containers/{name:.*}/kill", r.postContainersKill),
local.NewPostRoute("/containers/{name:.*}/pause", r.postContainersPause),
local.NewPostRoute("/containers/{name:.*}/unpause", r.postContainersUnpause),
local.NewPostRoute("/containers/{name:.*}/restart", r.postContainersRestart),
local.NewPostRoute("/containers/{name:.*}/start", r.postContainersStart),
local.NewPostRoute("/containers/{name:.*}/stop", r.postContainersStop),
local.NewPostRoute("/containers/{name:.*}/wait", r.postContainersWait),
local.NewPostRoute("/containers/{name:.*}/resize", r.postContainersResize),
local.NewPostRoute("/containers/{name:.*}/attach", r.postContainersAttach),
local.NewPostRoute("/containers/{name:.*}/copy", r.postContainersCopy),
local.NewPostRoute("/containers/{name:.*}/exec", r.postContainerExecCreate),
local.NewPostRoute("/exec/{name:.*}/start", r.postContainerExecStart),
local.NewPostRoute("/exec/{name:.*}/resize", r.postContainerExecResize),
local.NewPostRoute("/containers/{name:.*}/rename", r.postContainerRename),
local.NewPostRoute("/containers/{name:.*}/update", r.postContainerUpdate),
router.NewPostRoute("/containers/create", r.postContainersCreate),
router.NewPostRoute("/containers/{name:.*}/kill", r.postContainersKill),
router.NewPostRoute("/containers/{name:.*}/pause", r.postContainersPause),
router.NewPostRoute("/containers/{name:.*}/unpause", r.postContainersUnpause),
router.NewPostRoute("/containers/{name:.*}/restart", r.postContainersRestart),
router.NewPostRoute("/containers/{name:.*}/start", r.postContainersStart),
router.NewPostRoute("/containers/{name:.*}/stop", r.postContainersStop),
router.NewPostRoute("/containers/{name:.*}/wait", r.postContainersWait),
router.NewPostRoute("/containers/{name:.*}/resize", r.postContainersResize),
router.NewPostRoute("/containers/{name:.*}/attach", r.postContainersAttach),
router.NewPostRoute("/containers/{name:.*}/copy", r.postContainersCopy),
router.NewPostRoute("/containers/{name:.*}/exec", r.postContainerExecCreate),
router.NewPostRoute("/exec/{name:.*}/start", r.postContainerExecStart),
router.NewPostRoute("/exec/{name:.*}/resize", r.postContainerExecResize),
router.NewPostRoute("/containers/{name:.*}/rename", r.postContainerRename),
router.NewPostRoute("/containers/{name:.*}/update", r.postContainerUpdate),
// PUT
local.NewPutRoute("/containers/{name:.*}/archive", r.putContainersArchive),
router.NewPutRoute("/containers/{name:.*}/archive", r.putContainersArchive),
// DELETE
local.NewDeleteRoute("/containers/{name:.*}", r.deleteContainers),
router.NewDeleteRoute("/containers/{name:.*}", r.deleteContainers),
}
}

View File

@@ -11,18 +11,15 @@ import (
"time"
"github.com/Sirupsen/logrus"
"github.com/docker/distribution/registry/api/errcode"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/daemon"
derr "github.com/docker/docker/errors"
"github.com/docker/docker/api/types/backend"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/signal"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/utils"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
timetypes "github.com/docker/engine-api/types/time"
"github.com/docker/engine-api/types/filters"
"golang.org/x/net/context"
"golang.org/x/net/websocket"
)
@@ -31,13 +28,17 @@ func (s *containerRouter) getContainersJSON(ctx context.Context, w http.Response
if err := httputils.ParseForm(r); err != nil {
return err
}
filter, err := filters.FromParam(r.Form.Get("filters"))
if 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"),
config := &types.ContainerListOptions{
All: httputils.BoolValue(r, "all"),
Size: httputils.BoolValue(r, "size"),
Since: r.Form.Get("since"),
Before: r.Form.Get("before"),
Filter: filter,
}
if tmpLimit := r.Form.Get("limit"); tmpLimit != "" {
@@ -62,14 +63,8 @@ func (s *containerRouter) getContainersStats(ctx context.Context, w http.Respons
}
stream := httputils.BoolValueOrDefault(r, "stream", true)
var out io.Writer
if !stream {
w.Header().Set("Content-Type", "application/json")
out = w
} else {
wf := ioutils.NewWriteFlusher(w)
out = wf
defer wf.Close()
}
var closeNotifier <-chan bool
@@ -77,11 +72,11 @@ func (s *containerRouter) getContainersStats(ctx context.Context, w http.Respons
closeNotifier = notifier.CloseNotify()
}
config := &daemon.ContainerStatsConfig{
config := &backend.ContainerStatsConfig{
Stream: stream,
OutStream: out,
OutStream: w,
Stop: closeNotifier,
Version: httputils.VersionFromContext(ctx),
Version: string(httputils.VersionFromContext(ctx)),
}
return s.backend.ContainerStats(vars["name"], config)
@@ -102,53 +97,36 @@ func (s *containerRouter) getContainersLogs(ctx context.Context, w http.Response
return fmt.Errorf("Bad parameters: you must choose at least one stream")
}
var since time.Time
if r.Form.Get("since") != "" {
s, n, err := timetypes.ParseTimestamps(r.Form.Get("since"), 0)
if err != nil {
return err
}
since = time.Unix(s, n)
}
var closeNotifier <-chan bool
if notifier, ok := w.(http.CloseNotifier); ok {
closeNotifier = notifier.CloseNotify()
}
containerName := vars["name"]
if !s.backend.Exists(containerName) {
return derr.ErrorCodeNoSuchContainer.WithArgs(containerName)
logsConfig := &backend.ContainerLogsConfig{
ContainerLogsOptions: types.ContainerLogsOptions{
Follow: httputils.BoolValue(r, "follow"),
Timestamps: httputils.BoolValue(r, "timestamps"),
Since: r.Form.Get("since"),
Tail: r.Form.Get("tail"),
ShowStdout: stdout,
ShowStderr: stderr,
},
OutStream: w,
Stop: closeNotifier,
}
// 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)
w.WriteHeader(http.StatusOK)
if flusher, ok := w.(http.Flusher); ok {
flusher.Flush()
}
output := ioutils.NewWriteFlusher(w)
defer output.Close()
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: output,
Stop: closeNotifier,
}
if err := s.backend.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))
chStarted := make(chan struct{})
if err := s.backend.ContainerLogs(containerName, logsConfig, chStarted); err != nil {
select {
case <-chStarted:
// 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: %v\n", err)
default:
return err
}
}
return nil
@@ -201,6 +179,10 @@ func (s *containerRouter) postContainersStop(ctx context.Context, w http.Respons
return nil
}
type errContainerIsRunning interface {
ContainerIsRunning() bool
}
func (s *containerRouter) postContainersKill(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
@@ -218,15 +200,17 @@ func (s *containerRouter) postContainersKill(ctx context.Context, w http.Respons
}
if err := s.backend.ContainerKill(name, uint64(sig)); err != nil {
theErr, isDerr := err.(errcode.ErrorCoder)
isStopped := isDerr && theErr.ErrorCode() == derr.ErrorCodeNotRunning
var isStopped bool
if e, ok := err.(errContainerIsRunning); ok {
isStopped = !e.ContainerIsRunning()
}
// 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, utils.GetErrorMessage(err))
return fmt.Errorf("Cannot kill container %s: %v", name, err)
}
}
@@ -341,7 +325,8 @@ func (s *containerRouter) postContainerUpdate(ctx context.Context, w http.Respon
}
hostConfig := &container.HostConfig{
Resources: updateConfig.Resources,
Resources: updateConfig.Resources,
RestartPolicy: updateConfig.RestartPolicy,
}
name := vars["name"]
@@ -446,18 +431,45 @@ func (s *containerRouter) postContainersAttach(ctx context.Context, w http.Respo
}
}
attachWithLogsConfig := &daemon.ContainerAttachWithLogsConfig{
Hijacker: w.(http.Hijacker),
Upgrade: upgrade,
hijacker, ok := w.(http.Hijacker)
if !ok {
return fmt.Errorf("error attaching to container %s, hijack connection missing", containerName)
}
setupStreams := func() (io.ReadCloser, io.Writer, io.Writer, error) {
conn, _, err := hijacker.Hijack()
if err != nil {
return nil, nil, nil, err
}
// set raw mode
conn.Write([]byte{})
if upgrade {
fmt.Fprintf(conn, "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(conn, "HTTP/1.1 200 OK\r\nContent-Type: application/vnd.docker.raw-stream\r\n\r\n")
}
closer := func() error {
httputils.CloseStreams(conn)
return nil
}
return ioutils.NewReadCloserWrapper(conn, closer), conn, conn, nil
}
attachConfig := &backend.ContainerAttachConfig{
GetStreams: setupStreams,
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"),
DetachKeys: keys,
MuxStreams: true,
}
return s.backend.ContainerAttachWithLogs(containerName, attachWithLogsConfig)
return s.backend.ContainerAttach(containerName, attachConfig)
}
func (s *containerRouter) wsContainersAttach(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
@@ -466,10 +478,6 @@ func (s *containerRouter) wsContainersAttach(ctx context.Context, w http.Respons
}
containerName := vars["name"]
if !s.backend.Exists(containerName) {
return derr.ErrorCodeNoSuchContainer.WithArgs(containerName)
}
var keys []byte
var err error
detachKeys := r.FormValue("detachKeys")
@@ -480,24 +488,44 @@ func (s *containerRouter) wsContainersAttach(ctx context.Context, w http.Respons
}
}
h := websocket.Handler(func(ws *websocket.Conn) {
defer ws.Close()
done := make(chan struct{})
started := make(chan struct{})
wsAttachWithLogsConfig := &daemon.ContainerWsAttachWithLogsConfig{
InStream: ws,
OutStream: ws,
ErrStream: ws,
Logs: httputils.BoolValue(r, "logs"),
Stream: httputils.BoolValue(r, "stream"),
DetachKeys: keys,
setupStreams := func() (io.ReadCloser, io.Writer, io.Writer, error) {
wsChan := make(chan *websocket.Conn)
h := func(conn *websocket.Conn) {
wsChan <- conn
<-done
}
if err := s.backend.ContainerWsAttachWithLogs(containerName, wsAttachWithLogsConfig); err != nil {
logrus.Errorf("Error attaching websocket: %s", utils.GetErrorMessage(err))
}
})
ws := websocket.Server{Handler: h, Handshake: nil}
ws.ServeHTTP(w, r)
srv := websocket.Server{Handler: h, Handshake: nil}
go func() {
close(started)
srv.ServeHTTP(w, r)
}()
return nil
conn := <-wsChan
return conn, conn, conn, nil
}
attachConfig := &backend.ContainerAttachConfig{
GetStreams: setupStreams,
Logs: httputils.BoolValue(r, "logs"),
Stream: httputils.BoolValue(r, "stream"),
DetachKeys: keys,
UseStdin: true,
UseStdout: true,
UseStderr: true,
MuxStreams: false, // TODO: this should be true since it's a single stream for both stdout and stderr
}
err = s.backend.ContainerAttach(containerName, attachConfig)
close(done)
select {
case <-started:
logrus.Errorf("Error attaching websocket: %s", err)
return nil
default:
}
return err
}

View File

@@ -10,7 +10,6 @@ import (
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/utils"
"github.com/docker/engine-api/types"
"golang.org/x/net/context"
)
@@ -46,7 +45,7 @@ func (s *containerRouter) postContainerExecCreate(ctx context.Context, w http.Re
// Register an instance of Exec in container.
id, err := s.backend.ContainerExecCreate(execConfig)
if err != nil {
logrus.Errorf("Error setting up exec command in container %s: %s", name, utils.GetErrorMessage(err))
logrus.Errorf("Error setting up exec command in container %s: %v", name, err)
return err
}
@@ -104,8 +103,6 @@ func (s *containerRouter) postContainerExecStart(ctx context.Context, w http.Res
stderr = stdcopy.NewStdWriter(outStream, stdcopy.Stderr)
stdout = stdcopy.NewStdWriter(outStream, stdcopy.Stdout)
}
} else {
outStream = w
}
// Now run the user process in container.
@@ -113,7 +110,9 @@ func (s *containerRouter) postContainerExecStart(ctx context.Context, w http.Res
if execStartCheck.Detach {
return err
}
logrus.Errorf("Error running exec in container: %v\n", utils.GetErrorMessage(err))
stdout.Write([]byte(err.Error()))
logrus.Errorf("Error running exec in container: %v\n", err)
return err
}
return nil
}

View File

@@ -7,7 +7,7 @@ import (
"golang.org/x/net/context"
)
// getContainersByName inspects containers configuration and serializes it as json.
// getContainersByName inspects container's configuration and serializes it as json.
func (s *containerRouter) getContainersByName(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
displaySize := httputils.BoolValue(r, "size")

View File

@@ -0,0 +1,44 @@
package image
import (
"io"
"github.com/docker/docker/reference"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
"github.com/docker/engine-api/types/registry"
"golang.org/x/net/context"
)
// Backend is all the methods that need to be implemented
// to provide image specific functionality.
type Backend interface {
containerBackend
imageBackend
importExportBackend
registryBackend
}
type containerBackend interface {
Commit(name string, config *types.ContainerCommitConfig) (imageID string, err error)
}
type imageBackend interface {
ImageDelete(imageRef string, force, prune bool) ([]types.ImageDelete, error)
ImageHistory(imageName string) ([]*types.ImageHistory, error)
Images(filterArgs string, filter string, all bool) ([]*types.Image, error)
LookupImage(name string) (*types.ImageInspect, error)
TagImage(newTag reference.Named, imageName string) error
}
type importExportBackend interface {
LoadImage(inTar io.ReadCloser, outStream io.Writer, quiet bool) error
ImportImage(src string, newRef reference.Named, msg string, inConfig io.ReadCloser, outStream io.Writer, config *container.Config) error
ExportImage(names []string, outStream io.Writer) error
}
type registryBackend interface {
PullImage(ctx context.Context, ref reference.Named, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error
PushImage(ctx context.Context, ref reference.Named, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error
SearchRegistryForImages(ctx context.Context, term string, authConfig *types.AuthConfig, metaHeaders map[string][]string) (*registry.SearchResults, error)
}

View File

@@ -0,0 +1,44 @@
package image
import "github.com/docker/docker/api/server/router"
// imageRouter is a router to talk with the image controller
type imageRouter struct {
backend Backend
routes []router.Route
}
// NewRouter initializes a new image router
func NewRouter(backend Backend) router.Router {
r := &imageRouter{
backend: backend,
}
r.initRoutes()
return r
}
// Routes returns the available routes to the image controller
func (r *imageRouter) Routes() []router.Route {
return r.routes
}
// initRoutes initializes the routes in the image router
func (r *imageRouter) initRoutes() {
r.routes = []router.Route{
// GET
router.NewGetRoute("/images/json", r.getImagesJSON),
router.NewGetRoute("/images/search", r.getImagesSearch),
router.NewGetRoute("/images/get", r.getImagesGet),
router.NewGetRoute("/images/{name:.*}/get", r.getImagesGet),
router.NewGetRoute("/images/{name:.*}/history", r.getImagesHistory),
router.NewGetRoute("/images/{name:.*}/json", r.getImagesByName),
// POST
router.NewPostRoute("/commit", r.postCommit),
router.NewPostRoute("/images/create", r.postImagesCreate),
router.NewPostRoute("/images/load", r.postImagesLoad),
router.NewPostRoute("/images/{name:.*}/push", r.postImagesPush),
router.NewPostRoute("/images/{name:.*}/tag", r.postImagesTag),
// DELETE
router.NewDeleteRoute("/images/{name:.*}", r.deleteImages),
}
}

View File

@@ -1,4 +1,4 @@
package local
package image
import (
"encoding/base64"
@@ -14,7 +14,6 @@ import (
"github.com/docker/distribution/registry/api/errcode"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/builder/dockerfile"
derr "github.com/docker/docker/errors"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/streamformatter"
"github.com/docker/docker/reference"
@@ -24,7 +23,7 @@ import (
"golang.org/x/net/context"
)
func (s *router) postCommit(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
func (s *imageRouter) postCommit(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
@@ -49,10 +48,6 @@ func (s *router) postCommit(ctx context.Context, w http.ResponseWriter, r *http.
c = &container.Config{}
}
if !s.daemon.Exists(cname) {
return derr.ErrorCodeNoSuchContainer.WithArgs(cname)
}
newConfig, err := dockerfile.BuildFromConfig(c, r.Form["changes"])
if err != nil {
return err
@@ -68,7 +63,7 @@ func (s *router) postCommit(ctx context.Context, w http.ResponseWriter, r *http.
MergeConfigs: true,
}
imgID, err := s.daemon.Commit(cname, commitCfg)
imgID, err := s.backend.Commit(cname, commitCfg)
if err != nil {
return err
}
@@ -79,7 +74,7 @@ func (s *router) postCommit(ctx context.Context, w http.ResponseWriter, r *http.
}
// 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 {
func (s *imageRouter) postImagesCreate(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
@@ -89,21 +84,8 @@ func (s *router) postImagesCreate(ctx context.Context, w http.ResponseWriter, r
repo = r.Form.Get("repo")
tag = r.Form.Get("tag")
message = r.Form.Get("message")
)
authEncoded := r.Header.Get("X-Registry-Auth")
authConfig := &types.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 = &types.AuthConfig{}
}
}
var (
err error
output = ioutils.NewWriteFlusher(w)
err error
output = ioutils.NewWriteFlusher(w)
)
defer output.Close()
@@ -136,7 +118,18 @@ func (s *router) postImagesCreate(ctx context.Context, w http.ResponseWriter, r
}
}
err = s.daemon.PullImage(ref, metaHeaders, authConfig, output)
authEncoded := r.Header.Get("X-Registry-Auth")
authConfig := &types.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 = &types.AuthConfig{}
}
}
err = s.backend.PullImage(ctx, ref, metaHeaders, authConfig, output)
}
}
// Check the error from pulling an image to make sure the request
@@ -177,7 +170,7 @@ func (s *router) postImagesCreate(ctx context.Context, w http.ResponseWriter, r
return err
}
err = s.daemon.ImportImage(src, newRef, message, r.Body, output, newConfig)
err = s.backend.ImportImage(src, newRef, message, r.Body, output, newConfig)
}
if err != nil {
if !output.Flushed() {
@@ -190,7 +183,7 @@ func (s *router) postImagesCreate(ctx context.Context, w http.ResponseWriter, r
return nil
}
func (s *router) postImagesPush(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
func (s *imageRouter) postImagesPush(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
metaHeaders := map[string][]string{}
for k, v := range r.Header {
if strings.HasPrefix(k, "X-Meta-") {
@@ -235,7 +228,7 @@ func (s *router) postImagesPush(ctx context.Context, w http.ResponseWriter, r *h
w.Header().Set("Content-Type", "application/json")
if err := s.daemon.PushImage(ref, metaHeaders, authConfig, output); err != nil {
if err := s.backend.PushImage(ctx, ref, metaHeaders, authConfig, output); err != nil {
if !output.Flushed() {
return err
}
@@ -245,7 +238,7 @@ func (s *router) postImagesPush(ctx context.Context, w http.ResponseWriter, r *h
return nil
}
func (s *router) getImagesGet(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
func (s *imageRouter) getImagesGet(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
@@ -261,7 +254,7 @@ func (s *router) getImagesGet(ctx context.Context, w http.ResponseWriter, r *htt
names = r.Form["names"]
}
if err := s.daemon.ExportImage(names, output); err != nil {
if err := s.backend.ExportImage(names, output); err != nil {
if !output.Flushed() {
return err
}
@@ -271,11 +264,26 @@ func (s *router) getImagesGet(ctx context.Context, w http.ResponseWriter, r *htt
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 *imageRouter) postImagesLoad(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
quiet := httputils.BoolValueOrDefault(r, "quiet", true)
if !quiet {
w.Header().Set("Content-Type", "application/json")
output := ioutils.NewWriteFlusher(w)
defer output.Close()
if err := s.backend.LoadImage(r.Body, output, quiet); err != nil {
output.Write(streamformatter.NewJSONStreamFormatter().FormatError(err))
}
return nil
}
return s.backend.LoadImage(r.Body, w, quiet)
}
func (s *router) deleteImages(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
func (s *imageRouter) deleteImages(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
@@ -289,7 +297,7 @@ func (s *router) deleteImages(ctx context.Context, w http.ResponseWriter, r *htt
force := httputils.BoolValue(r, "force")
prune := !httputils.BoolValue(r, "noprune")
list, err := s.daemon.ImageDelete(name, force, prune)
list, err := s.backend.ImageDelete(name, force, prune)
if err != nil {
return err
}
@@ -297,8 +305,8 @@ func (s *router) deleteImages(ctx context.Context, w http.ResponseWriter, r *htt
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 {
imageInspect, err := s.daemon.LookupImage(vars["name"])
func (s *imageRouter) getImagesByName(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
imageInspect, err := s.backend.LookupImage(vars["name"])
if err != nil {
return err
}
@@ -306,13 +314,13 @@ func (s *router) getImagesByName(ctx context.Context, w http.ResponseWriter, r *
return httputils.WriteJSON(w, http.StatusOK, imageInspect)
}
func (s *router) getImagesJSON(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
func (s *imageRouter) 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.Images(r.Form.Get("filters"), r.Form.Get("filter"), httputils.BoolValue(r, "all"))
images, err := s.backend.Images(r.Form.Get("filters"), r.Form.Get("filter"), httputils.BoolValue(r, "all"))
if err != nil {
return err
}
@@ -320,9 +328,9 @@ func (s *router) getImagesJSON(ctx context.Context, w http.ResponseWriter, r *ht
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 {
func (s *imageRouter) getImagesHistory(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
name := vars["name"]
history, err := s.daemon.ImageHistory(name)
history, err := s.backend.ImageHistory(name)
if err != nil {
return err
}
@@ -330,7 +338,7 @@ func (s *router) getImagesHistory(ctx context.Context, w http.ResponseWriter, r
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 {
func (s *imageRouter) postImagesTag(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
@@ -345,14 +353,14 @@ func (s *router) postImagesTag(ctx context.Context, w http.ResponseWriter, r *ht
return err
}
}
if err := s.daemon.TagImage(newTag, vars["name"]); err != nil {
if err := s.backend.TagImage(newTag, vars["name"]); err != nil {
return err
}
w.WriteHeader(http.StatusCreated)
return nil
}
func (s *router) getImagesSearch(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
func (s *imageRouter) getImagesSearch(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := httputils.ParseForm(r); err != nil {
return err
}
@@ -375,7 +383,7 @@ func (s *router) getImagesSearch(ctx context.Context, w http.ResponseWriter, r *
headers[k] = v
}
}
query, err := s.daemon.SearchRegistryForImages(r.Form.Get("term"), config, headers)
query, err := s.backend.SearchRegistryForImages(ctx, r.Form.Get("term"), config, headers)
if err != nil {
return err
}

View File

@@ -0,0 +1,61 @@
package router
import "github.com/docker/docker/api/server/httputils"
// localRoute defines an individual API route to connect
// with the docker daemon. It implements 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 initializes a new local route for the router.
func NewRoute(method, path string, handler httputils.APIFunc) Route {
return localRoute{method, path, handler}
}
// NewGetRoute initializes a new route with the http method GET.
func NewGetRoute(path string, handler httputils.APIFunc) Route {
return NewRoute("GET", path, handler)
}
// NewPostRoute initializes a new route with the http method POST.
func NewPostRoute(path string, handler httputils.APIFunc) Route {
return NewRoute("POST", path, handler)
}
// NewPutRoute initializes a new route with the http method PUT.
func NewPutRoute(path string, handler httputils.APIFunc) Route {
return NewRoute("PUT", path, handler)
}
// NewDeleteRoute initializes a new route with the http method DELETE.
func NewDeleteRoute(path string, handler httputils.APIFunc) Route {
return NewRoute("DELETE", path, handler)
}
// NewOptionsRoute initializes a new route with the http method OPTIONS.
func NewOptionsRoute(path string, handler httputils.APIFunc) Route {
return NewRoute("OPTIONS", path, handler)
}
// NewHeadRoute initializes a new route with the http method HEAD.
func NewHeadRoute(path string, handler httputils.APIFunc) Route {
return NewRoute("HEAD", path, handler)
}

View File

@@ -1,107 +0,0 @@
package local
import (
"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 initializes a new local router 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{
// OPTIONS
// GET
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),
// POST
NewPostRoute("/commit", r.postCommit),
NewPostRoute("/images/create", r.postImagesCreate),
NewPostRoute("/images/load", r.postImagesLoad),
NewPostRoute("/images/{name:.*}/push", r.postImagesPush),
NewPostRoute("/images/{name:.*}/tag", r.postImagesTag),
// DELETE
NewDeleteRoute("/images/{name:.*}", r.deleteImages),
}
}

View File

@@ -5,18 +5,15 @@ import (
"github.com/docker/libnetwork"
)
// Backend is all the methods that need to be implemented to provide
// network specific functionality
// Backend is all the methods that need to be implemented
// to provide network specific functionality.
type Backend interface {
FindNetwork(idName string) (libnetwork.Network, error)
GetNetwork(idName string, by int) (libnetwork.Network, error)
GetNetworkByName(idName string) (libnetwork.Network, error)
GetNetworksByID(partialID string) []libnetwork.Network
GetAllNetworks() []libnetwork.Network
CreateNetwork(name, driver string, ipam network.IPAM,
options map[string]string, internal bool) (libnetwork.Network, error)
CreateNetwork(name, driver string, ipam network.IPAM, options map[string]string, labels map[string]string, internal bool, enableIPv6 bool) (libnetwork.Network, error)
ConnectContainerToNetwork(containerName, networkName string, endpointConfig *network.EndpointSettings) error
DisconnectContainerFromNetwork(containerName string,
network libnetwork.Network, force bool) error
NetworkControllerEnabled() bool
DisconnectContainerFromNetwork(containerName string, network libnetwork.Network, force bool) error
DeleteNetwork(name string) error
}

View File

@@ -84,8 +84,8 @@ func filterNetworkByID(nws []libnetwork.Network, id string) (retNws []libnetwork
return retNws, nil
}
// filterAllNetworks filter network list according to user specified filter
// and return user chosen networks
// filterAllNetworks filters network list according to user specified filter
// and returns user chosen networks
func filterNetworks(nws []libnetwork.Network, filter filters.Args) ([]libnetwork.Network, error) {
// if filter is empty, return original network list
if filter.Len() == 0 {

View File

@@ -1,14 +1,6 @@
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/errors"
"golang.org/x/net/context"
)
import "github.com/docker/docker/api/server/router"
// networkRouter is a router to talk with the network controller
type networkRouter struct {
@@ -33,24 +25,13 @@ func (r *networkRouter) Routes() []router.Route {
func (r *networkRouter) initRoutes() {
r.routes = []router.Route{
// GET
local.NewGetRoute("/networks", r.controllerEnabledMiddleware(r.getNetworksList)),
local.NewGetRoute("/networks/{id:.*}", r.controllerEnabledMiddleware(r.getNetwork)),
router.NewGetRoute("/networks", r.getNetworksList),
router.NewGetRoute("/networks/{id:.*}", 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)),
router.NewPostRoute("/networks/create", r.postNetworkCreate),
router.NewPostRoute("/networks/{id:.*}/connect", r.postNetworkConnect),
router.NewPostRoute("/networks/{id:.*}/disconnect", r.postNetworkDisconnect),
// DELETE
local.NewDeleteRoute("/networks/{id:.*}", r.controllerEnabledMiddleware(r.deleteNetwork)),
router.NewDeleteRoute("/networks/{id:.*}", r.deleteNetwork),
}
}
func (r *networkRouter) controllerEnabledMiddleware(handler httputils.APIFunc) httputils.APIFunc {
if r.backend.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()
}

Some files were not shown because too many files have changed in this diff Show More