Compare commits

..

4475 Commits
v1.9.1 ... docs

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
Vincent Demeester
9b63019711 Merge pull request #19234 from jdoliner/patch-1
Remove Pachyderm storage driver.
2016-01-15 12:48:42 +01:00
Joe Doliner
5063efb8d8 Remove Pachyderm storage driver.
Signed-off-by: Joe Doliner <jdoliner@gmail.com>
2016-01-15 02:06:20 -08:00
Jess Frazelle
4c89b1f72c Merge pull request #19355 from riyazdf/notary-revendor
notary revendor into docker
2016-01-15 01:02:35 -08:00
Antonio Murdaca
bca9415b52 Merge pull request #19356 from sanimej/restart
Vendoring libnetwork v0.5.6
2016-01-15 09:32:53 +01:00
Vincent Demeester
8ce8813cdc Merge pull request #18928 from wenchma/18626-add_subnets_info
Add Subnets info for user-defined network
2016-01-15 09:07:18 +01:00
Riyaz Faizullabhoy
dd7436c832 revendor notary and wrap friendlier error messages
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-14 20:35:59 -08:00
Sebastiaan van Stijn
c56ed85f3d Merge pull request #19353 from calavera/coolljt0725_is_a_maintainer
Add Lei Jitang to MAINTAINERS.
2016-01-14 19:37:33 -08:00
David Calavera
8fc36b7f6b Add Lei Jitang to MAINTAINERS.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-14 21:59:26 -05:00
Wen Cheng Ma
5cc672b006 Add Subnets info for user-defined network
* If user doesn't specify the subnets to create a network, it will pick
  subnets from inside preferred pool. This PR aims to inspect these subnets info

* Add integration tests for docker inspect the subnets.

* docker-py project is already synchronized.

* jenkins checks depend on https://github.com/docker/docker-py/pull/888

Fixes issue #18626

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-15 10:03:29 +08:00
Sebastiaan van Stijn
954613fb24 Merge pull request #19122 from ajneu/master
documentation: debian/ubuntu need apt-transport-https ca-certificates
2016-01-14 16:53:08 -08:00
Arnaud Porterie
6add477c91 Merge pull request #19308 from estesp/better-warning-msg
Better warning message on OOM kill disable without mem limit
2016-01-14 16:49:38 -08:00
Sebastiaan van Stijn
e44364eae9 Merge pull request #18587 from calavera/daemon_configuration_file
Allow to set daemon and server configurations in a file.
2016-01-14 16:44:58 -08:00
Tibor Vass
94b2d56690 Merge pull request #19109 from BrianBland/crossRepositoryPush
Cross repository push
2016-01-14 18:50:53 -05: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
Jess Frazelle
4bdb440cca Merge pull request #19332 from hypriot/update-arm-registry-notary
Update Dockerfile.armhf to sync changes for registry and notary
2016-01-14 14:54:12 -08:00
Sebastiaan van Stijn
9539c0a402 Merge pull request #18452 from moxiegirl/carrry-doc-17989
Update security docs for seccomp/apparmor
2016-01-14 14:42:37 -08:00
Arnaud Porterie
33a06a7f05 Merge pull request #19346 from albers/completion-detach-keys
Completion and docs update for --detach-keys
2016-01-14 14:40:44 -08:00
Brian Bland
6309947718 Changes cross-repository blob mounting to a blob Create option
Also renames BlobSumService to V2MetadataService, BlobSum to
V2Metadata

Signed-off-by: Brian Bland <brian.bland@docker.com>
2016-01-14 14:26:03 -08:00
Harald Albers
3bf821054e Document that detach keys are a list of key bindings
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-14 13:58:41 -08:00
Jessica Frazelle
61553fc2f5 WIP: Update security docs for seccomp/apparmor
Signed-off-by: Mary Anthony <mary@docker.com>

Updaing and slight re-arrangement of security information

Signed-off-by: Mary Anthony <mary@docker.com>

Updating security files

Signed-off-by: Mary Anthony <mary@docker.com>

Updating links to the security documentation

Signed-off-by: Mary Anthony <mary@docker.com>

removing some extra spaces

Signed-off-by: Mary Anthony <mary@docker.com>

Correcting spelling

Signed-off-by: Mary Anthony <mary@docker.com>
2016-01-14 13:58:37 -08:00
Tibor Vass
9365b301a8 Merge pull request #19339 from cpuguy83/19335_revert_18736
Revert "Break big lock into some tiny locks"
2016-01-14 16:53:39 -05: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
Brian Goff
3b6a989d81 Merge pull request #19325 from mingqing/fix-pid-convert-error
fix pidfile, pid is num use '/proc + string(pid)' can't found it
2016-01-14 16:49:20 -05:00
Harald Albers
b24ded193f bash completion for --detach-keys
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-14 13:47:20 -08:00
David Calavera
677a6b3506 Allow to set daemon and server configurations in a file.
Read configuration after flags making this the priority:

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

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

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

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-14 16:44:37 -05:00
Tibor Vass
e35f5a481a Merge pull request #17316 from rmb938/ipam_conf_options
Add IPAM Config Options to match libnetwork
2016-01-14 16:30:03 -05:00
Arnaud Porterie
0f2ba97a78 Merge pull request #19343 from Microsoft/jjh/dockerfilenote
Add note in dockerfile about go version
2016-01-14 13:11:03 -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
David Calavera
d299bbfcc6 Merge pull request #19342 from Microsoft/jjh/fix19316
Windows: Fix test regression from 19155
2016-01-14 13:05:47 -08:00
David Calavera
db2b5e647c Merge pull request #19338 from aboch/vnd
Vendoring libnetwork v0.5.5
2016-01-14 13:02:20 -08:00
Jess Frazelle
7a44265129 Merge pull request #19324 from Djelibeybi/fix-selinux-rpm-changelog
Remove the changelog auto-generation
2016-01-14 12:47:32 -08:00
John Howard
6c1382e151 Add note in dockerfile about go version
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-14 12:20:19 -08:00
John Howard
d3392a3bde Windows: Fix test regression from 19155
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-14 12:00:27 -08:00
Ryan Belgrave
662cac08ef Add IPAM Config Options to match libnetwork
Signed-off-by: Ryan Belgrave <rmb1993@gmail.com>
2016-01-14 14:32:25 -05:00
Arnaud Porterie
3ce3fb7417 Merge pull request #19333 from wzyboy/patch-1
Update CHANGELOG.md
2016-01-14 11:21:32 -08:00
Madhu Venugopal
7481961009 IT for restart-policy and DNS based SD in user-defined networks
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-14 11:03:26 -08:00
Brian Goff
7cd6210a88 Merge pull request #19326 from HackToday/19153-filter-rethink
Fix image filter
2016-01-14 13:59:14 -05:00
David Calavera
73a5393bf3 Merge pull request #19242 from mavenugo/nsalias
Network scoped alias support
2016-01-14 10:58:51 -08:00
Santhosh Manohar
5347f7cd94 Vendoring libnetwork v0.5.6
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-01-14 10:48:48 -08:00
Brian Goff
f093e1273d Revert "Break big lock into some tiny locks"
This reverts commit 1326f0cba5.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-14 13:38:09 -05:00
Alessandro Boch
4e4ba9dd3a Vendoring libnetwork v0.5.5
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-14 10:34:00 -08:00
David Calavera
812d95cdfb Merge pull request #19323 from wenchma/19089-add_network_id
Add network ID to container inspect
2016-01-14 09:58:24 -08:00
Tibor Vass
f292e90b8d Merge pull request #19226 from coolljt0725/remove_dup_check
Remove duplication checking for the existence of endpoint to speed up container starting
2016-01-14 12:24:11 -05:00
David Calavera
a225e39667 Merge pull request #19155 from coolljt0725/create_cwd_on_create
Create the working directory on container creation
2016-01-14 09:13:44 -08:00
David Calavera
22a81a2c58 Add an unsafe memory discovery store for testing.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-14 11:58:38 -05:00
David Calavera
1666707cf8 Vendor merge structure tool.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-14 11:58:38 -05:00
Madhu Venugopal
dda513ef65 Network scoped alias support
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-14 08:44:41 -08:00
Tibor Vass
349d9700bd Merge pull request #19291 from coolljt0725/fix_19100
Fix #19100 and fix a typo
2016-01-14 11:40:29 -05:00
Wen Cheng Ma
9f676ade0a Add network ID to container inspect
Fixes issue #19089

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-14 22:33:41 +08:00
Tibor Vass
59231ea6d8 Merge pull request #19312 from cpuguy83/19177_fix_debug_req_dump_size
Don't dump request body when too large
2016-01-14 09:06:02 -05:00
Vincent Demeester
851c94db1b Merge pull request #19317 from mavenugo/epforce
Forced endpoint cleanup
2016-01-14 14:21:30 +01:00
Zhuoyun Wei
11801100be Update CHANGELOG.md
Fix "smart" dashes.

Signed-off-by: Zhuoyun Wei <wzyboy@wzyboy.org>
2016-01-14 20:24:24 +08:00
Vincent Demeester
0ed2e26f51 Merge pull request #19157 from wenchma/update_build_bridges
Update the doc of build-bridges.md
2016-01-14 11:10:37 +01:00
Vincent Demeester
ec143968de Merge pull request #19286 from aboch/ipdocs
Add missing documentation for static IP options
2016-01-14 11:00:09 +01:00
Kai Qiang Wu(Kennan)
5ee69eb470 Fix image filter
This is related image fix for Propose #19153
for volume related change, would use another patch
to fix that.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-14 08:17:40 +00:00
Vincent Demeester
63525a6dc5 Merge pull request #19252 from HackToday/fix-vol-resp-doc
Update response content for volume mounts
2016-01-14 09:15:13 +01:00
mingqing
6a033fa03e fix pidfile, pid is num use '/proc + string(pid)' can't found it
Signed-off-by: mingqing <limingqing@cyou-inc.com>
2016-01-14 16:03:33 +08:00
Avi Miller
b916d45132 Remove the changelog auto-generation because its hardcoded in the .spec file now.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2016-01-14 18:50:55 +11:00
Sebastiaan van Stijn
d62466bd33 Merge pull request #19322 from HackToday/fixlxc
Remove wrong lxc support
2016-01-13 23:45:43 -08:00
Kai Qiang Wu(Kennan)
0e8d41272c Remove wrong lxc support
Docker master branch not support lxc, so it seems not proper to
say that anymore.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-14 07:23:04 +00:00
Lei Jitang
3d2539d39d Fix #19100 and fix a typo
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-14 14:58:54 +08:00
Madhu Venugopal
b464f1d78c Forced endpoint cleanup
docker's network disconnect api now supports `Force` option which can be
used to force cleanup an endpoint from any host in the cluster.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-13 21:28:52 -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
Brian Goff
742a7d53f2 Merge pull request #19319 from calavera/fix_tls_config_for_response_hijacking
Fix response hijacking with TLS enabled.
2016-01-13 21:44:11 -05:00
David Calavera
db1d5f7ea3 Add test to verify that response hijacking always works over TLS.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-13 20:18:06 -05:00
David Calavera
7a5d897410 Vendor engine-api 0.2.2.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-13 20:09:47 -05:00
Stefan Scherer
ae7d7db985 Sync changes for registry and notary
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2016-01-14 01:46:35 +01:00
Jess Frazelle
3720fbfb35 Merge pull request #19318 from Djelibeybi/fix-selinux-rpm-changelog
Not having a changelog is bad RPM etiquette.
2016-01-13 16:00:44 -08:00
Jess Frazelle
a79307c490 Merge pull request #19313 from tiborvass/bump-go-1.5.3
Bump Go to version 1.5.3
2016-01-13 15:59:19 -08:00
Avi Miller
22af8dfb14 Not having a changelog is bad RPM etiquette.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2016-01-14 10:34:48 +11:00
Alessandro Boch
ee14232647 Add missing documentation for static IP options
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-13 14:53:14 -08:00
Brian Bland
7289c7218e Adds cross-repository blob pushing behavior
Tracks source repository information for each blob in the blobsum
service, which is then used to attempt to mount blobs from another
repository when pushing instead of having to re-push blobs to the same
registry.

Signed-off-by: Brian Bland <brian.bland@docker.com>
2016-01-13 14:26:30 -08:00
Tibor Vass
9560d94114 Bump Go to version 1.5.3
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-01-13 17:23:46 -05:00
Brian Goff
93268d845e Don't dump authz request when body is too large
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-13 17:04:49 -05:00
Brian Goff
89af3835d4 Don't dump request body to log when too large
Fixes an issue where a client can send a large body but specifiy
application/json as the content-type, and cause Docker to consume lots
of RAM while trying to buffer the body so it can be dumped to the debug
log.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-13 17:01:35 -05:00
David Calavera
9c30492e9e Merge pull request #19311 from estesp/no-oom-warning-when-cant-even
Only warn on OOMKill disable if the feature is actually requested
2016-01-13 13:43:37 -08:00
Sebastiaan van Stijn
661d75f398 Merge pull request #19123 from shishir-a412ed/rootfs_size_configurable
daemon option (--storage-opt dm.basesize) for increasing the base device size on daemon restart
2016-01-13 13:22:08 -08:00
David Calavera
d6e01e3337 Merge pull request #19241 from rhvgoyal/fix-device-id-free
Mark device ID free only if device actually got deleted
2016-01-13 13:07:39 -08:00
Phil Estes
5a707d94d6 Only warn on OOMKill disable if the feature is actually requested
Instead of warning the caller who is disabling OOM killer that the
feature isn't available, only warn if they are trying to **enable** OOM
killer and it can't be done.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-13 11:53:44 -08:00
Tibor Vass
612cf0f172 Merge pull request #19279 from tiborvass/rename-authz-to-authorization
Rename authz to authorization for greater clarity
2016-01-13 14:30:18 -05:00
David Calavera
c8cc4fb8d9 Merge pull request #19283 from tonistiigi/fix-permission-build-stdin
Avoid extracting to temp directory on building from tar
2016-01-13 11:17:37 -08:00
Tibor Vass
5c630ea7c3 Rename authz to authorization for greater clarity
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-01-13 14:15:37 -05:00
Brian Goff
184040bdd5 Merge pull request #19273 from calavera/volume-lazy-init
[Carry 18549] Lazy initialize Volume on container Mount object.
2016-01-13 14:15:17 -05:00
Shishir Mahajan
e47112d3e8 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-01-13 13:57:31 -05: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
Phil Estes
4983e5807e Better warning message on OOM kill disable without mem limit
Modify the warning to be more readable/understandable.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-13 10:40:49 -08:00
David Calavera
0ee64127ae Merge pull request #19276 from calavera/internal
[Carry 18926] Add network internal mode
2016-01-13 10:13:21 -08:00
Alexander Morozov
7ea65da7ef Merge pull request #19254 from aboch/v6b
Account docker0 IPv6 address on daemon start
2016-01-13 09:48:41 -08:00
Alexander Morozov
ba15b6f049 Merge pull request #19294 from runcom/fix-check-test
integration-cli: check nil before Close'ing
2016-01-13 09:28:54 -08: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
Jess Frazelle
22f4dad3d7 Merge pull request #19287 from tianon/check-config-assoc-array
Update check-config.sh to use "case" instead of an associative array
2016-01-13 08:38:10 -08:00
Chun Chen
b70954e60a Add network interal mode
Signed-off-by: Chun Chen <ramichen@tencent.com>
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-13 11:30:36 -05:00
David Calavera
aab3596397 Remove duplicated lazy volume initialization.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-13 11:22:31 -05:00
Arnaud Porterie
e44bde8606 Merge pull request #19293 from albers/completion-connect-all
bash completion for connecting non-running containers to networks
2016-01-13 08:10:38 -08:00
Antonio Murdaca
11a95b9514 integration-cli: check nil before Close'ing
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-13 13:36:45 +01:00
Tibor Vass
46eb470039 Merge pull request #19267 from mavenugo/vin-ln
Vendor libnetwork v0.5.4
2016-01-13 07:09:58 -05:00
Antonio Murdaca
a79f96828f Merge pull request #19249 from calavera/carry_17414
[Carry 17414] Added additional container information to "docker info".
2016-01-13 10:42:22 +01:00
Harald Albers
40f73c7c8e bash completion for connecting non-running containers to networks
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-13 10:32:23 +01:00
Antonio Murdaca
40d7ad98a8 Merge pull request #19275 from tonistiigi/delete-image-conflict-bitmask
Use bitmask for conflict checking
2016-01-13 10:00:57 +01:00
Phil Estes
9232c09cd5 Merge pull request #19281 from hqhq/hq_dont_fail_oomkilldisable
Do not fail if not support OomKillDisable
2016-01-12 21:54:38 -08:00
Tianon Gravi
5c161f4e1a Update check-config.sh to use "case" instead of an associative array
This fixes Bash 3.x compatibility (where associative arrays are not available).

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-01-12 20:57:56 -08:00
Madhu Venugopal
8edbd10349 Updating to the new ep.Delete API
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-12 20:42:37 -08:00
Madhu Venugopal
537089481f Vendor libnetwork v0.5.4
- Removed the isNodeAlive protection when user forces an endpoint delete

- Bridge driver supporting internal network option
- Backend implementation to support "force" option to network disconnect
- Fixing a regex in etchosts package to fix docker/docker#19080

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-12 20:42:30 -08:00
Kai Qiang Wu(Kennan)
6a04ecf813 Update response content for volume mounts
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-13 03:48:14 +00:00
Tonis Tiigi
42961a66a5 Avoid extracting to temp directory on building from tar
Fixes #15785

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-12 17:43:52 -08:00
Qiang Huang
7b616d4743 Do not fail if not support OomKillDisable
Fixes: #19278

The issue seems existed since we add support for OomKillDisable,
OomKillDisable support should not be hard request, we just
discard it if not support and move on.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2016-01-13 09:07:40 +08:00
Sebastiaan van Stijn
47d87d3b92 Merge pull request #19229 from mavenugo/udlinks
Local alias support
2016-01-12 16:47:32 -08:00
Tonis Tiigi
883be48930 Use bitmask for conflict checking
Rather than using 2 different functions for different
types of conflicts use a bitmask to specify what
conflicts need to be checked. This allows a better way
to make exceptions.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-12 16:01:56 -08:00
Tibor Vass
1e1a3c9508 Merge pull request #19266 from tonistiigi/fix-untag-on-rmi-by-id
Fix rmi by ID untagging image on error
2016-01-12 18:56:25 -05:00
Tibor Vass
56272c9e9e Merge pull request #19060 from jfrazelle/daemon-read-seccomp
read seccomp profile locally then pass to daemon
2016-01-12 18:34:59 -05:00
David Calavera
e5edc168a6 Complete documentation about extra container information.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-12 18:16:58 -05:00
David Calavera
c0c66c57b2 Merge pull request #19170 from aaronlehmann/delete-prune-digests
Prune digest references when deleting by tag
2016-01-12 15:15:36 -08:00
Darren Shepherd
2aa673aed7 Lazy initialize Volume on container Mount object
Currently on daemon start volumes are "created" which involves invoking
a volume driver if needed.  If this process fails the mount is left in a
bad state in which there is no source or Volume set.  This now becomes
an unrecoverable state in which that container can not be started.  The
only way to fix is to restart the daemon and hopefully you don't get
another error on startup.

This change moves "createVolume" to be done at container start.  If the
start fails it leaves it in the state in which you can try another
start.  If the second start can contact the volume driver everything
will recover fine.

Signed-off-by: Darren Shepherd <darren@rancher.com>
2016-01-12 17:19:59 -05:00
David Calavera
09510c7c43 Merge pull request #19272 from sdurrheimer/zsh-completion-daemon-userns-remap
Add zsh completion for 'docker daemon --userns-remap'
2016-01-12 14:06:24 -08:00
Tonis Tiigi
38a45eed88 Fix rmi by ID untagging image on error
Do not untag image if it would later get a hard conflict because of running containers.

Fixes #18873

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-12 13:45:40 -08:00
Madhu Venugopal
2aa5f33b20 Docs update for link functionality in user-defined networks
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-12 13:38:48 -08:00
Madhu Venugopal
e221b8a3d6 Support --link for user-defined networks
This brings in the container-local alias functionality for containers
connected to u ser-defined networks.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-01-12 13:38:48 -08:00
Steve Durrheimer
54bea86b03 Add zsh completion for 'docker daemon --userns-remap'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-12 22:38:32 +01:00
Jessica Frazelle
062d0b3921 read seccomp profile locally then pass to daemon
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-12 13:12:29 -08:00
Jess Frazelle
c1582f20cc Merge pull request #19243 from calavera/engine_api_0_2
Vendor engine-api 0.2
2016-01-12 13:11:39 -08:00
Aaron Lehmann
2f048f73e1 Prune digest references when deleting by tag
When pulling an image with content trust enabled, two references are
created: a digest reference and a tag reference. Deleting by tag
wouldn't actually remove the image, because the digest reference keeps
it alive.

This change modifies the rmi logic so that digest references don't keep
an image alive. If the last tag referencing a given image is deleted,
any digest references to it will be removed as well, so the image can
actually get deleted. This fixes the usability problem with deletions
when content trust is in use, so something like "docker pull busybox;
docker rmi busybox" will work as expected.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-12 12:11:43 -08:00
Jess Frazelle
293b3767c8 Merge pull request #19245 from jfrazelle/seccomp-kernel-check
check seccomp is configured in the kernel
2016-01-12 11:33:27 -08:00
ajneu
c64117cbd7 documentation: debian/ubuntu need apt-transport-https ca-certificates
Signed-off-by: ajneu <ajneu@users.noreply.github.com>
2016-01-12 20:28:17 +01:00
Tibor Vass
45211af702 Merge pull request #19194 from LK4D4/fix_race_clean_net
Fix race on cleaning endpoint data
2016-01-12 13:28:50 -05:00
David Calavera
db41c5f5a5 Update docker-py commit to the latest HEAD.
To fix issues with IPAM options.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-12 13:19:17 -05:00
Qiang Huang
f4a687334b Change OomKillDisable to be pointer
It's like `MemorySwappiness`, the default value has specific
meaning (default false means enable oom kill).

We need to change it to pointer so we can update it after
container is created.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
(cherry picked from commit 9c2ea42329)

Conflicts:
	vendor/src/github.com/docker/engine-api/types/container/host_config.go
2016-01-12 13:19:17 -05:00
David Calavera
0627bf1a83 Do not force network disconnection.
Let that for a future flag.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-12 13:19:17 -05:00
David Calavera
ca60e6262b Vendor engine-api 0.2.1.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-12 13:19:16 -05:00
Sebastiaan van Stijn
1393c450cd Merge pull request #19104 from vdemeester/18957-update-config
Add a specific config struct for the update command (#18957)
2016-01-12 09:46:19 -08:00
Jessica Frazelle
40d5ced9d0 check seccomp is configured in the kernel
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-12 09:45:21 -08:00
Sebastiaan van Stijn
c72be040bb Merge pull request #19187 from estesp/lets-do-this
User namespaces: graduate from experimental
2016-01-12 09:34:19 -08:00
Arnaud Porterie
664ba0ec0a Merge pull request #19053 from anusha-ragunathan/vendor-policy
Create standard vendor policies.
2016-01-12 08:32:06 -08:00
Sebastiaan van Stijn
301627c677 Merge pull request #18906 from coolljt0725/connect_to_created
Support network connect/disconnect to stopped container
2016-01-12 07:06:31 -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
Wen Cheng Ma
0ba6a128ee Update the doc of build-bridges.md
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-12 15:52:33 +08:00
Alessandro Boch
cfa3682ca4 Account dcoker0 IPv6 address on daemon start
- In case --fixed-cidr-v6 is specified and docker0 bridge already
  has a global scope IPv6 address belonging to that v6 network
  (likely from a previous daemon instance), to maintain consistency
  with what done for the docker0 IPv4 address, daemon has to pass it
  down to libnetwork in the IPAMConfig as network gateway to make
  sure that the address is not given to some container.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-11 23:47:44 -08:00
Vincent Demeester
a4f6920731 Add a specific config for the update command
This allows to define clearly what is mutable or not in a container
and remove the use of the internal HostConfig struct to be used.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-12 08:33:41 +01: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
Phil Estes
cc63db4fd1 Add daemon documentation on user namespaces feature
Remove the experimental docs for user namespaces and add similar content
to the `docker daemon` command documentation.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-11 20:54:57 -05:00
Phil Estes
d5743a3a5c Properly report conflicting namespace options when using userns
This prevents strange errors and clarifies which namespace options are
incompatible with user namespaces (at this time).

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-11 20:50:22 -05:00
Sebastiaan van Stijn
3f1b16e236 Merge pull request #19192 from aidanhs/aphs-fix-ambassador-multi-port
Fix ambassador script
2016-01-11 17:41:53 -08:00
Sebastiaan van Stijn
656979670c Merge pull request #18998 from calavera/syslog_tls
Allow syslog over TCP+TLS.
2016-01-11 17:21:38 -08:00
Lei Jitang
79d4f0f56e Add docker network connect/disconnect to non-running container
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-11 20:13:39 -05:00
Jess Frazelle
acff8f7a9d Merge pull request #19248 from calavera/list_engine_api
List engine-api in the client libraries reference.
2016-01-11 16:40:12 -08:00
David Calavera
bce01398dd List engine-api in the client libraries reference.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-11 19:17:13 -05:00
Kim Eik
e732f4e649 Added additional container information to "docker info".
Instead of just showing the number of containers this patch will
show the number of running, paused and stopped containers as well.

Signed-off-by: Kim Eik <kim@heldig.org>
(cherry picked from commit a9804ab1cb)
2016-01-11 19:14:44 -05:00
Tibor Vass
058e6dce18 Merge pull request #19247 from tiborvass/remove-tac
Make Makefile work on OS X
2016-01-11 19:13:55 -05:00
Jess Frazelle
a96a0b3781 Merge pull request #19217 from justincormack/arm_syscalls
Add arm specific syscalls to default seccomp profile
2016-01-11 15:26:09 -08:00
Tibor Vass
df40c61f8a Make Makefile work on OS X
Signed-off-by: Tibor Vass <tibor@docker.com>
2016-01-11 18:16:56 -05:00
Alexander Morozov
5abef06a15 Fix race on reading endpoint data
Race is with its cleanup.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-11 14:28:07 -08:00
Jess Frazelle
9c9a1d1b4b Merge pull request #19069 from jfrazelle/apparmor-regex-proc
fix proc regex
2016-01-11 13:50:25 -08:00
Arnaud Porterie
f11b6a2ab3 Merge pull request #18785 from aaronlehmann/new-manifest
New image manifest format
2016-01-11 12:01:46 -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
David Calavera
1a7d40c692 Merge pull request #19208 from sdurrheimer/zsh-completion-update_isolation_shm-size_memory_reservation
Zsh completion for 'docker update' + common options refactoring
2016-01-11 11:36:55 -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
Brian Goff
0cdfd84aee Merge pull request #19239 from aaronlehmann/fix-testsuccessfuldownload
Fix flaky test TestSuccessfulDownload
2016-01-11 14:09:14 -05:00
Alexander Morozov
9a23569ecf Merge pull request #16032 from cpuguy83/remove_sqlite_dep
Build names and links at runtime - no more sqlite
2016-01-11 10:59:49 -08:00
Vivek Goyal
2dccb562df Mark device ID free only if device actually got deleted
Right now if somebody has enabled deferred device deletion, then
deleteTransaction() returns success even if device could not be deleted. It
has been marked for deferred deletion. Right now we will mark device ID free
and potentially use it again when somebody tries to create new container. And
that's wrong. Device ID is not free yet. It will become free once devices
has actually been deleted by the goroutine later.

So move the location of call to markDeviceIDFree() to a place where we know
device actually got deleted and was not marked for deferred deletion.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2016-01-11 18:57:37 +00:00
Tibor Vass
2d5ca742eb Merge pull request #19076 from tianon/multiarch
Refactor multi-arch support (especially for new mostly-official multi-arch official images)
2016-01-11 13:25:55 -05:00
Aaron Lehmann
0757a52737 Fix flaky test TestSuccessfulDownload
One of the things this test checks is that the progress indicator
completes for each download. Some progress messages may be lost because
only one message is buffered for each download, but the last progress
message is guaranteed not to be lost. The test therefore checks for a
10/10 progress indication.

However, the assumption that this is the last progress message to be
sent is incorrect. The last message is actually "Pull complete". So
check for this instead.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-11 09:46:34 -08:00
David Calavera
4b98193bea Add support for syslog over TLS.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-11 12:25:34 -05:00
Brian Goff
2600777469 Add migration from sqlite links back to hostConfig
Before #16032, once links were setup
in the sqlite db, hostConfig.Links was cleared out.
This means that we need to migrate data back out of the sqlite db and
put it back into hostConfig.Links so that links specified on older
daemons can be used.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-11 11:31:29 -05:00
Tibor Vass
47074030f6 Merge pull request #19121 from WeiZhang555/tty-resize
Check nil Terminal to avoid panic
2016-01-11 11:29:15 -05:00
Lei Jitang
f62d4ceba6 Remove duplication checking for the existence of endpoint
CreateEndpoint will check if the endpoint exist or not, so there is no
need to check before call CreatEndpoint in connectToNetwork since
checking the existence of the endpoint could take much time especially
if we use external K-V store, this would slow down the staring of container.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-11 14:45:43 +08:00
Arnaud Porterie
ad2966a315 Merge pull request #19138 from Microsoft/jjh/failedtodockerversion
Windows CI: More debugging
2016-01-10 18:11:19 -08:00
Sebastiaan van Stijn
3f74d10142 Merge pull request #19222 from justincormack/shirley
Add Dame Stephanie "Steve" Shirley to names
2016-01-11 00:09:45 +01:00
Sebastiaan van Stijn
967acd56c1 Merge pull request #18512 from euank/18510-fixOomKilled
Set OOMKilled state on any OOM event
2016-01-11 00:09:26 +01:00
Justin Cormack
4c530894f9 Add Dame Stephanie "Steve" Shirley to names
Born in Germany, she had to flee on the kindertransport to England in
1939. In the 1950s she worked at the Post Office Research Station at
Dollis Hill, building computers from scratch, and took evening classes
to get a degree in Mathematics.

In 1962 she set up a software company, employing almost entirely women,
working at home; the company was floated in 1996. Her team's projects
included programming Concorde's black box flight recorder. She adopted
the name "Steve" to fit in in a male domainated world.

http://www.bbc.co.uk/programmes/b05pmvl8
https://en.wikipedia.org/wiki/Steve_Shirley

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-10 21:33:18 +00:00
Vincent Demeester
fc4dffee5e Merge pull request #19220 from anujbahuguna/master
Adding 2 pioneer CS reseachers-Shafi Goldwasser and Michael Stonebraker
2016-01-10 22:28:59 +01:00
Vincent Demeester
6175add0e1 Merge pull request #19193 from Microsoft/jjh/networkapitests
Windows CI: Turn off network API tests
2016-01-10 21:18:21 +01:00
Sebastiaan van Stijn
38f4217bff Merge pull request #19195 from Microsoft/jjh/wincifailingtests
Windows CI: Deal with failing tests for TP4
2016-01-10 21:18:02 +01:00
Justin Cormack
37d35f3c28 Add arm specific syscalls to default seccomp profile
Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-10 19:55:24 +00:00
Vincent Demeester
7b1caafe27 Merge pull request #19205 from runcom/fix-formats
integration-cli: fix wrong formats
2016-01-10 20:53:11 +01:00
Arnaud Porterie
fe3d1f9dd7 Merge pull request #19198 from sanimej/vin
Vendoring libnetwork
2016-01-10 11:46:34 -08:00
Anuj
cac23d1caa Adding two pioneer CS reseachers - Shafi Goldwasser and Michael Stonebraker
Signed-off-by: Anuj Bahuguna <anujbahuguna.dev@gmail.com>
2016-01-11 00:25:46 +05:30
Jess Frazelle
274558881a Merge pull request #19218 from justincormack/i386_syscalls
Add i386 specific modify_ldt syscall to default seccomp filter
2016-01-10 09:34:56 -08:00
Justin Cormack
13a9d4e899 Add i386 specific modify_ldt syscall to default seccomp filter
This syscall is used by Go on i386 binaries, although not by libc.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-10 12:00:11 +00:00
moxiegirl
7058495ab8 Merge pull request #19171 from londoncalling/cloud-installs-redirects
added re-directs for cloud install docs as clean-up for  #18282
2016-01-09 17:43:41 -08:00
Tianon Gravi
2a868799bf Merge pull request #19210 from albers/completion--shm-size
bash completion for `docker {build,create,run} --shm-size`
2016-01-09 11:05:39 -08:00
Harald Albers
3f6b0f4c7c bash completion for docker {build,create,run} --shm-size
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-09 09:27:45 -08:00
Steve Durrheimer
d14eba774d Add zsh completion for 'docker {build,create,run} --isolation'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-09 14:48:55 +01:00
Steve Durrheimer
01e6bd3c3e Add zsh completion for 'docker {build,create,run} --shm-size
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-09 14:46:06 +01:00
Steve Durrheimer
3a8fb8de4f Add zsh completion for 'docker {create,run,update} --memory-reservation'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-09 14:40:37 +01:00
Steve Durrheimer
8a95f88272 Add zsh completion for 'docker update' + refactoring of common options between 'build', 'create', 'run', 'update'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-09 14:38:22 +01:00
Antonio Murdaca
5fe38d39e7 integration-cli: fix wrong formats
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-09 11:44:15 +01:00
Tõnis Tiigi
c49ccd3192 Merge pull request #19167 from vieux/bring_discovery_on_par
Bring discovery on par with the one in docker/swarm
2016-01-08 22:54:01 -08:00
Tõnis Tiigi
92b0005a1a Merge pull request #19202 from cyli/vendor-notary
Re-vendoring notary
2016-01-08 22:48:18 -08:00
Aaron Lehmann
7450c258ab Use RootFS from image config to register layers on Windows
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:27:31 -08:00
Aaron Lehmann
ad6c1b7649 Add integration test for pulling a manifest list
The test injects a synthetic manifest list into the registry blob store,
since there isn't a tool for pushing them yet.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:27:31 -08:00
Aaron Lehmann
1fa2e31151 Build a pre-schema2 registry to test schema1 push/pull
Add DockerSchema1RegistrySuite which uses this registry, and make
applicable integration tests run as part of this suite.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:27:31 -08:00
Aaron Lehmann
2bb8c85bc5 Add support for manifest lists ("fat manifests")
A manifest list refers to platform-specific manifests. This allows
for images that target more than one architecture to share the same tag.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:27:31 -08:00
Aaron Lehmann
c8d277d228 Add schema2 push support
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:27:31 -08:00
Aaron Lehmann
94726f7c73 Add schema2 pull support
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:24:21 -08:00
Aaron Lehmann
f33fa1b8d3 Change push to use manifest builder
Currently this always uses the schema1 manifest builder. Later, it will
be changed to attempt schema2 first, and fall back when necessary.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:24:21 -08:00
Aaron Lehmann
c168a0059f Update code to compile against new manifest interface
Also, digest.FromBytes no longer returns an error.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:24:20 -08:00
Aaron Lehmann
290ba41c00 Vendor updated github.com/docker/distribution
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 17:24:20 -08:00
Michael Crosby
2892de760f Merge pull request #18840 from aaronlehmann/trust-messages
Send push information to trust code out-of-band
2016-01-08 16:56:57 -08:00
cyli
5719b136de Re-vendoring notary in order to deal with a canonical JSON serialization issue.
Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-01-08 16:45:15 -08:00
Michael Crosby
0a002f4ba8 Merge pull request #19199 from crosbymichael/migrate-errors
Fixed migrate defect, allow migrate the empty directory
2016-01-08 16:37:57 -08:00
andy
098fdb6408 Fixed migrate defect, allow migrate the empty directory
If there is an empty directory exists in the $DOCKER_ROOT/containers ,
that will cause migrate fail. Then docker daemon will initialize failed.
This commit allow skips the empty directory.

Signed-off-by: Andy Zhang <andy.zhangtao@hotmail.com>

Change error messages from uppercase to lowercase

Change error messages from uppercase to lowercase

Signed-off-by: andy <ztao@tibco-support.com>
2016-01-08 15:44:30 -08:00
Sebastiaan van Stijn
a082f80832 Merge pull request #18736 from WeiZhang555/tiny-lock
Break big lock into some tiny locks for containerStart
2016-01-09 00:35:26 +01:00
Euan
ba19b6927f Increase integration cli test memory
Signed-off-by: Euan <euank@amazon.com>
2016-01-08 23:10:31 +00:00
Santhosh Manohar
64a6dc3558 Docker changes for libnetwork vendoring..
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-01-08 14:13:55 -08:00
Santhosh Manohar
8ccf5cffa7 Vendoring libnetwork and its dependencies..
- replace /etc/hosts based name resolution with embedded DNS for user
  defined networks
- overlay veth cleanup: docker/docker#18814
- check before programming ipv6 in bridge: docker/docker#19139
- diable DAD: docker/docker#18871

Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-01-08 14:13:21 -08:00
Alexander Morozov
807d575b5e Merge pull request #19135 from Microsoft/jjh/securitywarning
Windows: Fix security warning regression
2016-01-08 13:55:41 -08:00
John Howard
25c383391a Windows CI: Deal with failing tests for TP4
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-08 13:49:43 -08:00
Tianon Gravi
335764a591 Merge pull request #19181 from coolljt0725/enable_build_syscall_test
Make .ensure-syscall-test to use build-arg
2016-01-08 13:43:38 -08:00
John Howard
4c380010a6 Windows CI: Turn off network API tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-08 12:58:54 -08:00
Aidan Hobson Sayers
cc44ea21e4 Fix ambassador script based on SvenDowideit/dockerfiles#37
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2016-01-08 20:55:22 +00:00
Jess Frazelle
719526d87c Merge pull request #19186 from unclejack/no_mail_maintainers
CONTRIBUTING: add guidelines regarding email
2016-01-08 12:51:59 -08: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
Phil Estes
557c7cb888 Move userns support out of experimental into master
Adds the `--userns-remap` flag to the master build

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-08 15:06:22 -05:00
Arnaud Porterie
05de2aadff Merge pull request #19001 from aboch/pip
Allow user to choose the IP address for the container
2016-01-08 11:49:20 -08:00
Michael Crosby
e26974e20b Merge pull request #19175 from cpuguy83/18670_copy_data_for_named_volumes
On create, copy image data for named volumes.
2016-01-08 11:33:40 -08:00
Aaron Lehmann
3f829aa6e4 Remove ansiescape package
api/client/trust.go was the last file that used it.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 10:57:50 -08:00
Aaron Lehmann
65370be888 Send push information to trust code out-of-band
The trust code used to parse the console output of `docker push` to
extract the digest, tag, and size information and determine what to
sign. This is fragile and might give an attacker control over what gets
signed if the attacker can find a way to influence what gets printed as
part of the push output.

This commit sends the push metadata out-of-band. It introduces an `Aux`
field in JSONMessage that can carry application-specific data alongside
progress updates. Instead of parsing formatted output, the client looks
in this field to get the digest, size, and tag from the push.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-01-08 10:57:50 -08:00
Jess Frazelle
1c979f7587 Merge pull request #18887 from riyazdf/notary-delegations
notary delegation integration into docker
2016-01-08 10:37:55 -08:00
Alessandro Boch
2bb3fc1bc5 Allow user to choose the IP address for the container
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-08 10:09:16 -08:00
David Calavera
145f020122 Vendor new syslog library with TLS support.
The syslog package in the stdlib is not maintained anymore.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-08 12:35:35 -05:00
Alessandro Boch
19b063e740 Vendoring libnetwork
- 49c24217054e269aad3dbfd81ee32780b104dd84

Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-08 09:19:31 -08:00
Riyaz Faizullabhoy
1c32a66877 update tests and error messages, revendor notary with tag
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-08 09:11:33 -08:00
unclejack
64e8fa9199 CONTRIBUTING: add guidelines regarding email
This adds guidelines around reaching the maintainers. Emails shouldn't
be sent to maintainers. GitHub mentions should be used instead.

Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2016-01-08 16:49:17 +02: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
Vincent Demeester
3a8d694e01 Merge pull request #19180 from coolljt0725/fix_flaky_test
Fix flaky testTestStatsAllNewContainersAdded
2016-01-08 13:10:27 +01:00
Antonio Murdaca
018081d5a9 Merge pull request #19058 from dnephin/move_opts_to_runconfig_opts
Move some opts validators to runconfig/opts where they are used
2016-01-08 12:34:49 +01:00
Antonio Murdaca
f4f848b7a5 Merge pull request #19131 from cpuguy83/fix_plugin_error_handling
Don't error out on plugin err with json
2016-01-08 12:22:45 +01:00
Antonio Murdaca
9e9d7dc884 Merge pull request #19179 from estesp/btrfs-userns-perms
Fix btrfs subvolume snapshot dir perms for user namespaces
2016-01-08 12:13:49 +01:00
Lei Jitang
71d6e71cff Fix flaky test TestStatsAllNewContainersAdded
Wait the new created container for running and then check if it
is in the docker stats to avoid flaky test.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-08 17:02:08 +08:00
Lei Jitang
3ff6725613 Make .ensure-syscall-test to use build-arg
.ensure-syscall-test need to build an image, we have
to add http_proxy and https_proxy to make it work.
Inseted of adding http_proxy and https_proxy env to the Dockerfile,
adding a DOCKER_BUILD_ARGS env to pass the build-arg is much more
elegant.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-08 15:27:21 +08:00
Lei Jitang
cde0ed67a1 Create the working directory on container creation
if create a container with -w to specify the working directory and
the directory does not exist in the container rootfs, the directory
will be created until the container start. It make docker export of
a created container and a running container inconsistent.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-08 12:11:21 +08:00
Phil Estes
72e65e8793 Fix btrfs subvolume snapshot dir perms for user namespaces
Make sure btrfs mounted subvolumes are owned properly when a remapped
root exists (user namespaces are enabled, for example)

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-07 23:05:28 -05:00
cyli
1db0c7bb01 Add an integration test for docker being able to push to a repo with delegations.
Signed-off-by: cyli <cyli@twistedmatrix.com>
2016-01-07 19:35:45 -08:00
Riyaz Faizullabhoy
1c125f50cf Notary delegation integration into docker
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2016-01-07 19:35:45 -08:00
Jess Frazelle
611d5e4eeb Merge pull request #19173 from calavera/vendor_engine_api_0_1_2
Vendor engine-api 0.1.3
2016-01-07 19:19:19 -08:00
Brian Goff
b468332707 On create, copy image data for named volumes.
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-07 21:57:08 -05:00
David Calavera
e73ab750ed Make sure docker api client implements engine-api client.
- Use the master interface in the new repo.
- Use new structures for container create, update and network connect.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-07 21:02:19 -05:00
David Calavera
1feeecf6e5 Vendor engine-api 0.1.3.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-07 21:02:19 -05:00
moxiegirl
6213cc9d04 Merge pull request #19165 from shishir-a412ed/man_page_fix
man page fix: remove -e/--exec-drive=native related description
2016-01-07 16:47:07 -08:00
moxiegirl
b12ef0fe00 Merge pull request #18378 from tonistiigi/content-addressability-storage-docs
Update storage docs for content-addressability
2016-01-07 16:44:29 -08:00
Victoria Bialas
2ffb362f9b added re-directs for cloud install docs as clean-up for #18282
Signed-off-by: Victoria Bialas <victoria.bialas@docker.com>
2016-01-07 16:06:46 -08: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
Anusha Ragunathan
1e021ff571 Create standard vendor policies.
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-07 15:32:10 -08:00
Jess Frazelle
d76640d78a Merge pull request #19145 from vdemeester/vendor-my-precious
Add a validate-vendor script
2016-01-07 13:53:01 -08: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
Shishir Mahajan
50305d66f5 man page fix: remove -e/--exec-drive=native related description
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2016-01-07 14:21:01 -05:00
Doug Davis
ff3b551d2d Merge pull request #18768 from hqhq/hq_remove_dup_error
Remove redundant error messages
2016-01-07 14:13:50 -05:00
Arnaud Porterie
cceac7da35 Merge pull request #19059 from jfrazelle/seccomp-docs
add syscalls we purposely block to docs
2016-01-07 11:13:07 -08:00
Brian Goff
0f9f99500c Build names and links at runtime
Don't rely on sqlite db for name registration and linking.
Instead register names and links when the daemon starts to an in-memory
store.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-07 14:10:42 -05:00
Vincent Demeester
4c22c566e2 Add a validate-vendor script
Makes sure that if ./hack/vendor.sh has been updated, it has been used
to update the vendor folder.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-07 19:57:50 +01:00
Jess Frazelle
938d28e772 Merge pull request #19144 from LK4D4/fix_parent_systemd
Choose default-cgroup parent by cgroup driver
2016-01-07 10:24:51 -08:00
Jessica Frazelle
52f32818df add syscalls we purposely block to docs
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-07 10:22:16 -08:00
moxiegirl
374a9596b2 Merge pull request #19156 from HackToday/19152-fix-voldoc
Remove the old reference link
2016-01-07 09:21:58 -08:00
Alexander Morozov
c1cd45d547 Choose default-cgroup parent by cgroup driver
It's "/docker" for cgroupfs and "system.slice" for systemd.

Fix #19140

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-07 08:56:26 -08:00
Tibor Vass
131e2bf12b Merge pull request #19068 from calavera/vendor_engine_api
Introduce the new engine-api library.
2016-01-07 11:14:37 -05:00
Sebastiaan van Stijn
6aefa898cb Merge pull request #19160 from thaJeztah/carry-19020-groupadd-docs
(carry 19020) add documentation for groupadd for remote api
2016-01-07 12:41:08 +01:00
Oliver Neal
ade71ace7d added documentation for groupadd within hostConfig that was added in remote api 1.20
Signed-off-by: Oliver Neal <ItsVeryWindy@users.noreply.github.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-07 12:30:27 +01:00
Kai Qiang Wu(Kennan)
ca7b69016a Remove the old reference link
Fixes: #19152

As issue #14214 closed, so this old link is not needed.
We can remove it now.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-07 10:23:36 +00:00
Sebastiaan van Stijn
3442339b98 Merge pull request #19090 from thaJeztah/fix-api-markdown
fix markdown and typos in API docs
2016-01-07 08:32:01 +01:00
moxiegirl
af6c6dbf87 Merge pull request #19115 from cpuguy83/volume_plugin_docs_change.md
Add docs for volume plugin ls/get
2016-01-06 20:04:09 -08:00
moxiegirl
dd2981c26d Merge pull request #19127 from thaJeztah/use-the-f-luke
Add -f flag to cURL install instructions
2016-01-06 20:02:53 -08:00
Zhang Wei
7f0d304f37 Check nil Terminal to avoid panic
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2016-01-07 10:07:12 +08:00
David Calavera
c7d811c816 Remove types and lib packages from the engine.
They live in github.com/docker/engine-api now.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-06 19:49:00 -05:00
David Calavera
907407d0b2 Modify import paths to point to the new engine-api package.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-06 19:48:59 -05:00
David Calavera
9927e712c0 Vendor engine-api project.
Use latest tag for both, engine-api and go-connections.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-06 19:46:06 -05:00
John Howard
ebf4c91717 Windows: Fix security warning regression
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-06 15:54:43 -08:00
Tibor Vass
7fab93175d Merge pull request #19099 from calavera/replace_docker_only_trust_enabled
Do not perform build context switch when content trust is not enabled.
2016-01-06 18:09:30 -05:00
David Calavera
4ee3048fa8 Merge pull request #19110 from brahmaroutu/update_openc
update runc to the latest code base to fix gccgo builds
2016-01-06 15:09:11 -08:00
Alexander Morozov
d2b8160513 Merge pull request #19141 from duglin/FixVendor
Update src with latest vendor.sh stuff
2016-01-06 14:45:58 -08:00
Tianon Gravi
91201678c6 Refactor multi-arch support (especially for new mostly-official multi-arch official images)
See 99433d2ca2/README.md (architectures-other-than-amd64) for some context of where these images come from.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2016-01-06 14:34:29 -08:00
Doug Davis
18fdbdb07b Merge pull request #19143 from duglin/AddMorgan
Add Morgan Bauer to docker/docker/MAINTAINERS
2016-01-06 16:44:29 -05:00
Doug Davis
1698d49abc Update src with latest vendor.sh stuff
I **think** someone forgot to run vendor.sh after it was updated so
this just syncs things up.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-01-06 13:26:49 -08:00
Antonio Murdaca
60e577c3b9 Merge pull request #19142 from thaJeztah/update-runcom-email
Update antonio's e-mail address
2016-01-06 22:21:56 +01:00
Doug Davis
af0117cc8f Add Morgan Bauer to docker/docker/MAINTAINERS
Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-01-06 13:19:04 -08:00
Sebastiaan van Stijn
bdce7dd5c8 Update antonio's e-mail address
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-06 22:18:47 +01:00
John Howard
676118670d Windows CI: More debugging
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-06 11:44:07 -08:00
David Calavera
f2036d1108 Merge pull request #19039 from duglin/Issue19012
Add default PATH to 'scratch' images
2016-01-06 11:19:39 -08:00
Arnaud Porterie
837de95717 Merge pull request #16704 from manchoz/16695_manchoz_archarm
Add support for Arch Linux ARM base images generation (#16695).
2016-01-06 11:16:40 -08:00
Jess Frazelle
7104f58ac2 Merge pull request #19136 from albers/completion-update
bash completion for `docker update`
2016-01-06 10:36:15 -08:00
Harald Albers
97f84b5dc1 bash completion for docker update
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-06 10:20:33 -08:00
Jessica Frazelle
2b4f64e590 fix proc regex
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-06 10:08:35 -08:00
Doug Davis
d3ea7e80e8 Add default PATH to 'scratch' images
Closes #19012

Signed-off-by: Doug Davis <dug@us.ibm.com>
2016-01-06 09:50:35 -08:00
Tõnis Tiigi
fe550a1f17 Merge pull request #19093 from estesp/userns-root-rework
Allow root non-userns metadata backwards compatibility
2016-01-06 09:48:37 -08:00
Brian Goff
5d1dd8069b Add docs for volume plugin ls/get
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-06 12:42:44 -05:00
Tõnis Tiigi
8420366e7c Merge pull request #19132 from icecrime/maintainer_add_tonis
Add Tõnis Tiigi to MAINTAINERS
2016-01-06 09:34:38 -08:00
David Calavera
4b1872f1ef Merge pull request #18979 from jfrazelle/make-whitelist
Change seccomp blacklist to a whitelist
2016-01-06 09:15:25 -08:00
Arnaud Porterie
178806d2b8 Add Tõnis Tiigi to MAINTAINERS
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2016-01-06 08:51:52 -08:00
Brian Goff
279dd092b6 Don't error out on plugin err with json
We don't want to error out when there is a json unmarshal error since
the `old way` will cause this to error.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-06 11:34:14 -05:00
Sebastiaan van Stijn
9cf29be0ee Add -f flag to cURL install instructions
From the -f description:

(HTTP) Fail silently (no output at all) on server errors. This is mostly done
to better enable scripts etc to better deal with failed attempts. In normal
cases when an HTTP server fails to deliver a document, it returns an HTML
document stating so (which often also describes why and more). This flag will
prevent curl from outputting that and return error 22.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-06 16:05:16 +01:00
Victor Vieux
a931c78540 Before that change, etcd and zookeeper would fail to instantiate
the discovery without the key being already there in the store or
created beforehand and implicitely by a 'swarm join'.

Signed-off-by: Alexandre Beslic <abronan@docker.com>
Signed-off-by: Victor Vieux <vieux@docker.com>

This PR allows to configure the discovery path using the
--discovery-opt flag (with "kv.path=path/to/nodes"). We
can point to "docker/nodes" and use the docker discovery.

If docker instances are advertising to the cluster using
the `--cluster-advertise` flag, the swarm join command
becomes unnecessary.

Signed-off-by: Alexandre Beslic <abronan@docker.com>
Signed-off-by: Victor Vieux <vieux@docker.com>
2016-01-06 05:18:52 -08:00
Brian Goff
5ccd33134f Merge pull request #19113 from Microsoft/jjh/fix-windows-builder
Windows: Fix docker build not to sigsegv the daemon
2016-01-05 20:54:00 -05:00
David Calavera
18d15babef Do not perform build context switch when content trust is not enabled.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-05 19:23:20 -05:00
John Howard
1094542c4c Windows: Fix build not to sigsegv
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-05 16:08:04 -08:00
Srini Brahmaroutu
9982631707 update runc to the latest code base to fix gccgo build
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2016-01-06 00:02:56 +00:00
Sebastiaan van Stijn
7a15586f4f Merge pull request #19056 from clintonskitson/docs-rexray_update
Updated docs for consolidated list of REX-Ray providers
2016-01-05 23:53:27 +01:00
Sebastiaan van Stijn
d9a3812656 Merge pull request #19077 from AvdN/patch-2
example cannot work, pip needs --requirement
2016-01-05 23:50:52 +01:00
Phil Estes
55137c19f4 Merge pull request #16534 from cpuguy83/make_volume_drivers_responsible
Move responsibility of ls/inspect to volume driver
2016-01-05 17:29:51 -05:00
David Calavera
b4e26a96da Merge pull request #18752 from cpuguy83/fix_broken_pipe_error_on_download_abrt
Don't log EPIPE errors on client download abort
2016-01-05 13:34:57 -08:00
Brian Goff
d3eca4451d Move responsibility of ls/inspect to volume driver
Makes `docker volume ls` and `docker volume inspect` ask the volume
drivers rather than only using what is cached locally.

Previously in order to use a volume from an external driver, one would
either have to use `docker volume create` or have a container that is
already using that volume for it to be visible to the other volume
API's.

For keeping uniqueness of volume names in the daemon, names are bound to
a driver on a first come first serve basis. If two drivers have a volume
with the same name, the first one is chosen, and a warning is logged
about the second one.

Adds 2 new methods to the plugin API, `List` and `Get`.
If a plugin does not implement these endpoints, a user will not be able
to find the specified volumes as well requests go through the drivers.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-05 16:28:38 -05:00
Phil Estes
6c30931b06 Merge pull request #18889 from aaronlehmann/v1-fallback-pull-all-tags
Allow v1 protocol fallback when pulling all tags from a repository unknown to v2 registry
2016-01-05 16:20:04 -05:00
Tibor Vass
df9a3d1005 Merge pull request #19092 from anusha-ragunathan/builder-rm-merge
Remove runconfig.Merge
2016-01-05 15:21:24 -05:00
David Calavera
acfd5eb947 Merge pull request #18977 from anusha-ragunathan/builder
Use ImageBuildOptions in builder.
2016-01-05 11:54:21 -08:00
Sebastiaan van Stijn
2b489450d7 Merge pull request #19102 from Microsoft/jjh/integ-daemon-stop
Windows CI: No integration daemon stop
2016-01-05 20:52:51 +01:00
Anusha Ragunathan
eb4ae8e28a Remove runconfig.Merge
Merge was used by builder and daemon. With this commit, the builder
call has been inlined and the function moved to the daemon package,
which is the only other caller.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-05 11:28:55 -08:00
Vincent Demeester
4f8d794c46 Merge pull request #19097 from albers/completion-daemon--cgroup-parent
bash completion for `docker daemon --cgroup-parent`
2016-01-05 19:56:51 +01:00
moxiegirl
180ff8d501 Merge pull request #19045 from wenchma/network_api_update
Update docker network api doc
2016-01-05 10:55:56 -08:00
John Howard
a3858873fa Windows CI: No integration daemon stop
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-05 10:52:59 -08:00
David Calavera
97bed96759 Merge pull request #19067 from jfrazelle/19029-volume-name
update volume name regex
2016-01-05 10:50:46 -08:00
David Calavera
50917521fc Merge pull request #19094 from ReadmeCritic/master
Update README URLs based on HTTP redirects
2016-01-05 10:46:21 -08:00
David Calavera
9819a9db20 Merge pull request #19098 from albers/completion--isolation
bash completion for `--isolation`
2016-01-05 10:37:39 -08:00
Michael Crosby
5aae5a5fae Merge pull request #18399 from tonistiigi/migration-optimization
Migration optimizations
2016-01-05 10:11:56 -08:00
Anusha Ragunathan
5190794f1d Use ImageBuildOptions in builder.
dockerfile.Config is almost redundant with ImageBuildOptions.
Unify the two so that the latter can be removed. This also
helps build's API endpoint code to be less dependent on package
dockerfile.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-05 10:09:34 -08:00
Harald Albers
9e624d3250 bash completion for --isolation
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-05 09:59:29 -08:00
Harald Albers
ce2cbde841 bash completion for docker daemon --cgroup-parent
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-05 09:29:37 -08:00
Justin Cormack
822c4f79ab Allow the waitpid syscall
This version is sometimes used eg by glibc on x86

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-05 09:29:16 -08:00
Justin Cormack
ca3ae72e43 Support compatible architectures with default seccomp rules
In the default seccomp rule, allow use of 32 bit syscalls on
64 bit architectures, so you can run x86 Linux images on x86_64
without disabling seccomp or using a custom rule.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-05 09:28:42 -08:00
Tianon Gravi
d5685a65d7 Merge pull request #19084 from vdemeester/i-am-all-frozen
Remove hello-world:latest tag before integration
2016-01-05 09:26:59 -08:00
Jess Frazelle
fd1afe1d59 Merge pull request #18751 from clnperez/update-gcc-to-5.3
Update gcc to 5.3
2016-01-05 09:15:41 -08:00
moxiegirl
f67fed5f77 Merge pull request #19051 from thaJeztah/dont-touch-var-lib-volumes
docs: add note to volume-plugins
2016-01-05 09:15:21 -08:00
ReadmeCritic
85599338db Update README URLs based on HTTP redirects
Signed-off-by: d. khamsing <dkhamsing8@gmail.com>
2016-01-05 09:13:45 -08:00
Phil Estes
e8532023f2 Allow root non-userns metadata backwards compatibility
Instead of creating a "0.0" subdirectory and migrating graphroot
metadata into it when user namespaces are available in the daemon
(currently only in experimental), change the graphroot dir permissions
to only include the execute bit for "other" users.

This allows easy migration to and from user namespaces and will allow
easier integration of user namespace support into the master build.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-05 11:51:14 -05:00
Sebastiaan van Stijn
72472f5639 fix markdown and typos in API docs
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-05 16:33:32 +01:00
Doug Davis
b2d00e312b Merge pull request #19038 from gottwald/logfix
Fix race condition in JSONFileLogger.Log
2016-01-05 08:52:12 -05:00
Vincent Demeester
0736598b93 Remove hello-world:latest tag before integration
This is to make sure we are in the same state on linux/arm, linux/… and
other architecture.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-05 14:40:27 +01:00
Vincent Demeester
09ad1bbc58 Merge pull request #19070 from softprops/shiplift_client
add shiplift docker client to remote api client list
2016-01-05 14:36:30 +01:00
softprops
09e0c9fc24 add shiplift docker client to remote api client list
Signed-off-by: Doug Tangren <d.tangren@gmail.com>
2016-01-05 08:27:26 -05:00
Sebastiaan van Stijn
0439e03a27 Merge pull request #18737 from sdurrheimer/zsh-completion-daemon-cgroup-parent
Add zsh completion for 'docker daemon --cgroup-parent'
2016-01-05 13:12:02 +01:00
Sebastiaan van Stijn
4a4131ac1b Merge pull request #19075 from HackToday/fixvoldoc
Fix the unnecessary parameter
2016-01-05 11:51:33 +01:00
Sebastiaan van Stijn
14a7048df9 Merge pull request #19064 from RichardScothern/registry-flag
Show the legacy registry flag only in the daemon arguments
2016-01-05 11:48:01 +01:00
Vincent Demeester
fccbbe5726 Merge pull request #19078 from HackToday/19072-fix-str
Fix the str missing
2016-01-05 11:34:36 +01:00
Kai Qiang Wu(Kennan)
52b944dbba Fix the unnecessary parameter
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-05 10:26:01 +00:00
Sebastiaan van Stijn
cd9c641b1d Merge pull request #19079 from wenchma/typo_error
Fix a typo error
2016-01-05 11:06:30 +01:00
Wen Cheng Ma
289faeac11 Fix a typo error
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-05 17:42:13 +08:00
Kai Qiang Wu(Kennan)
01e873790e Fix the str missing
Fixes: #19072
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-05 09:32:52 +00:00
Anthon van der Neut
8c1d0e31b4 example cannot work, pip needs --requirement
The example is not explicit, but the requirements.txt file is most likely a list of requirements (i.e. list of packages to be installed)
and not a python package itself. As such it needs the "--requirements" or "-r" option.

Signed-off-by: Anthon van der Neut <anthon@mnt.org>
2016-01-05 09:23:53 +01:00
Steve Durrheimer
b5f6605ca2 Add zsh completion for 'docker daemon --cgroup-parent'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2016-01-05 07:41:34 +01:00
David Calavera
ebc5a4654e Merge pull request #19062 from anusha-ragunathan/cgroup
Add ability to set cgroup parent for all containers
2016-01-04 16:46:23 -08:00
Justin Cormack
d8e06d54cf Allow sigreturn syscall
This is used on some 32 bit architectures, eg x86

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-04 16:11:59 -08:00
Jess Frazelle
78873dd6e5 Merge pull request #18461 from Microsoft/jjh/checkin-jenkins-script
Adding Jenkins CI script to sources
2016-01-04 15:59:03 -08:00
John Howard
8213f8caaa Adding Jenkins CI script to sources
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-01-04 15:53:30 -08:00
Alexander Morozov
2e3186ab06 Add ability to set cgroup parent for all containers
Fix #18022

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-04 15:16:25 -08:00
Jessica Frazelle
b46f044bf7 update volume name regex
Disallow creating a volume starting with a /.

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-04 15:00:49 -08:00
Richard Scothern
b18fadd115 Show the legacy registry flag only in the daemon arguments
Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
2016-01-04 14:52:39 -08:00
Michael Crosby
04234bd16a Merge pull request #18208 from cpuguy83/restart_links
Daemon Restart: attempt to wait for container deps
2016-01-04 14:36:00 -08:00
David Calavera
723be0a332 Merge pull request #18888 from calavera/event_types
Event all the things!
2016-01-04 13:07:33 -08:00
David Calavera
851fe00c64 Add filter by event type and documentation.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-04 14:58:04 -05:00
Justin Cormack
923609179b Add _llseek syscall
This is the newer verion of lseek on many 32 bit platforms

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-04 11:55:28 -08:00
Justin Cormack
d6a9c5abed Do not allow obsolete syscalls
sysfs and ustat syscalls are marked obsolete.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-04 11:55:28 -08:00
Justin Cormack
c1b57fc1c9 Do not allow name_to_handle_at, as we have already blocked open_by_handle_at
Being able to obtain a file handle is no use as we cannot perform
any operation in it, and it may leak kernel state.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-04 11:55:27 -08:00
Jessica Frazelle
a1747b3cc8 add 32bit syscalls to whitelist
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-04 11:55:26 -08:00
Jessica Frazelle
17735c3c98 change seccomp blacklist to whitelist
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-04 11:55:21 -08:00
Daniel Nephin
0007f5a859 Move some validators from opts to runconfig/opts.
These validators are only used by runconfig.Parse() or some other part of the
client, so move them into the client-side package.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-04 14:35:36 -05:00
Clinton Kitson
6084346bec Updated docs for consolidated list of REX-Ray providers
This commit includes the correct project link and also
includes a consolidated list of drivers that are supported.

Signed-off-by: Clinton Kitson <clintonskitson@gmail.com>
2016-01-04 11:28:25 -08:00
David Calavera
dc4ca0e897 Merge pull request #18941 from dnephin/runconfig_in_cli
Move runconfig/parse.go into the runconfig/opts package
2016-01-04 11:06:18 -08:00
David Calavera
972653c310 Merge pull request #19054 from calavera/remove_version_from_types
Remove version package from API types.
2016-01-04 10:54:47 -08:00
Jess Frazelle
fa57eedff4 Merge pull request #19002 from jfrazelle/update-test-images
cleanup test images
2016-01-04 10:24:30 -08:00
David Calavera
9961816ade Remove version package from API types.
It's an internal type that only extends string.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-04 12:51:45 -05:00
Tonis Tiigi
a8f88ef403 Parallel migration and optimizations
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-04 09:48:52 -08:00
Tonis Tiigi
0641429ad8 Use direct filesystem access for tar-split on aufs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-04 09:41:02 -08:00
Sebastiaan van Stijn
fb893cf656 docs: add note to volume-plugins
The /var/lib/docker directory is reserved for
docker, and should not be touched by plugins.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-04 18:28:14 +01:00
Daniel Nephin
c5a2fdb697 Move volume.SplitN() to the one place it is used in runconfig.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-04 12:06:30 -05:00
Daniel Nephin
2b7ad47bd2 Move the runconfig.Parse() function into the runconfig/opts package.
The parse.go file is used almost exclusively in the client. The few small
functions that are used outside of the client could easily be copied out
when the client is extracted, allowing this runconfig/opts package to
move to the client.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-04 12:06:29 -05:00
Daniel Nephin
4c0d586bd3 Move ParseExec to the client where it is used.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-04 12:06:29 -05:00
moxiegirl
0fae65e228 Merge pull request #18499 from thaJeztah/fix-run-reference-example
Fix pid=host example in documentation
2016-01-04 08:51:02 -08:00
moxiegirl
822a808688 Merge pull request #19048 from thaJeztah/update-configuring-docker
docs: update configuring docker for systemd
2016-01-04 08:46:45 -08:00
Sebastiaan van Stijn
9b6592ca85 Fix pid=host example in documentation
The existing example didn't illustrate how to
install strace in the container. In addition,
the rhel7 image used is no longer public (and maintained)
so not a good image to use in the example.

This updates the example to use htop (strace is
not working without disabling apparmor for the container)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-04 16:25:54 +01:00
Brian Goff
0fff66977a Merge pull request #19033 from cr7pt0gr4ph7/19032-fix-native-execdriver-compile-error
Fix declarations of of execdriver/native.NewDriver to have the same signature for all platforms
2016-01-04 10:22:10 -05:00
Sebastiaan van Stijn
59301e018c docs: update configuring docker for systemd
Ubuntu 15.04 and above uses systemd. Add a note
in the docs to point users to the right instructions.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-01-04 15:26:55 +01:00
Wen Cheng Ma
d92d1de3d5 Update docker network api doc
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-04 18:05:02 +08:00
Sebastiaan van Stijn
db738dd77f Merge pull request #15666 from vdemeester/3519-configurable-escape
Implement configurable escape key for attach/exec
2016-01-04 00:49:07 +01:00
Vincent Demeester
15aa2a663b Implement configurable detach key
Implement configurable detach keys (for `attach`, exec`, `run` and
`start`) using the client-side configuration

- Adds a `--detach-keys` flag to `attach`, `exec`, `run` and `start`
  commands.
- Adds a new configuration field (in `~/.docker/config.json`) to
  configure the default escape keys for docker client.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-03 23:03:39 +01:00
Sebastiaan van Stijn
2916ceb313 Merge pull request #19037 from moxiegirl/15666-file-carry
Creating a man page for the configuration file
2016-01-03 22:50:32 +01:00
Ingo Gottwald
f8c5420080 Fix race condition in JSONFileLogger.Log
Signed-off-by: Ingo Gottwald <in.gottwald@gmail.com>
2016-01-03 22:45:56 +01:00
Mary Anthony
32b5f71f0d Creating a man page for the configuration file
Signed-off-by: Mary Anthony <mary@docker.com>

Adding comments. Fixing bit in daemon

Signed-off-by: Mary Anthony <mary@docker.com>

Arrrgggh

Signed-off-by: Mary Anthony <mary@docker.com>
2016-01-03 13:23:18 -08:00
Sebastiaan van Stijn
9d6c2196b5 Merge pull request #18387 from wenchma/18385-improve_help_msg
Improvement for docker subcommand's help messages
2016-01-03 12:19:53 +01:00
Tianon Gravi
29da9903d4 Merge pull request #19035 from albers/completion-authorization-plugins
Compute plugin list in bash completion for `docker daemon --authz-plugin`
2016-01-02 18:21:19 -08:00
Phil Estes
233787040c Merge pull request #19036 from calavera/thank_you_ian
Thanks for everything Ian.
2016-01-02 21:21:03 -05:00
David Calavera
e11ebfcb09 Add Ian Murdock to the names generator.
❤️ 😢

Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-02 19:17:17 -05:00
Harald Albers
2134d38935 Compute plugin list in bash completion for docker daemon --authz-plugin
Signed-off-by: Harald Albers <github@albersweb.de>
2016-01-02 14:53:10 -08:00
Lukas Waslowski
9a03967f0a Fix declarations of of execdriver/native.NewDriver to have the same signature.
This change is done so that driver_unsupported.go and driver_unsupported_nocgo.go
declare the same signature for NewDriver as driver.go.

Fixes #19032

Signed-off-by: Lukas Waslowski <cr7pt0gr4ph7@gmail.com>
2016-01-02 19:55:37 +01:00
Sebastiaan van Stijn
dcbd5e04b7 Merge pull request #18891 from HackToday/18872-fix-volume-cmd
Fix the restore data example
2016-01-02 00:43:46 +01:00
Vincent Demeester
1a5b97c761 Merge pull request #18932 from wenchma/same_name_of_container_image
Update integration tests when container and image have same name
2016-01-01 21:40:51 +01:00
Arnaud Porterie
c431bcba5b Merge pull request #19028 from AvdN/patch-1
fix typo
2016-01-01 12:26:44 -08:00
Arnaud Porterie
838e4c86e8 Merge pull request #19027 from runcom/remove-getter
daemon: info: remove exported getter
2016-01-01 12:26:24 -08:00
Vincent Demeester
3544d48ca1 Merge pull request #19019 from duglin/constScratch
Use constant instead of "scratch"
2016-01-01 21:02:41 +01:00
Anthon van der Neut
b4d4a805ea fix typo
Signed-off-by: Anthon van der Neut <a.van.der.neut@ruamel.eu>
2016-01-01 20:39:04 +01:00
Antonio Murdaca
77ef3a606a daemon: info: remove exported getter
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-01 20:22:29 +01:00
Vincent Demeester
5c0af43ebe Merge pull request #19006 from jen20/f-solaris-stat
Fix downstream client API build errors on Solaris
2016-01-01 20:09:22 +01:00
Arnaud Porterie
e7c6206574 Merge pull request #19007 from aboch/npe
Properly initialize IpamConf structure in initBridgeDriver
2016-01-01 10:50:54 -08:00
Wen Cheng Ma
d7dc439623 Improvement for docker subcommand's help messages
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2016-01-01 12:27:28 +08:00
Brian Goff
e7e3e568d1 Merge pull request #18836 from vdemeester/18829-info-authz-plugins
Add authorization plugins to docker info
2015-12-31 09:47:59 -05:00
Doug Davis
e6806223e8 Use constant instead of "scratch"
Move NoBaseImageSpecifier to a common spot and then use it instead of
"scratch" in a couple of places.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-12-31 06:21:56 -08:00
Sebastiaan van Stijn
d88e92d839 Merge pull request #19015 from timwangdev/patch-1
🎉 Happy New Year!  🎉
2015-12-31 14:26:10 +01:00
Tim Wang
4b32d59595 Update LICENSE date
Signed-off-by: Tim <timwangdev@gmail.com>
2015-12-31 13:07:35 +00:00
Jessica Frazelle
327421d1df add more seccomp profile tests
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-30 17:30:44 -08:00
Kai Qiang Wu(Kennan)
83c705c00d Fix the restore data example
Fixes: #18872

For backup, restore case, we usually restore in same directory, so
when we untar it, we not need go to /dbdata directory, wich could
result in /dbdata/dbdata, this fix make it untar directly. The directory
/dbdata would be same as old container /dbdata.

Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2015-12-31 00:56:01 +00:00
Jessica Frazelle
626c933730 cleanup jess/unshare image
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-30 16:20:05 -08:00
Alessandro Boch
aa97eee1a3 Properly initialize IpamConf structure in initBridgeDriver
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-12-30 15:44:50 -08:00
James Nugent
c12dbb8c82 Fix downstream client API build errors on Solaris
The client API at fsouza/go-dockerclient has dependencies on packages in
the docker/docker repository which currently do not build on Solaris. In
particular, stat_unsupported.go makes use of the Mtimespec field of the
syscall.Stat_t struct, which is not present on Solaris, and a number of
Unix-specific packages do not list Solaris in their compile targets.

This commit adds enough support to be able to build
fsouza/go-dockerclient on SmartOS using Go 1.5.1 without affecting other
platforms.

Signed-off-by: James Nugent <james@jen20.com>
2015-12-30 18:25:42 -05:00
David Calavera
102eb03c68 Merge pull request #18999 from tonistiigi/fix-comment-in-inspect
Fix missing comment in docker inspect
2015-12-30 15:07:04 -08:00
David Calavera
f15af1eff7 Add network events.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-30 17:39:33 -05:00
David Calavera
9d12d09300 Add volume events.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-30 17:39:33 -05:00
David Calavera
72f1881df1 Add event types.
- Stop serializing JSONMessage in favor of events.Message.
- Keep backwards compatibility with JSONMessage for container events.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-30 17:39:33 -05:00
Lei Jitang
687ef00562 Add tests for docker events -f container.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
(cherry picked from commit 531ecf59f5bd92b12d4548617ca7bf179c8179a3)
2015-12-30 17:39:32 -05:00
Jess Frazelle
83a194e2dd Merge pull request #19003 from calavera/fix_windows_build
Move test out of the windows build.
2015-12-30 14:37:28 -08:00
David Calavera
9aad7d209f Move test out of the windows build.
Because it can still run on windows server and fail because it doesn't
have `chown`.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-30 16:36:48 -05:00
Sebastiaan van Stijn
2c3d1a9b12 Merge pull request #18964 from hqhq/hq_fix_memory_swap_doc2
Fix docs for memory-swap
2015-12-30 21:01:48 +01:00
Tonis Tiigi
d32f43013b Fix missing comment in docker inspect
Fixes #18571

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-30 11:52:53 -08:00
David Calavera
56f8b051eb Merge pull request #18158 from mauri/add_owner
ADD files to a folder doesn't set correct UID and GID
2015-12-30 11:19:15 -08:00
David Calavera
51fa287368 Merge pull request #18714 from jecarey/16756-docker_cli_pull_test
Use of checkers in docker_cli_pull_test.go
2015-12-30 10:00:41 -08:00
David Calavera
f962aac1ec Merge pull request #18991 from qq690388648/master
replace the os.Stdout with stdout to adapt platform
2015-12-30 09:55:02 -08:00
Sebastiaan van Stijn
3b605b5926 Merge pull request #18764 from donovan/fix-networkingcontainers-ip-addresses
fix incorrect ip addresses in networkingcontainers
2015-12-30 17:49:08 +01:00
Jess Frazelle
3be1a80f1a Merge pull request #18987 from tianon/armhf
Rename Dockerfile.arm to Dockerfile.armhf to more clearly reflect the specific subversion of ARM it targets
2015-12-30 08:21:52 -08:00
Arnaud Porterie
1dd4a2a966 Merge pull request #18994 from thaJeztah/add-new-impact-labels
add new impact/distribution label
2015-12-30 08:19:07 -08:00
David Calavera
708f98f5f9 Merge pull request #18952 from coolljt0725/fix_stats_update
Fix docker stats show wrong memory limit when do docker update
2015-12-30 08:17:42 -08:00
Sebastiaan van Stijn
9860effc4e Merge pull request #18984 from coolljt0725/fix_daemon_start
Fix daemon failed to start with error "layer does not exist"
2015-12-30 16:52:41 +01:00
Mauricio Garavaglia
b638bc6f17 Fix files ownership when ADD is used
Signed-off-by: Mauricio Garavaglia <mauriciogaravaglia@gmail.com>
2015-12-30 11:35:19 -03:00
Vincent Demeester
c4486e48f2 Merge pull request #18985 from hqhq/hq_handle_dockerCmdInDir
Handle error for dockerCmdInDir
2015-12-30 15:25:20 +01:00
Sebastiaan van Stijn
ac0180620d add new impact/distribution label
Adds the new label to the documentation. The
impact/distribution label is intended for changes
that affect the image-format or interaction
with the registry (distribution).

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-30 13:53:46 +01:00
Sebastiaan van Stijn
024eead82f Merge pull request #18925 from thaJeztah/please-dont-plus-one
Be more explicit about "+1" comments
2015-12-30 11:41:32 +01:00
qq690388648
1cb9b0745c replace the os.Stdout with stdout to adapt platform
Signed-off-by: Sun Gengze <690388648@qq.com>
2015-12-30 18:24:02 +08:00
Tianon Gravi
dc38061bee Rename Dockerfile.arm to Dockerfile.armhf to more clearly reflect the specific subversion of ARM it targets
Also, fix up some minor whitespace consistency issues, remove a little cruft, and update GOARM for armhf to 7 so that we're explicit.

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-12-30 01:30:56 -08:00
Qiang Huang
1b34008532 Handle error for dockerCmdInDir
Only two of these are not handled, the one in `TestBuildForceRm`
is intended to not be handled, while the other one in
`TestBuildResourceConstraintsAreUsed` causes problem.

In test case `TestBuildResourceConstraintsAreUsed`, somehow we
are not able to access network to get base image, but the error
message is:

```
Error: failed to inspect container : Unable to read inspect data: json: cannot unmarshal array into Go value of type types.ContainerJSON
```

Totally confusion.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-30 15:21:34 +08:00
Lei Jitang
72d3d1ef85 Fix daemon failed to start with error "layer does not exist"
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-12-30 14:19:31 +08:00
Brian Goff
135180bc4c Merge pull request #18981 from calavera/stop_using_sockets_package
Remove pkg sockets and tlsconfig.
2015-12-29 22:22:11 -05:00
Lei Jitang
518ed75e1a Fix docker stats show wrong memory limit when do docker update
When a container create with -m 100m and then docker update other
cgroup settings such as --cpu-quota, the memory limit show by
docker stats will become the default value but not the 100m.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-12-29 20:33:16 -05:00
Qiang Huang
c68a483e44 Fix docs for memory-swap
Fixes: #18894

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-30 09:23:35 +08:00
David Calavera
8e034802b7 Remove usage of pkg sockets and tlsconfig.
- Use the ones provided by docker/go-connections, they are a drop in replacement.
- Remove pkg/sockets from docker.
- Keep pkg/tlsconfig because libnetwork still needs it and there is a
  circular dependency issue.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-29 19:27:12 -05:00
moxiegirl
de84dfba75 Merge pull request #18627 from londoncalling/cloud-installs
[WIP] docs updates per issue 18282 cloud installs
2015-12-29 14:54:18 -08:00
Sebastiaan van Stijn
1614a86520 Merge pull request #18978 from tswift242/fix-daemon-storage-doc-typo
Fix typo in daemon storage-driver docs
2015-12-29 23:33:05 +01:00
David Calavera
acffc79fe4 Merge pull request #18965 from duglin/FixError
Fix error messages
2015-12-29 14:12:22 -08:00
Thomas Swift
c44a8d8d8c Fix typo in daemon storage-driver docs
Signed-off-by: Thomas Swift <tgs242@gmail.com>
2015-12-29 17:06:02 -05:00
Jess Frazelle
abc695d9d5 Merge pull request #18974 from jfrazelle/remove-seccomp-from-seccomp-profile
remove seccomp from seccomp profile
2015-12-29 13:15:14 -08:00
Vincent Demeester
4a1eb3f3e2 Add authorization plugins to docker info
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-12-29 22:10:23 +01:00
Arnaud Porterie
7b540ee653 Merge pull request #18877 from dnephin/move_graph_driver_to_layer_store
Move graph driver to layer store
2015-12-29 12:19:02 -08:00
Arnaud Porterie
a81e438544 Merge pull request #18969 from justincormack/vm86
Block vm86 syscalls in default seccomp profile
2015-12-29 11:57:35 -08:00
Arnaud Porterie
2307f47fdd Merge pull request #18972 from justincormack/bpf
Block bpf syscall from default seccomp profile
2015-12-29 11:57:07 -08:00
Arnaud Porterie
e01cab1cc5 Merge pull request #18971 from justincormack/ptrace
Block additional ptrace related syscalls in default seccomp profile
2015-12-29 11:56:51 -08:00
Arnaud Porterie
3858027e27 Merge pull request #18933 from coolljt0725/always_build
Add DOCKER_BUILD_ARGS env to pass build-arg for building deb and rpm
2015-12-29 11:53:06 -08:00
Jessica Frazelle
b610fc226a remove seccomp from seccomp profile
This can be allowed because it should only restrict more per the seccomp docs, and multiple apps use it today.

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-29 11:21:33 -08:00
Jess Frazelle
194e69507b Merge pull request #18949 from jfrazelle/fix-libseccomp-version
fix libseccomp where version < 2.2.1
2015-12-29 10:58:10 -08:00
Arnaud Porterie
94e0760868 Merge pull request #18947 from jfrazelle/fix-seccomp-unsupported
fix default profile where unsupported
2015-12-29 10:21:07 -08:00
Arnaud Porterie
afdc4747dc Merge pull request #18953 from justincormack/robust_list
Allow use of robust list syscalls in default seccomp policy
2015-12-29 10:19:41 -08:00
Arnaud Porterie
a32b06b067 Merge pull request #18956 from justincormack/umount
Block original umount syscall in default seccomp filter
2015-12-29 10:19:04 -08:00
Justin Cormack
a0a8ca0ae0 Block additional ptrace related syscalls in default seccomp profile
Block kcmp, procees_vm_readv, process_vm_writev.
All these require CAP_PTRACE, and are only used for ptrace related
actions, so are not useful as we block ptrace.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 18:17:28 +00:00
David Calavera
3ec3597d58 Merge pull request #18950 from zhanghuanzhong/docker-fix-pull-image-log-info
Print the registry name while pulling an image
2015-12-29 10:16:05 -08:00
Arnaud Porterie
ad8bce2ce4 Merge pull request #18959 from justincormack/finit_module
Deny finit_module in default seccomp profile
2015-12-29 10:12:50 -08:00
Arnaud Porterie
8ac3d083a8 Merge pull request #18961 from justincormack/clock_adjtime
Block clock_adjtime in default seccomp config
2015-12-29 10:08:45 -08:00
Arnaud Porterie
294336a1af Merge pull request #18968 from justincormack/stime
Block stime in default seccomp profile
2015-12-29 10:07:40 -08:00
Justin Cormack
33568405f3 Block bpf syscall from default seccomp profile
The bpf syscall can load code into the kernel which may
persist beyond container lifecycle. Requires CAP_SYS_ADMIN
already.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 17:28:30 +00:00
Tianon Gravi
31bd242cba Merge pull request #18728 from hypriot/update-dockerfile-for-arm
update Dockerfile.arm to reflect latest changes in main Dockerfile
2015-12-29 09:24:29 -08:00
Jessica Frazelle
35667c3826 add note to packagers.md about libseccomp version
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-29 08:47:20 -08:00
Justin Cormack
6c3ea7a511 Block vm86 syscalls in default seccomp profile
These provide an in kernel virtual machine for x86 real mode on x86
used by one very early DOS emulator. Not required for any normal use.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 15:47:23 +00:00
Justin Cormack
6300a08be9 Block stime in default seccomp profile
The stime syscall is a legacy syscall on some architectures
to set the clock, should be blocked as time is not namespaced.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 15:28:05 +00:00
Doug Davis
b3e1178ad0 Fix error messages
`docker kill 123` will show something like:
`Error response from daemon: Cannot kill container 123: nosuchcontainer: No such container: 123`
Notice the `nosuchcontainer` text, that should not be there as that's an internal ID that means nothing to the end user.
This PR fixes this by using `util.GetErrorMessage()` to extract just the message.

While in that dir I found a couple of other spots that could use the same call, just to be safe.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-12-29 06:08:52 -08:00
Qiang Huang
e0dc4f27f6 Remove redundant error messages
For operations on multi containers, we printed error for each
failed container, then printed an extra message for container
names, it seems redundant.

Addresses comments:
https://github.com/docker/docker/pull/15078#discussion_r47988449

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-29 22:03:39 +08:00
Justin Cormack
0e5c43cdda Block clock_adjtime in default seccomp config
clock_adjtime is the new posix style version of adjtime allowing
a specific clock to be specified. Time is not namespaced, so do
not allow.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 12:48:16 +00:00
Justin Cormack
0d5306a0b6 Deny finit_module in default seccomp profile
This is a new version of init_module that takes a file descriptor
rather than a file name.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 12:31:33 +00:00
Justin Cormack
9be0d93cf7 Block original umount syscall in default seccomp filter
The original umount syscall without flags argument needs to
be blocked too.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 11:57:16 +00:00
Vincent Demeester
eb551baf6f Merge pull request #18951 from jfrazelle/fix-code-comment
fix code comment
2015-12-29 12:00:37 +01:00
Justin Cormack
7b133e7235 Allow use of robust list syscalls
The set_robust_list syscall sets the list of futexes which are
cleaned up on thread exit, and are needed to avoid mutexes
being held forever on thread exit.

See for example in Musl libc mutex handling:
http://git.musl-libc.org/cgit/musl/tree/src/thread/pthread_mutex_trylock.c#n22

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 10:22:05 +00:00
Lei Jitang
82051ab996 Add DOCKER_BUILD_ARGS env to pass build-arg for building deb and rpm
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-12-29 04:09:44 -05:00
Jessica Frazelle
b4c14a0bb8 fix code comment
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 22:36:54 -08:00
Huanzhong Zhang
85e355605a print the registry name.
Signed-off-by: Huanzhong Zhang <zhanghuanzhong90@gmail.com>
2015-12-29 13:33:04 +08:00
Jessica Frazelle
ae54e39c80 fix libseccomp where version < 2.2.1
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 21:30:49 -08:00
Jessica Frazelle
94b45310f4 fix default profile where unsupported
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 20:42:15 -08:00
Wen Cheng Ma
9fbb1306e8 Update integration tests when container and image have same name
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-12-29 11:08:31 +08:00
David Calavera
78ce43bad8 Merge pull request #18780 from jfrazelle/seccomp-default
set default seccomp profile
2015-12-28 16:46:30 -08:00
Sebastiaan van Stijn
a3ca176e3c Merge pull request #18945 from jbruni/patch-2
Fixed /etc/defaults/docker to /etc/default/docker
2015-12-29 00:05:45 +01:00
J Bruni
153948ac46 Fixed /etc/defaults/docker to /etc/default/docker
/etc/default/docker is the correct file location in my system, and also according Docker's own documentation at https://github.com/docker/docker/blob/master/docs/articles/configuring.md#configuring-docker

Signed-off-by: J Bruni <contato@jbruni.com.br>
2015-12-28 20:57:36 -02:00
Vincent Demeester
6cd167386b Merge pull request #18835 from dnephin/move_validate_context_dir
Move utils.ValidateContextDirectory to the one package that uses it
2015-12-28 22:06:13 +01:00
Sebastiaan van Stijn
8c6ad0991e Merge pull request #18899 from cpswan/18898-fix-storage-driver-example
Fix --storage-driver example
2015-12-28 21:58:43 +01:00
Jess Frazelle
8b68853ef5 Merge pull request #18937 from cbalducci/patch-1
[mkimage-alpine.sh] Additional repo and container cleanup
2015-12-28 12:51:31 -08:00
David Calavera
1d4306d2fa Merge pull request #18905 from coolljt0725/fix_disconnect_not_save
Fix network disconnect does not save the config to disk
2015-12-28 12:38:16 -08:00
David Calavera
b6a251a551 Merge pull request #18942 from thaJeztah/move-vish-to-alumni
Move Vishnu to alumni
2015-12-28 12:31:18 -08:00
Arnaud Porterie
baee7ae045 Merge pull request #18715 from calavera/remove_is_paused_from_interface
Remove `IsPaused` from backend interface.
2015-12-28 11:25:11 -08:00
Jess Frazelle
38440cadf3 Merge pull request #18897 from runcom/fix-net-none-build
integration-cli: fix --net=none build
2015-12-28 10:51:18 -08:00
Jessica Frazelle
d34bbb66d5 bump docker-py
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 10:26:52 -08:00
Jessica Frazelle
15674c5fb7 add docs and unconfined to run a container without the default seccomp profile
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 10:26:51 -08:00
Jessica Frazelle
a48fe62384 add default seccomp profile tests
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 10:26:48 -08:00
Jessica Frazelle
947293a280 set default seccomp profile
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 10:18:47 -08:00
Jess Frazelle
00362f8ea2 Merge pull request #18923 from albers/completion-network-ls--filter
bash completion for `docker network ls --filter`
2015-12-28 10:16:17 -08:00
Daniel Nephin
91154e9235 Move graph driver registration out of the daemon package.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-28 13:02:24 -05:00
Daniel Nephin
f5916b10ae Remove the graph driver from the daemon, move it into the layer store.
Support restoreCustomImage for windows with a new interface to extract
the graph driver from the LayerStore.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-28 12:55:48 -05:00
Vincent Demeester
ad56c972b4 Merge pull request #18939 from dnephin/dont_use_parse_from_builder
Remove the need for runconfig.Parse() in the builder
2015-12-28 18:47:05 +01:00
Jess Frazelle
206046f0ba Merge pull request #18807 from FlorinAsavoaie/master
New features in mkimage-yum.sh script
2015-12-28 09:09:33 -08:00
David Calavera
8669ea01ba Merge pull request #15078 from hqhq/hq_add_set_api_v2
Implement docker update command
2015-12-28 08:55:32 -08:00
Daniel Nephin
9e19b4839f Move ValidateContextDirectory to the one package that uses it.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-28 11:22:39 -05:00
Brian Goff
79c23fdbf4 Don't log EPIPE errors on client download abort
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-12-28 11:04:02 -05:00
Brian Goff
19762da67e Daemon Restart: attempt to wait for container deps
This provides a best effort on daemon restarts to restart containers
which have linked containers that are not up yet instead of failing.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-12-28 11:00:16 -05:00
Sebastiaan van Stijn
5facd0e94b Move Vishnu to alumni
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-28 16:30:05 +01:00
cristiano balducci
7fa40ef513 Additional repo and container cleanup
- Added support for adding custom repo (defaults to community)
- Added cleanup of the test container (--rm)
- Added --text to grep in apkv() to avoid "Binary file matches" output on Fedora

Signed-off-by: Cristiano Balducci <cristiano.balducci@gmail.com>
2015-12-28 14:11:56 +01:00
Qiang Huang
8799c4fc0f Implemet docker update command
It's used for updating properties of one or more containers, we only
support resource configs for now. It can be extended in the future.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-28 19:19:26 +08:00
Daniel Nephin
6dba0b5d89 Remove the need for runconfig.Parse() in the builder.
By using a container.Config directly.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-27 19:58:51 -05:00
Sebastiaan van Stijn
849f64eeab Be more explicit about "+1" comments
Add some more information about not leaving random
"+1" comments.

Also removed the requirements to send "uname -a",
because that information is now included in the output
of "docker version".

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-28 00:26:05 +01:00
Harald Albers
f2ba1e4d80 bash completion for docker network ls --filter
Signed-off-by: Harald Albers <github@albersweb.de>
2015-12-27 09:28:19 -08:00
Arnaud Porterie
603d488a00 Merge pull request #18907 from mountkin/rm
ingnore the NotExist error when removing inexistent files
2015-12-26 19:20:10 -08:00
Sebastiaan van Stijn
087e4c1024 Merge pull request #18782 from aditirajagopal/docker-no-like-x86
Specify that Docker requires x64
2015-12-27 01:19:38 +01:00
Aditi Rajagopal
8134a562c6 Specify that Docker requires x64
Adds this requirement to docker/docker. Already replicated in docker/tutorials

Resolves: #18401

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-12-26 19:02:20 -05:00
Sebastiaan van Stijn
d4270c1764 Merge pull request #18775 from mrjana/mh
libnetwork vendoring
2015-12-26 11:42:55 +01:00
Shijiang Wei
de7f6cf16b ingnore the NotExist error when removing inexistent files
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-12-25 15:19:48 +08:00
Lei Jitang
c0bde4e92c Fix network disconnect does not save the config to disk
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-12-25 02:09:37 -05:00
Jess Frazelle
d1b7d58e73 Merge pull request #18900 from icecrime/dirty_to_unsupported
Rename `-dirty` to `-unsupported`
2015-12-24 11:06:25 -07:00
Arnaud Porterie
3e298c5928 Rename -dirty to -unsupported
Nightly and unofficial builds of Docker bear the suffix `-dirty` in the
version string. Change this suffix to `-unsupported` to make it explicit
that no support will be provided on such versions, and that it is for
example unnecessary to file an issue for it.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-12-24 09:11:49 -08:00
Chris Swan
5eef38d364 Fix --storage-driver example (and --graph)
Signed-off-by: Chris Swan <chris.swan@iee.org>
2015-12-24 17:02:58 +00:00
Chris Swan
b6be4acfcc Fix --storage-driver example
Signed-off-by: Chris Swan <chris.swan@iee.org>
2015-12-24 16:43:37 +00:00
Antonio Murdaca
bb8e1dc8fa integration-cli: fix --net=none build
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-24 16:36:37 +01:00
Brian Goff
d08ac6e256 Merge pull request #18834 from dmcgowan/layerstore-refactor-rw-layer
Layerstore refactor rw layer
2015-12-24 08:02:15 -05:00
Vincent Demeester
824a865e41 Merge pull request #18895 from hqhq/hq_remove_dup_oomkilldisable
Remove duplicated OomKilldisable
2015-12-24 11:29:24 +01:00
Qiang Huang
2e02077e9f Remove duplicated OomKilldisable
It's in Resources, but wrongly added back to HostConfig in
https://github.com/docker/docker/pull/18762

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-24 15:28:56 +08:00
Victoria Bialas
3ff20fafcc fixed links in Digital Ocean example
Signed-off-by: Victoria Bialas <victoria.bialas@docker.com>
2015-12-23 16:31:49 -08:00
Antonio Murdaca
b0be88c111 Merge pull request #18878 from calavera/conditional_load_response
Make `docker load` to output json when the response content type is json.
2015-12-24 01:11:54 +01:00
Aaron Lehmann
589a5226e7 Allow v1 protocol fallback when pulling all tags from a repository unknown to v2 registry
This is a followup to #18839. That PR relaxed the fallback logic so that
if a manifest doesn't exist on v2, or the user is unauthorized to access
it, we try again with the v1 protocol. A similar special case is needed
for "pull all tags" (docker pull -a). If the v2 registry doesn't
recognize the repository, or doesn't allow the user to access it, we
should fall back to v1 and try to pull all tags from the v1 registry.
Conversely, if the v2 registry does allow us to list the tags, there
should be no fallback, even if there are errors pulling those tags.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-23 15:21:43 -08:00
Arnaud Porterie
914fad8b7d Merge pull request #18810 from runcom/pkg-authz-fixes
pkg: authorization: do not register the same plugin
2015-12-23 15:09:06 -08:00
David Calavera
725eef361a Merge pull request #18885 from samueldg/fix-btrfs-docs-typos
Fix typo in btrfs userguide doc
2015-12-23 13:44:17 -08:00
David Calavera
3499e3a230 Merge pull request #18862 from dnephin/move_ulimit_opts_to_runconfig
Move ulimit opts to runconfig
2015-12-23 12:26:54 -08:00
Vincent Demeester
9ae6d7d551 Merge pull request #18861 from dnephin/move_blkiodev_to_runconfig
Move runconfig blkiodev options and parsing into runconfig/opts package
2015-12-23 21:19:44 +01:00
Samuel Dion-Girardeau
63f9f2c05b Fix typo in btrfs userguide doc
Signed-off-by: Samuel Dion-Girardeau <samuel.diongirardeau@gmail.com>
2015-12-23 15:10:01 -05:00
Antonio Murdaca
c28fc06e00 pkg: authorization: do not register the same plugin
This patches avoids registering (and calling) the same plugin more than
once. Using an helper map which indexes by name guarantees this and keeps
the order.
The behavior of overriding the same name in a flag is consistent with,
for instance, the `docker run -v /test -v /test` flag which register
the volume just once.
Adds integration tests.

Without this patch:
```
Dec 20 19:34:52 localhost.localdomain docker[9988]:
time="2015-12-20T19:34:52.080901676+01:00" level=debug msg="Calling
GET
/v1.22/info"
Dec 20 19:34:52 localhost.localdomain docker[9988]:
time="2015-12-20T19:34:52.081213202+01:00" level=debug msg="AuthZ
request using plugin docker-novolume-plugin"
Dec 20 19:34:52 localhost.localdomain docker[9988]:
time="2015-12-20T19:34:52.081268132+01:00" level=debug
msg="docker-novolume-plugin implements: authz"
Dec 20 19:34:52 localhost.localdomain docker[9988]:
time="2015-12-20T19:34:52.081699788+01:00" level=debug msg="AuthZ
request using plugin docker-novolume-plugin"
Dec 20 19:34:52 localhost.localdomain docker[9988]:
time="2015-12-20T19:34:52.081762507+01:00" level=debug
msg="docker-novolume-plugin implements: authz"
Dec 20 19:34:52 localhost.localdomain docker[9988]:
time="2015-12-20T19:34:52.082092480+01:00" level=debug msg="GET
/v1.22/info"
Dec 20 19:34:52 localhost.localdomain docker[9988]:
time="2015-12-20T19:34:52.628691038+01:00" level=debug msg="AuthZ
response using plugin docker-novolume-plugin"
Dec 20 19:34:52 localhost.localdomain docker[9988]:
time="2015-12-20T19:34:52.629880930+01:00" level=debug msg="AuthZ
response using plugin docker-novolume-plugin"
```

With this patch:
```
Dec 20 19:37:32 localhost.localdomain docker[16620]:
time="2015-12-20T19:37:32.376523958+01:00" level=debug msg="Calling
GET
/v1.22/info"
Dec 20 19:37:32 localhost.localdomain docker[16620]:
time="2015-12-20T19:37:32.376715483+01:00" level=debug msg="AuthZ
request using plugin docker-novolume-plugin"
Dec 20 19:37:32 localhost.localdomain docker[16620]:
time="2015-12-20T19:37:32.376771230+01:00" level=debug
msg="docker-novolume-plugin implements: authz"
Dec 20 19:37:32 localhost.localdomain docker[16620]:
time="2015-12-20T19:37:32.377698897+01:00" level=debug msg="GET
/v1.22/info"
Dec 20 19:37:32 localhost.localdomain docker[16620]:
time="2015-12-20T19:37:32.951016441+01:00" level=debug msg="AuthZ
response using plugin docker-novolume-plugin"
```

Also removes a somehow duplicate debug statement (leaving only the
second one as it's a loop of plugin's manifest):
```
Dec 20 19:52:30 localhost.localdomain docker[25767]:
time="2015-12-20T19:52:30.544090518+01:00" level=debug
msg="docker-novolume-plugin's manifest: &{[authz]}"
Dec 20 19:52:30 localhost.localdomain docker[25767]:
time="2015-12-20T19:52:30.544170677+01:00" level=debug
msg="docker-novolume-plugin implements: authz"
```

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-23 21:08:40 +01:00
David Calavera
fc87c5a2f1 Merge pull request #18876 from konstruktoid/tmpfs_apparmor
add /bin/tar to apparmor profile
2015-12-23 11:39:38 -08:00
Derek McGowan
54f8ba7e9e Revert create return parameter removal
Cleanup does not happen if retErr is not set on return

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-12-23 11:21:02 -08:00
Derek McGowan
d8e090669e Fix race condition between container register and mount
When a container is created it is registered before the mount is created. This can lead to mount does not exist errors when inspecting between create and mount.

Fixes #18753

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-12-23 11:20:51 -08:00
Derek McGowan
d04fa49a0d Refactor RWLayer to use referenced object instead of string
RWLayer will now have more operations and be protected through a referenced type rather than always looked up by string in the layer store.
Separates creation of RWLayer (write capture layer) from mounting of the layer.
This allows mount labels to be applied after creation and allowing RWLayer objects to have the same lifespan as a container without performance regressions from requiring mount.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-12-23 11:19:17 -08:00
Daniel Nephin
83237aab2b Remove package pkg/ulimit, use go-units instead.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-23 13:27:58 -05:00
Daniel Nephin
5adbea7075 Move ulimit options to runconfig opts
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-23 13:27:58 -05:00
Daniel Nephin
3b8301b660 Upgrade go-units vendor to latest version with ulimits.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-23 13:27:58 -05:00
David Calavera
577cf61afa Merge pull request #18863 from dnephin/upgrade_connections_pkg
Update go-connections vendor to pickup addition of parser functions
2015-12-23 10:02:25 -08:00
David Calavera
95b708cf19 Merge pull request #18839 from aaronlehmann/v1-fallback-404
When a manifest is not found, allow fallback to v1
2015-12-23 10:01:39 -08:00
David Calavera
0295b0a026 Merge pull request #18875 from thaJeztah/move-erikh-to-alumni
Move Erik to alumni
2015-12-23 09:15:59 -08:00
Thomas Sjögren
602498d1b0 add /bin/tar to apparmor profile
Signed-off-by: Thomas Sjögren <konstruktoid@users.noreply.github.com>
2015-12-23 18:11:16 +01:00
Sebastiaan van Stijn
fae00ad445 Move Erik to alumni
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-23 18:01:02 +01:00
Sebastiaan van Stijn
8022d1159d Merge pull request #18874 from duglin/falseDocs
remove =false from options that default to false in the docs
2015-12-23 16:34:44 +01:00
Doug Davis
e6115a6c1c remove =false from options that default to false in the docs
This re-aligns the docs with what the cmd line now does.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-12-23 07:11:35 -08:00
Sebastiaan van Stijn
4432a89821 Merge pull request #17782 from WeiZhang555/network-ls-nopre
Add filter for `network ls` to hide predefined network
2015-12-23 13:59:17 +01:00
Zhang Wei
26dd026bd7 Add filter for network ls to hide predefined net
Add filter support for `network ls` to hide predefined network,
then user can use "docker network rm `docker network ls -f type=custom`"
to delete a bundle of userdefined networks.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-12-23 13:26:40 +08:00
Zhang Wei
1326f0cba5 Break big lock into some tiny locks
Don't involve code waiting for blocking channel in locked critical
section because it has potential risk of hanging forever.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-12-23 13:23:23 +08:00
Daniel Nephin
b8659da214 Remove unused parser functions that were replaced by go-connections/nat.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-22 19:06:49 -05:00
David Calavera
9fd2c0feb0 Make docker load to output json when the response content type is json.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 19:00:27 -05:00
Daniel Nephin
fcc24995e0 Upgrade vendored github.com/docker/go-connections to latest version, which includes new nat parse functions.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-22 18:59:47 -05:00
Daniel Nephin
f015c29193 Move runconfig blkiodev options and parsing into runconfig/opts package.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-22 18:20:21 -05:00
Sebastiaan van Stijn
1105caa7f1 Merge pull request #18860 from dnephin/remove_migrate_if_downlevel
Remove migrateIfDownlevel and aufs migration from docker pre-0.7
2015-12-23 00:08:36 +01:00
David Calavera
eacedcbe21 Merge pull request #18831 from calavera/test_event_observer
Extract event processing to a common function for testing.
2015-12-22 15:04:32 -08:00
Sebastiaan van Stijn
45033c0bde Merge pull request #18757 from thaJeztah/patch-release-process
Document process for patch-releases
2015-12-22 23:42:34 +01:00
Arnaud Porterie
319d488e6e Merge pull request #18858 from thaJeztah/adieu-vieux
Move Victor to alumni
2015-12-22 14:38:54 -08:00
Alexander Morozov
030347c3c9 Merge pull request #18762 from calavera/runconfig_to_types
Move container configuration types to api/types/container.
2015-12-22 14:22:08 -08:00
David Calavera
af51df20bd Extract event processing to a common function for testing.
We keep only one logic to test event related behavior that will help us
diagnose flacky event errors.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 17:10:06 -05:00
Daniel Nephin
0673361ef6 Remove migrateIfDownlevel and aufs migration from docker pre-0.7
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-22 16:45:42 -05:00
Alexander Morozov
9f228b37fc Merge pull request #18857 from calavera/catch_pipeline_error
Catch command pipeline error.
2015-12-22 13:34:56 -08:00
Jana Radhakrishnan
f0904affd1 libnetwork vendoring
Vendoring libnetwork @ 9f0563ea8f430d8828553aac97161cbff4056436

Brings in:
    * Support for overlay network driver in 3.10+ kernels
    * Freebsd compilation fixes
    * Remove .dockerinit dependency
    * IPAM driver capability support
    * Network internal mode support
    * Misc. fixes

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-12-22 13:32:17 -08:00
Tianon Gravi
0bbed98bc0 Merge pull request #18856 from albers/completion-network-rm
remove `--format` from bash completion for `docker network rm`
2015-12-22 12:38:11 -08:00
Alexander Morozov
9c89e83ff1 Merge pull request #18855 from rhatdan/volume-tmpfs
No options to tmpfs is valid
2015-12-22 12:24:51 -08:00
David Calavera
f38257308b Catch command pipeline error.
Rather than ignoring errors in the pipeline, return an execution error
and do not proceed with the latest command in the pipeline.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 15:17:15 -05:00
Harald Albers
f03695efc1 remove --format from bash completion for docker network rm
Signed-off-by: Harald Albers <github@albersweb.de>
2015-12-22 11:35:41 -08:00
Dan Walsh
89a775d2dc No options to tmpfs is valid
If you run a

docker run command with --tmpfs /mountpoint:noexec

Or certain options that get translated into mount options, the mount command can get passed "" for mount data.
So this should be valid.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-12-22 14:15:07 -05:00
David Calavera
7ac4232e70 Move Config and HostConfig from runconfig to types/container.
- Make the API client library completely standalone.
- Move windows partition isolation detection to the client, so the
  driver doesn't use external types.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 13:34:30 -05:00
David Calavera
747dccde41 Remove usage of runconfig.ConvertKVStringsToMap in the API client library.
It's a very simple function that we can duplicate.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 13:31:46 -05:00
David Calavera
839f73c302 Move ExecConfig to types.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 13:31:46 -05:00
David Calavera
056e744903 Replace usage of pkg/nat with go-connections/nat.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 13:31:46 -05:00
David Calavera
0aab83d996 Move blkiodev package to types.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 13:31:46 -05:00
David Calavera
ad7fa01102 Vendor new connections library.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 13:31:46 -05:00
David Calavera
f9b857a200 Move StrSlice to types.
This is a very docker concept that nobody elses need.
We only maintain it to keep the API backwards compatible.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-22 13:31:43 -05:00
Jess Frazelle
81c8e4d4c8 Merge pull request #18765 from Mashimiao/update-blkio-weight-device-test
update Blkio Tests name
2015-12-22 09:53:22 -08:00
Antonio Murdaca
ac1187dc8d Merge pull request #18844 from hqhq/hq_mv_oom_disable
Move OomKillDisable to resource
2015-12-22 18:52:24 +01:00
Jess Frazelle
ff796e5bf7 Merge pull request #18837 from thaJeztah/remove-darwin-i386
Don't build Darwin 32-bit binaries
2015-12-22 09:51:29 -08:00
Jess Frazelle
b5fb5b9d00 Merge pull request #18851 from thaJeztah/update-contributing
Update contributing.md
2015-12-22 09:49:53 -08:00
Sebastiaan van Stijn
61e28f17a3 Merge pull request #18852 from errordeveloper/master
Update link for Weave Net plugin docs
2015-12-22 18:32:38 +01:00
Ilya Dmitrichenko
45241d36d3 Update link for Weave Net plugin docs
Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com>
2015-12-22 16:45:54 +00:00
David Calavera
5b913de5e6 Merge pull request #18847 from albers/completion-rename-functions
Better function names in bash completion
2015-12-22 08:43:08 -08:00
Tianon Gravi
eafecff258 Merge pull request #18821 from oyld/script_fix
Fix syntax error in init script
2015-12-22 06:48:22 -08:00
Sebastiaan van Stijn
6150157e8f Update contributing.md
- Add a link to the new procedures for adding maintainers
- Remove section about monthly IRC meetings, which are in flux

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-22 15:42:36 +01:00
Sebastiaan van Stijn
ff3687c965 Move Victor to alumni
Victor is now a maintainer for Docker Swarm, and no
longer active as a maintainer for this repository.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-22 15:00:21 +01:00
Harald Albers
e715daab3d Better function names in bash completion
The new names make it easier to distinguish between helper functions and
functions that actually perform completion by modifying the global COMPOPT
variable.

Signed-off-by: Harald Albers <github@albersweb.de>
2015-12-22 13:38:02 +01:00
oyld
bbbc01b86e Fix syntax error in init script
Signed-off-by: oyld <oyld0210@163.com>
2015-12-22 04:00:00 -08:00
Qiang Huang
8498ed73f7 Move OomKillDisable to resource
1. It's a cgroup api, fit the general defination that we take
cgroup options as kind of resource options.
2. It's common usage and very helpful as explained here:
https://github.com/docker/docker/pull/18270#issuecomment-160561316
3. It's already in `Resource` struct in
daemon/execdriver/driver_unix.go

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-22 16:08:04 +08:00
Ma Shimiao
673f2b8697 upate TestRunWithBlkioInvalidWeightDevice with clearly invalid device name
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-12-22 12:43:42 +08:00
Aaron Lehmann
9d6acbee92 When a manifest is not found, allow fallback to v1
PR #18590 caused compatibility issues with registries such as gcr.io
which support both the v1 and v2 protocols, but do not provide the same
set of images over both protocols. After #18590, pulls from these
registries would never use the v1 protocol, because of the
Docker-Distribution-Api-Version header indicating that v2 was supported.

Fix the problem by making an exception for the case where a manifest is
not found. This should allow fallback to v1 in case that image is
exposed over the v1 protocol but not the v2 protocol.

This avoids the overly aggressive fallback behavior before #18590 which
would allow protocol fallback after almost any error, but restores
interoperability with mixed v1/v2 registry setups.

Fixes #18832

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-21 18:19:38 -08:00
Sebastiaan van Stijn
814ce44d5a Don't build Darwin 32-bit binaries
The last 32-bit OS X computers were built in 2006,
so we probably don't need these anymore.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-22 00:08:18 +01:00
Sebastiaan van Stijn
312c82677b Merge pull request #15879 from Mashimiao/add-support-blkio_throtte_iops
Add support for blkio read/write iops device
2015-12-21 23:45:18 +01:00
Vincent Demeester
eff810aed6 Merge pull request #18809 from thaJeztah/EOL-ubuntu-15.04-vivid
Remove Ubuntu 15.04 (Vivid) from DEB build for 1.10 as it will be EOL
2015-12-21 22:02:18 +01:00
James Carey
1b010516d0 Use of checkers in docker_cli_pull_test.go
Signed-off-by: James Carey <jecarey@us.ibm.com>
2015-12-21 14:04:38 -06:00
Brian Goff
8537501ebd Merge pull request #18811 from runcom/fix-volume-debug
volume: store: store.go: fix debug message
2015-12-21 13:18:39 -05:00
Antonio Murdaca
23a18b5f93 volume: store: store.go: remove debug message
When driver is `local` an empty string is given to the debug message.
This patch removes the debug statement.

```
Dec 20 19:07:01 localhost.localdomain docker[19734]:
time="2015-12-20T19:07:01.872021857+01:00" level=debug msg="Registering
new volume reference: driver , name
c2291b964b4d7b1b51ec51d2ccfe2544f83fd23404709225a43743c5faadad55"
```

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-21 19:14:27 +01:00
Alexander Morozov
1a8e8f2967 Merge pull request #18830 from calavera/tls_verify_godoc
Add godoc comment about client tls verification.
2015-12-21 10:02:32 -08:00
David Calavera
88c4d4a943 Merge pull request #18828 from albers/completion-plugins
Use computed plugin lists in bash completion
2015-12-21 09:57:48 -08:00
Alexander Morozov
42460b6772 Merge pull request #17692 from vdemeester/images-format
Add --format support to images command
2015-12-21 09:57:29 -08:00
David Calavera
4e2c0f385c Add godoc comment about client tls verification.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-21 12:55:37 -05:00
David Calavera
af94f941df Remove IsPaused from backend interface.
Move connection hijacking logic to the daemon.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-21 12:34:21 -05:00
Harald Albers
2033c09705 Use computed plugin lists in bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2015-12-21 18:30:23 +01:00
Sebastiaan van Stijn
f4ea3b2cb1 Merge pull request #17428 from ripcurld00d/cli_ninja_build
Change the quiet flag behavior in the build command [closes #17623]
2015-12-21 17:59:16 +01:00
Vincent Demeester
34a3c3cacf Add --format support to images command
- rename `api/client/ps` to `api/client/formatter`
- add a a image formatter

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-12-21 17:38:07 +01:00
Boaz Shuster
60b4db7eb1 Change the quiet flag behavior in the build command
Right now, the quiet (-q, --quiet) flag ignores the output
generated from within the container.

However, it ought to be quiet in a way that all kind
of diagnostic output should be ignored, unless the build
process fails.

This patch makes the quiet flag behave in the following way:
 1. If the build process succeeds, stdout contains the image ID
    and stderr is empty.
 2. If the build process fails, stdout is empty and stderr
    has the error message and the diagnostic output of that process.

If the quiet flag is not set, then everything goes to stdout
and error messages, if there are any, go to stderr.

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
2015-12-21 16:38:50 +02:00
Sebastiaan van Stijn
67620bc028 Merge pull request #18820 from vdemeester/oups-fix-api-ps-unit-tests
Fix the api/client/ps unit tests.
2015-12-21 14:01:27 +01:00
Vincent Demeester
bb853137be Fix the api/client/ps unit tests.
TestFormat was depending on the time so (comparing again
1970-01-01).. at some point it was bounded to fail >_<. Updating it to
be *not* time-dependent :).

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-12-21 11:07:14 +01:00
Sebastiaan van Stijn
6d04d9cda8 Merge pull request #18804 from mqliang/patch-6
Update selectadriver.md
2015-12-21 09:56:05 +01:00
mqliang
41c2dab459 update document
Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-12-21 11:53:38 +08:00
Ma Shimiao
843084b08b Add support for blkio read/write iops device
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-12-21 09:14:49 +08:00
Sebastiaan van Stijn
e9f72410ae Merge pull request #18798 from mqliang/patch-1
Update dockervolumes.md
2015-12-21 01:09:52 +01:00
Sebastiaan van Stijn
83f28cb374 Merge pull request #18801 from mqliang/patch-3
Update index.md
2015-12-21 01:08:58 +01:00
Sebastiaan van Stijn
4f9ed6164d Merge pull request #18813 from thaJeztah/update-restart-description
(carry 18273) update description for restart policies
2015-12-21 01:04:38 +01:00
Aidan Feldman
c32ec8b93b Update restart description
add a note around restart policies only working in detached mode

Signed-off-by: Aidan Feldman <aidan.feldman@gmail.com>

Update restart description with Mary's comments.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-21 00:58:30 +01:00
moxiegirl
91b56a7c26 Merge pull request #18790 from tbonza/master
updated fedora yum to dnf package manager
2015-12-20 08:46:31 -08:00
Sebastiaan van Stijn
9f306364f5 Merge pull request #18806 from mqliang/patch-8
Update btrfs-driver.md
2015-12-20 17:24:29 +01:00
Liang Mingqiang
3dd90e564c Update dockervolumes.md
Signed-off-by: mqliang mqliang.zju@gmail.com
Signed-off-by: lmq <mqliang@lmqs-MacBook-Pro.local>
2015-12-20 23:41:00 +08:00
Liang Mingqiang
8737896e42 Update btrfs-driver.md
Signed-off-by: lmq <mqliang@lmqs-MacBook-Pro.local>
2015-12-20 23:08:01 +08:00
Sebastiaan van Stijn
325b1f35ae Remove Ubuntu 15.04 (Vivid) from DEB build as it will be EOL
Ubuntu 15.04 (Vivid) will be EOL'd in January,
so we should remove it from our builds in the
Docker 1.10 release.

For information about the EOL data, see:
https://wiki.ubuntu.com/Releases

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-20 16:00:53 +01:00
Liang Mingqiang
38ee016966 Update index.md
fix typo in document

Signed-off-by: mqliang mqliang.zju@gmail.com
Signed-off-by: lmq <mqliang@lmqs-MacBook-Pro.local>
2015-12-20 23:00:38 +08:00
Florin Asavoaie
c8badcbd26 New features in mkimage-yum.sh script
Added -g and -p options for the contrib/mkimage-yum.sh script to allow generating images with the dependencies you want. I use this because I generate images where I only need "glibc" with its dependencies or "java-1.8.0-openjdk-headless" and so on. This makes sure that I don't get a lot of bogus packages from the Core group.

Possible usages now include sudo ./mkimage-yum.sh -y yum.conf -g '' -p java-1.8.0-openjdk-headless.

Also changed the "test" at the end to add --rm parameter to docker run so it doesn't leave a junk container and use bash to echo "success" in case you don't get coreutils in your dependencies tree.

Signed-off-by: Florin Asavoaie <florin.asavoaie@gmail.com>
2015-12-20 14:20:30 +02:00
Antonio Murdaca
cc6f0df2e4 Merge pull request #18794 from thaJeztah/EOL-fedora-21
Remove Fedora 21 from RPM build as it is EOL
2015-12-20 11:53:51 +01:00
moxiegirl
18925f37ed Merge pull request #18707 from runcom/update-labels-doc-for-emtpy-lables
update syntax for empty value labels
2015-12-19 21:53:21 -08:00
moxiegirl
3d43ebebfa Merge pull request #18720 from kytrinyx/unspecific-ubuntu
docs: remove ubuntu version in dockerizing userguide
2015-12-19 21:17:38 -08:00
moxiegirl
fa720ad987 Merge pull request #18667 from bboreham/inspect-json-doc
Improved explanation of docker inspect 'json' function
2015-12-19 21:09:39 -08:00
Sebastiaan van Stijn
fbefbc5281 Merge pull request #18795 from thaJeztah/o-oracle-o-oracle-where-art-thou-oracle
Update link to Oracle Linux
2015-12-20 01:33:27 +01:00
Sebastiaan van Stijn
579d35e33c Update link to Oracle Linux
The https://linux.oracle.com/ url results in
too many redirects, which may result in our
link-checker to think the link is broken.

Replacing the link, per discussion in
https://github.com/docker/docker/pull/18534#issuecomment-164202592

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-20 00:52:12 +01:00
Sebastiaan van Stijn
a08c955e30 Remove Fedora 21 from RPM build as it is EOL
Fedora 21 is EOL'd as of December 1st, 2015.

Announcement:
https://lists.fedoraproject.org/pipermail/announce/2015-November/003296.html

Fedora 21 will reach end of life on 2015-12-01, and no further updates
will be pushed out after that time. Additionally, with the recent
release of Fedora 23, no new packages will be added to the Fedora 21
collection.

Please see https://fedoraproject.org/wiki/DNF_system_upgrade for more
information on upgrading from Fedora 21 to a newer release.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-20 00:42:17 +01:00
Sebastiaan van Stijn
fb879e849d Merge pull request #18792 from moxiegirl/fix-typo
Fixing typo reported by @projectvalis
2015-12-19 22:21:41 +01:00
Mary Anthony
55a65e18c0 Fixing typo reported by @projectvalis
Signed-off-by: Mary Anthony <mary@docker.com>
2015-12-19 12:47:24 -08:00
tbonza
0635403536 updated fedora yum to dnf package manager Signed-off-by: Tyler Brown <tylers.pile@gmail.com> 2015-12-19 15:04:19 -05:00
Doug Davis
58c049595f Merge pull request #18767 from wenchma/add_checkduplicate_test
Add network create api test on CheckDuplicate
2015-12-19 10:46:11 -05:00
Sebastiaan van Stijn
69fbdf4294 Merge pull request #18684 from cdauth/volume-docs
Add note to volume docs that data is not copied to mounted volumes
2015-12-19 15:29:44 +01:00
Wen Cheng Ma
5649dae89b Add network create api test on CheckDuplicate
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-12-19 22:29:30 +08:00
Sebastiaan van Stijn
eaf7932faf Merge pull request #18769 from runcom/docs-auth-1
docs: extend: authorization.md: add a note about confidential stuff in Err
2015-12-19 14:53:25 +01:00
Sebastiaan van Stijn
a5d8e41e82 Document process for patch-releases
This documents the procedures around creating patch-releases.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-19 14:49:49 +01:00
Antonio Murdaca
aada8d8117 docs: userguide: labels-custom-metadsata.md: update syntax for emtpy value labels
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-19 09:04:29 +01:00
Doug Davis
7ff61dd592 Merge pull request #18779 from aditirajagopal/18750-new-string-method
pkg/version.Version: use the new String() method
2015-12-18 21:21:17 -05:00
Alexander Morozov
58ebc71272 Merge pull request #18763 from calavera/fix_raw_inspect
Print the raw inspected elements when there is no template for `docker inspect`.
2015-12-18 15:25:38 -08:00
David Calavera
54f945994a Merge pull request #18651 from vbatts/dm-cleanup
loopback (and devicemapper) cleanup
2015-12-18 15:13:28 -08:00
Aditi Rajagopal
278e75800c pkg/version.Version: use the new String() method
Resolves #18750

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-12-18 15:29:32 -05:00
Antonio Murdaca
92605b823d Merge pull request #18761 from anusha-ragunathan/add-build-routes
Create build router separate from image router.
2015-12-18 21:09:43 +01:00
David Calavera
6ee7c94263 Merge pull request #18727 from tonistiigi/partial-load
Add support for partial load
2015-12-18 11:10:55 -08:00
Vincent Demeester
b714e03fdd Merge pull request #18771 from runcom/authz-fixes-1
authZ: more fixes
2015-12-18 17:58:02 +01:00
Tibor Vass
7f62d311bd Merge pull request #18773 from runcom/rej-gitignore
.gitignore: do not ignore *.rej
2015-12-18 17:48:36 +01:00
Vincent Demeester
64d70de0a2 Merge pull request #18721 from tiborvass/remove-dependencies-from-builder
Remove image and daemon dependencies from builder
2015-12-18 17:19:55 +01:00
Antonio Murdaca
fa7d676891 .gitignore: do not ignore *.rej
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-18 17:12:54 +01:00
Phil Estes
1ca6690b4f Merge pull request #18561 from hqhq/hq_adapt_at_start
Adapt container settings when start
2015-12-18 11:07:43 -05:00
Vincent Batts
af59752712 loopback: separate loop logic from devicemapper
The loopback logic is not technically exclusive to the devicemapper
driver. This reorganizes the code such that the loopback code is usable
outside of the devicemapper package and driver.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-12-18 10:57:43 -05:00
Vincent Batts
a292c04c01 devicemapper: remove unused type mapping
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-12-18 10:44:06 -05:00
Brian Goff
b708a2249b Merge pull request #18730 from calavera/remove_sockets_dependency
Remove api client lib dependency on tlsconfig and sockets packages.
2015-12-18 10:35:51 -05:00
Antonio Murdaca
5a64c8027e authZ: more fixes
- fix naming and formatting
- provide more context when erroring auth
- do not capitalize errors
- fix wrong documentation
- remove ugly remoteError{}

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-18 16:29:01 +01:00
Antonio Murdaca
47060efdb7 Merge pull request #18741 from WeiZhang555/debug-info
Better debug message for post form data
2015-12-18 16:06:07 +01:00
Antonio Murdaca
1e28f04fec docs: extend: authorization.md: add a note about confidential stuff in Err
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-18 11:28:28 +01:00
David Calavera
1f5674363e Print the raw inspected elements when there is no template for docker inspect.
Otherwise we're ignoring the fields that Swarm adds to the output.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-17 23:17:52 -05:00
Donovan Jones
2bd8322dba fix incorrect ip addresses in networkingcontainers
Signed-off-by: Donovan Jones <git@gamma.net.nz>
2015-12-18 16:21:24 +13:00
Anusha Ragunathan
f8dc044aec Create build router separate from image router.
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2015-12-17 16:56:11 -08:00
Doug Davis
6bf8844f11 Merge pull request #18759 from mikedanese/doc-fix
daemon/logger: fix typo in godoc
2015-12-17 19:26:41 -05:00
David Calavera
defd1519f7 Remove api client lib dependency on tlsconfig and sockets packages.
- Let consumers to configure the http transport initially and apply or
  defaults on top.
- Add function to initialize a new client based on environment
  variables, useful for integrators.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-17 19:04:49 -05:00
Mike Danese
881a30c707 daemon/logger: fix typo in godoc
Signed-off-by: Mike Danese <mikedanese@google.com>
2015-12-17 15:52:33 -08:00
Jess Frazelle
ff69b23dc0 Merge pull request #18395 from LK4D4/default_cgroup_is_not_daemon
Use /docker as cgroup parent instead of docker
2015-12-17 13:59:00 -08:00
Christy Perez
fab75bffb0 Update gcc from 5.2 to 5.3
gcc 5.3 is out, so let's use the new one!

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-12-17 13:37:50 -06:00
Alexander Morozov
5553aab705 Merge pull request #18744 from runcom/plugins-deadcode
pkg: plugins: remove dead code
2015-12-17 10:50:04 -08:00
David Calavera
406da8616c Merge pull request #18716 from clnperez/fix-blkio-tests
Update TestRunWithBlkioInvalidDevice Tests
2015-12-17 10:23:59 -08:00
Stefan Scherer
94fb7458ea Move DOCKER_ENGINE_ envs to integration-daemon-setup to allow build w/o Makefile
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2015-12-17 18:55:45 +01:00
Govinda Fichtner
43ee564326 update Dockerfile to reflect latest changes
Signed-off-by: Govinda Fichtner <govinda.fichtner@googlemail.com>
2015-12-17 18:54:00 +01:00
Tibor Vass
9681f0f0d4 Merge pull request #18745 from runcom/pkg-version-String
pkg: version: add String method
2015-12-17 16:58:41 +01:00
Tibor Vass
b0d9476153 builder: remove daemon dependency in ContainerAttach
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-17 16:57:08 +01:00
Tibor Vass
03a170c48d builder: remove daemon dependency in ContainerCreate()
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-17 16:57:08 +01:00
Sebastiaan van Stijn
742fd4fa63 Merge pull request #18739 from wenchma/typo
Fix typo error and update index
2015-12-17 15:43:14 +01:00
Antonio Murdaca
98be580794 Merge pull request #18590 from aaronlehmann/limit-v1-fallbacks
Limit v1 protocol fallbacks
2015-12-17 14:44:05 +01:00
Sebastiaan van Stijn
3f4dc49210 Merge pull request #18743 from wenchma/plugin_not_found
Sync the docker network create api docs with the error code
2015-12-17 12:16:23 +01:00
Antonio Murdaca
0d9f1e344a pkg: version: add String method
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-17 11:52:23 +01:00
Sebastiaan van Stijn
5baa93c04e Merge pull request #18662 from runcom/pkg-authZ-response
pkg: authorization: add Err to tweak response status code
2015-12-17 11:12:27 +01:00
Antonio Murdaca
46e3a249a1 pkg: authorization: add Err to tweak response status code
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-17 11:08:47 +01:00
Antonio Murdaca
1d2b62ceae pkg: plugins: remove dead code
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-17 11:05:50 +01:00
Wen Cheng Ma
597835e645 Sync the docker network create api docs with the error code
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-12-17 17:48:50 +08:00
Vincent Demeester
0f749ad55a Merge pull request #18559 from ahmetalpbalkan/return-container-networks
Proposal: Add container networks list to /containers/json
2015-12-17 10:11:18 +01:00
Vincent Demeester
cf0acc8eb9 Merge pull request #18622 from runcom/return-err
layer: layer_store.go: return on error
2015-12-17 09:10:09 +01:00
Zhang Wei
aaf65a47a7 Better debug message for post form data
Print json format instead of default `%q`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-12-17 15:55:39 +08:00
Wen Cheng Ma
e0db2fa4da Fix typo error and update index
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-12-17 15:40:10 +08:00
Aaron Lehmann
891bbc17ec Make v1 pull/push output consistent with v2
- Use layer DiffIDs for progress output in v1 push. This makes the
  output consistent with v2 pushes, which means that a fallback to v1
  won't start progress bars for a different set of IDs.

- Change wording used in v1 status updates to be consistent with v2.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-16 15:02:24 -08:00
Aaron Lehmann
a57478d65f Do not fall back to the V1 protocol when we know we are talking to a V2 registry
If we detect a Docker-Distribution-Api-Version header indicating that
the registry speaks the V2 protocol, no fallback to V1 should take
place.

The same applies if a V2 registry operation succeeds while attempting a
push or pull.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-16 15:02:03 -08:00
David Calavera
905f3336b2 Merge pull request #15964 from duglin/APIVersion
Add a DOCKER_API_VERSION env var
2015-12-16 14:23:47 -08:00
David Calavera
cd1ace316d Merge pull request #18671 from saturnism/patch-1
Updated REX-Ray plugin platform support.
2015-12-16 14:16:12 -08:00
Tibor Vass
dc81c25031 Merge pull request #18586 from tonistiigi/tag-reference-squashed
Improve reference validation
2015-12-16 23:08:02 +01:00
Tonis Tiigi
f946782316 Add support for partial load
Missing layers in tar will not cause an error if 
layers are already loaded before.

Fixes #18723

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-16 13:46:40 -08:00
David Calavera
e21d06a972 Merge pull request #18717 from anusha-ragunathan/rm-mount-bld-iface
Remove Mount/Unmount from Builder interface.
2015-12-16 13:34:06 -08:00
Brian Goff
3805c29099 Merge pull request #18695 from dnephin/move_parse_link
Move ParseLink and validators into runconfig.parse where they are used
2015-12-16 16:15:52 -05:00
Tonis Tiigi
eeb2d4c1ad Clean up reference type switches
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-16 11:58:53 -08:00
Tonis Tiigi
15d84a3a48 Improve reference parse errors
Fixes #18093

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-16 11:58:53 -08:00
Tonis Tiigi
c1040b222c Remove unused repoinfo
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-16 11:58:52 -08:00
Tonis Tiigi
ffded61dad Update Named reference with validation of conversions
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-16 11:58:52 -08:00
Tonis Tiigi
2655954c2d Add own reference package wrapper
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-16 11:58:52 -08:00
Vincent Demeester
cf7ccaf370 Merge pull request #18722 from calavera/remove_unused_packages
Remove timeoutconn package, it's not used anywhere
2015-12-16 20:56:43 +01:00
Vincent Demeester
8ec00e6d0e Merge pull request #18518 from MHBauer/spurious-timing
adjust test sleep timing to avoid spurious failure
2015-12-16 20:45:55 +01:00
Alexander Morozov
f8140332c0 Merge pull request #18719 from jfrazelle/vendor-updates
update and run vendor script
2015-12-16 11:27:02 -08:00
Vincent Batts
f57d56350e Merge pull request #18686 from cpuguy83/fix_btrfs_subvol_delete_panic
Fix btrfs recursive btrfs subvol delete
2015-12-16 14:26:40 -05:00
Daniel Nephin
233a4fc33c Move ParseLink and validators into runconfig.parse where they are used.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-16 14:22:54 -05:00
David Calavera
4d8ce0ef4a Remove timeoutconn package.
It's not used anywhere.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-16 13:51:56 -05:00
David Calavera
b44b5bbc8b Merge pull request #18682 from calavera/replace_units_package
Replace pkg/units with docker/go-units.
2015-12-16 10:48:59 -08:00
Katrina Owen
68b07c0af9 docs: remove ubuntu version in dockerizing userguide
The docs/installation/mac guide causes a user to download the
`ubuntu` image, which defaults to `ubuntu:latest`.

After installing the next logical step is to work through
the userguide. If the userguide specifies ubuntu:14.04, then
a second ubuntu image will be downloaded.

On slow internet connections this takes a long time.
The cost of specificity in this case seems higher than the value.

Since this might be the first or second interaction a user has
with docker, they might not realize that they can remove the ":14.04"
bit to use the image that was previously downloaded.

Signed-off-by: Katrina Owen <katrina.owen@gmail.com>
2015-12-16 11:25:15 -07:00
Tibor Vass
9be1ec60d4 builder: remove dependency on image
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-16 19:25:03 +01:00
Antonio Murdaca
c2276c1fe3 Merge pull request #18693 from dnephin/move_parse_docker_host
Move ParseDockerDaemonHost to opts/ package
2015-12-16 19:05:07 +01:00
Jessica Frazelle
a016ec6fd1 update and run vendor script
so there was weird whitespacing that got messed up the last time this was run, this fixes that and cleans up vendor helpers as well :)

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-16 09:58:20 -08:00
David Calavera
64377e3466 Merge pull request #18694 from duglin/BetterError
Add the filename to the error message while trying to parse the config file
2015-12-16 09:49:06 -08:00
Brian Goff
ebb1d56ecb Merge pull request #18705 from runcom/cleanups
Cleanups
2015-12-16 12:40:31 -05:00
David Calavera
4fef42ba20 Replace pkg/units with docker/go-units.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-16 12:26:49 -05:00
David Calavera
0609342d04 Vendor go-units and libcontainer.
Libcontainer depends on the new package now to avoid cycled
dependencies.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-16 12:25:54 -05:00
Brian Goff
8f2a15b880 Merge pull request #18703 from runcom/nit-plugins-volume
docs: extend: plugins_volume.md: Err default to empty string
2015-12-16 12:23:34 -05:00
Anusha Ragunathan
89ab39b050 Remove Mount/Unmount from Builder interface.
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2015-12-16 09:11:57 -08:00
Christy Perez
2236ecddfb Update TestRunWithBlkioInvalidDevice Tests
/dev/sda wasn't an invalid device and this test failed, so, hopefully
/dev/sdX isn't going to exist in other envs.

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-12-16 10:58:31 -06:00
Sebastiaan van Stijn
6f930a2ffa Merge pull request #18700 from mqliang/patch-2
Update dockernetworks.md
2015-12-16 16:58:25 +01:00
Sebastiaan van Stijn
39fea54b2b Merge pull request #18696 from mqliang/patch-1
fix typo in dockerlinks.md
2015-12-16 16:53:46 +01:00
Antonio Murdaca
baba1a8493 reorder imports with goimports
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-16 16:50:25 +01:00
Doug Davis
b0a18d57a7 Add the filename to the error message while trying to parse the config file
Notice this while looking at #18634. W/o this extra text we're not sure if
its complaining about the old or new config file.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-12-16 05:34:06 -08:00
Antonio Murdaca
bb2c92355c Merge pull request #18655 from dmcgowan/fix-docker-inspect-container
Add metadata function to layer store
2015-12-16 12:23:41 +01:00
Antonio Murdaca
8435ea5289 pkg: authorization: cleanup
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-16 12:01:04 +01:00
Antonio Murdaca
38f409d283 api: client: lib: fix go vet
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-16 12:00:48 +01:00
Antonio Murdaca
cc62a88524 docs: extend: plugins_volume.md: Err default to empty string
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-16 09:52:26 +01:00
Liang Mingqiang
f480b7c1f5 Update dockernetworks.md
fix typo

Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-12-16 15:25:06 +08:00
Liang Mingqiang
e1f012cf39 fix typo in dockerlinks.md
fix typo in dockerlinks.md

Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-12-16 11:21:39 +08:00
Daniel Nephin
9b99591054 Move ParseDockerDaemonHost to opts/ package.
This function was only being used from a single place opts/opts.go. This
change moves it from a incohesive package (parsers) to the single place it
is used.

Also made a bunch of the helper methods private because they are not used
by any external modules.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-15 20:53:17 -05:00
Jess Frazelle
61a94411b5 Merge pull request #18689 from jfrazelle/fix-vendor-helpers
cleanup hack/.vendor-helpers.sh
2015-12-15 16:48:45 -08:00
Alexander Morozov
731433a55b Merge pull request #18691 from jfrazelle/remove-oraclelinux-6
remove oracle linux 6 for time being
2015-12-15 16:42:31 -08:00
Jessica Frazelle
7ddf4214a6 remove oracle linux 6 for time being
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-15 16:34:41 -08:00
Alexander Morozov
803c7626ca Merge pull request #18687 from calavera/move_filters_to_api
Move filters package to the API.
2015-12-15 16:25:27 -08:00
Jessica Frazelle
6636aec38a cleanup hack/.vendor-helpers.sh
seccomp is already in $dockerBuildTags

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-15 15:50:10 -08:00
David Calavera
e98cae4919 Move filters package to the API.
These filters are only use to interchange data between clients and daemons.
They don't belong to the parsers package.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-15 18:13:26 -05:00
Brian Goff
f9befce2d3 Fix btrfs recursive btrfs subvol delete
Really fixing 2 things:

1. Panic when any error is detected while walking the btrfs graph dir on
removal due to no error check.
2. Nested subvolumes weren't actually being removed due to passing in
the wrong path

On point 2, for a path detected as a nested subvolume, we were calling
`subvolDelete("/path/to/subvol", "subvol")`, where the last part of the
path was duplicated due to a logic error, and as such actually causing
point #1 since `subvolDelete` joins the two arguemtns, and
`/path/to/subvol/subvol` (the joined version) doesn't exist.

Also adds a test for nested subvol delete.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-12-15 18:12:40 -05:00
David Calavera
52fd30079a Merge pull request #18685 from calavera/remove_timeutils
Move timeutils functions to the only places where they are used.
2015-12-15 15:11:18 -08:00
David Calavera
d3fbd43432 Merge pull request #18677 from runcom/fix-plugins-error
pkg: plugins: fix and better handle errors
2015-12-15 14:17:52 -08:00
Morgan Bauer
81c334fa56 adjust test sleep timing to avoid spurious failure
- refactor ConsumeWithSpeed
 - documentation

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-12-15 13:27:24 -08:00
David Calavera
b0f652fc38 Merge pull request #18648 from jfrazelle/fix-install-script-trusty
fix install script for ubuntu trusty
2015-12-15 12:55:01 -08:00
Alexander Morozov
33abc6f8af Merge pull request #18683 from estesp/no-dev-symlink-chown
Remove unecessary chown on mqueue device path
2015-12-15 12:47:03 -08:00
David Calavera
c0c5c00337 Merge pull request #18681 from dnephin/move_cliconfig_test
Move the TestEncodeAuth test to the correct package
2015-12-15 12:42:38 -08:00
David Calavera
7bb30e0aeb Merge pull request #18676 from dnephin/more_registry_types_to_api
Move registry.SearchResult types to api/types/registry
2015-12-15 12:00:24 -08:00
David Calavera
27220ecc6b Move timeutils functions to the only places where they are used.
- Move time json marshaling to the jsonlog package: this is a docker
  internal hack that we should not promote as a library.
- Move Timestamp encoding/decoding functions to the API types: This is
  only used there. It could be a standalone library but I don't this
it's worth having a separated repo for this. It could introduce more
complexity than it solves.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-15 14:56:14 -05:00
Euan
0b5131444d Set OOMKilled state on any OOM event
This restores the behavior that existed prior to #16235 for setting
OOMKilled, while retaining the additional benefits it introduced around
emitting the oom event.

This also adds a test for the most obvious OOM cases which would have
caught this regression.

Fixes #18510

Signed-off-by: Euan <euank@amazon.com>
2015-12-15 19:27:57 +00:00
Candid Dauth
efb763aa10 Add note to volume docs that data is not copied to mounted volumes
Signed-off-by: Candid Dauth <cdauth@cdauth.eu>
2015-12-15 20:27:35 +01:00
Phil Estes
0faee5896d Remove unecessary chown on mqueue device path
This was causing the host /dev/mqueue to be remapped to the daemon's
user namespace range root user and group. Given the perms are open on
the mqueue path, there is no need to chown this path at all.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-12-15 14:11:03 -05:00
Daniel Nephin
e226383614 Move the TestEncodeAuth test to the correct package.
Also make EncodeAuth and DecodeAuth private because they're only used by cliconfig.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-15 13:36:52 -05:00
Jess Frazelle
2180dd6cf0 Merge pull request #18617 from tiborvass/cleanup-builder
Cleanup builder: remove container package dependency
2015-12-15 09:59:29 -08:00
Brian Goff
ce0b1841c8 Merge pull request #17034 from rhvgoyal/volume-propagation
Capability to specify per volume mount propagation mode
2015-12-15 12:14:41 -05:00
Tianon Gravi
42ea7a8a93 Merge pull request #18097 from btorresgil/kali-linux-2.0-installer
Add support for installation on Kali Linux 2.0
2015-12-15 08:52:53 -08:00
Jess Frazelle
adf1ffd53b Merge pull request #18416 from toli/disable-official-repo-check-in-push
Removing the restriction to push to an 'official' repo
2015-12-15 08:52:36 -08:00
Antonio Murdaca
4133dc2212 pkg: plugins: fix and better handle errors
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-15 17:51:48 +01:00
Alexander Morozov
812a7c204a Merge pull request #18531 from coolljt0725/update_container_networking_on_create
fix docker inspect return unconsistent network settings  of created container and stopped container
2015-12-15 08:47:54 -08:00
Daniel Nephin
c4472b389d Move registry.SearchResult types to api/types/registry.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-12-15 11:44:20 -05:00
Tibor Vass
93c0de2af4 builder: remove unused Retain/Release and put Mount/Unmount back
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-15 17:24:07 +01:00
Tibor Vass
c70f8b3c9c builder: remove container package dependency
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-15 17:24:07 +01:00
Tibor Vass
2a2d1f57b5 dockerfile: get rid of Commit and CommitConfig
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 400e4922cbd004b93774fc55005f74bd8a995242)
2015-12-15 17:23:40 +01:00
Ray Tsang
22023e05a3 Updated REX-Ray plugin platform support.
REX-Ray added Google Compute Engine support: https://github.com/emccode/rexray/issues/113

Signed-off-by: Ray Tsang <rayt@google.com>
2015-12-15 11:21:19 -05:00
Sebastiaan van Stijn
06ce22c6e6 Merge pull request #18669 from mqliang/patch-1
fixed typo
2015-12-15 16:06:58 +01:00
Liang Mingqiang
4c1243dc76 fixed typo
Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-12-15 23:00:47 +08:00
Bryan Boreham
c170e97197 Explain 'json' function a bit better
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2015-12-15 13:41:47 +00:00
Sebastiaan van Stijn
effdb3b763 Merge pull request #18664 from mqliang/patch-1
fix typo in runmetrics.md
2015-12-15 13:13:36 +01:00
Vincent Demeester
7fe5631b5e Merge pull request #18661 from zhanghuanzhong/docker-fix-a-confused-variable
The logName is confused here, it's a localName actually.
2015-12-15 12:32:52 +01:00
Vincent Demeester
b32713bed1 Merge pull request #18606 from runcom/dmwtf
devmapper: store base device fs type
2015-12-15 12:22:15 +01:00
Liang Mingqiang
941bbd57ac fix typo in runmetrics.md
fix typo

Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-12-15 19:14:47 +08:00
Sebastiaan van Stijn
98d97743d2 Merge pull request #18536 from WeiZhang555/daemon-err
Better error message for invalid unix socket format
2015-12-15 11:51:47 +01:00
Antonio Murdaca
f22ee02c6d devmapper: store base device fs type
After the very first init of the graph `docker info` correctly shows the
base fs type under `Backing Filesystem`. This information isn't stored
anywhere. After a restart (w/o erasing `/var/lib/docker`) `docker info`
shows an empty string under `Backing Filesystem`.
This patch records the base fs type after the first run in the metadata
or, to fix old devices that don't have this info in the metadata, just
probe the fs type of the base device at graph startup.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-15 09:33:19 +01:00
Vincent Demeester
6c0c199103 Merge pull request #18659 from Mashimiao/blkio-bps-tfix
tfix: modify internal variable name to be lower-case
2015-12-15 09:20:15 +01:00
huanzhong zhang
badfc7e10f The logName is confused here, it's a localName actually.
Signed-off-by: huanzhong zhang <zhanghuanzhong90@gmail.com>
2015-12-15 15:21:28 +08:00
Phil Estes
a398536d5e Merge pull request #18638 from cdituri/16667-devmapper-common-message-prefix
Make all the devmapper log messages consistent with a common prefix.
2015-12-15 00:08:00 -05:00
Arnaud Porterie
2ec34dca05 Merge pull request #18650 from calavera/remove_httputils_dep_from_api
Remove httputils dependency from API client lib.
2015-12-14 20:51:53 -08:00
Chris Dituri
9b584781ad Make pkg/devicemapper/ log messages with a common, consistent prefix.
Closes #16667

Uses the prefix "devicemapper:" for all the fmt and logrus error, debug, and info messages.

Signed-off-by: Chris Dituri <csdituri@gmail.com>
2015-12-14 21:35:15 -06:00
Chris Dituri
0aa6ace6e6 Make daemon/graphdriver/devmapper log messages with a common, consistent prefix.
Closes #16667

Uses the prefix "devmapper:" for all the fmt and logrus error, debug, and info messages.

Signed-off-by: Chris Dituri <csdituri@gmail.com>
2015-12-14 21:35:13 -06:00
Ahmet Alp Balkan
755f8609f6 Add containers’ networks to /containers/json
After addition of multi-host networking in Docker 1.9, Docker Remote
API is still returning only the network specified during creation
of the container in the “List Containers” (`/containers/json`) endpoint:

    ...
    "HostConfig": {
      "NetworkMode": "default"
    },

The list of networks containers are attached to is only available at
Get Container (`/containers/<id>/json`) endpoint.
This does not allow applications utilizing multi-host networking to
be built on top of Docker Remote API.

Therefore I added a simple `"NetworkSettings"` section to the
`/containers/json` endpoint. This is not identical to the NetworkSettings
returned in Get Container (`/containers/<id>/json`) endpoint. It only
contains a single field `"Networks"`, which is essentially the same
value shown in inspect output of a container.

This change adds the following section to the `/containers/json`:

    "NetworkSettings": {
      "Networks": {
        "bridge": {
          "EndpointID": "2cdc4edb1ded3631c81f57966563e...",
          "Gateway": "172.17.0.1",
          "IPAddress": "172.17.0.2",
          "IPPrefixLen": 16,
          "IPv6Gateway": "",
          "GlobalIPv6Address": "",
          "GlobalIPv6PrefixLen": 0,
          "MacAddress": "02:42:ac:11:00:02"
        }
      }
    }

This is of type `SummaryNetworkSettings` type, a minimal version of
`api/types#NetworkSettings`.

Actually all I need is the network name and the IPAddress fields. If folks
find this addition too big, I can create a `SummaryEndpointSettings` field
as well, containing just the IPAddress field.

Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
2015-12-14 19:03:23 -08:00
Zhang Wei
20012e423c Better error message for invalid unix socket format
Give more meaningful error prompts when user try to bind a directory as
unix socket.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-12-15 10:05:58 +08:00
Ma Shimiao
38797ca61b tfix: modify internal variable name to be lower-case
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-12-15 09:50:16 +08:00
Derek McGowan
a7e0968321 Add metadata function to layer store
Add function to get metadata from layer store for a mutable layer

fixes #18614

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-12-14 16:52:15 -08:00
Qiang Huang
f408b4f463 Adapt container settings when start
`adaptContainerSettings` is growing up, new it's only called
when create. It'll be a problem that old containers will never
have chance to adapt the latest rule. `HostConfig` of these
containers will be obsoleted.

Add this calling to start to avoid problems like #18550 and
avoid such backward compatability in the future.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-15 08:42:26 +08:00
Sebastiaan van Stijn
8970337f60 Merge pull request #18649 from albers/completion-daemon--authz-plugin
bash completion for `docker daemon --authz-plugin`
2015-12-14 23:13:21 +01:00
Vincent Demeester
87740d001c Merge pull request #18644 from calavera/remove_timeout_func_dependency_from_api_lib
Remove timeout shared function.
2015-12-14 23:05:29 +01:00
Sebastiaan van Stijn
a7e30a4ffb Merge pull request #18643 from tianon/apt-get-clean
Remove mention of "apt-get clean" as it's performed automatically
2015-12-14 22:54:17 +01:00
David Calavera
83b5729f64 Remove httputils dependency from API client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-14 16:48:59 -05:00
Alexander Morozov
260cbb19c9 Merge pull request #18486 from aboch/vnd
Vendoring libnetwork bbd6e6d8ca1e7c9b42f6f53277b0bde72847ff90
2015-12-14 13:32:01 -08:00
Harald Albers
069fe81fa6 bash completion for docker daemon --authz-plugin
Signed-off-by: Harald Albers <github@albersweb.de>
2015-12-14 13:25:45 -08:00
Jessica Frazelle
bdde4b32a1 fix install script for ubuntu trusty
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-14 13:13:39 -08:00
Alexander Morozov
ecc3717cb1 Merge pull request #18612 from mrunalp/update_runc
Update runc/libcontainer to v0.0.6
2015-12-14 13:05:53 -08:00
Tianon Gravi
226329e540 Remove mention of "apt-get clean" as it's performed automatically
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-12-14 12:50:44 -08:00
David Calavera
6e85d30f1b Merge pull request #18645 from sdurrheimer/zsh-completion-daemon-authz-plugin
Zsh completion daemon authz plugin
2015-12-14 12:50:14 -08:00
Doug Davis
6287ec9095 Add a DOCKER_API_VERSION env var
Closes: #11486

Just for @ahmetalpbalkan  :-)

Fixed some comment formatting too while in there.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-12-14 12:45:34 -08:00
Steve Durrheimer
4ba173630a Fix small missing equal sign for 'docker daemon --cluster-store-opt'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-12-14 21:20:49 +01:00
Steve Durrheimer
76844d786b Add zsh completion for 'docker daemon --authz-plugin'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-12-14 21:16:54 +01:00
David Calavera
75d69ce0da Merge pull request #18637 from dnephin/move_auth_config
Move more api types to api/types package
2015-12-14 11:53:30 -08:00
Jess Frazelle
0c2dd27581 Merge pull request #18642 from tophj-ibm/add-z-unshare-image
Add unshare image to s390x Dockerfile
2015-12-14 11:32:27 -08:00
David Calavera
9dc7d07fc1 Remove timeout shared function.
Handle timeouts when it's necessary based on a Timeout interface.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-14 14:24:21 -05:00
David Calavera
984282e28c Merge pull request #18639 from calavera/force_api_version
Force API versioning in the client library.
2015-12-14 11:20:12 -08:00
Jess Frazelle
03e2923e42 Merge pull request #18570 from suihkulokki/control-fix
hack/make/.build-deb/control: add missing fields
2015-12-14 10:41:56 -08:00
Jess Frazelle
b13fd10109 Merge pull request #18372 from Microsoft/jjh/winci-ensurefrozen
Windows CI Fix: No subshell due to bash 3.x
2015-12-14 10:32:53 -08:00
Christopher Jones
52e53814ea Add unshare image to s390x Dockerfile
This adds unshare image to Dockerfile.s390x

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-12-14 12:16:18 -06:00
Jess Frazelle
c38aa60180 Merge pull request #18393 from qzio/apparmor/ptrace-ubuntu14
Enable ptrace in a container on apparmor below 2.9
2015-12-14 10:07:01 -08:00
David Calavera
b679eb9a82 Force API versioning in the client library.
Remove dependencies on docker's version packages.
Allow empty version as a fallback to latest version.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-14 12:06:42 -05:00
Daniel Nephin
96c10098ac Move IndexInfo and ServiceConfig types to api/types/registry/registry.go
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-12-14 11:28:02 -05:00
Tibor Vass
44299989b2 Merge pull request #18631 from tiborvass/cleanup-utils
Create `builder/dockerignore` and `pkg/gitutils` to clean up `utils`
2015-12-14 17:22:01 +01:00
Daniel Nephin
5b321e3287 Move AuthConfig to api/types
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-12-14 11:22:01 -05:00
toli
0d824c760e Removing the restriction to push to a 'official' repo
Signed-off-by: toli <toli@docker.com>
2015-12-14 07:45:00 -08:00
Vivek Goyal
f988c98ff3 Add some unit and integration tests
Add a unit test and couple of integration tests for volume propagation.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-12-14 10:39:53 -05:00
Vivek Goyal
d4b4ce2588 Check Propagation properties of source mount point
Whether a shared/slave volume propagation will work or not also depends on
where source directory is mounted on and what are the propagation properties
of that mount point. For example, for shared volume mount to work, source
mount point should be shared. For slave volume mount to work, source mount
point should be either shared/slave.

This patch determines the mount point on which directory is mounted and
checks for desired minimum propagation properties of that mount point. It
errors out of configuration does not seem right.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-12-14 10:39:53 -05:00
Vivek Goyal
a2dc4f79f2 Add capability to specify mount propagation per volume
Allow passing mount propagation option shared, slave, or private as volume
property.

For example.
docker run -ti -v /root/mnt-source:/root/mnt-dest:slave fedora bash

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-12-14 10:39:53 -05:00
Vincent Demeester
5e0283effa Merge pull request #18618 from dnephin/refactor_resolve_auth_config
Refactor ResolveAuthConfig to remove the builder dependency on cli code
2015-12-14 15:23:36 +01:00
Tibor Vass
63e3816c1d utils: move dockerignore function to builder/dockerignore
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-14 14:59:52 +01:00
Tibor Vass
135cca6f52 utils: move git functions to pkg/gitutils
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-14 14:59:52 +01:00
Antonio Murdaca
f8bc4ed573 Merge pull request #18112 from daehyeok/fix_dry_run_test
Change TestRunNonRootUserResolvName Fail log.
2015-12-14 13:31:17 +01:00
Antonio Murdaca
f7ed97a630 layer: layer_store.go: return on error
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-14 12:03:39 +01:00
Antonio Murdaca
5fd9a8f603 Merge pull request #18616 from calavera/move_client_version_to_docker_cli
Move client version to the docker cli.
2015-12-14 11:43:01 +01:00
Daehyeok Mun
ba6b69adc2 Change TestRunNonRootUserResolvName Fail log.
Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2015-12-13 19:59:51 -07:00
Antonio Murdaca
ec1002db58 Merge pull request #18623 from jutaz/bugfix/typos
Bugfix - Typos
2015-12-13 19:52:31 +01:00
manchoz
824ae85632 Add support for Arch Linux ARM. (Close #16695)
Signed-off-by: Giampaolo Mancini <giampaolo@trampolineup.com>

Switch to "case"

Signed-off-by: Giampaolo Mancini <giampaolo@trampolineup.com>

Support multiple ARM architectures

Signed-off-by: Giampaolo Mancini <giampaolo@trampolineup.com>

Add check for ArchLinuxARM Keyring

Signed-off-by: Giampaolo Mancini <giampaolo@trampolineup.com>

mkimage-arch.sh: Fix for merging

Signed-off-by: Giampaolo Mancini <giampaolo@trampolineup.com>
2015-12-13 19:48:40 +01:00
Justas Brazauskas
927b334ebf Fix typos found across repository
Signed-off-by: Justas Brazauskas <brazauskasjustas@gmail.com>
2015-12-13 18:04:12 +02:00
Sebastiaan van Stijn
f5e6b09783 Merge pull request #18620 from jeffjohnston/DOC-16770
Update configuring Docker article
2015-12-13 14:10:46 +01:00
Lei Jitang
c427131c94 update network settings on container creating
To make docker inspect return a consistent result of networksettings
for created container and stopped container, it's bettew to update
the network settings on container creating.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-12-13 02:34:44 -05:00
moxiegirl
94026969b4 Merge pull request #18389 from wenchma/doc_update_for_container-basics
docs: delete draft container-basics.md
2015-12-12 21:39:34 -08:00
moxiegirl
34e38312bf Merge pull request #18438 from bfirsh/update-getting-started-in-readme
Link getting started in readme to installation instructions
2015-12-12 21:29:26 -08:00
Jeff Johnston
a77861bca7 Update configuring Docker article
Signed-off-by: Jeff Johnston <jeff.johnston.mn@gmail.com>
2015-12-12 20:36:48 -06:00
Sebastiaan van Stijn
51ffc088a5 Merge pull request #18270 from hqhq/hq_refactor_verify_config
Move verify container resources to a separate function
2015-12-12 12:47:19 +01:00
Antonio Murdaca
1fffc0270f Merge pull request #15365 from twistlock/14674-docker-authz
Docker authorization plug-in infrastructure
2015-12-12 12:30:33 +01:00
Antonio Murdaca
241f6d7107 Merge pull request #18592 from hqhq/hq_fix_start
Add lock for container update
2015-12-12 12:17:18 +01:00
Daniel Nephin
920ea13516 Refactor ResolveAuthConfig to remove the builder dependency on cli code.
registry.ResolveAuthConfig() only needs the AuthConfigs from the ConfigFile, so
this change passed just the AuthConfigs.

Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-12-11 19:31:24 -08:00
David Calavera
229d3bace8 Move client version to the docker cli.
This removes the dockerversion dependency from the client library.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-11 19:03:33 -05:00
Sebastiaan van Stijn
8d36f097cf Merge pull request #18613 from calavera/flack_streaming_events_test
Log events stream when TestEventStreaming fails.
2015-12-12 00:40:25 +01:00
Sebastiaan van Stijn
83d0a86470 Merge pull request #18608 from calavera/rename_get_to_get_container
Rename `Daemon.Get` to `Daemon.GetContainer`.
2015-12-12 00:10:42 +01:00
David Calavera
a3056f9f72 Log events stream when TestEventStreaming fails.
Let the tag event some more time to be emitted.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-11 17:20:40 -05:00
David Calavera
91799c232e Merge pull request #18610 from runcom/fix-warn
api: client: info: add newline after warning
2015-12-11 13:41:14 -08:00
Sebastiaan van Stijn
a84982a9c7 Merge pull request #18591 from calavera/inspector_tests
Make sure template inspector always prints a carriage return.
2015-12-11 22:03:42 +01:00
Mrunal Patel
e8f7d5885d Update runc/libcontainer to v0.0.6
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-12-11 15:24:32 -05:00
Antonio Murdaca
bb3d7e1e65 api: client: info: add newline after warning
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-11 20:54:51 +01:00
Liron Levin
de4ffdfe48 Change authz plugin argument name
Signed-off-by: Liron Levin <liron@twistlock.com>
2015-12-11 20:59:15 +02:00
David Calavera
d7d512bb92 Rename Daemon.Get to Daemon.GetContainer.
This is more aligned with `Daemon.GetImage` and less confusing.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-11 12:39:28 -05:00
Alexander Morozov
5525593a68 Merge pull request #18595 from mariussturm/gelf-no-trim-18568
don't trim GELF message
2015-12-11 07:39:44 -08:00
Tibor Vass
cd648dce3a Merge pull request #18242 from jfrazelle/i-have-no-idea
Remove ipc rule in docker-engine apparmor profile
2015-12-11 11:23:41 +01:00
Marius Sturm
a31435c8a2 dont trim gelf log message
Signed-off-by: Marius Sturm <marius@graylog.com>
2015-12-11 10:28:24 +01:00
Dima Stopel
b7af5bcd20 Fixing documentation comments by @thaJeztah
Signed-off-by: Dima Stopel <dima@twistlock.com>
2015-12-11 07:03:58 +02:00
Qiang Huang
c6bfb54ac1 Move verify container resources to a separate function
Make the code easy to view.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-11 10:59:29 +08:00
Qiang Huang
464eefd795 Add lock for container update
Container needs to be locked when updating the fields, and
this PR also remove the redundant `parseSecurityOpt` since
it'll be done in `setHostConfig`.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-11 10:33:13 +08:00
David Calavera
bc02d42d9e Make sure template inspector always prints a carriage return.
To match with the raw inspector.
Adds tests to verify its functionality.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-10 21:13:13 -05:00
Sebastiaan van Stijn
23bd9b881f Merge pull request #18577 from devvyn/patch-1
Update custom-docker0.md (corrections)
2015-12-11 02:38:24 +01:00
Sebastiaan van Stijn
8cd356630a Merge pull request #18142 from ekuric/mkimage
mkimage-yum.sh to support dnf
2015-12-11 02:27:13 +01:00
Jess Frazelle
a16a1d75d9 Merge pull request #18564 from runcom/warn-on-loopback
api: client: info: print a warning if dm is using a loopback file
2015-12-11 10:11:03 +10:00
David Calavera
b89676bead Merge pull request #18580 from tophj-ibm/fix-typo-blkio-invalid-device
Fix typo in named test and docs.
2015-12-10 15:19:41 -08:00
Alexander Morozov
ac453a310b Merge pull request #18353 from aaronlehmann/transfer-manager
Improved push and pull with upload manager and download manager
2015-12-10 14:52:48 -08:00
Christopher Jones
7c077c2c34 Fixed typo change deivce to device.
This changes deivce to device in daemon, test and docs.

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-12-10 15:23:05 -06:00
Alexander Morozov
9381c744b8 Merge pull request #18566 from coolljt0725/fix_18544
Probably fix flaky test TestExecTTY
2015-12-10 12:53:47 -08:00
David Calavera
a0f80079b8 Merge pull request #18557 from cpuguy83/use_correct_resize_fn
Use correct fn for resizing TTY
2015-12-10 12:37:13 -08:00
Devvyn Murphy
76de01c138 Update custom-docker0.md (corrections)
Corrected outdated internal link (regarding ```ip_forward``` system setting) . Corrected missing newline before bulleted list (for options configurable at server startup).

Signed-off-by: Devvyn Murphy <devvyn@devvyn.com>
2015-12-10 13:24:02 -06:00
Vincent Demeester
13155ac47e Merge pull request #18555 from runcom/clean-devmapper
devmapper: remove unused var
2015-12-10 18:17:04 +01:00
David Calavera
31a31adf7e Merge pull request #18459 from Microsoft/jjh/winci-bash4fix
Windows CI Fix: Allow bash v4
2015-12-10 08:58:32 -08:00
Phil Estes
2ea48e9fc0 Merge pull request #18197 from nalind/workaround-go-libgcc
Work around a linking problem on 32-bit arches
2015-12-10 11:50:03 -05:00
Alexander Morozov
8e2c27abeb Merge pull request #18565 from hqhq/hq_fix_ensure_format
Fix format issue
2015-12-10 08:27:15 -08:00
Riku Voipio
8d2a423d87 control: add missing fields
Without section/priority, reprepro will reject the packages. Add
sections following the Debian docker.io packages

Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2015-12-10 16:57:39 +02:00
Antonio Murdaca
a2c4c0cd3a api: client: info: print a warning if dm is using a loopback file
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-10 14:05:28 +01:00
Sebastiaan van Stijn
3d82564c7a Merge pull request #18562 from haoshuwei/modify-wordspelling-in-docker-stats
Modify word spelling  in stats.go's comments
2015-12-10 13:32:10 +01:00
Lei Jitang
0e16eacad4 Probably fix flaky test TestExecTTY
sleep 2 seconds before exec exit to make sure
the output of `cat /foo` will be read

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-12-10 04:13:58 -05:00
Sebastiaan van Stijn
d46650b3c7 Merge pull request #18553 from calavera/remove_specific_go_1_5_calls
Remove call to template.Option when building with 1.4.
2015-12-10 09:28:00 +01:00
Antonio Murdaca
037cbcec98 devmapper: remove unused var
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-10 08:28:02 +01:00
Qiang Huang
bd00905614 Fix format issue
Remove prefix and suffix spaces and tabs.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-10 15:18:16 +08:00
Shuwei Hao
413e058b72 Modify word spelling errors in stats.go
Signed-off-by: Shuwei Hao <haosw@cn.ibm.com>
2015-12-10 06:57:25 +00:00
Brian Goff
ff0e33824a Merge pull request #18550 from ibuildthecloud/panic
Don't dereference HostConfig.MemorySwapiness if nil
2015-12-09 23:11:18 -05:00
Brian Goff
3260ddb10b Use correct fn for resizing TTY
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-12-09 22:55:01 -05:00
Aaron Lehmann
d92e7ad735 Update docs for addition of transfer manager
Closing the HTTP connection requesting a push or pull will cancel the
push or pull. This behavior also applies to the CLI.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-09 19:13:35 -08:00
Aaron Lehmann
572ce80230 Improved push and pull with upload manager and download manager
This commit adds a transfer manager which deduplicates and schedules
transfers, and also an upload manager and download manager that build on
top of the transfer manager to provide high-level interfaces for uploads
and downloads. The push and pull code is modified to use these building
blocks.

Some benefits of the changes:

- Simplification of push/pull code
- Pushes can upload layers concurrently
- Failed downloads and uploads are retried after backoff delays
- Cancellation is supported, but individual transfers will only be
  cancelled if all pushes or pulls using them are cancelled.
- The distribution code is decoupled from Docker Engine packages and API
  conventions (i.e. streamformatter), which will make it easier to split
  out.

This commit also includes unit tests for the new distribution/xfer
package. The tests cover 87.8% of the statements in the package.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-09 19:13:35 -08:00
David Calavera
10bbe0ee7c Merge pull request #18552 from dnephin/move_network_types
Move networking api types to the api/types/networking package.
2015-12-09 17:42:14 -08:00
David Calavera
0b930e8fec Merge pull request #18417 from jfrazelle/remove-parallel
remove parallel we no longer use it
2015-12-09 16:26:02 -08:00
David Calavera
6df3fc5175 Remove call to template.Option when building with 1.4.
Windows still relies on 1.4.2 to build Docker.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 17:30:16 -05:00
Daniel Nephin
efda9618db Move networking api types to the api/types/networking package.
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2015-12-09 13:55:59 -08:00
Alessandro Boch
8fe6b3835c Vendoring libnetwork bbd6e6d8ca1e7c9b42f6f53277b0bde72847ff90
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-12-09 13:48:24 -08:00
Darren Shepherd
5ac12c418f Don't dereference HostConfig.MemorySwapiness if nil
Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-12-09 14:47:51 -07:00
Sebastiaan van Stijn
1d775a54cc Merge pull request #18541 from programmerq/inspect_command_ip_address
Add the actual command in this example.
2015-12-09 21:10:46 +01:00
Brian Goff
8b6132aa15 Merge pull request #18538 from estesp/aufs-whiteout-userns-fix
Skip aufs whiteout files on userns translation to container
2015-12-09 14:47:01 -05:00
Sebastiaan van Stijn
7470e39c73 Merge pull request #18533 from thaJeztah/fix-oracle-package-name
docs: fix incorrect package name on Oracle Linux
2015-12-09 20:24:39 +01:00
Tibor Vass
375f754f49 Merge pull request #18472 from calavera/api_client_lib
Api client lib
2015-12-09 19:17:11 +01:00
David Calavera
61b832dc5c Merge pull request #18540 from thaJeztah/remove-redundant-check
Remove redundant check
2015-12-09 09:48:11 -08:00
Jeff Anderson
d8d38f2345 Add the actual command in this example.
Signed-off-by: Jeff Anderson <jeff@docker.com>
2015-12-09 10:17:39 -07:00
David Calavera
2ec468e284 Make the commit configuration to be a typed struct rather than accepting a string.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:06:58 -05:00
David Calavera
57b6796304 Implement all inspect commands with the new inspector interface.
It makes the behavior completely consistent across commands.
It adds tests to check that execution stops when an element is not
found.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:05:01 -05:00
David Calavera
5a0a6ee9cd Remove old http from the docker cli.
Everything has been ported to the client library 🎉

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:05:00 -05:00
David Calavera
e4abf48567 Implement docker search with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:05:00 -05:00
David Calavera
d1057e4c46 Implement docker resize with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:05:00 -05:00
David Calavera
cf3efd05d4 Implement docker inspect with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:05:00 -05:00
David Calavera
42670e30ee Implement docker push with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:05:00 -05:00
David Calavera
e78f02c4db Implement docker pull with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:05:00 -05:00
David Calavera
e59d54bd99 Implement docker stats with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:05:00 -05:00
David Calavera
3f9f23114f Implement docker exec with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:59 -05:00
David Calavera
bcb848c87f Implement docker run with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:59 -05:00
David Calavera
962b2d8b9b Implement docker start with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:59 -05:00
David Calavera
5e80ac9c84 Implement docker attach with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:59 -05:00
David Calavera
d9a62c5f2b Lowercase http method functions.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:59 -05:00
David Calavera
0b0431a856 Change references to query values.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:59 -05:00
David Calavera
8b15839ee8 Create interface that clients that talk to the api must fulfill.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:58 -05:00
David Calavera
a413be3392 Fix client lib errors documentation.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:58 -05:00
David Calavera
73bca058ae Implement docker volume with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:58 -05:00
David Calavera
8c9c9e137c Use ensureReaderClosed consistently to close a response body reader.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:58 -05:00
David Calavera
7df71ca31d Implement getExitCode with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:58 -05:00
David Calavera
51efb1480a Implement docker wait with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:58 -05:00
David Calavera
1fe912151b Implement docker version with standalone client lib.
Use Go template definitions for default format.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:58 -05:00
David Calavera
b8be62e28e Implement docker unpause with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:57 -05:00
David Calavera
d78ce02f88 Implement trusted tagging with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:57 -05:00
David Calavera
7573c153c5 Implement docker top with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:57 -05:00
David Calavera
21ffdf0e0e Implement docker tag with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:57 -05:00
David Calavera
9ec1cf92f5 Implement docker stop with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:57 -05:00
David Calavera
373f55eecd Implement docker save with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:56 -05:00
David Calavera
37d6fee8cf Implement docker rmi with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:56 -05:00
David Calavera
fb6533e6cf Implement docker remove with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:56 -05:00
David Calavera
b7de53634c Implement docker restart with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:56 -05:00
David Calavera
ac8fb77c74 Implement container rename with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:56 -05:00
David Calavera
d05aa418b0 Implement docker ps with standanlone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:56 -05:00
David Calavera
eeee2eae86 Implement docker port with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:56 -05:00
David Calavera
55333e8f90 Implement docker pause with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:56 -05:00
David Calavera
356768bc01 Implement docker network with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:55 -05:00
David Calavera
0876742646 Implement docker logs with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:55 -05:00
David Calavera
b36531db60 Implement docker login with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:55 -05:00
David Calavera
9073a52ea8 Implement docker load with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:55 -05:00
David Calavera
c57e62d00e Implement docker kill with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:55 -05:00
David Calavera
535c4c9a59 Implement docker build with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:55 -05:00
David Calavera
900ad2897f Implement docker info with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:54 -05:00
David Calavera
6bf757500b Implement docker import with the standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:54 -05:00
David Calavera
381262fbea Implement docker images with the standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:54 -05:00
David Calavera
45eca43f5b Implement docker history with the standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:54 -05:00
David Calavera
e0549b8ceb Implement docker export with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:54 -05:00
David Calavera
11c4cc9dde Implement docker events with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:54 -05:00
David Calavera
e562ac42f4 Implement docker diff with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:53 -05:00
David Calavera
136e8fef64 Implement docker container create with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:53 -05:00
David Calavera
1698fe01f5 Implement docker image create with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:53 -05:00
David Calavera
1b2b91ba43 Implement docker cp with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:53 -05:00
David Calavera
8c9ad7b818 Implement docker commit with standalone client lib.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:53 -05:00
David Calavera
589df17a1a Extract API client struct as standalone client.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-09 12:04:53 -05:00
Sebastiaan van Stijn
7a6f5d9b31 Remove redundant check
jm.ID is already checked in the outer "if",
so theres no reason to check it again here.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-09 17:38:06 +01:00
Ben Firshman
32402a7b9f Link getting started to installation instructions
Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2015-12-09 15:55:10 +00:00
Phil Estes
1626c9dae0 Skip aufs whiteout files on userns translation to container
aufs kernel module creates whiteout files on upper layer delete (and
other situations) and those files already are 'translated' regarding
ownership in host terms (e.g. they are already "0:0" owned), so when
these layers are copied around with pkg/archive we don't want to try and
translate these files regarding ownership.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-12-09 10:11:32 -05:00
Sebastiaan van Stijn
d9f4e5c13c docs: fix incorrect package name on Oracle Linux
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-09 14:19:27 +01:00
Sebastiaan van Stijn
c6c4ae152a Merge pull request #18428 from hqhq/hq_limit_kernel_memory
Check minimum kernel memory limit to be 4M
2015-12-09 13:12:17 +01:00
Qiang Huang
2347f98003 Check minimum kernel memory limit to be 4M
Fixes: #18405

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-09 14:26:41 +08:00
John Howard
e078adc93b Windows: No subshell due to bash 3.x
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-12-08 22:24:55 -08:00
Doug Davis
c8ed1492bf Merge pull request #18515 from tophj-ibm/add-new-image-to-dockerfiles-hotfix
Add new ppc64le image
2015-12-08 21:28:18 -05:00
Christopher Jones
a796eea2b5 Added ppc64le ensure image to the Dockerfile
Adds ppc64le image to the Dockerfile,
should be with 03fc212b6d

Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-12-08 20:07:11 -05:00
moxiegirl
8ed14c2072 Merge pull request #18478 from programmerq/novirt
Call it "containerization" instead of "virtualization" in the docs
2015-12-08 16:45:29 -08:00
David Calavera
dead67308c Merge pull request #18435 from cilium-team/changing-udev-rules-file-permissions
Fixed 80-docker.rules file permissions to 644
2015-12-08 16:28:54 -08:00
David Calavera
82eb104509 Merge pull request #18517 from thaJeztah/cleanup-maintainers-file
Cleanup MAINTAINERS file
2015-12-08 16:11:04 -08:00
David Calavera
fcddd9d2f5 Merge pull request #18507 from sammyshj/13397-untaggedimages
Docs now explain dangling images with repo:tag as <none>:<none>
2015-12-08 15:52:03 -08:00
Sebastiaan van Stijn
a848c5e782 Cleanup MAINTAINERS file
This removes sections from the maintainers file
that have been moved to the https://github.com/docker/opensource
repository.

Also replaces spaces for tabs for consistency (yay ocd).

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-09 00:20:23 +01:00
Derek McGowan
e8a0e126f7 Merge pull request #18503 from aaronlehmann/test-pull-all-tags
Fix flaky test TestPullAllTagsFromCentralRegistry
2015-12-08 14:15:55 -08:00
Jeff Anderson
0d1c5193b3 Change "virtualization" to "containerization"
* Wording around what docker-machine does since the phrase "Docker virtual machine" can cause some confusion.
* Docker Machine isn't a distro in and of itself. It still uses boot2docker as the distro.
* Remove "virtualization" keywords.

Signed-off-by: Jeff Anderson <jeff@docker.com>
2015-12-08 15:08:27 -07:00
Tianon Gravi
44f709ab07 Merge pull request #18506 from tophj-ibm/power-and-z-frozen-images-fix
Fixes for building on ppc64le and 390x due to ensure-frozen-images
2015-12-08 13:58:25 -08:00
Jess Frazelle
6d2130ee8e Merge pull request #18484 from aaronlehmann/progress-fixes
JSONMessage terminal display fixes
2015-12-09 10:56:24 +13:00
Tianon Gravi
de7b80db03 Merge pull request #18465 from albers/completion-network-disconnect-2
Improve bash completion for `docker network disconnect`
2015-12-08 12:46:15 -08:00
David Calavera
81014900d5 Merge pull request #18505 from estesp/overlay-userns-fix
Fix overlay + user namespaces underlay dir permissions
2015-12-08 12:44:46 -08:00
Alexander Morozov
591493bfb5 Merge pull request #18485 from aaronlehmann/errors-bounds-check
Add missing bounds check in ContinueOnError
2015-12-08 12:40:55 -08:00
Phil Estes
191cefbaca Fix overlay and user namespace permissions
All underlay dirs need proper remapped ownership. This bug was masked by the
fact that the setupInitLayer code was chown'ing the dirs at startup
time. Since that bug is now fixed, it revealed this permissions issue.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-12-08 14:28:28 -05:00
Christopher Jones
03fc212b6d Fixes for ppc64le and 390x frozen-images
Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-12-08 14:26:34 -05:00
Aaron Lehmann
d17669999f Fix flaky test TestPullAllTagsFromCentralRegistry
This test was directly comparing lines of output from "docker images".
Sometimes, when busybox had been pushed to the hub recently, the
relative creation times would differ like this:

... obtained []string = []string{"busybox", "latest", "d9551b4026f0", "27", "minutes", "ago", "1.113", "MB"}
... expected []string = []string{"busybox", "latest", "d9551b4026f0", "26", "minutes", "ago", "1.113", "MB"}

Fixing by removing the time-since-creation fields from the comparison.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-08 11:23:04 -08:00
Sambuddha Basu
1bafa3cdcd The docs now explain that images with repo:tag as <none>:<none> are dangling images.
Signed-off-by: Sambuddha Basu <sambuddhabasu1@gmail.com>
2015-12-08 22:08:29 +04:00
Aaron Lehmann
1ebfa29954 Add missing bounds in ContinueOnError
ContinueOnError assumes that something of type errcode.Errors contains
at least one error. This is generally true, but might not be true if the
remote registry returns an empty error body or invalid JSON. Add the
bounds check, and in the case where it fails, allow fallbacks to v1.

Fixes #18481

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-08 09:54:20 -08:00
Liron Levin
f28230d35c Rebase from master
Signed-off-by: Liron Levin <liron@twistlock.com>
2015-12-08 19:45:22 +02:00
Alexander Morozov
adb19755e1 Merge pull request #18479 from aaronlehmann/flaky-logs-test
Fix flaky test TestLogsSince
2015-12-08 09:03:39 -08:00
Dima Stopel
8cc0892269 Fixing documentation according to comments by @moxiegirl and @thaJeztah
Signed-off-by: Dima Stopel <dima@twistlock.com>
2015-12-08 17:34:15 +02:00
Liron Levin
75c353f0ad Docker authorization plug-in infrastructure enables extending the functionality of the Docker daemon with respect to user authorization. The infrastructure enables registering a set of external authorization plug-in. Each plug-in receives information about the user and the request and decides whether to allow or deny the request. Only in case all plug-ins allow accessing the resource the access is granted.
Each plug-in operates as a separate service, and registers with Docker
through general (plug-ins API)
[https://blog.docker.com/2015/06/extending-docker-with-plugins/]. No
Docker daemon recompilation is required in order to add / remove an
authentication plug-in. Each plug-in is notified twice for each
operation: 1) before the operation is performed and, 2) before the
response is returned to the client. The plug-ins can modify the response
that is returned to the client.

The authorization depends on the authorization effort that takes place
in parallel [https://github.com/docker/docker/issues/13697].

This is the official issue of the authorization effort:
https://github.com/docker/docker/issues/14674

(Here)[https://github.com/rhatdan/docker-rbac] you can find an open
document that discusses a default RBAC plug-in for Docker.

Signed-off-by: Liron Levin <liron@twistlock.com>
Added container create flow test and extended the verification for ps
2015-12-08 17:34:15 +02:00
Dima Stopel
630f695fb1 Adding authorization subsystem documentation
Signed-off-by: Dima Stopel <dima@twistlock.com>
2015-12-08 17:32:17 +02:00
Vincent Demeester
6eeff9288b Merge pull request #18488 from aaronlehmann/docker-images-order
Make order of items in "docker images" deterministic
2015-12-08 15:35:59 +01:00
Phil Estes
5c45f47f01 Merge pull request #18487 from clnperez/gccgo-seccomp-support
Add seccomp stuff for gccgo
2015-12-08 09:29:09 -05:00
Sebastiaan van Stijn
0d8c1a8797 Merge pull request #18432 from thaJeztah/docs-run-reference-fixups
docs: markdown and textual fixups in reference/run.md
2015-12-08 15:16:51 +01:00
Vincent Demeester
ee7a599351 Merge pull request #18483 from estesp/seccomp-test-requirement
Allow non-seccomp platforms to pass integration-cli tests
2015-12-08 08:38:06 +01:00
Aaron Lehmann
6e37b622d3 Make order of items in "docker images" deterministic
The server-side portion of "docker images" sorts the images it returns
by creation timestamp so the list keeps a consistent order. However, it
does not sort the RepoTags and RepoDigests lists that each image carries
along with it. Since items in these lists are populated from a map,
their order will vary. If the user has a collection of tags which point
to overlapping IDs, for example tags that point to the same images on
different registries, the order will fluctuate between invocations of
"docker images". This can be disorienting with a long list of images.

Sort these references at the tag store level, so that the tag store's
References call always returns references in a lexically sorted order.
As well as giving the tag store more deterministic behavior, doing it at
this level simplifies the tag store unit tests.

Do the same for the ReferencesByName call. This will make push-all-tags
iterate over the tags in a consistent order.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-07 18:31:51 -08:00
Christy Perez
8ce5d05492 Add seccomp stuff for gccgo
Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-12-07 19:40:55 -06:00
Phil Estes
0433e38915 Allow non-seccomp platforms to pass integration-cli tests
Since seccomp is still a configurable build-tag, add a requirements
entry for seccomp, as well as move seccomp tests to "_unix" given it
won't be applicable to other platforms at this time.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-12-07 20:14:52 -05:00
Aaron Lehmann
59df2adc07 Fix the scoping of "diff" so its value doesn't leak between loop iterations
In the existing code, "diff" has function scope and the value from the
previous iteration may be used if it is not reset. This appears to be an
oversight. This commit changes its scope to the for loop body.

One confusing point is that the cursor movement escape sequences appear
to be necessary even if the requested movement is 0. I haven't been able
to figure out why this makes a difference.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-07 17:01:47 -08:00
Aaron Lehmann
fc41d39394 Don't update lines on the terminal from a previous operation
When we handle a message that isn't tracked in the "line" map (for
example, one with no ID), clear the line map. This means we won't update
lines that were part of a previous, completed set of operations when
doing something like pull -a. It also has the beneficial side effect
of avoiding terminal glitching in these types of situations, since
messages that don't get tracked in the "line" map cause the count of the
number of lines to get out of sync.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-07 16:04:42 -08:00
Sebastiaan van Stijn
b36b492039 Merge pull request #18108 from phemmer/no-mtu-discovery
don't try to use default route MTU as container MTU
2015-12-08 00:26:29 +01:00
Patrick Hemmer
fd9d7c02fc don't try to use default route MTU as bridge MTU
Signed-off-by: Patrick Hemmer <patrick.hemmer@gmail.com>
2015-12-07 17:32:51 -05:00
Alexander Morozov
1f0886a713 Merge pull request #18476 from aaronlehmann/v1-push-size
Use DiffSize instead of Size in v1 push
2015-12-07 14:09:14 -08:00
Aaron Lehmann
7ab0f9bf61 Fix flaky test TestLogsSince
This test can fail if it is run close to a second boundary:

    FAIL: docker_cli_logs_test.go:169: DockerSuite.TestLogsSince

    docker_cli_logs_test.go:183:
        c.Assert(out, checker.Not(checker.Contains), v,
    check.Commentf("unexpected log message returned, since=%v", since))
    ... obtained string = "" +
    ...     "2015-12-07T19:54:45.000551883Z 1449518084 log2\n" +
    ...     "2015-12-07T19:54:47.001310929Z 1449518086 log3\n"
    ... substring string = "log2"
    ... unexpected log message returned, since=1449518085

The problem is that it generates log lines using date +%s and uses that
timestamp as a reference for log filtering with (--since) later on in
the test. However, the timestamp that date +%s generates may not match
the log timestamp.

This commit changes the test to parse the log timestamp itself instead
of relying on a parallel timestamp.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-07 13:26:30 -08:00
Aaron Lehmann
741924384e Use DiffSize instead of Size in v1 push
The v1 push code was querying the size of the layer chain up to the
layer it was pushing, rather than just that layer. This made the
progress indicator inaccurate.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-07 11:30:05 -08:00
Brian Goff
41ae615aa1 Merge pull request #18442 from MHBauer/move-configs
move configs structs to remove dependency on deamon
2015-12-07 13:38:43 -05:00
Morgan Bauer
63fb931a0b move configs structs to remove dependency on daemon
- Moved the following config structs to api/types
   - ContainerRmConfig
   - ContainerCommitConfig

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-12-07 09:03:25 -08:00
Sebastiaan van Stijn
5f1af8da5b Merge pull request #18449 from coolljt0725/plugins_cleanup
pkg/plugins/client.go: don't try to encode os decode if it's nil
2015-12-07 16:03:28 +01:00
Phil Estes
7d6a2e3cf5 Merge pull request #18451 from WeiZhang555/net-err
Better error message for network connect
2015-12-07 09:17:48 -05:00
Tibor Vass
1f8efc687c Merge pull request #18123 from aidanhs/aphs-fail-on-broken-tar
Ensure adding a broken tar doesn't silently fail
2015-12-07 14:38:21 +01:00
Doug Davis
2ecbc9774b Merge pull request #18463 from haoshuwei/modify-containerinspect-tocheckstatuscode
Modify docker inspect client to check statusCode instead of strings c…
2015-12-07 07:55:26 -05:00
Doug Davis
0bb4f82d2d Merge pull request #18425 from wenchma/18424-ErrorCodeNoSuchContainer
Correct the message of ErrorCodeNoSuchContainer to "No such container"
2015-12-07 07:48:04 -05:00
Tibor Vass
ce7ae7868e Merge pull request #18468 from iGusev/patch-1
added rm flag to backup/restore commands in examples
2015-12-07 13:38:16 +01:00
Tibor Vass
f7c0d0ec50 Merge pull request #18105 from mishak87/registry-improvements
Registry tiny code improvements
2015-12-07 13:35:02 +01:00
Ilya Gusev
8923c30b4a Update dockervolumes.md
added rm flag to backup/restore commands in examples

Signed-off-by: Ilya Gusev <mail@igusev.ru>
2015-12-07 15:20:10 +03:00
Vincent Demeester
6fcd33b576 Merge pull request #18462 from haoshuwei/modify-networkinspect-tocheckstatuscode
Modify docker network inspect client to check statusCode instead of s…
2015-12-07 12:48:41 +01:00
Tibor Vass
ba77a5b46f Merge pull request #18329 from liusdu/mount_err
Fix rm container error in aufs and devicemapper after daemon crash
2015-12-07 12:47:52 +01:00
Shuwei Hao
6306eb3cd3 Modify docker network inspect client to check statusCode instead of string contain
Signed-off-by: Shuwei Hao <haoshuwei24@gmail.com>
2015-12-07 10:11:46 +00:00
Joel Hansson
6480feb766 Enable ptrace in a container on apparmor below 2.9
Ubuntu 14.04 LTS is on apparmor 2.8.95.
This enables `ps` inside a container without causing
audit log entries on the host.

Signed-off-by: Joel Hansson <joel.hansson@ecraft.com>
2015-12-07 11:08:49 +01:00
Shuwei Hao
e719c9225c Modufy docker inspect client to check statusCode instead of strings contains
Signed-off-by: Shuwei Hao <haosw@cn.ibm.com>
2015-12-07 10:03:46 +00:00
Zhang Wei
8edb941b79 Better error message for network connect
Use better error message when user want to connect container with same
name to one network, this can help avoid confusion.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-12-07 17:39:13 +08:00
Sebastiaan van Stijn
91657008f2 Merge pull request #18458 from vdemeester/fix-volume-test
Fix DockerSuite.TestVolumeCliInspectMulti
2015-12-07 10:26:18 +01:00
Harald Albers
d7c9ae60e6 Improve bash completion for docker network disconnect
Signed-off-by: Harald Albers <github@albersweb.de>
2015-12-07 09:55:00 +01:00
Vincent Demeester
d125ddaeda Fix DockerSuite.TestVolumeCliInspectMulti
Use dockerCmdWithError now that it actually returns an error code.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-12-07 08:34:18 +01:00
James Turnbull
78d8df73b5 Merge pull request #18460 from thaJeztah/fix-pull-by-digest
docs: fix pull by digest example
2015-12-06 18:08:51 -06:00
Sebastiaan van Stijn
f27572312f Fix pull by digest example
Also reduced the column spacing in the output, so
that more output is visible in the documentation.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-07 00:58:46 +01:00
John Howard
c07e79fa8a Windows CI Fix: Allow bash v4
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-12-06 14:40:29 -08:00
James Turnbull
6b8d8bfbf8 Merge pull request #18454 from dcylabs/master
added albatros library
2015-12-06 15:01:55 -06:00
dcylabs
a94bede2aa added albatros library
Signed-off-by: dcylabs <dcylabs@gmail.com>
2015-12-06 20:40:42 +01:00
Sebastiaan van Stijn
715f6a135c Merge pull request #17741 from dhiltgen/pull_token
Add token pass-thru for AuthConfig
2015-12-06 16:40:06 +01:00
Vincent Demeester
32f08e06e6 Merge pull request #18349 from mrfuxi/cli-specific-errors-in-api
Remove CLI specific information for API error messages. Issue #17147
2015-12-06 16:02:40 +01:00
Sebastiaan van Stijn
5b4734aaa5 Merge pull request #17788 from haoshuwei/modify-volume-inspect-multi
Modify docker volume inspect to return existed volumes and the names of the unexsited volumes
2015-12-06 14:03:46 +01:00
Jess Frazelle
b98577af83 Merge pull request #18446 from LK4D4/vendor_pkg_dockerignore
Add vendor/pkg to .dockerignore
2015-12-05 10:06:52 -08:00
Jess Frazelle
87a614ed55 Merge pull request #17989 from jfrazelle/initial-seccomp-support
Phase 1: Initial seccomp support
2015-12-05 08:33:58 -08:00
Doug Davis
540c607972 Merge pull request #18450 from runcom/typo-ocd
integration-cli: fix test name typo
2015-12-05 09:15:51 -05:00
Antonio Murdaca
09c4643ce1 integration-cli: fix test name typo
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-05 11:42:46 +01:00
Lei Jitang
a2d348968f pkg/plugins/client.go: don't try to encode os decode if it's nil
When user call the `Call()` method, they don't always want to sent
some args or get the return value, so they use `nil` when call `Call()`
method and this will casue an error. It's better to not trying to
encode or decode if it's nil.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-12-05 02:55:50 -05:00
Alexander Morozov
9c8d6edbf1 Add vendor/pkg to .dockerignore
It's in .gitignore too, so why not

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-12-04 17:03:24 -08:00
David Calavera
82c47088db Merge pull request #18418 from aaronlehmann/no-head-requests
Avoid a HEAD request for each layer in a v2 pull
2015-12-04 14:51:54 -08:00
David Calavera
a4817b8b21 Merge pull request #18443 from tonistiigi/fix-images-delete
Fix image deletion conflicts with search
2015-12-04 14:49:18 -08:00
Tonis Tiigi
fcb083c6ac Fix image deletion conflicts with search
Removed images were not cleaned up from the
digest-set that is used for the search index.

Fixes #18437

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-04 13:15:54 -08:00
Alexander Morozov
23f00624a1 Merge pull request #18408 from tonistiigi/disable-systemd-timeout
Disable timeout for systemd
2015-12-04 12:34:19 -08:00
Jess Frazelle
a56f258c8a Merge pull request #18436 from estesp/fix-initlayer-perms
Fix init layer chown of existing dir ownership
2015-12-04 11:53:09 -08:00
Phil Estes
51b0f23127 Merge pull request #18398 from calavera/system_backend
Move docker system information to a dedicated router and backend.
2015-12-04 12:56:57 -05:00
Aaron Lehmann
39589800b4 Avoid a HEAD request for each layer in a v2 pull
We were calling Stat for each layer to get the size so we could indicate
progress, but https://github.com/docker/distribution/pull/1226 made it
possible to get the length from the GET request that Open initiates.

Saving one round-trip per layer should make pull operations slightly
faster and more robust.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-04 09:32:16 -08:00
Jess Frazelle
e29f208547 Merge pull request #18404 from jfrazelle/cleanup-maintainers
cleanup people in maintainers file
2015-12-04 09:25:43 -08:00
Phil Estes
23b771782a Fix init layer chown of existing dir ownership
This solves a bug where /etc may have pre-existing permissions from
build time, but init layer setup (reworked for user namespaces) was
assuming root ownership.  Adds a test as well to catch this situation in
the future.

Minor fix to wrong ordering of chown/close on files created during the
same initlayer setup.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-12-04 12:18:05 -05:00
André Martins
6eef5ab42d Fixed 80-docker.rules file permissions to 644
Signed-off-by: André Martins <aanm90@gmail.com>
2015-12-04 15:31:44 +00:00
Sebastiaan van Stijn
5a9bf3a3d3 Merge pull request #18434 from haugene/master
docs: fix typo in bash_history mount example
2015-12-04 16:15:36 +01:00
Kristian Haugene
655766ed95 docs: fix typo in bash_history mount example
Signed-off-by: Kristian Haugene <kristian.haugene@capgemini.com>
2015-12-04 16:09:25 +01:00
Sebastiaan van Stijn
e3fbd6922f Merge pull request #18325 from RsrchBoy/topic/newtorks
newtork -> network (minor spelling correction)
2015-12-04 14:03:55 +01:00
Sebastiaan van Stijn
c60c0c4e9b docs: markdown and textual fixups in reference/run.md
This fixes markdown formatting, and formatting of tables;

 - Our markdown engine doesn't support spanning rows, so
   re-wrapped table contents.
 - Added a CSS-styles to prevent "code" blocks in tables
   from wrapping
 - The "logging drivers" table didn't have a header
 - Aligned table borders in source code for better readability.
 - Standardize on using `-it` in stead of -i -t or -ti
 - Some markup issues
 - Some minor textual fixups

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-04 13:46:22 +01:00
Sebastiaan van Stijn
cb6a1a6042 Merge pull request #14466 from Mashimiao/add-support-blkio_throtte_bps
Add support for blkio read/write bps device
2015-12-04 12:29:58 +01:00
Sebastiaan van Stijn
605c56295f Merge pull request #18384 from Mashimiao/weight-device-docs-fix
docs: fix blkio-weight-device option args
2015-12-04 12:04:23 +01:00
Wen Cheng Ma
c424c8c32c Correct the message of ErrorCodeNoSuchContainer to "No such container"
Fixes issue #18424

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-12-04 15:00:08 +08:00
Alexander Morozov
7c1c96551d Merge pull request #18412 from aaronlehmann/runcommand-race
Fix race in RunCommandWithOutputForDuration
2015-12-03 19:35:04 -08:00
Jess Frazelle
a65502f751 Merge pull request #18413 from jfrazelle/update-go-version
update go version
2015-12-03 18:18:47 -08:00
Doug Davis
c80d03db77 Merge pull request #18409 from tonistiigi/fix-sha-prefix-inspect
Vendor distribution and fix inspect by sha256 prefix
2015-12-03 20:59:47 -05:00
Ma Shimiao
cc0e407e17 docs: fix weight-deivce option args
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-12-04 09:28:35 +08:00
Ma Shimiao
3f15a055e5 Add support for blkio read/write bps device
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-12-04 09:26:03 +08:00
Jessica Frazelle
19e5c01230 remove parallel we no longer use it
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 17:04:01 -08:00
Jessica Frazelle
b7b707af2e update go version
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:37:13 -08:00
Alexander Morozov
4e6bea5964 Merge pull request #18411 from aaronlehmann/unit-test-timing
Adjust TestDockerCmdWithTimeout timeout to improve reliability
2015-12-03 16:34:36 -08:00
Aaron Lehmann
2704fd9156 Fix race in RunCommandWithOutputForDuration
This function was starting a goroutine that modifies one of its return
values. The intent is for the goroutine to only influence the return
value when it's causing the function to return, but it's racy and can
also modify the return value when the function is returning due to the
timeout. Fix the goroutine to not modify return values directly.

Also, give the channel a buffer so that the goroutine doesn't block
forever after a timeout.

Fixes #18305

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-03 16:34:01 -08:00
Jessica Frazelle
831af89991 add docs
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:30:52 -08:00
Jessica Frazelle
ec6d3392f1 hacky workaround for dockerinit static binary needing libseccomp.a for debs and rpms
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:30:51 -08:00
Jessica Frazelle
cde9e8bc83 update packagers.md and kernel config check
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:30:50 -08:00
Jessica Frazelle
ae76f7e23e update bash completion for seccomp
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:30:49 -08:00
Jessica Frazelle
ed5853de40 update hack/vendor.sh scripts and run vendor
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:30:48 -08:00
Jessica Frazelle
6707f4b9b6 inital seccomp support
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:30:44 -08:00
Jessica Frazelle
255004ef33 update debs/rpms for seccomp
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:20:05 -08:00
Jessica Frazelle
d616a09763 dockerfile update for seccomp
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 16:20:03 -08:00
Aaron Lehmann
13d768b8ee Adjust TestDockerCmdWithTimeout timeout to improve reliability
I saw a failure of TestDockerCmdWithTimeout. This test starts a command
that produces output after 10 ms, but uses a 5 ms timeout, so normally
the command will be killed before the output. The time intervals are so
small that the timeout may not reliably trigger before the output, which
can cause the test to fail.

This commit changes the test to only fail if the process is still alive
after 10 seconds. This means the test will confirm that the timeouts are
happening, but not attempt to gauge that the timeouts are happening
within milliseconds of when they are expected (which can't be done
reliably).

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-12-03 14:42:32 -08:00
Michael Crosby
2856a30482 Merge pull request #18402 from Microsoft/jjh/timeout
Windows CI Fix: Timeout change
2015-12-03 14:33:09 -08:00
Michael Crosby
168b490062 Merge pull request #18347 from tiborvass/container_package
Move Container to its own package (carry of 17969)
2015-12-03 14:10:16 -08:00
Tonis Tiigi
61d6240069 Add test for inspect with a sha256 prefix
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-03 14:06:30 -08:00
Tonis Tiigi
53cd579b6e vendor: bump distribution to 568bf038af6d65b376165d02886b1c7fcaef1f61
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-03 13:36:31 -08:00
David Calavera
29c69ce2a9 Merge pull request #18374 from calavera/volume_inspect_exit
Return error code when `volume inspect` fails with a template.
2015-12-03 13:31:47 -08:00
Phil Estes
4d849619d4 Merge pull request #17481 from vdemeester/17446-network-inspect-format
Add format flag to network inspect
2015-12-03 16:16:04 -05:00
Tonis Tiigi
eff5e6498f Disable timeout for systemd
With content addressability update starting upgraded
daemon for the first time can take a long time if
graph dir was not prepared with a migration tool before.
This avoids systemd timeouts while the migration is
taking place.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-03 13:15:31 -08:00
John Howard
2097e7fcee Windows CI Fix: Timeout change
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-12-03 12:45:56 -08:00
Jess Frazelle
94d5459a0c Merge pull request #18397 from Microsoft/jjh/fix-windows-ci
Fix broken Windows CI
2015-12-03 12:41:19 -08:00
Jessica Frazelle
b97110dda7 cleanup people in maintainers file
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-03 12:14:37 -08:00
Daniel Hiltgen
8dce8e9901 Add token pass-thru for AuthConfig
This change allows API clients to retrieve an authentication token from
a registry, and then pass that token directly to the API.

Example usage:

    REPO_USER=dhiltgen
    read -s PASSWORD
    REPO=privateorg/repo
    AUTH_URL=https://auth.docker.io/token
    TOKEN=$(curl -s -u "${REPO_USER}:${PASSWORD}" "${AUTH_URL}?scope=repository:${REPO}:pull&service=registry.docker.io" |
        jq -r ".token")

    HEADER=$(echo "{\"registrytoken\":\"${TOKEN}\"}"|base64 -w 0 )
    curl -s -D - -H "X-Registry-Auth: ${HEADER}" -X POST "http://localhost:2376/images/create?fromImage=${REPO}"

Signed-off-by: Daniel Hiltgen <daniel.hiltgen@docker.com>
2015-12-03 11:40:27 -08:00
Tibor Vass
5bb4d0d9ea Move DisconnectFromNetwork back to daemon/
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-03 20:10:27 +01:00
Sebastiaan van Stijn
2f9b541b89 Merge pull request #18394 from thaJeztah/carry-17869-add-volume-driver
[Carry 17869] Add docs and man page entry for --volume-driver
2015-12-03 20:06:18 +01:00
David Calavera
867f432985 Move docker system information to a dedicated router and backend.
Because I like the name `system` better than `local` :)

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-03 13:38:56 -05:00
David Calavera
b9d30280f6 Return error code when volume inspect fails with a template.
Following `docker inspect` conventions:

- Keep partial info in a buffer to not print incomplete template outputs.
- Break execution when template parsing or decoding fail.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-03 13:22:55 -05:00
John Howard
c10311bc9a Fix broken Windows CI
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-12-03 10:12:11 -08:00
Alexander Morozov
4b55765c11 Use /docker as cgroup parent instead of docker
It means that containers will be created under root cgroup and not under
daemon cgroup.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-12-03 08:42:45 -08:00
Phil Estes
d9755df2b3 Merge pull request #18391 from runcom/remove-daemon-config-func
daemon: remove private func config()
2015-12-03 11:42:31 -05:00
David Calavera
6bb0d1816a Move Container to its own package.
So other packages don't need to import the daemon package when they
want to use this struct.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-12-03 17:39:49 +01:00
Tibor Vass
33ab2bb52c Merge pull request #18266 from calavera/events_pub_sub
Event PubSub topics + linear filtering.
2015-12-03 17:11:40 +01:00
Karol Duleba
74900edbf8 Remove CLI specific information for API error messages. Issue #17147
Signed-off-by: Karol Duleba <mr.fuxi@gmail.com>
2015-12-03 15:23:07 +00:00
Sebastiaan van Stijn
a2120e5ba3 Address review comments.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-03 16:07:54 +01:00
Ben Firshman
fe3ec3f77f Add docs and man page entry for --volume-driver
Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2015-12-03 16:02:20 +01:00
Wen Cheng Ma
a947377297 Update the "Manually network" section with detailed info in container-basics
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-12-03 22:32:02 +08:00
Liu Hua
451f751773 fix Put without Get in aufs
this Patch is ported from 3916561619

Signed-off-by: Liu Hua <sdu.liu@huawei.com>
2015-12-03 22:22:25 +08:00
Liu Hua
f7bdb97357 Fix Put without Get in devicemapper
Signed-off-by: Liu Hua <sdu.liu@huawei.com>
2015-12-03 22:22:25 +08:00
Antonio Murdaca
3662f58083 daemon: remove private func config()
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-03 11:46:53 +01:00
Alexander Morozov
1475f567cb Merge pull request #18375 from vbatts/tar-split_update
vendor: update tar-split to v0.9.11
2015-12-02 20:25:07 -08:00
David Calavera
580534ba2e Merge pull request #18231 from mqliang/resp
rename req to resp
2015-12-02 14:58:29 -08:00
David Calavera
434d2e8745 Add PubSub topics.
A TopicFunc is an interface to let the pubisher decide whether it needs
to send a message to a subscriber or not. It returns true if the
publisher must send the message and false otherwise.

Users of the pubsub package can create a subscriber with a topic
function by calling `pubsub.SubscribeTopic`.

Message delivery has also been modified to use concurrent channels per
subscriber. That way, topic verification and message delivery is not
o(N+M) anymore, based on the number of subscribers and topic verification
complexity.

Using pubsub topics, the API stops controlling the message delivery,
delegating that function to a topic generated with the filtering
provided by the user. The publisher sends every message to the
subscriber if there is no filter, but the api doesn't have to select
messages to return anymore.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-02 16:43:49 -05:00
Sebastiaan van Stijn
ee3e07d359 Merge pull request #18301 from wenchma/doc_update_for_net
Add NETWORK_NAME_or_ID value for --net= option
2015-12-02 22:36:01 +01:00
Vincent Demeester
295c27388d Add format flag to network inspect
…for consistency as docker inspect and docker volume inspect supports it too

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-12-02 22:32:10 +01:00
Sebastiaan van Stijn
6deec021e5 Merge pull request #18309 from WeiZhang555/time
Consolidate time format for API
2015-12-02 22:28:28 +01:00
Tonis Tiigi
909821f514 Update storage docs for content-addressability
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-02 13:06:02 -08:00
Alexander Morozov
61773e5cbf Merge pull request #18376 from jfrazelle/fix-default-shm-size
fix default shm size in test
2015-12-02 12:54:07 -08:00
Sebastiaan van Stijn
d410cd4751 Merge pull request #18366 from thaJeztah/carry-17293-add-examples-in-search
Carry 17293 add examples in search
2015-12-02 21:52:52 +01:00
Jessica Frazelle
4354b348ad fix default shm size in test
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-02 12:43:51 -08:00
Vincent Batts
919104e6bb vendor: update tar-split to v0.9.11
For optimizations.
https://github.com/docker/docker/issues/18370#issuecomment-161399901

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2015-12-02 15:34:12 -05:00
David Calavera
aa2ca5d93c Merge pull request #18371 from sallyom/dontReturnNonError
don't return error if can't delete non-existing container
2015-12-02 11:59:50 -08:00
David Calavera
f8364c013d Merge pull request #18369 from LK4D4/misleading_rm
daemon/delete.go: use less confusing naming of functions
2015-12-02 11:57:18 -08:00
Arnaud Porterie
8f1f53f735 Merge pull request #16277 from runcom/add-oom-score-adj
Add OomScoreAdj
2015-12-02 11:49:51 -08:00
moxiegirl
f4176f9169 Merge pull request #18367 from thaJeztah/zelahi-17586-systemd-documentation
[carry] configuring DNS options on systemd
2015-12-02 11:39:18 -08:00
Brian Goff
f411b101ac Merge pull request #18285 from hqhq/hq_fix_swappiness
Set default MemorySwappiness when adapt
2015-12-02 14:25:08 -05:00
David Calavera
d4be46def4 Merge pull request #13587 from rhatdan/volume-tmpfs
Add tmpfs as a valid volume source command.
2015-12-02 11:16:49 -08:00
Alexander Morozov
828f63f1ab daemon/delete.go: use less confusing naming of functions
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-12-02 11:10:14 -08:00
Sally O'Malley
bfa5027e96 don't return error if can't delete non-existing container
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-12-02 13:48:59 -05:00
David Calavera
10b30cf09c Merge pull request #18240 from pospispa/Improvement-of-docker-top-Man-Page
Improvement of docker top Man Page
2015-12-02 10:29:00 -08:00
Jess Frazelle
e274db94dd Merge pull request #18368 from brahmaroutu/gccgo_fix
fix the Dockerfile.gccgo for new dependency
2015-12-02 10:03:29 -08:00
Jess Frazelle
289251d088 Merge pull request #17769 from tianon/vendor-windows
Fix Windows support in .vendor-helpers.sh
2015-12-02 10:02:08 -08:00
Pavel Pospisil
1edc410e41 Improvement of docker top Man Page
Some users expect that the `docker top $CONT` command displays information from the inside container perspective.
They expect that the `docker top $CONT` command displays same information as the `docker exec $CONT ps -ef` command. But it does not.

That's why the `docker top` man page shall explicitly state that the `docker top $CONT` displays information from the host's point of view.

Signed-off-by: Pavel Pospisil <pospispa@gmail.com>
2015-12-02 18:54:52 +01:00
Srini Brahmaroutu
50814a2bc0 fix the Dockerfile.gccgo for new dependency
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-12-02 16:44:07 +00:00
Sebastiaan van Stijn
0f2986cee5 fix minor markup issues
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-02 17:21:06 +01:00
Zuhayr Elahi
0fb1845e95 Modified ubuntulinux.md for instructions to configure DNS for Ubuntu 15.04 or greater
modified note to provide a link for installation instructions on Ubuntu 15.04 or above

cleaned up typos for ubuntulinux.md

Signed-off-by: Zuhayr Elahi <elahi.zuhayr@gmail.com>
2015-12-02 17:21:05 +01:00
Jess Frazelle
fcccf2dae4 Merge pull request #18350 from duglin/Issue9798a
Deprecate -f flag from docker tag
2015-12-02 08:16:09 -08:00
Jess Frazelle
d9163e088e Merge pull request #18365 from estesp/clarify-error-messages
Differentiate integration test error messages
2015-12-02 08:14:53 -08:00
Jess Frazelle
e07769bc5a Merge pull request #18351 from LK4D4/fix_rm_race
Fix race between two ContainerRm
2015-12-02 08:13:52 -08:00
David Calavera
93d1dd8036 Make filtering a linear operation.
Improves the current filtering implementation complixity.
Currently, the best case is O(N) and worst case O(N^2) for key-value filtering.
In the new implementation, the best case is O(1) and worst case O(N), again for key-value filtering.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-02 11:12:42 -05:00
Sebastiaan van Stijn
920a261839 update order and address review notes
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-02 16:38:51 +01:00
gwx296173
42d4eabeb2 add examples in search.md
Signed-off-by: gwx296173 <gaojing3@huawei.com>
2015-12-02 16:38:51 +01:00
Nalin Dahyabhai
800505729b Use -z,muldefs on arm,x86
Assume that the linker can make sense of us passing in the -z,muldefs
option to tell it to ignore symbol-multiply-defined errors triggered by
https://github.com/golang/go/issues/9510.  We should be able to stop
doing this once we move to Go 1.6.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2015-12-02 10:30:13 -05:00
Nalin Dahyabhai
0ca6d77e6e Revert "prevent journald from being built on ARM"
This reverts commit 6f6f10a75f, so that we
can apply a different workaround.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2015-12-02 10:30:13 -05:00
Phil Estes
3241b564a5 Differentiate integration test error messages
Makes it easier to debug in the future given three different docker run
executions were all outputting the same error string.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-12-02 10:25:00 -05:00
Sebastiaan van Stijn
8a350c5c7b Merge pull request #17822 from WeiZhang555/docs-isolation
Add docs for option `--isolation`
2015-12-02 16:18:15 +01:00
Dan Walsh
b3e527dfd2 This patch adds --tmpfs as a option for mounting tmpfs on directories
It will Tar up contents of child directory onto tmpfs if mounted over

This patch will use the new PreMount and PostMount hooks to "tar"
up the contents of the base image on top of tmpfs mount points.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-12-02 10:06:59 -05:00
Wen Cheng Ma
08328cb703 Add NETWORK_NAME_or_ID value for --net= option
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-12-02 22:49:35 +08:00
Zhang Wei
9daca1222a Consolidate time format for API
Consolidate all the API to same time format: RFC3339, and it will be
client's responsibility to present it in more user friendly way.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-12-02 22:40:18 +08:00
Zhang Wei
38ec5d86a3 Add docs for option --isolation
Add docs for `run`/`create`/`build` command option `isolation`

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-12-02 22:24:33 +08:00
Phil Estes
db6c4c99d8 Merge pull request #18340 from runcom/move-defshmsize-to-daemon
Move defaultSHMSize in daemon pkg
2015-12-02 09:18:21 -05:00
mqliang
519236b478 rename req to resp
Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-12-02 20:38:54 +08:00
Antonio Murdaca
2969abc6c5 Move defaultSHMSize in daemon pkg
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-02 10:28:10 +01:00
Alexander Morozov
4d1007d75c Fix race between two ContainerRm
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-12-01 20:13:18 -08:00
Doug Davis
8d4fe141c4 Deprecate -f flag from docker tag
Closes #9798

@maintainers please note that this is a change to the UX. We no longer
require the -f flag on `docker tag` to move a tag from an existing image.
However, this does make us more consistent across our commands,
see https://github.com/docker/docker/issues/9798 for the history.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-12-01 19:53:49 -08:00
Qiang Huang
4089b4e440 Set default MemorySwappiness when adapt
It makes the inspect result consistent between cli and REST api
when MemorySwappiness is not set.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-02 10:53:52 +08:00
Qiang Huang
1415f55cc0 Move security opt adaption to adapt function
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-12-02 08:26:11 +08:00
Alexander Morozov
e75da4b6ff Merge pull request #18352 from jfrazelle/update-go-md2man
update go-md2man because code.google.com needs to go away
2015-12-01 16:04:24 -08:00
Jessica Frazelle
6842c906c4 update go-md2man because code.google.com needs to go away
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-01 16:02:40 -08:00
Phil Estes
da0c9286a9 Merge pull request #18315 from jfrazelle/change-frozen-image-v2
update download-frozen-image.sh to v2 registry
2015-12-01 17:12:00 -05:00
Alexander Morozov
3962fe5d7b Merge pull request #18343 from calavera/unify_debug_logging
[Carry 18260] Remove info logging from every api call.
2015-12-01 13:42:57 -08:00
Chris Weyl
8fd2630d01 newtork -> network (minor spelling correction)
...yeah, that was bugging me. :)

Signed-off-by: Chris Weyl <cweyl@alumni.drew.edu>
2015-12-01 15:26:36 -06:00
Alexander Morozov
5efb37616f Merge pull request #18308 from mountkin/delete-graphdb-later
fix 2 corner cases in container create cleanup and container removal
2015-12-01 13:19:59 -08:00
Jessica Frazelle
359d0c247f update download-frozen-image.sh to v2 registry
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-01 13:16:42 -08:00
David Calavera
82323294db Unify both debug logging middlewares.
We can remove one function from the stack by injecting the middleware
only when logging in enabled and the level is debug.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-01 14:33:33 -05:00
moxiegirl
f199a4bad6 Merge pull request #18341 from thaJeztah/fix-broken-link
docs: fix broken link to 1.7 Hub API
2015-12-01 09:46:45 -08:00
Shijiang Wei
4953ea1eae fix 2 corner cases in container create cleanup and container removal
- avoid empty Names in container list API when fails to remove
    a container
  - avoid dead containers when fails to create a container

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-12-02 01:37:50 +08:00
Sebastiaan van Stijn
09742bcd69 docs: fix broken link to 1.7 Hub API
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-01 17:57:12 +01:00
Phil Estes
c6f1feb07b Merge pull request #18321 from icecrime/maintainers_rework
MAINTAINERS file cleanup
2015-12-01 11:48:22 -05:00
Brian Goff
7b23976a83 Merge pull request #18261 from runcom/fix-shm-size
fix shm size handling
2015-12-01 11:47:27 -05:00
Arnaud Porterie
bd2d53af2c Update core maintainers, remove duplicates
Move cpuguy83, duglin, tianon to core maintainers to reflect reality.

Remove james (duplicate for jamtur01) and add [people.jamtur01] section.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-12-01 07:56:19 -08:00
Antonio Murdaca
ef1d410b02 fix shm size handling
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-01 16:29:40 +01:00
Phil Estes
c8891158bd Merge pull request #18310 from rhvgoyal/log-fs-creation
devmapper: Log start and end of filesystem creation
2015-12-01 09:49:13 -05:00
Sebastiaan van Stijn
c6a2bce919 Merge pull request #18331 from runcom/fix-typo
daemon: daemon_experimental.go: fix typo
2015-12-01 15:48:10 +01:00
Sebastiaan van Stijn
27bfa93b69 Merge pull request #18330 from thaJeztah/re-enable-api-v1.22
docs: add API v1.22 to the list again
2015-12-01 14:18:53 +01:00
Vivek Goyal
a489e685c0 devmapper: Log start and end of filesystem creation
ext4 filesystem creation can take a long time on 100G thin device and
systemd might time out and kill docker service. Often user is left thinking
why docker is taking so long and logs don't give any hint. Log an info
message in journal for start and end of filesystem creation. That way
a user can look at logs and figure out that filesystem creation is
taking long time.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-12-01 13:05:46 +00:00
Tibor Vass
c247b3d104 Merge pull request #18318 from calavera/fix_dns_setting_on_hostconfig_start
Make sure container start doesn't make the DNS fields nil.
2015-12-01 12:43:16 +01:00
Antonio Murdaca
4c8088268c daemon: daemon_experimental.go: fix typo
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-12-01 12:03:50 +01:00
Sebastiaan van Stijn
3ddd21b8b6 docs: add API v1.22 to the list again
The 1.22 API was temporarily removed in e4d86c2c38
to prevent it showing up in the 1.9 documentation.

This reverts that change and tweaks the aligning
of the table headers in Markdown source.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-12-01 11:59:45 +01:00
Vincent Demeester
657085dfdb Merge pull request #18198 from aditirajagopal/16756-docker_api_inspect_test
Checkers on docker_api_inspect_test.go
2015-12-01 09:56:01 +01:00
David Calavera
d7117a1b71 Make sure container start doesn't make the DNS fields nil.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-30 22:46:31 -05:00
Shuwei Hao
6295345005 Modify docker volume inspect to return existed volumes
Signed-off-by: Shuwei Hao <haoshuwei24@gmail.com>
2015-12-01 01:43:02 +00:00
David Calavera
1ddd4b1dcc Merge pull request #18320 from jfrazelle/add-license-selinux
add licence to rpm
2015-11-30 16:20:08 -08:00
Jessica Frazelle
09d448f924 add licence to rpm
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-30 15:19:31 -08:00
David Calavera
94997e56a9 Merge pull request #18211 from Djelibeybi/master
Updated LICENSE file
2015-11-30 14:37:29 -08:00
Aditi Rajagopal
85e5b05018 Checkers on docker_api_inspect_test.go
Applying #16756 to integration-cli/docker_api_inspect_test.go

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-11-30 16:23:46 -06:00
David Calavera
dc9f9d9445 Merge pull request #18216 from aditirajagopal/16756-docker_api_containers_test
Checkers on docker_api_containers_test
2015-11-30 14:04:54 -08:00
Tianon Gravi
91c653d73a Merge pull request #18317 from jfrazelle/fix-gopath
fix gopath when building debs
2015-11-30 14:04:41 -08:00
Arnaud Porterie
29dbce8357 MAINTAINERS file cleanup
First phase in cleaning up the MAINTAINERS file to make it better
reflect reality by:

- Removing "Operators" that have no practical role.
- Removing "Subsystems" as they often are separate repositories with
  their own MAINTAINERS files.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2015-11-30 14:00:12 -08:00
Jessica Frazelle
4935f7f500 fix gopath when building debs
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-30 13:44:59 -08:00
Aditi Rajagopal
4bdf957c26 Checkers on docker_api_containers_test
Applying #16756 to integration-cli/docker_api_containers_test.go

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-11-30 14:31:48 -06:00
David Calavera
c84f5dfd74 Merge pull request #17438 from pmalmgren/17037-systemd226-cgroup
Fix docker status incorrectly reports containerized
2015-11-30 11:47:16 -08:00
Phil Estes
2a354790a6 Merge pull request #18241 from LK4D4/remove_listenbuffer
Remove listenbuffer
2015-11-30 14:37:14 -05:00
Jess Frazelle
e852959fad Merge pull request #18178 from jfrazelle/apparmor-we-meet-again
Fix docker-default profile handing signals
2015-11-30 11:34:34 -08:00
David Calavera
54733abba3 Merge pull request #18148 from aditirajagopal/16756-docker_api_info_test
Checkers on integration-cli/docker_api_info_test
2015-11-30 11:06:15 -08:00
Alexandre Beslic
0f0cf267e8 Merge pull request #18204 from mavenugo/dhb
Configurable discovery ttl and heartbeat timer
2015-11-30 11:00:53 -08:00
Jessica Frazelle
f8db9a09e0 check version for docker-default aa profile
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-30 10:18:12 -08:00
David Calavera
221d979e7b Merge pull request #18296 from jfrazelle/add-james
add james golick to names generator
2015-11-30 10:00:21 -08:00
Jess Frazelle
360a106511 Merge pull request #18303 from runcom/lxc-leftover
daemon: remove sysInitPath, lxc leftover
2015-11-30 09:37:05 -08:00
Alexander Morozov
377e1d75f9 Merge pull request #18239 from jfrazelle/17783-fix-regex
Fix parsing of apparmor pcre syntax
2015-11-30 09:15:25 -08:00
Alexander Morozov
a0251b2bbf Remove listenbuffer package
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-30 09:04:59 -08:00
Alexander Morozov
ca5795cef8 Remove usage of listenbuffer package
It actually adds nothing to queuing requests.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-30 09:04:55 -08:00
Vincent Demeester
7bef428110 Merge pull request #18306 from runcom/add-test-suffix
integration-cli: add _test suffix to test file
2015-11-30 17:02:15 +01:00
Vincent Batts
a26accfb5d Merge pull request #18226 from duglin/Issue18170
Fix for zero-sized layers
2015-11-30 09:57:37 -06:00
Phil Estes
f3ff09f578 Merge pull request #18272 from hqhq/hq_fix_kernel_memory
Fix kernel memory limit
2015-11-30 10:01:45 -05:00
Antonio Murdaca
f187bdbb9b Merge pull request #18302 from WeiZhang555/lint-auto
Golint auto-generated file
2015-11-30 12:32:23 +01:00
Antonio Murdaca
1f0f41e8d7 integration-cli: add _test suffix to test file
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-30 11:33:57 +01:00
Antonio Murdaca
d3af7f283d Add OomScoreAdj to configure container oom killer preferences
libcontainer v0.0.4 introduces setting `/proc/self/oom_score_adj` to
better tune oom killing preferences for container process. This patch
simply integrates OomScoreAdj libcontainer's config option and adjust
the cli with this new option.

Signed-off-by: Antonio Murdaca <amurdaca@redhat.com>
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-30 11:19:04 +01:00
Antonio Murdaca
1b726b29b2 daemon: remove sysInitPath, lxc leftover
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-30 10:04:13 +01:00
Zhang Wei
a7b73e57bc Golint auto-generated file
Fix auto-generation script to golint auto-generated files.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-30 16:34:07 +08:00
Qiang Huang
0a426c47c8 Update cgroup integration tests
Cgroup integtaion tests should cover:
- docker can run sucessfully with these options
- these cgroup options are set to HostConfig as expected
- these cgroup options are really set to cgroup files as expected
- other cases (wrong value, combinations etc..)

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-11-30 08:40:47 +08:00
Jessica Frazelle
bf66deeb08 add james golick to names generator
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-29 10:40:12 -08:00
Sebastiaan van Stijn
dd25d2c3db Merge pull request #18281 from runcom/18199-followup
integration-cli: docker_cli_pull_local_test.go: remove not needed Commentf(s)
2015-11-28 13:03:09 +01:00
Qiang Huang
dd7b4fd651 Fix kernel memory limit
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-11-28 09:47:25 +08:00
Antonio Murdaca
4c3c3fedf8 integration-cli: docker_cli_pull_local_test.go: remove not needed Commentf(s)
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-27 17:10:09 +01:00
Antonio Murdaca
a415b0c220 Merge pull request #18199 from aditirajagopal/16756-docker_cli_pull_local_test
Checkers on docker_cli_pull_local_test.go
2015-11-27 17:04:28 +01:00
Alexander Morozov
b8c21783f0 Merge pull request #17108 from coolljt0725/fix_remove_image
Fix docker rmi trying to remove a being used parent
2015-11-26 12:21:30 -08:00
Alexander Morozov
88aca3610f Merge pull request #18232 from mqliang/defer
move defer statement for readability
2015-11-26 12:20:55 -08:00
Alexander Morozov
0b5a28590f Merge pull request #18106 from runcom/bump-runc-libcontainer
vendor: bump libcontainer and its deps
2015-11-26 12:15:48 -08:00
Antonio Murdaca
65900d7603 vendor: bump deps
bump runc/libcontainer to v0.0.5
bump runc deps to latest
bump docker/libnetwork to 04cc1fa0a89f8c407b7be8cab883d4b17531ea7d

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-26 16:29:59 +01:00
Vincent Demeester
2adeef9d1d Merge pull request #18262 from runcom/add-line
hack: make: .go-autogen: add blank line after build tag
2015-11-26 16:03:23 +01:00
Antonio Murdaca
a1733c6575 hack: make: .go-autogen: add blank line after build tag
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-26 13:16:39 +01:00
Sebastiaan van Stijn
9be2eea415 Merge pull request #18259 from SvenDowideit/move-to-docs-base-latest
Use FROM docs/base:latest again
2015-11-26 13:12:41 +01:00
Dan Walsh
cf4fb15088 The loggingMiddleware function is adding lots of messages to the log
When tools like kubernetes and cockpit are talking to the docker daemon
actively, we are seeing large number of log messages that look like debug
information.

For example

docker info adds the following line to journald.

Nov 26 07:09:23 dhcp-10-19-62-196.boston.devel.redhat.com docker[32686]: time="2015-11-26T07:09:23.124503455-05:00" level=info msg="GET /v1.22/info"

We think this should be Debug level not Info level.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-11-26 07:10:38 -05:00
Arnaud Porterie
bb11900393 Merge pull request #18220 from mqliang/temvarible
remove unnecessary temporary variable
2015-11-26 11:40:02 +01:00
Sven Dowideit
ce5177cf4b Use FROM docs/base:latest again
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-11-26 20:20:46 +10:00
Brian Goff
9ebf7dfae3 Merge pull request #18252 from aaronlehmann/tarstream-readcloser
Make TarStream return an io.ReadCloser
2015-11-25 21:35:21 -05:00
mqliang
478b773fe5 remove unnecessary temporary variable
Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-11-26 10:25:55 +08:00
Doug Davis
7bb9fc415a Fix for zero-sized layers
Moved a defer up to a better spot.

Fixed TestUntarPathWithInvalidDest to actually fail for the right reason

Closes #18170

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-11-25 18:02:03 -08:00
Lei Jitang
0bbc9f1d2d Fix docker rmi trying to remove a being used parent
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-11-26 09:57:20 +08:00
David Calavera
3e51aff852 Merge pull request #18234 from thaJeztah/revert-vendor-changes
docs: revert README changes in vendored files
2015-11-25 17:37:04 -08:00
David Calavera
8339c892e8 Merge pull request #18245 from tonistiigi/tagstore-digest-adder
Validate adding digests to tagstore with go types
2015-11-25 17:36:33 -08:00
Aaron Lehmann
21278efaee Make TarStream return an io.ReadCloser
Currently, the resources associated with the io.Reader returned by
TarStream are only freed when it is read until EOF. This means that
partial uploads or exports (for example, in the case of a full disk or
severed connection) can leak a goroutine and open file. This commit
changes TarStream to return an io.ReadCloser. Resources are freed when
Close is called.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-25 16:39:54 -08:00
Tonis Tiigi
20e759ab56 Validate adding digests to tagstore with go types
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-25 15:06:51 -08:00
Jess Frazelle
49088b0b89 Merge pull request #18243 from jfrazelle/fix-test
fix consistetly failing TestContainerRestartSuccess
2015-11-25 17:07:17 -05:00
Jessica Frazelle
f91115e3a2 fix consistetly failing TestContainerRestartSuccess on windows it looks up pids and does unixy things
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-25 13:04:59 -08:00
Jessica Frazelle
68c9ebdf1f Remove ipc rule in docker-engine apparmor profile
On a ubuntu 15.04 machine with apparmor_parser version 2.10 I get
```
Syntax Error: Unknown line found in file:
/etc/apparmor.d/docker-engine line: 26
```
when running `aa-complain /etc/apparmor.d/docker-engine`.

It's super weird because ipc is documented in the apparmor manual, but it
doesnt seem to be working at all. Tested on a few servers.

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-25 11:32:00 -08:00
Michael Crosby
3422858653 Merge pull request #18213 from crawford/18212-fix-api-server
Revert "Return listenbuffer behavior"
2015-11-25 10:49:31 -08:00
Jessica Frazelle
c0f7fdc025 Fix parsing of apparmor pcre syntax
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-25 10:38:18 -08:00
Michal Gebauer
bcd0f0cdc4 Check if CertsDir is not empty
Signed-off-by: Michal Gebauer <mishak@mishak.net>
2015-11-25 18:12:19 +01:00
David Calavera
ad67f324cc Merge pull request #17799 from runcom/deprecate-hc-cont-start
Deprecate HostConfig at API container start
2015-11-25 09:11:12 -08:00
Sebastiaan van Stijn
9bd5fd8926 Merge pull request #18223 from thaJeztah/fix-table-markup
Fix markup for markdown table
2015-11-25 16:26:53 +01:00
Brian Goff
1beb450fa6 Merge pull request #18215 from mountkin/test-for-18181
add a test to make sure port is allowed in images filter
2015-11-25 10:14:09 -05:00
Sebastiaan van Stijn
aa4fa98ed7 Merge pull request #18233 from moxiegirl/carry-17231
Moving prerequisite from #17231
2015-11-25 16:12:05 +01:00
Sebastiaan van Stijn
dd3634b3c1 revert README changes in vendored files
PR https://github.com/docker/docker/pull/17986
inadvertently included changes to some vendored files.

This reverts those changes.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-25 16:07:43 +01:00
Vincent Demeester
1892556375 Merge pull request #18209 from martingkelly/18207-deb-multiarch
install.sh: fix for multiarch deb/ubuntu
2015-11-25 16:02:36 +01:00
moxiegirl
afaf288316 Merge pull request #17926 from HackToday/15896-fix-volume-options
Fixing the volume options doc
2015-11-25 06:57:05 -08:00
Vincent Demeester
06e4da9c5d Merge pull request #18228 from bboreham/existent-spelling
Fix spelling 'non-existant' -> 'non-existent'
2015-11-25 15:52:17 +01:00
Madhu Venugopal
2efdb8cbf5 Make discovery ttl and heartbeat configurable
Docker daemon uses kv-store as the host-discovery backend.
Discovery module tracks the liveness of a node through a simple
keepalive mechanism.  The keepalive mechanism depends on every
node performing heartbeat by registering itself with the discovery
module (via KV-Store Put operation). And for every Put operation,
the discovery module in all other nodes will receive a Watch
notification. That keeps the node alive.
Any node that fails to register itself within the TTL timer is
considered dead and removed from the discovery database.

The default timer (heartbeat = 20 seconds & ttl = 60 seconds)
works fine for small clusters.  But for large clusters, these
default timers are extremely aggressive and that causes high CPU
& most of the processing is spent managing the node discovery
and that impacts normal daemon operation.

Hence we need a way to make the discovery ttl and heartbeat
configurable.  As the cluster size grows, the user can change
these timers to make sure the daemon scales.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-11-25 06:51:55 -08:00
Mary Anthony
20f1a7b496 Moving prerquisite from #17231
Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-25 06:51:23 -08:00
moxiegirl
1c3e4c5b9f Merge pull request #17231 from zelahi/9745-addapparmor-note
Adding note about apparmor install on Ubuntu
2015-11-25 06:45:42 -08:00
mqliang
302325a3aa move defer statement for readability
Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-11-25 22:33:15 +08:00
Bryan Boreham
899caaca9c Fix spelling of 'existent'
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2015-11-25 13:45:37 +00:00
James Turnbull
9cbfa7b00b Merge pull request #18227 from thaJeztah/fix-api-changes
docs: move API changes to the correct API version
2015-11-25 08:20:13 -05:00
Sebastiaan van Stijn
a06d5273b3 docs: move API changes to the correct API version
These changes were made as part of https://github.com/docker/docker/pull/17478
but inadvertently added to the v1.21 API version.

Also added a short description to the API changelog.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-25 14:10:18 +01:00
James Turnbull
e6a491fa8f Merge pull request #18225 from thaJeztah/fixup-tabs
docs: fixups for plugin drivers in docker info
2015-11-25 08:03:35 -05:00
Sebastiaan van Stijn
0a7e45e95c docs: fixups for plugin drivers in docker info
Plugin drivers were added to docker info in
https://github.com/docker/docker/pull/17300

but not added to the example output in the online
docs.

Also fixed mixed tabs/spaces in the API documentation.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-25 13:54:54 +01:00
Sebastiaan van Stijn
bfdd94b0a8 Fix markup for markdown table
Our tooling used to convert Markdown to HTML doesn't
properly handle '|' symbols embeded in code blocks
inside a table.

Changed the table to a plain HTML table as a workaround.

Also fixed indentation levels of two code examples.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-25 12:38:15 +01:00
Kai Qiang Wu(Kennan)
41a36529a7 Fixing the volume options doc
Fixes #15896
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2015-11-25 03:56:55 -06:00
Zuhayr Elahi
0480da4d8c 1. Adding note about apparmor install on Ubuntu
2. modified page to remove note for apparmor and added it as a requirement for installing it on ubuntu
3. moved note to under prerequisites section

Signed-off-by: Zuhayr Elahi <elahi.zuhayr@gmail.com>
2015-11-24 22:53:14 -08:00
Shijiang Wei
8819b530db add a test to make sure port is allowed in images filter
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-11-25 10:46:23 +08:00
Alex Crawford
a8b84cd8fb Revert "Return listenbuffer behavior"
This reverts commit 281a48d092.

Signed-off-by: Alex Crawford <alex.crawford@coreos.com>
2015-11-24 18:32:57 -08:00
Martin Kelly
3e5ac74241 install.sh: fix for multiarch deb/ubuntu
Currently, the Docker repos will trigger apt-get errors on a
multiarch-configured deb system because the repos don't contain all
architectures. For example, on a multiarch system supporting amd64 and
armhf, apt-get will look for armhf Docker packages, fail to find them,
and error out.

Fix this by qualifying the repo line with the currently active
architecture.

This fixes issue #18207.

Signed-off-by: Martin Kelly <martin@surround.io>
2015-11-24 16:53:13 -08:00
Avi Miller
09b7af9095 Updated LICENSE file to match selinux-policy and the license in the docker-engine-selinux.spec file.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-11-25 11:53:01 +11:00
Alexander Morozov
900c8f5847 Merge pull request #18202 from aidanhs/aphs-content-addressability-layerstore
Rearrange layerstore locking
2015-11-24 14:53:10 -08:00
Brian Goff
87e7ee9142 Merge pull request #18201 from calavera/split_container_router
[Carry 17736] Container router and backend.
2015-11-24 17:07:04 -05:00
Aidan Hobson Sayers
cbf55b924f Rearrange layerstore locking
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-11-24 21:45:50 +00:00
Alexander Morozov
5463e26570 Merge pull request #18203 from aidanhs/aphs-content-addressability-layerstore-releaselayer
Make releaseLayers iterative rather than recursive, remove useless func
2015-11-24 13:41:42 -08:00
Aidan Hobson Sayers
a4d768538a Make releaseLayers iterative rather than recursive, remove useless func
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-11-24 19:40:09 +00:00
David Calavera
85c3c6865e Split container backend into several specialized interfaces.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-24 14:03:39 -05:00
David Calavera
38abba9e2c Move versioned references of inspect functions to the daemon.
Leaving only one versioned main function that a backend must implement.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-24 14:03:39 -05:00
Dong Chen
fa8d96ebe2 Add container package for container APIs.
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
2015-11-24 14:03:07 -05:00
Dong Chen
a5bf10f37e move container files to a separate folder. Following changes will update them.
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
2015-11-24 14:03:07 -05:00
David Calavera
a2ab05098d Merge pull request #17924 from aaronlehmann/content-addressability
Content addressability
2015-11-24 11:01:33 -08:00
Alexander Morozov
0dec4403b0 Merge pull request #18150 from unclejack/add_python_dev
Dockerfile: add python-dev to fix Python.h errors
2015-11-24 10:31:52 -08:00
Alexander Morozov
ac055a7d54 Merge pull request #18196 from cpuguy83/18190_on_your_marks
Fix race in locker call to `dec()`
2015-11-24 09:54:59 -08:00
Aditi Rajagopal
bc2682badc Checkers on docker_cli_pull_local_test.go
Applying #16756 to integration-cli/docker_cli_pull_local_test.go

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-11-24 12:53:43 -05:00
Tonis Tiigi
ed4d236e04 Remove graph package
The graph package is no longer used for tag, image, or layer storage.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-24 09:40:25 -08:00
Tonis Tiigi
4352da7803 Update daemon and docker core to use new content addressable storage
Add distribution package for managing pulls and pushes. This is based on
the old code in the graph package, with major changes to work with the
new image/layer model.

Add v1 migration code.

Update registry, api/*, and daemon packages to use the reference
package's types where applicable.

Update daemon package to use image/layer/tag stores instead of the graph
package

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-24 09:40:25 -08:00
Tonis Tiigi
5fc0e1f324 Add migratev1 package
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-24 09:40:25 -08:00
Aaron Lehmann
694df3ff9f Add distribution package
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-24 09:40:24 -08:00
Tonis Tiigi
01ba0a935b Add image store
The image store abstracts image handling. It keeps track of the
available images, and makes it possible to delete existing images or
register new ones. The image store holds references to the underlying
layers for each image.

The image/v1 package provides compatibility functions for interoperating
with older (non-content-addressable) image structures.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-24 09:40:24 -08:00
Aaron Lehmann
7de380c5c6 Add tag store
The tag store associates tags and digests with image IDs. This
functionality used to be part of graph package. This commit splits it
off into a self-contained package with a simple interface.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-24 09:40:24 -08:00
Derek McGowan
500e77bad0 Add layer store
Layer store manages read-only and read-write layers on a union file system.
Read only layers are always referenced by content addresses.
Read-write layer identifiers are handled by the caller but upon registering
its difference, the committed read-only layer will be referenced by content
hash.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-24 09:40:23 -08:00
moxiegirl
48c7a1618d Merge pull request #18195 from tophj-ibm/doc-link-fixes
Fixed broken links, and updated some to https
2015-11-24 09:30:15 -08:00
Brian Goff
985175fd8f Fix race in locker call to dec()
Can't safely use uint32 for locker since we need to decrement the count,
which requires loading the unit and doing some math, which is inherintly
racey.
Instead use Int32 which we can safely use with atomic and AddInt32 with
`-1`

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-24 11:59:09 -05:00
Christopher Jones
ad179e0e95 Fixed broken links, and updated some to https
Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-11-24 10:39:02 -05:00
Sebastiaan van Stijn
56305adf4a Merge pull request #18188 from wenchma/doc_update
Correct some typos for docs
2015-11-24 12:01:17 +01:00
Vincent Demeester
3a109fcfa2 Merge pull request #18186 from aditirajagopal/16756-docker_api_inspect_unix_test
Checkers on docker_api_inspect_unix_test.go
2015-11-24 10:18:31 +01:00
Wen Cheng Ma
4d66f18be0 Correct some typos for docs
Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-11-24 15:14:32 +08:00
Tianon Gravi
ae1fadeb96 Merge pull request #17714 from mikedougherty/cs-release-fixes
Fixes for release scripts
2015-11-23 19:47:10 -08:00
Aditi Rajagopal
d53a9bcb13 Checkers on docker_api_inspect_unix_test.go
Applying #16756 to integration-cli/docker_api_inspect_unix_test.go

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-11-23 22:03:14 -05:00
Mike Dougherty
a15b67b1af Fixes for release scripts:
Add a flag to allow keeping bundles around (helps with CI)

Fix several problems in repo make targets

* quote DOCKER_EXPERIMENTAL variable
* pass-through arguments for gpg  provided to dpkg-sig are now quoted
  properly, so passphrases with shell-interpolated symbols can be used
* when determining deb suites, don't rely on 'origin' to be
  github.com/docker/docker

Fix some issues with deb repository creation from scratch

* Don't add empty components to the repository configuration as they
  will cause failure when generating.

Add old docker-engine-cs name to package conflicts

Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
2015-11-23 17:15:54 -08:00
Sebastiaan van Stijn
919a068fb6 Merge pull request #18171 from MHBauer/gh7205
update 'top' api endpoint documentation
2015-11-24 01:30:15 +01:00
David Calavera
4cb9d298c6 Merge pull request #18147 from DieterReuter/sort-make-targets
Sorting make targets and DOCKER_ENV vars in alphabetical order
2015-11-23 15:55:28 -08:00
Morgan Bauer
e28e4c7840 update 'top' api endpoint documentation
- update example based on '-ef' behavior
 - new example specifying ps args 'aux'
 - resolves #7205

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-11-23 15:41:34 -08:00
Stefan Berger
5cd6b3eca2 Adjust docker-default profile when docker daemon is confined
Adjust the docker-default profile for when the docker daemon is running in
AppArmor confinement. To enable 'docker kill' we need to allow the container
to receive kill signals from the daemon.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2015-11-23 15:20:01 -08:00
Stefan Berger
6079d9d6a3 Policy extensions for user namespaces and docker exec
A few additions to the policy when running with user namespaces enabled
and when running 'docker exec'.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2015-11-23 15:19:45 -08:00
Alexander Morozov
18c9fe0cec Merge pull request #18175 from crosbymichael/arm-doc
Change and move ARM.md doc to project
2015-11-23 13:57:42 -08:00
Michael Crosby
ffd36a14e7 Move arm info to project/
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-11-23 13:54:17 -08:00
Michael Crosby
2ec186377e Remove scaleway info
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-11-23 13:53:54 -08:00
David Calavera
aa22191093 Merge pull request #17356 from HuKeping/warn-on-oom
Warning out when disalbe oom killer but not set the memory limit
2015-11-23 12:43:04 -08:00
Aditi Rajagopal
5cfa13ae48 Checkers on integration-cli/docker_api_info_test
Applying #16756 to integration-cli/docker_api_info_test.go

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-11-23 14:28:41 -05:00
Alexander Morozov
9687008378 Merge pull request #18104 from hypriot/17802-remove-journald-to-fix-dynbinary-build-on-ARM
remove journald to fix dynbinary build on ARM
2015-11-23 10:38:45 -08:00
Tianon Gravi
05d1a5aed6 Merge pull request #18152 from rgl/master
mkimage-arch: remove the test container after run
2015-11-23 10:35:15 -08:00
Alexander Morozov
804d2f73c8 Merge pull request #18080 from aditirajagopal/16756-docker_api_images_test
Checkers on integration-cli/docker_api_images_test
2015-11-23 10:21:52 -08:00
Sebastiaan van Stijn
86377e541d Merge pull request #18157 from Djelibeybi/master
Fix CHANGELOG.md
2015-11-23 18:42:38 +01:00
James Turnbull
097bc4881f Merge pull request #18167 from duglin/FixTagHelp
Add more to tag's -f flag's help
2015-11-23 11:59:22 -05:00
James Turnbull
2bc792e3bb Merge pull request #18132 from WeiZhang555/api-changelog
Add API change to docs
2015-11-23 11:57:46 -05:00
Sebastiaan van Stijn
5017a5dd69 Merge pull request #18161 from duglin/Issue18017
Add some docs about build-arg's impact on the cache
2015-11-23 17:57:28 +01:00
Doug Davis
5bf4766fca Add some docs about build-arg's impact on the cache
Closes #18017

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-11-23 08:51:11 -08:00
Aditi Rajagopal
463c53c715 Checkers on integration-cli/docker_api_images_test
Applying #16756 to integration-cli/docker_api_images_test.go

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-11-23 10:33:32 -05:00
Doug Davis
a70079ea23 Add more to tag's -f flag's help
Was noticed in #9798

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-11-23 07:20:10 -08:00
Zhang Wei
bfe711bed3 Add API change to docs
Add API change description to docs due to `docker network inspect`
returns different data structure.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-23 22:42:55 +08:00
Aidan Hobson Sayers
3243e504d0 Ensure adding a broken tar doesn't silently fail
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-11-23 14:18:58 +00:00
Sebastiaan van Stijn
1d1de645fd Merge pull request #18137 from vanpire110/master
Update understanding-docker.md again
2015-11-23 09:31:13 +01:00
Vincent Demeester
a600bf4eab Merge pull request #17489 from WeiZhang555/network-rm-multi
Enhance `docker network rm` to delete multi net
2015-11-23 08:25:33 +01:00
Avi Miller
bb50f25b35 Fix CHANGELOG.md so that RPM changelog generation has a date value for the 1.9.1 release.
Signed-off-by: Avi Miller <avi.miller@gmail.com>
2015-11-23 15:29:07 +11:00
moxiegirl
0f58421901 Merge pull request #18155 from SvenDowideit/docs-validation-fixes
Fixes found by docs validation tool
2015-11-22 19:39:09 -08:00
Sven Dowideit
f4b2da0145 Merge pull request #18149 from jeffdm/master
Mark Windows 10 as supported in installation docs
2015-11-23 12:09:00 +10:00
Sven Dowideit
043f447e2e Fixes found by docs validation tool
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-11-23 11:19:38 +10:00
Sebastiaan van Stijn
49f982b7ba Merge pull request #18029 from mmckinst/stop_hardcode_el_version
use variable instead of hardcoding version in repo
2015-11-22 21:19:19 +01:00
Mark McKinstry
196bd38fdb use variable instead of hardcoding version in repo
Signed-off-by: Mark McKinstry <mmckinst@umich.edu>
2015-11-22 11:30:18 -05:00
Rui Lopes
ca94adc7c1 mkimage-arch: remove the test container after run
Signed-off-by: Rui Lopes <rgl@ruilopes.com>
2015-11-22 11:49:54 +00:00
unclejack
92756bdcdd Dockerfile: add python-dev to fix Python.h errors
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2015-11-22 12:32:10 +02:00
Zhang Wei
e7eb6687ef Enhance docker network rm to delete multi net
This commit enhance `docker network rm` command to allow user to delete
multi networks at the same time.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-22 05:37:00 +08:00
Jeffrey Morgan
414c8565be Mark Windows 10 as supported in install docs
Signed-off-by: Jeffrey Morgan <jmorganca@gmail.com>
2015-11-21 13:42:32 -05:00
Brian Goff
692bfdaee3 Merge pull request #18146 from JamesKyburz/random-additions
Random additions
2015-11-21 13:18:09 -05:00
Dieter Reuter
2bc57578c6 Sort make targets and DOCKER_ENV vars in alphabetical order
Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
2015-11-21 17:50:37 +01:00
Antonio Murdaca
3ff9bb5332 Merge pull request #16613 from WeiZhang555/docker-cp-symlink
Add option `-L` to allow `docker cp` follow symbol link
2015-11-21 17:03:24 +01:00
James Kyburz
f8a6726dad Add nauseous and pedantic
Signed-off-by: James Kyburz <james.kyburz@gmail.com>
2015-11-21 16:23:07 +01:00
Stefan Scherer
6f6f10a75f prevent journald from being built on ARM
Signed-off-by: Govinda Fichtner <govinda.fichtner@googlemail.com>
2015-11-21 15:17:31 +01:00
Elvir Kuric
5c329633d7 mkimage-yum.sh to support dnf
included changes @tianon proposed in #17362

Signed-off-by: Elvir Kuric <elvirkuric@gmail.com>
2015-11-21 13:06:27 +01:00
Jeremy Qian
f5343a039b update docs/introduction/understanding-docker.md
Signed-off-by: Jeremy Qian <vanpire110@163.com>
2015-11-21 10:43:25 +08:00
Alexander Morozov
afe6c1f30c Merge pull request #18135 from calavera/exec_store
Move exec store to its own package inside the daemon.
2015-11-20 16:36:18 -08:00
Michael Crosby
048280ca42 Merge pull request #18134 from hypriot/17802-fix-integration-tests-for-arm
Increase timeouts to fix integration-cli tests on ARM
2015-11-20 15:05:26 -08:00
David Calavera
9ca2e4e81c Move exec store to its own package inside the daemon.
Remove double reference between containers and exec configurations by
keeping only the container id.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-20 17:40:16 -05:00
David Calavera
7caa313c82 Merge pull request #18127 from KostyaSha/patch-1
Add Dead state to Container Inspect 1.21 API
2015-11-20 14:39:25 -08:00
Antonio Murdaca
6653f82796 Merge pull request #17495 from mikebrow/docker-tz-and-nanosecond-updates
modifying docker --since and --until to support nanoseconds and time …
2015-11-20 23:37:44 +01:00
Michael Crosby
8022e6292e Merge pull request #18131 from hypriot/18124-use-startwithbusybox
Fix integration-cli tests
2015-11-20 14:20:12 -08:00
Stefan Scherer
88c1bc10c4 Increase timeouts to fix test on ARM
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2015-11-20 23:12:12 +01:00
Michael Crosby
b5c507750f Merge pull request #18051 from calavera/extract_streams
Extract StreamConfig struct out of the daemon package.
2015-11-20 13:45:13 -08:00
Stefan Scherer
aef344dcf8 Replace s.d.Start() with s.d.StartWithBusybox()
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2015-11-20 22:16:19 +01:00
Kanstantsin Shautsou
836d0127fd Add Dead state to Container Inspect 1.21 API
Signed-off-by: Kanstantsin Shautsou <kanstantsin.sha@gmail.com>
2015-11-21 00:06:37 +03:00
moxiegirl
d395134b3d Merge pull request #18094 from tophj-ibm/faq-link-fix
Fixed docker network link in faq
2015-11-20 12:13:07 -08:00
David Calavera
3f5b8f712d Extract StreamConfig struct out of the daemon package.
This is a small configuration struct used in two scenarios:

1. To attach I/O pipes to a running containers.
2. To attach to execution processes inside running containers.

Although they are similar, keeping the struct in the same package
than exec and container can generate cycled dependencies if we
move any of them outside the daemon, like we want to do
with the container.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-20 15:04:27 -05:00
Antonio Murdaca
3e7405aea8 Deprecate HostConfig at API container start
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-20 20:45:55 +01:00
Vincent Demeester
f064b9941c Merge pull request #18073 from runcom/hostconfig-resources
runconfig: split resources into a struct
2015-11-20 20:29:44 +01:00
David Calavera
8fa09749fb Merge pull request #17718 from wenchma/17716_before_filter_doc
Re-implement --before and --since as options for --filter
2015-11-20 11:24:19 -08:00
Michael Crosby
6e49343202 Merge pull request #18067 from cpuguy83/fix_pull_space_test
Make TestDaemonNoSpaceleftOnDeviceError linux only
2015-11-20 10:51:21 -08:00
Alexander Morozov
6980113d10 Merge pull request #18126 from tiborvass/merge_release_v1.9.1
Merge release v1.9.1
2015-11-20 10:45:59 -08:00
Tibor Vass
75cb2dfe91 Bump version back to 1.10.0-dev
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-11-20 13:40:25 -05:00
Antonio Murdaca
1a0b483e02 runconfig: split resources into a struct
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-20 19:40:01 +01:00
Tibor Vass
fefbb507a9 Bump version to v1.9.1
Signed-off-by: Tibor Vass <tibor@docker.com>

Conflicts:
	VERSION
2015-11-20 13:38:15 -05:00
Jess Frazelle
c1f11f8144 Merge pull request #18109 from phemmer/yum-docs-fix
remove unnecessary echo from yum docs
2015-11-20 13:10:55 -05:00
Alexander Morozov
a76bdea21b Merge pull request #16168 from NIWAHideyuki/16164-shm-size
Addition of "--shm-size" to which size of /dev/shm is changed
2015-11-20 10:01:48 -08:00
Brian Goff
44d3f2f71a Make TestDaemonNoSpaceleftOnDeviceError linux only
Adds SameHostDaemon and DaemonIsLinux req's to
TestDaemonNoSpaceleftOnDeviceError

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-20 12:44:49 -05:00
Vincent Demeester
f9a4751eeb Merge pull request #18115 from wenchma/16756-docker_api_exec_test
Use checker Assert for integration-cli/docker_api_exec_test.go
2015-11-20 18:14:21 +01:00
Tibor Vass
6e727a4c80 Merge pull request #17456 from Microsoft/TestChtimesFix
Fix ChTimes to prevent setting times past the Unix Max Time
2015-11-20 18:07:09 +01:00
Zhang Wei
92600bdec1 Add '-L' option for cp
Fixes #16555

Original docker `cp` always copy symbol link itself instead of target,
now we provide '-L' option to allow docker to follow symbol link to real
target.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-21 00:36:56 +08:00
Wen Cheng Ma
1814a1dac5 Use checker Assert for integration-cli/docker_api_exec_test.go
Partially fix issue #16756

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-11-20 23:34:52 +08:00
Sebastiaan van Stijn
7a1b05ccce Merge pull request #18101 from IanLee1521/patch-1
Fix minor grammar mistake.
2015-11-20 11:43:42 +01:00
Sebastiaan van Stijn
d8ea32caa8 Merge pull request #18026 from woodvi/doc-network-tutorial
change "Web" to "web" to match case-sensitive name used for creation;…
2015-11-20 10:46:00 +01:00
Sebastiaan van Stijn
20905ec452 Merge pull request #17861 from gissehel/apt-source-doc
explicit way to express that docker.list are different choices and not just one big file
2015-11-20 10:06:13 +01:00
Sebastiaan van Stijn
3dac1fb189 Merge pull request #18079 from moxiegirl/fix-bad-markdown
Small Markdown Fixes to storage driver/commands ref
2015-11-20 09:22:04 +01:00
Wen Cheng Ma
1921c62938 Re-implement --before and --since as options for --filter
* This commit will mark --before and --since as deprecated, but leave their behavior
  unchanged until they are removed, then re-implement them as options for --filter.

* And update the related docs.

* Update the integration tests.

Fixes issue #17716

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-11-20 13:10:13 +08:00
Patrick Hemmer
3cbccccb37 remove unnecessary echo from yum docs
Signed-off-by: Patrick Hemmer <patrick.hemmer@gmail.com>
2015-11-19 20:51:43 -05:00
Mary Anthony
9941d5bc33 Small changes to storage driver/commands ref
Entering V's comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-19 17:13:23 -08:00
Michael Crosby
ee03a05595 Merge pull request #17005 from mavenugo/restart
Adding a restart test to make sure #16887 doesnt happens again
2015-11-19 17:01:34 -08:00
NIWA Hideyuki
5aeaf2a0c4 Addition of "--shm-size" to which size of /dev/shm is changed.
- Optional "--shm-size=" was added to the sub-command(run, create,and build).
- The size of /dev/shm in the container can be changed
  when container is made.
- Being able to specify is a numerical value that applies number,
  b, k, m, and g.
- The default value is 64MB, when this option is not set.
- It deals with both native and lxc drivers.

Signed-off-by: NIWA Hideyuki <niwa.hiedyuki@jp.fujitsu.com>
2015-11-20 09:24:18 +09:00
Michael Crosby
249b3a9479 Merge pull request #17459 from brahmaroutu/Power_Z_CI
Build and test Docker on IBM Power and Z using gccgo. Enable CI on Po…
2015-11-19 15:50:07 -08:00
Alexander Morozov
9c21e852b2 Merge pull request #18082 from MHBauer/gh9406
Remove defaults for flags/options that expect no value
2015-11-19 15:06:21 -08:00
Alexander Morozov
0d98e2470f Merge pull request #18103 from crosbymichael/image-link
Remove alt from markdown image
2015-11-19 14:09:43 -08:00
Michael Crosby
38a58a4a1c Remove alt from markdown image
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-11-19 14:06:16 -08:00
Michael Crosby
da969aac5a Merge pull request #18102 from mavenugo/sb_ep_race
Fixed an endpoint delete issue with a possible stale sbox
2015-11-19 13:55:28 -08:00
Alexander Morozov
8e6e38990c Merge pull request #18084 from wenchma/18054_exec_start_fix
Update docs and test of exec create api return codes
2015-11-19 13:51:46 -08:00
Alexander Morozov
24fb3659df Merge pull request #18076 from rhvgoyal/unmount-recursive
Unmount recursively to unmount volumes
2015-11-19 13:46:48 -08:00
Alexander Morozov
37f64ded44 Merge pull request #17908 from calavera/carry_17059
[Carry 17059] allow filtering containers by any status
2015-11-19 13:24:43 -08:00
Vincent Demeester
b205b06d3e Merge pull request #18096 from Microsoft/jjh/dockerinfoav
Windows: [TP4] docker info crashes
2015-11-19 21:48:02 +01:00
Madhu Venugopal
423b55c4b4 Fixed an endpoint delete issue with a possible stale sbox
Stale sandbox could be a result of stress tests on ungraceful
restarts such as #17984

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-11-19 12:46:37 -08:00
Vivek Goyal
b9e701b203 Use lazy unmount to unmount volumes
Volumes can have more mount points beneath them and unmount will fail. This
is the case when a bind mounted directory on host already had a mount point
underneath it. So use lazy unmount instead.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-11-19 20:46:07 +00:00
Ian Lee
ad7696a787 Fix minor grammar mistake.
Signed-off-by: Ian Lee <IanLee1521@gmail.com>
2015-11-19 12:24:25 -08:00
David Calavera
2a07b19fd8 Test that paused containers show up filtering by status.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-19 14:32:25 -05:00
Brian Torres-Gil
9c1ccf7084 Add support for installation on Kali Linux 2.0
Signed-off-by: Brian Torres-Gil <btorres-gil@paloaltonetworks.com>
2015-11-19 11:18:28 -08:00
Kamil Domański
f30364c583 allow filtering containers by any status
Signed-off-by: Kamil Domański <kamil@domanski.co>
(cherry picked from commit 9ada6a06c5)
2015-11-19 14:11:41 -05:00
Darren Stahl
318ad1cb43 This fixes Chtimes on systems with 32 bit Timespec
Signed-off-by: Darren Stahl <darst@microsoft.com>
2015-11-19 11:08:29 -08:00
John Howard
37d2a70038 Windows: [TP4] docker info crashes
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-19 11:02:25 -08:00
David Calavera
aade9536b6 Merge pull request #18090 from vdemeester/17478-follow-up-cleanup-pkg-platform
Follow-up of 17478, unexport runtimeArchitecture method
2015-11-19 14:00:23 -05:00
Antonio Murdaca
758fae5f6b Merge pull request #18083 from Mashimiao/opt-weightdevice-fix-typo
opts/weightdevice: fix typo
2015-11-19 19:44:18 +01:00
Antonio Murdaca
43cf875633 Merge pull request #18064 from hypriot/17478-fix-for-arm
Change casting of utsname.Machine to fix make binary for ARM
2015-11-19 19:42:20 +01:00
Stefan Scherer
7c1d49d90c Move charsToString to architecture dependent source to fix casting problem
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2015-11-19 18:09:08 +01:00
Christopher Jones
1f0dc72d4a Fixed docker network link in faq
Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-11-19 11:08:04 -06:00
Morgan Bauer
48718a3c77 Remove defaults for flags/options that expect no value
- isZeroValue function from upstream go
 - covers booleans, strings and numbers
 - change integration to reflect new behavior
 - resolves #9406

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-11-19 08:37:51 -08:00
Wen Cheng Ma
01b86d612c Update docs and test of exec create api return codes
Fixes issue #18054

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-11-19 22:22:27 +08:00
Vincent Demeester
0ff3c10aa8 Follow-up of 17478, unexport private method
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-19 14:55:57 +01:00
Vincent Demeester
c32f8bb36a Merge pull request #17704 from LK4D4/default_cgroupfs
Use fs cgroups by default
2015-11-19 14:01:13 +01:00
Ma Shimiao
8d4c0ba274 opts/weightdevice: fix typo
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-11-19 17:03:46 +08:00
Madhu Venugopal
be9b7a2459 Adding a restart test to make sure #16887 doesnt happens again
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-11-18 23:29:25 -08:00
Alexander Morozov
419fd7449f Use fs cgroups by default
Our implementation of systemd cgroups is mixture of systemd api and
plain filesystem api. It's hard to keep it up to date with systemd and
it already contains some nasty bugs with new versions. Ideally it should
be replaced with some daemon flag which will allow to set parent systemd
slice.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-18 16:16:13 -08:00
Michael Crosby
877fe61f75 Merge pull request #18065 from calavera/one_container_constructor_to_rule_them_all
Remove the container initializers per platform.
2015-11-18 14:06:47 -08:00
Michael Crosby
0d2ea52f03 Merge pull request #18030 from Microsoft/sjw/pull_id_hack
[TP4] Windows: hacking around content addressable IDs for temporary fix.
2015-11-18 11:08:13 -08:00
moxiegirl
ec72163949 Merge pull request #18069 from vdemeester/fix-volume-doc-typo
Fix a small typo in volume_inspect.md
2015-11-18 10:14:15 -08:00
Vincent Demeester
a96be2930a Fix a small typo in volume_inspect.md
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-18 16:02:24 +01:00
David Calavera
060f4ae617 Remove the container initializers per platform.
By removing deprecated volume structures, now that windows mount volumes we don't need a initializer per platform.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-18 08:41:46 -05:00
David Calavera
0780ad4857 Merge pull request #17973 from moxiegirl/fix-networking-issue
Fixing issue noted by user
2015-11-18 12:49:11 +01:00
David Calavera
3f5e5b8f57 Merge pull request #17992 from nak3/fix-wrong-setting-in-systemd
Fix invalid proxy setting example
2015-11-18 12:48:41 +01:00
David Calavera
1b1af308da Merge pull request #18059 from QuentinPerez/typo
Fix typo in ARM.md
2015-11-18 12:46:19 +01:00
David Calavera
080b3e7527 Merge pull request #18062 from svetlyak40wt/patch-1
Fix header levels for 1.9 release notes
2015-11-18 12:45:24 +01:00
Antonio Murdaca
927d0be4d8 Merge pull request #18050 from LK4D4/simple_err_registry
registry/registry.go: simplify logical expression
2015-11-18 11:51:55 +01:00
Alexander Artemenko
4cef3477b5 Fix header levels for 1.9 release notes
This way, parsers like allmychanges.com will be able to extract structured information about release

Signed-off-by: Alexander Artemenko <svetlyak.40wt@gmail.com>
2015-11-18 12:53:48 +03:00
David Calavera
7179c89943 Merge pull request #18046 from LK4D4/carry_16822
Revert AppArmor skip tests
2015-11-18 10:37:53 +01:00
David Calavera
33d9ae358c Merge pull request #18055 from vincentbernat/fix/zsh-invalid-cache
zsh: ensure we have enough commands to store in the cache
2015-11-18 10:36:32 +01:00
David Calavera
5d53e39c02 Merge pull request #18056 from vincentbernat/fix/zsh-no-lxc
zsh: remove lxc-related completion
2015-11-18 10:35:59 +01:00
David Calavera
57b42250ce Merge pull request #17991 from nak3/proxy-env
docker info suppports case-insensitive proxy env settings
2015-11-18 10:35:06 +01:00
David Calavera
db08adb5cb Merge pull request #18004 from Gobella/master
update docker_cli_pull_trusted_test.go
2015-11-18 10:32:28 +01:00
Quentin Perez
25cfa80119 Fix typo in ARM.md
Signed-off-by: Quentin Perez <qperez@ocs.online.net>
2015-11-18 09:46:39 +01:00
Vincent Bernat
8105a3a366 zsh: remove lxc-related completion
LXC support has been deprecated and the related completion has been
removed in #17700 but was added back in #17334.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2015-11-18 08:13:03 +01:00
Vincent Bernat
61564bcb5f zsh: ensure we have enough commands to store in the cache
Otherwise, the cache would be invalid and won't be refreshed soon. This
can happen when the user has the completion installed before docker is
installed.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2015-11-18 08:08:43 +01:00
Kenjiro Nakayama
84781a5df7 docker info suppports case-insensitive proxy env settings
Signed-off-by: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
2015-11-18 10:58:19 +09:00
Alexander Morozov
c00c64c20e Merge pull request #18047 from aaronlehmann/push-fix
Correct parent chain in v2 push when v1Compatibility files on the disk are inconsistent
2015-11-17 17:03:13 -08:00
moxiegirl
c83373112c Merge pull request #17986 from bogdangrigg/master
Fix small typos in documentation files
2015-11-17 16:45:38 -08:00
moxiegirl
2ee56ce1e1 Merge pull request #18011 from lrkwz/patch-1
Update ubuntulinux.md
2015-11-17 16:44:33 -08:00
Michael Crosby
3f508f08de Merge pull request #17261 from mountkin/remove-unused-daemon-config
remove the unused DefaultNetwork member from daemon.Config
2015-11-17 16:33:11 -08:00
Alexander Morozov
662b9623c1 Merge pull request #17866 from shekhargulati/patch-1
added rx-docker-client library
2015-11-17 16:15:15 -08:00
Alexander Morozov
90e2459ecb registry/registry.go: simplify logical expression
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-17 16:12:11 -08:00
Alexander Morozov
e2417e3e92 Merge pull request #17617 from askb/17168_pull_error_fix
Fix for #17168 issue
2015-11-17 16:10:44 -08:00
Aaron Lehmann
0ab6b1d922 Correct parent chain in v2 push when v1Compatibility files on the disk are inconsistent
This fixes an issue where two images with the same filesystem contents
and configuration but different remote IDs could share a v1Compatibility
file, resulting in corrupted manifests.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-17 16:05:09 -08:00
Alexander Morozov
a935359ec7 Merge pull request #17294 from zhangjianfnst/16756-integration-cli-checkers-cp
Use checker assert for integration-cli/docker_cli_cp_*  four files.
2015-11-17 16:00:00 -08:00
Alexander Morozov
92ea146790 Merge pull request #17452 from aditirajagopal/16756-docker_cli_by_digest_test
Checkers on docker_cli_by_digest_test
2015-11-17 15:58:05 -08:00
Alexander Morozov
346d195f6a Merge pull request #17334 from sdurrheimer/zsh-completion-log-options
Add zsh completion for log options
2015-11-17 15:53:31 -08:00
Michael Crosby
53556183c7 Merge pull request #17434 from little-arhat/fix/newlines-in-json-status
Add newlines to FormatProgress for JSON as well
2015-11-17 15:52:31 -08:00
Michael Crosby
104dab87ea Merge pull request #17478 from vdemeester/pr-13921
Carry#13921 : Expand /info: Expose OSType (GOOS), Architecture (GOARCH)
2015-11-17 15:44:57 -08:00
Alexander Morozov
adce1981f4 Merge pull request #17593 from daehyeok/refactoring_json_log
Refactoring json log driver
2015-11-17 15:38:52 -08:00
Michael Crosby
ca0b41e337 Merge pull request #18000 from daehyeok/fix_dry_run_test
Modified cpuset test for unicore test environment
2015-11-17 15:15:09 -08:00
Michael Crosby
7147ac6ce7 Merge pull request #18023 from LK4D4/goodbye_dind
Remove cgroup mounting in dind
2015-11-17 15:12:08 -08:00
Stefan J. Wernli
d860ff79a0 Windows: hacking around content addressable IDs for temporary fix.
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-11-17 14:03:36 -08:00
Daehyeok Mun
a9afebae62 Modified cpuset test for unicore test environment
Modified TestInspectApiCpusetInConfigPre120 and
TestContainerApiCreateWithCpuSharesCpuset for working on unicore cpu
environment.

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2015-11-17 13:28:09 -07:00
Jess Frazelle
aeccd45e5b Merge pull request #17419 from nathwill/cent-install-docs
fix yum install docs
2015-11-17 20:57:15 +01:00
Alexander Morozov
70ce2d9b10 Skip apparmor tests on User Namespace
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-17 11:49:31 -08:00
Alexander Morozov
d3744fbeb1 Merge pull request #18002 from Microsoft/10662-registerlinks
Windows: Disable links
2015-11-17 11:48:53 -08:00
Eric Windisch
0df0b6b443 Revert "Skip TestAppArmorDeniesChmodProc"
This reverts commit 04e1015aa0.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-11-17 11:46:42 -08:00
Eric Windisch
1bf5fcd911 Revert "Skip TestRunUnshareProc"
This reverts commit 03dce24137.

Signed-off-by: Eric Windisch <eric@windisch.us>
2015-11-17 11:46:42 -08:00
Michael Crosby
e58b0bba7f Merge pull request #18024 from LK4D4/simple_byparent
graph/graph.go: simplify appending to slice in map in byParent
2015-11-17 11:45:24 -08:00
Michael Crosby
1ecb9a40db Merge pull request #17974 from anusha-ragunathan/fsMagic
Fix devmapper backend in docker info
2015-11-17 11:44:48 -08:00
Alexander Morozov
9187656305 Merge pull request #16639 from mrunalp/skip_dev_setup
Skip /dev setup in container when it is bind mounted in
2015-11-17 11:36:00 -08:00
Michael Crosby
19debeb255 Merge pull request #18027 from tpounds/fix-err-message-typo
Fix error typo when --expose and --net are specified
2015-11-17 11:34:40 -08:00
Michael Crosby
d0696ab7f6 Merge pull request #18028 from LK4D4/carry_17174
Use /usr/lib/os-release if /etc/os-release is missing.
2015-11-17 11:26:24 -08:00
Michael Crosby
68336bc832 Merge pull request #18043 from tianon/freebsd-package-name
Fix "./docker" package name on freebsd
2015-11-17 11:17:26 -08:00
Alexander Morozov
4dda67b801 Merge pull request #16452 from rhatdan/btrfs-selinux
Relabel BTRFS Content on container Creation
2015-11-17 11:03:40 -08:00
Antonio Murdaca
8fff64fe4f Merge pull request #18044 from tianon/a.out
Prevent the creation of "a.out" at the repo root
2015-11-17 20:00:07 +01:00
Alexander Morozov
f18d5da6a7 Merge pull request #17300 from kunalkushwaha/plugin-info
Patch for Plugin drivers in docker info
2015-11-17 10:46:29 -08:00
Alexander Morozov
e55274e3fe Merge pull request #18014 from calavera/make_normalize_local_name_local
Make NormalizeLocalName to not reach the network to normalize names.
2015-11-17 10:23:41 -08:00
Tianon Gravi
7f608c391d Prevent the creation of "a.out" at the repo root
Our clever "gcc" invocations were creating a spurious "a.out" file at the root of the repo (which just happened to be in ".gitignore" so we didn't notice it sooner).

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-11-17 09:44:36 -08:00
Tianon Gravi
e54c4517a7 Fix "./docker" package name on freebsd
This fixes "can't load package: package ./docker: found packages client.go (main) and daemon_freebsd.go (docker)"

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-11-17 09:38:19 -08:00
gissehel
741246d69f Remove redundent lines
Signed-off-by: gissehel <public-devgit-dantus@gissehel.org>
2015-11-17 18:24:17 +01:00
Alexander Morozov
71f422435e Merge pull request #17999 from tianon/linkmode-external
Remove "-linkmode external"
2015-11-17 08:33:32 -08:00
Jess Frazelle
1c8d8b3012 Merge pull request #17803 from hypriot/17802-add-initial-support-for-docker-on-arm
Add initial support for Docker on ARM
2015-11-17 16:52:54 +01:00
David Calavera
d507acb175 Merge pull request #17724 from runcom/remove-depreciated-cli-flags
Remove depreciated cli flags
2015-11-17 16:40:06 +01:00
GoBella
c16dd88c5e "Assert change"
Signed-off-by: GoBella <caili_welcome@163.com>
2015-11-17 18:40:18 +08:00
David Calavera
af9757576c Merge pull request #17556 from donhcd/testForStatsVersioning
Test for stats versioning
2015-11-17 11:19:34 +01:00
David Calavera
6f1bc096a6 Merge pull request #18025 from Microsoft/10662-ArgumentEscaping
Windows: Fix docker exec
2015-11-17 11:14:54 +01:00
David Calavera
a2d87d14ac Merge pull request #18037 from dm4/fix-aufs-markdown-syntax
Fix Markdown syntax error in aufs-driver.md
2015-11-17 11:13:01 +01:00
Lee, Meng-Han
ea04764059 Fix Markdown syntax error in aufs-driver
Signed-off-by: dm4 <dm4@skymizer.com>
2015-11-17 17:38:36 +08:00
David Calavera
b665730d2c Make NormalizeLocalName to not reach the network to normalize names.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-17 03:31:32 -05:00
Trevor Pounds
a25988cf76 Fix typo when --expose and --net are specified.
Signed-off-by: Trevor Pounds <trevor.pounds@gmail.com>
2015-11-16 22:01:20 -08:00
Alexander Morozov
81aa1b507f Remove cgroups mounting in dind
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-16 17:10:53 -08:00
Tibor Vass
ef424c108a Merge pull request #17988 from Microsoft/jjh/pushv2
Windows [TP4] Fix push to not kill daemon
2015-11-17 01:28:34 +01:00
Alexander Morozov
292a15e40a Use /usr/lib/os-release if /etc/os-release is missing.
As per os-release spec, /usr/lib/os-release file should be tried if
/etc/os-release is missing.

http://www.freedesktop.org/software/systemd/man/os-release.html

Thanks James Hunt <james.o.hunt@intel.com> and
Dimitri John Ledkov <dimitri.j.ledkov@intel.com> for contribution.

Close #17174

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-16 16:21:31 -08:00
Victor I. Wood
ac526193af change "Web" to "web" to match case-sensitive name used for creation; enquoted bash cd command for un-tar example
Signed-off-by: Victor I. Wood <viw@t2am.com>
2015-11-16 12:41:06 -08:00
Alexander Morozov
25b37e2f04 graph/graph.go: simplify appending to slice in map in byParent
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-16 12:02:35 -08:00
Darren Stahl
d7692b02bd Typo in previous PR processConfig, not c.ProcessConfig
Signed-off-by: Darren Stahl <darst@microsoft.com>
2015-11-16 11:56:01 -08:00
Alexander Morozov
a3065fa48f Merge pull request #17891 from splunk/splunk-logger-support-for-tag-env-labels
Allow configurable metadata for Splunk log driver
2015-11-16 10:11:27 -08:00
moxiegirl
4b706195d2 Merge pull request #17515 from azurezk/fixdoc
fix doc of volume name conflict
2015-11-16 09:15:50 -08:00
Sebastiaan van Stijn
e88ffba2ec Merge pull request #18016 from moxiegirl/carry-17453
docs: modifying volumes guide to remove ambiguity. Signed-off-by: And…
2015-11-16 17:35:04 +01:00
Sebastiaan van Stijn
7c5cdda74e Merge pull request #17604 from RyanDeng/fix_cpuPercent_extremelyHigh
fix the bug: cpu percent will extremely high
2015-11-16 17:26:29 +01:00
Andre Granovsky
be2152116c docs: modifying volumes guide to remove ambiguity. Signed-off-by: Andre Granovsky <robotciti@live.com>
Adjusted as per comment.
Rebase and squash by moxigirl

Signed-off-by: Andre Granovsky <robotciti@live.com>
2015-11-16 08:24:26 -08:00
Luca Orlandi
fe123edb08 Update ubuntulinux.md
Remove '*' for purge

Signed-off-by: Luca Orlandi <luca.orlandi@gmail.com>
2015-11-16 13:29:36 +01:00
Tibor Vass
92487d7fb4 Merge pull request #17985 from Microsoft/jjh/firstboot
Windows: [TP4] Fix regression on second or later container starts
2015-11-16 10:03:46 +01:00
Kunal Kushwaha
aa7fd884e6 Supported added for reterving Plugin list for Network and Volume.
Also, plugin information in docker info output.

Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2015-11-16 15:28:09 +09:00
John Howard
b2771b4456 Windows: Disable links
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-15 21:32:31 -08:00
Vincent Demeester
3b1acde99b Merge pull request #17995 from albers/completion--volume-driver
bash completion for `docker {run,create} --volume-driver`
2015-11-16 04:40:20 +01:00
Tianon Gravi
927e1e98b7 Remove "-linkmode external"
We're having to override it in so many places that it no longer seems worthwhile to bother.  On top of that, the reason we did it in the first place was for being able to compile devicemapper statically, which still works after this change (either due to other changes in the way we build, or improvements in Go itself).

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-11-15 14:47:48 -08:00
Harald Albers
d411c47139 bash completion for docker {run,create} --volume-driver
Signed-off-by: Harald Albers <github@albersweb.de>
2015-11-15 09:53:22 -08:00
John Howard
7e5e29e415 Windows [TP4] Fix push to not kill daemon
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-15 08:43:23 -08:00
Zhang Kun
82ba25bea9 fix doc
Signed-off-by: Zhang Kun <zkazure@gmail.com>

fix doc

Signed-off-by: Zhang Kun <zkazure@gmail.com>
2015-11-15 23:32:40 +08:00
Govinda Fichtner
b74fd0628a Add initial support for Docker on ARM
Signed-off-by: Govinda Fichtner <govinda.fichtner@googlemail.com>
2015-11-15 13:15:31 +01:00
Tibor Vass
59fe485f0d Merge pull request #17945 from tonistiigi/fix-windows-pull
Fix docker pull on windows
2015-11-15 12:32:25 +01:00
Antonio Murdaca
7929888214 Remove deprecated cli flags
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-15 10:40:01 +01:00
Kenjiro Nakayama
d9ef4f2986 Fix invalid proxy setting example
Signed-off-by: Kenjiro Nakayama <nakayamakenjiro@gmail.com>
2015-11-15 17:11:27 +09:00
Sebastiaan van Stijn
cf824d9749 Merge pull request #17479 from coolljt0725/show_warning
Show warning when user specify dm.basesize for already initialized devicemapper driver
2015-11-15 08:51:33 +01:00
Tibor Vass
586152523d Merge pull request #17987 from jfrazelle/correct-ltdl
Correct ltdl and fix experimental macro for rpms
2015-11-15 03:46:23 +01:00
daehyeok mun
086c0b4a66 Extract rotate file writer from json log driver
Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2015-11-14 16:15:44 -07:00
Luca-Bogdan Grigorescu
d1e72baa15 Fix small typos in documentation files
Signed-off-by: Luca-Bogdan Grigorescu <bogdan@gmail.com>
2015-11-15 00:53:27 +02:00
Jessica Frazelle
38724c80ab fix experimental boolean macro
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-14 14:47:13 -08:00
Vincent Demeester
49779b674a Add pkg/parsers/architecture and pkg/platform
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-14 23:03:02 +01:00
Olle Jonsson
4e8fcd4002 /info: Add keys Architecture, OSType
- introduces Swarm-relevant keys, see #13634
  - docs updated

Signed-off-by: Olle Jonsson <olle.jonsson@gmail.com>
2015-11-14 22:21:45 +01:00
Vincent Demeester
31a6e01f47 Merge pull request #17009 from azurezk/user-checkers
add c.Assert in docker_cli_ps_test.go
2015-11-14 20:22:15 +01:00
John Howard
8da449055f Windows: Fix regresion on first boot
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-14 11:06:19 -08:00
Alexander Morozov
fb77b822ad Merge pull request #17758 from rhatdan/dynbinary
Since default is dynbinary we should test with dynbinary
2015-11-14 10:54:03 -08:00
Jessica Frazelle
41619f4a90 correct ltdl for centos
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-14 08:50:58 -08:00
Antonio Murdaca
ad8a66573c Merge pull request #17851 from Microsoft/10662-ArgumentEscaping
Prevent double escaping of Dockerfile commands on Windows
2015-11-14 17:25:53 +01:00
Arnaud Porterie
7a6f2cdeeb Merge pull request #17937 from diogomonica/notary-pkcs11-client-integration
New version of notary with pkcs11 client integration
2015-11-14 12:03:29 +01:00
Dan Walsh
0d47b74a7f Since default is dynbinary we should test with dynbinary
Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-11-14 06:01:55 -05:00
Anil Belur
4699ef8f87 Adding test for the fix #17168.
The test case creates a mount point, starts the daemon with the
graph dir pointing to the mount and initates a pull request. We should
be able to check for the error message when the mount point gets filled
during pull.

Signed-off-by: Anil Belur <askb23@gmail.com>
2015-11-14 16:24:45 +05:30
Anil Belur
31cdc63419 Fix for #17168 misleading pull error
This fix avoids overwritting the previous error messages, ensures the client gets the correct error messages and not just the most recent message during the pull request.
For this `var lastErr` replaced with a slice which acts as a temp place holder for the list of returned error messages for every attempt.
The slice is later joined and returned to the caller function after searching for the image with diffirent versions(v2,v1,v0).

Updated the code with check for no space left on device error occurance and prevent the
daemon on falling back to v1,v0.

Incorporated the comments from @calavera, @RichardScothern, @cpuguy83

Signed-off-by: Anil Belur <askb23@gmail.com>
2015-11-14 16:24:45 +05:30
Antonio Murdaca
1448cd3ec2 Merge pull request #17971 from narqo/simplify-addr-formating
Simplify final address formatting in parser.ParseTCPAddr
2015-11-14 08:38:09 +01:00
Antonio Murdaca
dc136b710b Merge pull request #17211 from endocode/kayrus/docker_fd_https
Added possibility to use TLS with systemd socket activation
2015-11-14 08:36:54 +01:00
Anusha Ragunathan
fdc2641c2b Fix devmapper backend in docker info
Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2015-11-13 21:05:47 -08:00
Srini Brahmaroutu
b1cc78b8f5 Build and test Docker on IBM Power and Z using gccgo. Enable CI on Power and Z.
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-11-14 03:16:45 +00:00
Michael Crosby
1f53bf9097 Merge pull request #17859 from liusdu/remove-rebundent
remove unnecessary logs from daemon
2015-11-13 16:45:30 -08:00
Michael Crosby
7e0a5398af Merge pull request #17976 from Microsoft/jjh/store-test-unit
Windows: Pass store test-unit
2015-11-13 16:26:17 -08:00
Alexander Morozov
9b307fe369 Merge pull request #17503 from mikebrow/fix-for-rmi-id-old-local-repositories
putting in support for rmi id for legacy docker.io/name images in loc…
2015-11-13 16:22:30 -08:00
Michael Crosby
439633cee6 Merge pull request #17977 from Microsoft/jjh/archivewindowscomment
Windows: Fixes comment in archive_windows.go
2015-11-13 16:00:14 -08:00
Michael Crosby
28612c5587 Merge pull request #17978 from Microsoft/jjh/removevolumecheck
Windows: Remove check for volume support
2015-11-13 15:59:41 -08:00
Michael Crosby
58244392e5 Merge pull request #17979 from Microsoft/jjh/tidytodowindows
Remove 'TODO Windows' unnecessary comment
2015-11-13 15:59:06 -08:00
unclejack
13963957eb Merge pull request #17877 from aaronlehmann/capped-bytespipe
Cap the amount of buffering done by BytesPipe
2015-11-14 00:51:11 +02:00
Alexander Morozov
5e2d4aaec2 Merge pull request #17980 from Microsoft/jjh/configuresysinit
Remove uncalled configureSysInit
2015-11-13 14:30:03 -08:00
Alexander Morozov
f5e318a17b Merge pull request #17090 from duglin/dockerignoreWildcards
Support multi-dir wildcards in .dockerignore
2015-11-13 14:29:34 -08:00
Doug Davis
a5f3ed4801 Merge pull request #17599 from perhapszzy/master
Add line information in the parsed Dockerfile.
2015-11-13 16:53:59 -05:00
Doug Davis
eddb14a44e Support multi-dir wildcards in .dockerignore
Closes #13113

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-11-13 13:44:07 -08:00
John Howard
2648655a4a Remove uncalled configureSysInit
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-13 13:43:09 -08:00
David Lawrence
52021ac2a4 fixing tests for updated CLI output
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-11-13 13:20:55 -08:00
Jessica Frazelle
6c818f3e5f update for mac
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-13 13:20:54 -08:00
Jessica Frazelle
cf4c3da725 update debs/rpms for pkcs11 yubikey things
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-13 13:20:53 -08:00
Jessica Frazelle
141369457f add buildtag pkcs11 to experimental
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-13 13:20:49 -08:00
Jessica Frazelle
94ea6af8cd update vendor.sh and notary api for vendored changes
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-13 13:19:11 -08:00
Jessica Frazelle
a52a7a6991 update notary vendors
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-13 13:19:09 -08:00
John Howard
208ad80605 Remove TODO Windows
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-13 13:07:27 -08:00
John Howard
8209571982 Windows: Remove check for volume support
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-13 13:02:30 -08:00
John Howard
e5261d6e4a Windows: Fixes comment
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-13 12:51:05 -08:00
perhapszzy@sina.com
5b6c4dd3df Add line information in the parsed Dockerfile
Signed-off-by: perhapszzy@sina.com <perhapszzy@sina.com>
2015-11-13 15:41:12 -05:00
John Howard
32b905d90f Windows: Pass store test-unit
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-13 12:39:43 -08:00
Alexander Morozov
4302c14a64 Merge pull request #16920 from mountkin/fix-attach-test
fix the flaws in the test of the attach API
2015-11-13 12:05:22 -08:00
Alexander Morozov
a4acb1db4a Merge pull request #17615 from WeiZhang555/17404-net-inspect-name
Include container names in `network inspect`
2015-11-13 11:54:59 -08:00
Alexander Morozov
42fa8e3128 Merge pull request #17417 from cpuguy83/15815_add_log_file_poller
Fallback to file polling for jsonlog reader on err
2015-11-13 11:49:54 -08:00
Darren Stahl
9db5db1b94 This fixes the case where arguments are escaped twice from Dockerfiles on
Windows

Signed-off-by: Darren Stahl <darst@microsoft.com>
2015-11-13 10:43:06 -08:00
Mary Anthony
0a31647780 Fixing issue noted by user
Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-13 10:28:51 -08:00
moxiegirl
f49fb07086 Merge pull request #17961 from pidster/add-weave-network-plugin
Add Weave Network Plugin to docs/extend/plugins.md
2015-11-13 10:12:58 -08:00
Alexander Morozov
cccf674943 Merge pull request #16873 from coolljt0725/expand_docker_info
Add more cgroup config to docker info
2015-11-13 09:37:06 -08:00
Vladimir Varankin
3830359745 Simplify address formating
Use `net.JoinHostPort()` which count IPv6 literals in `host`,
instead of relying on `net.ParseIP(host).To4()` side effects.

Signed-off-by: Vladimir Varankin <nek.narqo@gmail.com>
2015-11-13 20:32:32 +03:00
Antonio Murdaca
c705be8e22 Merge pull request #17955 from twhiteman/issue_17952
integration-cli: support remote docker host that uses TLS - fixes #17952
2015-11-13 18:26:32 +01:00
Alexander Morozov
59a341ed2a Merge pull request #17833 from rhatdan/signals
Define all of the signals defined by kill -l
2015-11-13 09:03:51 -08:00
kayrus
0f2b3191d9 Added possibility to use TLS with systemd socket activation
Signed-off-by: kayrus <kay.diam@gmail.com>
2015-11-13 17:01:23 +01:00
Mike Brown
430d8ff611 modifying docker --since and --until to support nanoseconds and time zones
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-11-13 09:56:15 -06:00
pidster
f57073c72b Add Weave Network Plugin to docs/extend/plugins.md
Signed-off-by: pidster <pid@pidster.com>
2015-11-13 10:09:22 +00:00
Sebastiaan van Stijn
02bc514fb8 Merge pull request #17912 from thaJeztah/fix-docs-for-docker-logs
docs: update supported drivers for docker logs
2015-11-13 07:37:47 +01:00
Shekhar Gulati
4e4a68415c added rx-docker-client library
Signed-off-by: Shekhar Gulati <shekhargulati84@gmail.com>
2015-11-13 08:23:57 +05:30
Brian Goff
6c27605df6 Merge pull request #17954 from LK4D4/move_utils_selinux
Rename daemon/utils_*.go to selinux
2015-11-12 20:06:21 -05:00
moxiegirl
c5a10b1d27 Merge pull request #17941 from s093294/patch-1
updated instruction to correct file path
2015-11-12 16:34:18 -08:00
moxiegirl
c8399630ca Merge pull request #17942 from thaJeztah/speedy-boarding
Docs: improve caching for make docs
2015-11-12 16:33:41 -08:00
Todd Whiteman
f6a037d474 integration-cli: support remote docker host that uses TLS - fixes #17952
Signed-off-by: Todd Whiteman <todd.whiteman@joyent.com>
2015-11-12 16:16:33 -08:00
Alexander Morozov
f9daecc880 Rename daemon/utils_*.go to selinux
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-12 15:48:41 -08:00
Vincent Demeester
588fedef4a Merge pull request #17949 from Microsoft/jjh/cpuweighttp4
Windows: TP4 fix cpu weight
2015-11-12 21:13:09 +01:00
Vincent Demeester
318a13b0af Merge pull request #17948 from LK4D4/splunk_windows
Enable Splunk logdriver for windows
2015-11-12 20:44:31 +01:00
Vincent Demeester
812a1c149a Merge pull request #13959 from Mashimiao/add-support-blkio_weight_device
Add support for blkio.weight_device
2015-11-12 20:42:13 +01:00
John Howard
90eac6b48b Windows: TP4 fix cpu weight
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-12 11:08:24 -08:00
James Turnbull
ef6cb749f0 Merge pull request #17947 from Blaisorblade/patch-1
Replace now broken link with a "permalink"
2015-11-12 14:05:44 -05:00
Alexander Morozov
705b50850c Enable Splunk logdriver for windows
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-12 10:57:21 -08:00
Vincent Demeester
b99b23ba93 Merge pull request #17929 from mqliang/hardCode
Removing TODO in pkg/term/windows
2015-11-12 19:56:09 +01:00
Paolo G. Giarrusso
6b02876362 Replace now broken link with a "permalink"
Fix #17927.

Instead of pointing to a file in Docker's GitHub repo on `master`
(which got renamed, breaking the link), point to a specific version
(the current latest). As a bonus, we now highlight the most
relevant lines, without becoming more fragile.

Signed-off-by: Paolo G. Giarrusso <p.giarrusso@gmail.com>
2015-11-12 19:17:29 +01:00
Aaron Lehmann
64f8ee444d Cap the amount of buffering done by BytesPipe
Turn BytesPipe's Read and Write functions into blocking, goroutine-safe
functions. Add a CloseWithError function to propagate an error code to
the Read function.

Adjust tests to work with the blocking Read and Write functions.

Remove BufReader, since now its users can use BytesPipe directly.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-12 10:11:29 -08:00
Tonis Tiigi
18c7c34d4b Fix docker pull on windows
Exceptions for the windows base layer handling.
    
    
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-12 10:04:53 -08:00
Tianon Gravi
8b9856dbd7 Merge pull request #17699 from jfrazelle/update-release-script-to-new-process
update release script and release process
2015-11-12 09:51:36 -08:00
Vincent Demeester
ce29a8cc37 Merge pull request #17200 from maaquib/16756-integration-cli-events-test
Using checkers assert for integration-cli/docker_cli_events_test.go
2015-11-12 16:43:12 +01:00
David Calavera
fc36475184 Merge pull request #17898 from zelahi/16756-createtest-dockercli
changed if  else statements to c.Asserts in docker_cli_create_test.go.
2015-11-12 07:37:29 -08:00
Sebastiaan van Stijn
06a4e5f981 Docs: improve caching for make docs
Use caching for all other repositories, instead
of doing a svn checkout each time.

This may result in showing  outdated docs
for other repositories, but --no-cache can be
used if the latest docs are needed.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-12 16:30:40 +01:00
David Calavera
8cf38b6a8b Merge pull request #17589 from Microsoft/jjh/refactorprocessconfig
Refactor ProcessConfig
2015-11-12 07:28:32 -08:00
David Calavera
eed704f7d9 Merge pull request #17901 from runcom/remove-not-needed-func
hack: make.sh: remove not used function
2015-11-12 07:16:43 -08:00
Poul Kjeldager Sørensen
5935867213 updated instruction to correct file path
Signed-off-by: Poul Kjeldager Sørensen <pks@ascend.xyz>
Signed-off-by: Poul Kjeldager Sørensen <pks@s-innovations.net>
2015-11-12 16:15:29 +01:00
Dan Walsh
d1ae13b0b0 Define all of the signals defined by kill -l
1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX

This will allow users to specify signals by name.  Needed to make docker run --stop-signal
work as defined by systemd.

man systemd

defines the proper way to shutdown a systemd running as pid 1 in a container as

SIGRTMIN+4

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-11-12 09:55:18 -05:00
Denis Gladkikh
26855c7801 Allow configurable metadata for Splunk log driver
Add support of `tag`, `env` and `labels` for Splunk logging driver.
Removed from message `containerId` as it is the same as `tag`.

Signed-off-by: Denis Gladkikh <denis@gladkikh.email>
2015-11-12 06:36:51 -08:00
Sven Dowideit
9c6e3396ef Merge pull request #17631 from sallyom/docker-login-non-root
clarify docker login
2015-11-12 22:39:35 +10:00
Sally O'Malley
f9657819cd docker-login man/doc add security info
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-11-12 07:25:35 -05:00
Sven Dowideit
715ddd6ee5 Merge pull request #17938 from thaJeztah/fix-docs-run-reference-link
docs: fix link to "run reference"
2015-11-12 22:09:56 +10:00
Sebastiaan van Stijn
f2705fa6ed docs: fix link to "run reference"
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-12 12:38:46 +01:00
Brian Goff
7d783ea5eb Merge pull request #17934 from sdurrheimer/zsh-completion-run-create-volume-driver
Add zsh completion for 'docker {run,create} --volume-driver'
2015-11-12 05:41:41 -05:00
Brian Goff
b6899ad56f Merge pull request #17923 from LK4D4/simple_ckill
daemon/kill.go: simplify if statement
2015-11-12 05:36:40 -05:00
Steve Durrheimer
76fe00c859 Add zsh completion for log options
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-11-12 09:53:35 +01:00
mqliang
644471bac8 kill TODO
Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-11-12 16:41:25 +08:00
Steve Durrheimer
8446a5c88b Add zsh completion for 'docker {run,create} --volume-driver'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-11-12 08:35:32 +01:00
moxiegirl
40ed821d2e Merge pull request #17388 from vikstrous/notary_docs
more notary documentation
2015-11-11 20:07:55 -08:00
Viktor Stanchev
e869e8aa3d more notary documentation
Signed-off-by: Viktor Stanchev <me@viktorstanchev.com>
2015-11-11 19:56:10 -08:00
Alexander Morozov
2337db8205 Merge pull request #17925 from cpuguy83/fix_locker_unit_tests
Use timeouts instead of relying on runtime.GoSched
2015-11-11 18:46:52 -08:00
Brian Goff
fd672d5926 Use timeouts instead of relying on runtime.GoSched
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-11 20:59:07 -05:00
Alexander Morozov
fa7ec908c4 daemon/kill.go: simplify if statement
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-11 17:19:39 -08:00
Brian Goff
87de5fdd59 Merge pull request #17919 from Microsoft/jjh/tp4
Windows [TP4] Require build 10586+
2015-11-11 19:36:13 -05:00
Brian Goff
5b046c71d8 Merge pull request #17916 from Microsoft/jjh/fix-cp-with-volumes
Windows [TP4] Fix docker cp when volumes
2015-11-11 19:35:05 -05:00
Sebastiaan van Stijn
6c31b17dfd Merge pull request #17921 from thaJeztah/thou-shalt-not-use-we
Fix find and replace typo in dockerimages
2015-11-12 00:09:46 +00:00
Sebastiaan van Stijn
a4b2de674c Fix find and replace typo in dockerimages
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-12 00:52:31 +01:00
Michael Crosby
b664a8825e Merge pull request #17918 from anusha-ragunathan/fsMagic
Include xfsprogs in build environment.
2015-11-11 15:43:52 -08:00
Mohammed Aaqib Ansari
2910f1101d Using checkers assert for integration-cli/docker_cli_events_test.go
Signed-off-by: Mohammed Aaqib Ansari <maaquib@gmail.com>
2015-11-11 18:12:30 -05:00
John Howard
122568b314 Windows [TP4] Require build 10586+
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-11 14:49:14 -08:00
Anusha Ragunathan
2b766a455c Include xfsprogs in build environment.
devmapper uses xfs by default now. So include xfsprogs in build
environment. Also update docs to reflect the new default.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2015-11-11 14:42:08 -08:00
Antonio Murdaca
9d4e2f3992 Merge pull request #17913 from clnperez/oom-test-requires
Add the memoryLimitSupport requirement to Events OOM tests
2015-11-11 23:24:10 +01:00
Alexander Morozov
6c82fba2b3 Merge pull request #17894 from mqliang/deferMove
move defer statement for readability
2015-11-11 14:03:48 -08:00
John Howard
3a852d8442 Windows [TP4] Fix docker cp when volumes
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-11 14:02:07 -08:00
Tibor Vass
adb14543fd Merge pull request #17903 from rhvgoyal/default-to-xfs-v2
Devicemapper: Default to xfs instead of ext4
2015-11-11 16:42:58 -05:00
moxiegirl
6c5395360f Merge pull request #17883 from dave-tucker/bug/17709
Add required ports for Overlay to docs
2015-11-11 13:10:22 -08:00
Sebastiaan van Stijn
e49e6b7bfd Merge pull request #17915 from moxiegirl/17764-fix
Adding in Contiv plugins
2015-11-11 20:56:57 +00:00
Mary Anthony
40fc3a8bcf Adding in Contiv plugins
Fixes #17764
Also fixed problem where the menu ordering was off
Fix the wrap

Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-11 12:56:07 -08:00
moxiegirl
f74c423255 Merge pull request #17813 from davidcurrie/mhn-updates
Updates to Get started with multi-host networking
2015-11-11 12:43:45 -08:00
David Currie
f16dceb632 Updates to Get started with multi-host networking
Updates primarily to expand usage of Swarm cluster and make Compose
section more verbose plus other minor corrections.

Signed-off-by: David Currie <david_currie@uk.ibm.com>
2015-11-11 20:31:18 +00:00
Arnaud Porterie
37dfae3cde Merge pull request #17909 from LK4D4/info_simple
daemon/info.go: assign proxy fields directly
2015-11-11 21:15:13 +01:00
Sebastiaan van Stijn
ee8aadbdd9 Merge pull request #17807 from albers/completion-network-yes
Align configuration of bash completion with existing values
2015-11-11 20:01:27 +00:00
Dan Walsh
1716d497a4 Relabel BTRFS Content on container Creation
This change will allow us to run SELinux in a container with
BTRFS back end.  We continue to work on fixing the kernel/BTRFS
but this change will allow SELinux Security separation on BTRFS.

It basically relabels the content on container creation.

Just relabling -init directory in BTRFS use case. Everything looks like it
works. I don't believe tar/achive stores the SELinux labels, so we are good
as far as docker commit.

Tested Speed on startup with BTRFS on top of loopback directory. BTRFS
not on loopback should get even better perfomance on startup time.  The
more inodes inside of the container image will increase the relabel time.

This patch will give people who care more about security the option of
runnin BTRFS with SELinux.  Those who don't want to take the slow down
can disable SELinux either in individual containers or for all containers
by continuing to disable SELinux in the daemon.

Without relabel:

> time docker run --security-opt label:disable fedora echo test
test

real    0m0.918s
user    0m0.009s
sys    0m0.026s

With Relabel

test

real    0m1.942s
user    0m0.007s
sys    0m0.030s

Signed-off-by: Dan Walsh <dwalsh@redhat.com>

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-11-11 14:49:27 -05:00
Sebastiaan van Stijn
3e9543fc61 docs: update supported drivers for docker logs
The journald driver also supports docker logs.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-11 20:47:42 +01:00
Alexander Morozov
1df0bb5a13 daemon/info.go: assign proxy fields directly
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-11 11:03:53 -08:00
David Calavera
0b566566c6 Merge pull request #17858 from sanimej/libn
Allow port mapping only for endpoint created on docker run
2015-11-11 11:00:31 -08:00
Alexander Morozov
2bb1c530d7 Merge pull request #17193 from cpuguy83/refactor_store_errors
Refactor volume store's error usage
2015-11-11 10:25:00 -08:00
Dave Tucker
44a527d877 Add required ports for Overlay to docs
Fixes #17709

Signed-off-by: Dave Tucker <dt@docker.com>
2015-11-11 18:04:07 +00:00
Tibor Vass
7a985cfafc Merge pull request #17890 from aboch/b6
Restore deterministic IPv6 from MAC behavior on default bridge network
2015-11-11 12:42:08 -05:00
Vivek Goyal
07ff17fb85 devmapper: Switch to xfs as default filesystem if supported
If platform supports xfs filesystem then use xfs as default filesystem 
for container rootfs instead of ext4. Reason being that ext4 is pre-allcating
lot of metadata (around 1.8GB on 100G thin volume) and that can take long
enough on AWS storage that systemd times out and docker fails to start.

If one disables pre-allocation of ext4 metadata, then it will be allocated
when containers are mounted and we will have multiple copies of metadata
per container. For a 100G thin device, it was around 1.5GB of metadata
per container.

ext4 has an optimization to skip zeroing if discards are issued and
underlying device guarantees that zero will be returned when discarded
blocks are read back. devicemapper thin devices don't offer that guarantee
so ext4 optimization does not kick in. In fact given discards are optional
and can be dropped on the floor if need be, it looks like it might not be
possible to guarantee that all the blocks got discarded and if read back
zero will be returned.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-11-11 12:07:35 -05:00
Vivek Goyal
83a34e000b devmapper: Warn if user specified a filesytem and base device already has fs
If user wants to use a filesystem it can be specified using dm.fs=<filesystem>
option. It is possible that docker already had base image and a filesystem
on that. Later if user wants to change file system using dm.fs= option
and restarts docker, that's not possible. Warn user about it.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-11-11 12:07:35 -05:00
Alessandro Boch
095a8ac545 Restore IPv6 from MAC on default bridge network
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-11-11 08:36:04 -08:00
Ma Shimiao
0fbfa1449d Add support for blkio.weight_device
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-11-11 23:06:36 +08:00
Vincent Demeester
2a7b5f6657 Merge pull request #17880 from duglin/TweakMap
convert map value from struct to bool
2015-11-11 13:49:50 +01:00
Sebastiaan van Stijn
9498e9b732 Merge pull request #17800 from Starefossen/patch-1
Utillize build cache for Node.js web app example
2015-11-11 09:56:40 +00:00
Vincent Demeester
d6856db128 Merge pull request #17012 from fgimenez/9986-ipallocator-excludes-bridge-ip
Test to ensure that the bridge ip is excluded from the allocator pool
2015-11-11 10:42:13 +01:00
Antonio Murdaca
dc41fff56e hack: make.sh: remove not used function
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-11 10:19:03 +01:00
Zuhayr Elahi
91041884f8 changed if else statements to c.Asserts in docker_cli_create_test.go.
Signed-off-by: Zuhayr Elahi <elahi.zuhayr@gmail.com>
2015-11-10 23:15:32 -08:00
Vincent Batts
1066725395 Merge pull request #16774 from tonistiigi/15643-aufs-plnk
Copy aufs hardlinks to top layer
2015-11-11 07:59:41 +01:00
Alessandro Boch
43b3b6ecb4 Vendoring libnetwork e8ebc0bf6510343c88d162db08b3d855cbbe75b9
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-11-10 21:13:25 -08:00
Tibor Vass
09980ef7ac Merge pull request #17853 from aboch/ipr
Fix fixed-cidr daemon option
2015-11-10 23:38:33 -05:00
mqliang
d71eeb1c05 move defer statement for readability
Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-11-11 11:28:23 +08:00
Brian Goff
43012fe842 Refactor volume store's error usage
Uses an errors API similar the `net` package.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-10 20:33:29 -05:00
Christy Perez
e86b79fccc Add the memoryLimitSupport requirement to OOM tests
The docker run commands in these tests uses the -m flag,
so the tests should require that it's supported to run.

Fixes 17215 (maybe)

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-11-10 18:06:13 -06:00
David Calavera
69f73252e9 Merge pull request #17881 from aaronlehmann/import-logging
Correct import event logging
2015-11-10 15:48:02 -08:00
Antonio Murdaca
75c0cc2f10 Merge pull request #17875 from tonistiigi/17827-builder-root-source
Add test for builder cache with root source path
2015-11-11 00:20:25 +01:00
Sebastiaan van Stijn
877df6bd38 Merge pull request #17884 from Microsoft/jjh/proxify
Removing made up word from docs
2015-11-10 23:15:45 +00:00
John Howard
2d87dd5c6e Removing made up word
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-10 14:37:23 -08:00
Hans Kristian Flaatten
641c739fc1 Utillize build cache for Node.js web app example
Signed-off-by: Hans Kristian Flaatten <hans@starefossen.com>
2015-11-10 23:05:32 +01:00
Aaron Lehmann
77cd22ea73 Correct import event logging
Importing an image currently logs an event with id:tag. This format is
strange and nonstandard - possibly a mistake. Just log the ID instead.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-10 13:34:53 -08:00
Sebastiaan van Stijn
d575d1e094 Merge pull request #17806 from albers/fix-17768
Fix bash completion on systems where extglob is not set
2015-11-10 21:32:23 +00:00
David Calavera
35d9bcdb57 Merge pull request #17732 from Microsoft/sjw/archive_access_time_fix
Fixing last access time on Windows to unblock python.
2015-11-10 13:17:03 -08:00
Doug Davis
fbdce2547f convert map value from struct to bool
Just for @calavera !! :-)
Per: https://github.com/docker/docker/pull/17789#discussion_r44333133

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-11-10 13:10:35 -08:00
Sebastiaan van Stijn
3d23fdaf97 Merge pull request #17754 from justincormack/gpg-server
Add an alternate gpg server to the documentation for Ubuntu and Debian.
2015-11-10 21:08:56 +00:00
David Calavera
5b718bdee2 Merge pull request #17874 from LK4D4/nocheck_nil_map
daemon/info.go: remove check for map nilness
2015-11-10 12:52:52 -08:00
Justin Cormack
4fca870212 Use the SKS port 80 keyserver pool, as it is more reliable than the MIT server
Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2015-11-10 20:44:18 +00:00
Sebastiaan van Stijn
d4c4557b1a Merge pull request #17613 from Microsoft/10662-isolationexecopt
Windows: Add default isolation exec driver option
2015-11-10 19:55:46 +00:00
John Howard
a429ad1e35 Windows: Add default isolation exec driver option
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-10 11:39:05 -08:00
Sebastiaan van Stijn
d27e802bc5 Merge pull request #17641 from libopenstorage/plugins-md
Add OpenStorage to plugins.md
2015-11-10 19:21:43 +00:00
Sebastiaan van Stijn
2f1865ae0e Merge pull request #17778 from tophj-ibm/link-fixes
Fixed broken links in docker_remote_api
2015-11-10 19:17:17 +00:00
Sebastiaan van Stijn
2aa9d85c92 Merge pull request #17821 from HackToday/17820-fix-volume-doc
Fixing wrong volume doc format
2015-11-10 19:03:09 +00:00
Sebastiaan van Stijn
9739aa056e Merge pull request #17870 from thaJeztah/fix-advanced-contributing-link
Fix broken links in CONTRIBUTING.md
2015-11-10 18:31:09 +00:00
Tonis Tiigi
86faf1e165 Add test for builder cache with root source path
Fixes #17827

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-10 10:15:09 -08:00
David Calavera
470fc94f38 Merge pull request #17476 from coolljt0725/prevent_connect_to_host
Fix connect to host and prevent disconnect from host for host network
2015-11-10 09:48:33 -08:00
Sebastiaan van Stijn
4aaebec1bc Merge pull request #17873 from Blaisorblade/patch-1
Fix link to installation instructions
2015-11-10 17:32:21 +00:00
Alexander Morozov
8f311f4d8c daemon/info.go: remove check for map nilness
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-10 09:20:59 -08:00
Paolo G. Giarrusso
c5f24c7902 Fix link to installation instructions
Fix #17872:

> The script at https://get.docker.com/ links to https://docs.docker.com/en/latest/installation/, which gives a 404 error. The correct link is https://docs.docker.com/engine/installation/.

Signed-off-by: Paolo G. Giarrusso <p.giarrusso@gmail.com>
2015-11-10 18:06:58 +01:00
David Calavera
a6a3c42b58 Merge pull request #17848 from Microsoft/jjh/tidyconfigstructs2
Tidy hostconfig struct
2015-11-10 08:57:05 -08:00
David Calavera
014bab03ef Merge pull request #17789 from duglin/Issue17781
Allow for env vars to have spaces in some cases
2015-11-10 08:55:11 -08:00
Sebastiaan van Stijn
850f7841f7 Fix broken links in CONTRIBUTING.md
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-10 16:56:31 +01:00
gissehel
e036bf6c07 explicit way to express that those are different choice and not just one big file to create
Signed-off-by: gissehel <public-devgit-dantus@gissehel.org>
2015-11-10 11:41:19 +01:00
Vincent Demeester
fb2bae5e16 Merge pull request #17857 from sdurrheimer/zsh-completion-stats-all
Add zsh completion for 'docker stats --all -a'
2015-11-10 11:06:32 +01:00
Sebastiaan van Stijn
34916dcc4b Merge pull request #17467 from WeiZhang555/fix-doc
fix format of man page
2015-11-10 09:50:31 +00:00
Liu Hua
343e15fa3f remove unnecessary logs from daemon
if daemon encounters removing-file error. It will record two
similar logs as following . The later is meaningful for client, But not for
daemon. So remove it.

Signed-off-by: Liu Hua <sdu.liu@huawei.com>
2015-11-10 17:44:38 +08:00
Steve Durrheimer
ba2a5a420d Add zsh completion for 'docker stats --all -a'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-11-10 08:47:46 +01:00
Lei Jitang
e035d27223 Show warning when user specify dm.basesize for already initialized devicemapper drive
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-11-10 14:50:19 +08:00
Antonio Murdaca
6f2c6111d4 Merge pull request #17843 from LK4D4/discovery_refactor
Refactoring in daemon/discovery.go
2015-11-10 07:34:11 +01:00
Doug Davis
70579bd558 Merge pull request #17847 from LK4D4/exec_unnec_var
Remove unnecessary var block in monitorExec
2015-11-09 23:32:38 -06:00
Shijiang Wei
76992f3e23 remove the unused DefaultNetwork member from daemon.Config
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-11-10 09:51:15 +08:00
Zhang Wei
d790469681 Fix man pages
Add contents and fix format problem for man pages.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-10 09:33:55 +08:00
Sebastiaan van Stijn
c97ac4daf0 Merge pull request #17279 from someara/articles-chef
Documenation update - articles/chef
2015-11-10 00:56:41 +00:00
David Calavera
95903ece60 Merge pull request #17844 from anthonydahanne/master
Implicitly use swarm:latest
2015-11-09 16:10:19 -08:00
Alessandro Boch
c7cd659624 Fix fixed-cidr daemon option
- Logic is broken when gateway ip falls in ip-range
  and ip-range is not the first block in the network

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-11-09 15:51:46 -08:00
Alessandro Boch
9c395537bc Vendoring libnetwork 5978c276ad20e104d6acd749da6ee6a8930055ae
- To bring in ip-range fix

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-11-09 15:29:54 -08:00
John Howard
51cf074e77 Tidy hostconfig struct
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-09 15:24:23 -08:00
Alexander Morozov
d83b5dc177 Refactoring in daemon/discovery.go
Replace time.Sleep with time.Tick and remove unnecessary var block.
Use Warn log-level instead of error.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-09 15:21:27 -08:00
David Calavera
fa210a01be Merge pull request #17838 from calavera/revert_17579
Revert "Tidy config/hostconfig structures"
2015-11-09 15:21:26 -08:00
Alexander Morozov
445675e808 Remove unnecessary var block in monitorExec
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-09 15:14:20 -08:00
Tibor Vass
62b484411e Merge pull request #17779 from calavera/fix_dns_regression
Use an empty slice as default value for DNS, DNSSearch and DNSOptions.
2015-11-09 18:07:07 -05:00
Anthony Dahanne
4efe0def0a Implicitly use swarm:latest so that master and agent use the same version of swarm
Signed-off-by: Anthony Dahanne <anthony.dahanne@gmail.com>
2015-11-09 15:05:17 -08:00
David Calavera
143f3579b0 Merge pull request #17450 from rhatdan/selinux
Fix relabel for SELinux
2015-11-09 13:19:28 -08:00
David Calavera
58b270c338 Merge pull request #17431 from vdemeester/hope-it-does-not-broke-everything-again
Another try at dockerversion placeholder for library import
2015-11-09 13:15:50 -08:00
David Calavera
3a1200f9f1 Revert "Tidy config/hostconfig structures"
This reverts commit ad5052df23.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-09 15:46:45 -05:00
Doug Davis
6990f8c616 Allow for env vars to have spaces in some cases
Closes #17781

This allows for env vars in EXPOSE to be parsed for spaces so that each
"word" is then treated independently instead of as a single word/arg.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-11-09 12:42:56 -08:00
David Calavera
69bc4ebe7a Merge pull request #17819 from tonistiigi/17766-fix-opq-dot
Fix opq whiteouts problems for files with dot prefix
2015-11-09 11:08:31 -08:00
Dan Walsh
d9011b3617 Fix relabel for SELinux
With the changes merged into runc/libcontainer, are now causing
SELinux to attempt a relabel always, even if the user did not
request the relabel.

If the user does not specify Z or z on the volume mount we should
not attempt a relabel.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-11-09 14:04:57 -05:00
Vincent Demeester
e509fe604c Merge pull request #17816 from coolljt0725/remove_execdriver_env
Remove DOCKER_EXECDRIVER env
2015-11-09 19:59:18 +01:00
David Calavera
56c8d4aaef Merge pull request #17834 from LK4D4/update_runc
Update runc to introduce RelabelNeeded function
2015-11-09 10:58:54 -08:00
Alexander Morozov
2786af3add Merge pull request #17775 from vdemeester/16756-integration-cli-checkers-runs-unix
Use checker for docker_cli_run_unix_test.go
2015-11-09 10:44:32 -08:00
Vincent Demeester
8054a30387 dockerversion placeholder for library import
- Add a *version* file placeholder.
- Update autogen and builds to use it and an autogen build flag

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-09 19:32:46 +01:00
David Calavera
0631ec6ca0 Merge pull request #17810 from cpuguy83/graph_cleanup
Graph: Un-export non-externally used functions
2015-11-09 10:30:13 -08:00
David Calavera
e1910a8e23 Merge pull request #17829 from albers/completion-stats--all
bash completion for `docker stats --all`
2015-11-09 10:29:33 -08:00
David Calavera
427dcb7f82 Merge pull request #17579 from Microsoft/jjh/tidyconfigstructs
Tidy config/hostconfig structures
2015-11-09 10:14:58 -08:00
Alexander Morozov
00bcc924fa Update runc to introduce RelabelNeeded function
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-09 10:03:25 -08:00
John Howard
5fa2e4d4f2 Refactor ProcessConfig
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-09 09:51:09 -08:00
David Calavera
f1a74a89f8 Use an empty slice as default value for DNS, DNSSearch and DNSOptions
So we don't print those <no value> in the client and we don't fail
executing inspect templates with API field names.

Make sure those fields are initialized as empty slices when
a container is loaded from disk and their values are nil.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-09 12:46:48 -05:00
Alexander Morozov
7adfb3221e Merge pull request #17584 from Microsoft/10662-OOMKilled
Windows: Refactor exitStatus structure
2015-11-09 09:23:08 -08:00
John Howard
77af7d1067 Refactor exitStatus structure
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-09 08:26:35 -08:00
Alexander Morozov
28588efb47 Merge pull request #17089 from Microsoft/10662-ansi
Windows: Native ANSI console support
2015-11-09 08:05:08 -08:00
Harald Albers
ee13fc5b2f bash completion for docker stats --all
Signed-off-by: Harald Albers <github@albersweb.de>
2015-11-09 16:27:13 +01:00
Kai Qiang Wu(Kennan)
a874ce08f3 Fixing wrong volume doc format
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2015-11-09 02:17:50 -06:00
Tonis Tiigi
db3070ab1b Fix opq whiteouts problems for files with dot prefix
Fixes #17766

Previously, opaque directory whiteouts on non-native
graphdrivers depended on the file order, meaning
files added with the same layer before the whiteout
file `.wh..wh..opq` were also removed.

If that file happened to have subdirs, then calling
chtimes on those dirs after unpack would fail the pull.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-08 23:00:01 -08:00
Vincent Demeester
944dc7fa8f Merge pull request #17808 from bboreham/ipc-errormsg
Fix typo in container-start error message
2015-11-09 07:58:03 +01:00
Vincent Demeester
c13ca529d3 Merge pull request #17817 from Microsoft/jjh/contained
Typo s/contained/container
2015-11-09 07:55:44 +01:00
Harald Albers
211e3b0df6 Fix bash completion on systems where extglob is not set
Signed-off-by: Harald Albers <github@albersweb.de>
2015-11-08 22:31:16 -08:00
John Howard
2ff68910e2 Typo s/contained/container
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-08 18:29:34 -08:00
Lei Jitang
a2d8c93fc6 Prevent connecting to host and prevent disconnecting from host
Container has private network namespace can not to connect to host
and container with host network can not be disconnected from host.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-11-09 10:19:53 +08:00
Lei Jitang
3c4dab51d3 Remove DOCKER_EXECDRIVER env
Since --exec-driver flag has been removed, we don't need environment
DOCKER_EXECDRIVER in integration-cli and Makefile any more.

Signed-off-by: Lei Jitang <leijiang@huawei.com>
2015-11-09 09:17:32 +08:00
Brian Goff
d7a41325fa Un-export non-externally used functions
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-08 15:51:27 -05:00
Bryan Boreham
93405dd037 Fix typo in error message
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2015-11-08 18:05:34 +00:00
Harald Albers
8311db14fc Align configuration of bash completion with existing values
Signed-off-by: Harald Albers <github@albersweb.de>
2015-11-08 09:35:48 -08:00
Doug Davis
e357be4abe Merge pull request #17801 from cpuguy83/remove_dead_graph_code
Remove dead graph code
2015-11-08 12:33:27 -05:00
Antonio Murdaca
343c8547df Merge pull request #17762 from LK4D4/builder_commit
Use name instead of container in Commit
2015-11-08 15:57:13 +01:00
Brian Goff
8c08002a10 Remove dead graph code
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-08 08:57:54 -05:00
Brian Goff
70b3ce17b7 Merge pull request #17793 from haoshuwei/modify-improper-comments-on-volume-file
Modify improper comments in api/server/router/volume/volume.go
2015-11-08 07:24:48 -05:00
Antonio Murdaca
e4d8ea0087 Merge pull request #17792 from cpuguy83/graph_use_locker_pkg
Replace `imageMutex` with `Locker` pkg
2015-11-08 12:11:20 +01:00
Jess Frazelle
ea59233eb1 Merge pull request #16533 from justsml/LMDEv2
LMDE check added to `check_forked()` function - See #16498
2015-11-08 02:28:11 -08:00
Vincent Demeester
e2a9eede28 Merge pull request #17786 from Microsoft/10662-nativetestunit
Windows: Native make test-unit
2015-11-08 11:12:09 +01:00
Shuwei Hao
6efa10f668 Modify improper comments in api/server/router/volume/volume.go
Signed-off-by: Shuwei Hao <haoshuwei24@gmail.com>
2015-11-08 04:05:59 +00:00
Brian Goff
342e6bb99f Merge pull request #17581 from Microsoft/10662-factoroutexecuser
Windows: Factor out user in execdriver\driver
2015-11-07 22:11:26 -05:00
Brian Goff
2764839ae1 Replace imageMutex with Locker pkg
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-07 21:23:12 -05:00
Brian Goff
bf5a6d2a83 Merge pull request #17710 from tonistiigi/fix-builder-symlinks
Fix symlink handling in builder ADD/COPY commands
2015-11-07 16:32:07 -05:00
Antonio Murdaca
98054a8b5c Merge pull request #17787 from Microsoft/jjh/execdriverutils
Don't build utils on Windows
2015-11-07 21:27:32 +01:00
Sebastiaan van Stijn
fdc8cce070 Merge pull request #16742 from runcom/10772-docker-stats-all
Allow docker stats without arguments
2015-11-07 19:41:03 +00:00
John Howard
b10dd17e06 Don't build utils on Windows
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-07 08:46:36 -08:00
John Howard
7268f767e6 Windows: Native make test-unit
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-07 08:23:10 -08:00
David Calavera
efc7b9bbf7 Merge pull request #17544 from Microsoft/jjh/nativewindowsbuild
Windows: Native build without link errors
2015-11-07 08:22:35 -08:00
Antonio Murdaca
ae818a820f Allow docker stats without arguments
This patch adds the ability to run `docker stats` w/o arguments and get
statistics for all running containers by default. Also add a new
`--all` flag to list statistics for all containers (like `docker ps`).
New running containers are added to the list as they show up also.
Add integration tests for this new behavior.
Docs updated accordingly. Fix missing stuff in man/commandline
reference for `docker stats`.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-07 17:03:33 +01:00
Vincent Batts
10df5647bd Merge pull request #17757 from rhvgoyal/log-blkid-failure
devmapper: Provide more error information if blkid fails
2015-11-07 09:16:14 -05:00
Vincent Demeester
e71cbc337f Merge pull request #17600 from Microsoft/jjh/fix-test-unit
Windows: Fix test-unit for local run
2015-11-07 09:21:16 +01:00
Vincent Demeester
98a1141db9 Merge pull request #17616 from Microsoft/10662-fix-dockerfile-parser
Windows: Fix dockerfile\parser TestTestData unit test
2015-11-07 09:12:43 +01:00
Brian Goff
62619a118f Merge pull request #17580 from Microsoft/jjh/move-validation-functions
Move validation functions in runconfig
2015-11-06 22:21:10 -05:00
John Howard
ad5052df23 Tidy config/hostconfig structures
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-06 17:53:46 -08:00
Alexander Morozov
ad55d29c91 Merge pull request #17575 from Microsoft/10662-nativetemplate
Windows: Fix native exec template
2015-11-06 16:14:44 -08:00
John Howard
d92f7f42b2 Windows: Native daemon build
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-06 15:35:56 -08:00
John Howard
ee6c3580c9 Move validation functions
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-06 15:28:50 -08:00
John Howard
33faea576f Windows: Fix test-unit for local run
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-06 15:23:48 -08:00
David Calavera
1ba280a8db Merge pull request #17576 from Microsoft/10662-graphtest
Windows: Fix daemon\graphdriver\graphtest
2015-11-06 15:13:31 -08:00
David Calavera
1228103563 Merge pull request #17511 from Microsoft/jjh/fix-test-paths
Fix test file paths
2015-11-06 15:09:03 -08:00
David Calavera
2fff6b15fe Merge pull request #17777 from Microsoft/10662-tp4locahost
Windows [TP4] localhost mitigation for 2-second perf regression
2015-11-06 15:06:27 -08:00
David Calavera
f198334400 Merge pull request #17738 from Microsoft/jjh/login
Windows: [TP4] Fix docker login
2015-11-06 15:02:42 -08:00
David Calavera
754c2e08b7 Merge pull request #17751 from guilhem/patch-1
Fix missing `-d` flag in docker.fish
2015-11-06 14:59:30 -08:00
Lei Jitang
451b79d691 Test to verify --mac-address doesn't get applied to new endpoint
created on network connect.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-11-06 14:52:35 -08:00
Vincent Demeester
2d87403704 Merge pull request #17767 from LK4D4/nice_logs_message
Return nice client-side message for docker logs
2015-11-06 23:51:05 +01:00
Aditi Rajagopal
1c9a5d7be7 Checkers on docker_cli_by_digest_test
Applying #16756 to integration-cli/docker_cli_by_digest_test.go

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-11-06 16:15:35 -06:00
Christopher Jones
93939c3f9f Fixed broken links in docker_remote_api
Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-11-06 16:12:51 -06:00
Santhosh Manohar
dedcf6a6ff Allow port mapping only for endpoint created on docker run
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-11-06 13:54:17 -08:00
John Howard
eb2acb8f0e Windows [TP4] localhost mitigation
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-06 13:52:59 -08:00
Vincent Demeester
7a82429b3d Use checker for docker_cli_run_unix_test.go
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-06 22:49:16 +01:00
moxiegirl
8aa8d51610 Merge pull request #17713 from nathanleclaire/mhs_nits_2_the_sequel_electric_overloo
Revise commands in Compose section of multi-host quickstart
2015-11-06 13:04:43 -08:00
Tianon Gravi
1c383af6ae Fix Windows support in .vendor-helpers.sh
Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
2015-11-06 12:07:24 -08:00
Alexander Morozov
e37e329074 Return nice client-side message for docker logs
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-06 11:40:48 -08:00
Tonis Tiigi
47da59f7ec Fix symlink handling in builder ADD/COPY commands
Fixes #17290

Fixes following issues:

- Cache checksums turning off while walking a broken symlink.

- Cache checksums were taken from symlinks while targets were actually copied.

- Copying a symlink pointing to a file to a directory used the basename of the target as a destination basename, instead of basename of the symlink.


Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-06 10:58:12 -08:00
Alexander Morozov
38e34cf6da Use name instead of container in Commit
It will make daemon interface separation easier later.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-06 10:22:00 -08:00
Alexander Morozov
cc207aa136 Merge pull request #17185 from cpuguy83/use_finer_locking_for_volume_store
Fix potential races in the volume store
2015-11-06 08:48:12 -08:00
Vivek Goyal
2c8b7c597a devmapper: Provide more error information if blkid fails
Right now if blkid fails we are just logging a debug message and don;t return
the actual error to caller. Caller gets the error message that thin pool
base device UUID verification failed and it might give impression that thin
pool changed. But that's not the case. Thin pool is in such a state that we
could not even query the thin device UUID. Retrun error message appropriately
to make situation more clear.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-11-06 08:21:20 -05:00
Doug Davis
6ba7d04d16 Merge pull request #17753 from runcom/fix-typo-tests-reqs
integration-cli: requirements: fix typo
2015-11-06 07:02:51 -05:00
Antonio Murdaca
7dda44004d Merge pull request #17746 from coolljt0725/remove_lxcconfig
Remove LxcConf in daemon_test.go and fix a typo
2015-11-06 12:21:33 +01:00
Antonio Murdaca
313b85fa47 integration-cli: requirements: fix typo
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-06 12:15:42 +01:00
Guilhem Lettron
4a3cd88172 Fix missing -d flag in docker.fish
Signed-off-by: Guilhem Lettron <guilhem@lettron.fr>
2015-11-06 11:53:17 +01:00
Gou Rao
1a8cd193f9 Update plugins.md
Signed-off-by: Gou Rao <gou@portworx.com>
2015-11-05 21:16:26 -08:00
Brian Goff
f1834153de Merge pull request #17383 from Microsoft/10662-volumeerrors
Fix volume error messages
2015-11-05 21:58:03 -05:00
Lei Jitang
00d00b429f Remove LxcConf in daemon_test.go and fix a typo
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-11-06 09:58:06 +08:00
Sebastiaan van Stijn
5e2f31e992 Merge pull request #17696 from thaJeztah/update-ubuntu-install
Docs: add "Linux kernel extra" to manual install
2015-11-06 02:04:05 +01:00
Sebastiaan van Stijn
7a2669f596 Merge pull request #17610 from thaJeztah/add-env-example
Add examples for ENV vars in API
2015-11-06 01:19:58 +01:00
Sven Dowideit
a1ecd8e68c Merge pull request #17693 from tophj-ibm/fixed-docs-contribution-link
Fixed link to contribution page in docs/README.md.
2015-11-06 09:57:07 +10:00
Solomon Hykes
2519f46550 Merge pull request #17700 from calavera/remove_lxc
Remove LXC support.
2015-11-05 15:22:37 -08:00
David Calavera
98ec6bc14c Merge pull request #16692 from vdemeester/16690-fix-etc-osrelease-panic
Fix panic in parsing /etc/os-release
2015-11-05 15:11:02 -08:00
David Calavera
b232362310 Merge pull request #17735 from LK4D4/errcode_resize
Move errcode handling for resize upper
2015-11-05 15:00:48 -08:00
John Howard
9c765040a5 Windows: Fix docker login
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-05 14:19:48 -08:00
David Calavera
157b66ad39 Remove exec-driver global daemon option.
Each platform has only a driver now.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-05 17:09:58 -05:00
David Calavera
3b5fac462d Remove LXC support.
The LXC driver was deprecated in Docker 1.8.
Following the deprecation rules, we can remove a deprecated feature
after two major releases. LXC won't be supported anymore starting on Docker 1.10.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-05 17:09:57 -05:00
Tianon Gravi
6417c53c5a Merge pull request #17731 from PerfectMemory/upstart-start-on-filesystem
Update upstart init script to start on filesystem (not only on local ones).
2015-11-05 13:51:07 -08:00
Jess Frazelle
31fa27d47e Merge pull request #17496 from chasebolt/centos-rpm-dep
setting device-mapper-libs version dependency for centos 7 rpm
2015-11-05 13:46:27 -08:00
Alexander Morozov
bb0e7eb196 Move errcode handling for resize upper
It'll allow to separate daemon layer more cleanly later.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-05 13:42:33 -08:00
David Calavera
b52bedbd48 Merge pull request #17726 from runcom/fix-errors-format
Fix errors format
2015-11-05 13:30:57 -08:00
Brian Goff
8de3d630ad Merge pull request #17678 from asbjornenge/tm_syntax_updates
Added ARG instruction and aligned with src repo
2015-11-05 16:30:19 -05:00
David Calavera
c7b65288e4 Merge pull request #17685 from WeiZhang555/cluster-parser
Fix `--cluster-store` option parser
2015-11-05 13:21:52 -08:00
Brian Goff
9465d6ee6a Merge pull request #17534 from Microsoft/10662-filterhyperv
Windows: Add isolation to ps filter
2015-11-05 15:55:47 -05:00
Stefan J. Wernli
37ba67bf63 Fixing last access time on Windows to unblock python.
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-11-05 12:15:18 -08:00
Julien Pervillé
6f83dd22a3 Update upstart init script to start on filesystem (not only on local ones).
Signed-off-by: Julien Pervillé <julien.perville@perfect-memory.com>
2015-11-05 20:38:52 +01:00
Jess Frazelle
3c6962f22d Merge pull request #17677 from fboudra/master
Remove yum cache to reduce image size
2015-11-05 11:16:40 -08:00
Vincent Demeester
7b102dc114 Fix panic in parsing /etc/os-release
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-05 19:59:29 +01:00
Vincent Demeester
b09a452c1f Vendor mattn/go-shellwords
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-05 19:59:28 +01:00
Jess Frazelle
5353ccb05c Merge pull request #17273 from stefanberger/apparmor_policy_1.9
More Rules for AppArmor
2015-11-05 10:52:43 -08:00
John Howard
9c5814171c Windows: Add isolation to ps filter
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-05 10:18:24 -08:00
Antonio Murdaca
77826333fe Fix errors format
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-05 18:17:37 +01:00
Sebastiaan van Stijn
336dea3e50 Merge pull request #17725 from polonskiy/patch-1
fix typo
2015-11-05 17:40:45 +01:00
Anton Polonskiy
3f331eaa40 fix typo
Signed-off-by: Anton Polonskiy <anton.polonskiy@gmail.com>
2015-11-05 18:33:16 +02:00
Stefan Berger
02411987ff More Rules for AppArmor
This patch addresses the following AppArmor complains:

type=AVC msg=audit(1445537397.873:547): apparmor="ALLOWED" operation="mount"
  info="failed srcname match" error=-13 profile="/usr/bin/docker"
  name="/.pivot_root602836504/" pid=11512 comm="exe" flags="rw, rprivate"

type=AVC msg=audit(1445537265.325:502): apparmor="ALLOWED"
  operation="file_lock" profile="/usr/bin/docker"
  name="/var/lib/docker/network/files/local-kv.db" pid=9574 comm="docker"
  requested_mask="k" denied_mask="k" fsuid=0 ouid=0

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2015-11-05 11:06:18 -05:00
Vincent Demeester
c05e1b7d57 Merge pull request #17722 from jeroenj/patch-1
Fixes typo in docs/userguide/dockervolumes.md
2015-11-05 16:22:32 +01:00
Christopher Jones
f48f850a24 Updated link to https.
Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-11-05 09:20:20 -06:00
Jeroen Jacobs
75602d4930 Fixes typo in docs/userguide/dockervolumes.md
Signed-off-by: Jeroen Jacobs <git@jeroenj.be>
2015-11-05 16:08:11 +01:00
Brian Goff
c136a33c5b Fallback to file polling for jsonlog reader on err
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-05 10:05:05 -05:00
Antonio Murdaca
22ef779db9 Merge pull request #17207 from azurezk/assert_docker_cli_help_test
update docker_cli_help_test.go
2015-11-05 15:15:52 +01:00
Brian Goff
bb9eca9036 Merge pull request #17671 from Microsoft/sjw/skip_mount_on_create
Optimize Create Container to skip extra mount on Windows.
2015-11-05 09:15:28 -05:00
Antonio Murdaca
71db33738d Merge pull request #17574 from Microsoft/10662-devicetool
Windows: Fix docker device tool
2015-11-05 13:05:28 +01:00
Zhang Wei
fbed26297d Include container names in network inspect
This commit makes `docker network inspect` print container names as
service discovery is based on container name.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-05 19:16:13 +08:00
Vincent Demeester
f267e4be54 Merge pull request #17697 from jfrazelle/test-old-apt-repo
add script to test the old apt-repo
2015-11-05 12:11:57 +01:00
Vincent Demeester
5baf56ca00 Merge pull request #17717 from WeiZhang555/docsAndTypo
Fix docs typo and wrong word
2015-11-05 11:35:33 +01:00
Asbjørn Enge
8d74591407 Added ARG instruction and aligned with src repo
Docker-DCO-1.1-Signed-off-by: Asbjorn Enge <asbjorn@hanafjedle.net> (github: asbjornenge)
2015-11-05 10:56:07 +01:00
Alexander Morozov
1eafc7264c Merge pull request #17715 from cpuguy83/17708_fix_inspect_output_on_error
Reutrn immediately when inspect connection failed
2015-11-04 22:43:02 -08:00
Zhang Wei
725b7c9d43 Fix docs typo and wrong word
Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-05 14:17:37 +08:00
Zhang Wei
0ebdac8bee Fix --cluster-store option parser
`--cluster-store` is of form KV-PROVIDER://KV-URL, this commit makes
sure that KV-URL contains no "://"

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-05 11:45:08 +08:00
Brian Goff
72aeb63a47 Reutrn immediately when inspect connection failed
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-04 21:17:05 -05:00
Nathan LeClaire
6326e6732d Revise commands in Compose section of multi-host quickstart
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2015-11-04 17:44:01 -08:00
Brian Goff
f18c5e9714 Merge pull request #17703 from aboch/np
Verify Endpoint.Info() before accessing it
2015-11-04 19:23:11 -05:00
Jessica Frazelle
d0a4b216a6 update release script and release process
Signed-off-by: Jessica Frazelle <princess@docker.com>
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-04 16:20:04 -08:00
Sebastiaan van Stijn
1ef3b1f857 Merge pull request #17694 from hrldcpr/patch-1
fix documentation inconsistency for volume create
2015-11-05 01:16:09 +01:00
Jessica Frazelle
3f27479435 add script to test the old apt-repo
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-04 16:01:19 -08:00
Sebastiaan van Stijn
236913f4e8 Merge pull request #14012 from sallyom/exitCodes
Change 'docker run' exit codes to distinguish docker/contained errors
2015-11-05 00:50:08 +01:00
Jess Frazelle
9c1006c8bf Merge pull request #17673 from LK4D4/elim_str_comparison
Do not rely on string comparison in truncindex
2015-11-04 15:39:19 -08:00
Stefan J. Wernli
9112d90b27 Optimize Create Container to skip extra mount on Windows.
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-11-04 14:43:50 -08:00
David Calavera
fa0ee3fb89 Merge pull request #17705 from alexwlchan/patch-1
Fix typo in dockervolumes.md
2015-11-04 14:26:47 -08:00
Alex Chan
40dc0c4861 Fix typo in dockervolumes.md
Signed-off-by: Alex Chan <alex@alexwlchan.net>
2015-11-04 22:13:35 +00:00
Brian Goff
fe66fdd18c Fix potential races in the volume store
Uses finer grained locking so that each volume name gets its own lock
rather than only being protected by the global lock, which itself needs
to be unlocked during cetain operations (`create` especially`)

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-04 16:59:47 -05:00
Alexander Morozov
b2f14f9bec Merge pull request #17639 from mrjana/restart
Fix a corner case issue when daemon panics
2015-11-04 13:37:45 -08:00
Alessandro Boch
54d22cbd9a Verify Endpoint.Info() before accessing it
- During concurrent operations in multihost environment,
  it is possible that the implementer of `EndpointInfo`
  is nil. It simply means the endpoint is no longer
  available in the datastore.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-11-04 13:27:17 -08:00
Sebastiaan van Stijn
92132a7841 Merge pull request #17698 from moxiegirl/nigel-fixes
Fixing BTRFS > Btrfs
2015-11-04 22:05:27 +01:00
Sally O'Malley
41de7a18d8 Change 'docker run' exit codes to distinguish docker/contained errors
The purpose of this PR is for users to distinguish Docker errors from
contained command errors.
This PR modifies 'docker run' exit codes to follow the chroot standard
for exit codes.
Exit status:
125 if 'docker run' itself fails
126 if contained command cannot be invoked
127 if contained command cannot be found
the exit status otherwise

Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-11-04 15:18:50 -05:00
David Calavera
37849ce1fb Merge pull request #17184 from cpuguy83/fix_external_volume_tests
Fix bug in volume driver test implementation
2015-11-04 12:08:11 -08:00
David Calavera
0cdc96cd8f Merge pull request #17695 from runcom/restore-images-log
graph: do not error out if images can't be restored
2015-11-04 11:45:44 -08:00
Vincent Demeester
d718388df7 Merge pull request #17578 from brahmaroutu/fix_unit_tests_gccgo
after the changes to unit test framework, fixing gccgo to run unit tests
2015-11-04 20:35:17 +01:00
Alexander Morozov
d4a8d09d1a Do not rely on string comparison in truncindex
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-04 11:34:05 -08:00
Mary Anthony
90e16ab8f9 Fixing BTRFS > Btrfs
Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-04 11:23:16 -08:00
Sebastiaan van Stijn
8e2b20580b Docs: add "Linux kernel extra" to manual install
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-04 19:49:47 +01:00
Antonio Murdaca
eaa4047792 graph: do not error out if images can't be restored
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-04 19:46:54 +01:00
harold cooper
f67da614e9 fix documentation inconsistency for volume create
the example command uses `/world` but the description refers to `/src`

Signed-off-by: Harold Cooper <hrldcpr@gmail.com>
2015-11-04 13:22:53 -05:00
Jess Frazelle
55711a22e0 Merge pull request #17662 from calavera/decouple_container_and_daemon
Remove daemon field from within container.
2015-11-04 10:21:58 -08:00
David Calavera
63efc12070 Remove further references to the daemon within containers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:28:54 -05:00
David Calavera
444c82d19d Remove daemon field from container.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:49 -05:00
David Calavera
5dc3a9a6da Decouple daemon and container from the stats collector.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:49 -05:00
David Calavera
c412300dd9 Decouple daemon and container to configure logging drivers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:49 -05:00
David Calavera
669949d6b4 Decouple daemon and container to manage networks.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera
019c337b93 Decouple daemon and container to cleanup containers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera
ca5ede2d0a Decouple daemon and container to log events.
Create a supervisor interface to let the container monitor to emit events.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera
2c72015ce3 Decouple daemon and container to manage volumes.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera
c1c42db060 Decouple daemon and container to execute processes.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera
ebf707ec5f Move Daemon.containerCopy to daemon/archive.go
It's the only place where it's used.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera
89decc4446 Remove unused function Container.getImage.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera
6ea9a880dc Remove unnecessary Container.changes function.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera
3a49765046 Decouple daemon and container to mount and unmount filesystems.
Side effects:
- Decouple daemon and container to start containers.
- Decouple daemon and container to copy files.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:47 -05:00
David Calavera
1c94f5f53a Decouple daemon and container to export containers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:47 -05:00
David Calavera
9f79cfdb2f Decouple daemon and container to pause and unpause containers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:47 -05:00
David Calavera
4f2a5ba360 Decouple daemon and container to stop and kill containers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:47 -05:00
David Calavera
581380cc6c Move exportContainerRw to the daemon.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:47 -05:00
Christopher Jones
836fa1c1e5 Fixed link to contribution page in docs/README.md.
Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
2015-11-04 11:24:03 -06:00
Tianon Gravi
7e5f904830 Merge pull request #17664 from jfrazelle/fedora-23
add fedora 23
2015-11-04 08:27:54 -08:00
Vincent Demeester
fbd18cbce7 Merge pull request #17683 from haoshuwei/fix-wordspelling-in-network
Fixing wrong word spelling in api/client/network.go
2015-11-04 16:02:08 +01:00
Shuwei Hao
11062ea177 Fixing wrong word spelling in api/client/network.go
Signed-off-by: Shuwei Hao <haoshuwei24@gmail.com>
2015-11-04 13:42:34 +00:00
Antonio Murdaca
0f41761290 Merge pull request #17672 from LK4D4/unn_var
Remove unnecessary var decls
2015-11-04 12:24:52 +01:00
Zhang Kun
83b03b0057 add c.Assert in docker_cli_ps_test.go
Signed-off-by: Zhang Kun <zkazure@gmail.com>
2015-11-04 17:29:25 +08:00
Fathi Boudra
3e9fc478ae Remove yum cache to reduce image size
mkimage-yum.sh has a lot in common with mkimage-rinse.sh, including extra
files clean up. Sync with mkimage-rinse.sh by removing yum cache to reduce
the image size.

Minor changes to reduce also the delta/diff and make it easier to sync with
mkimage-rinse.sh script.

Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
2015-11-04 07:19:09 +02:00
Alexander Morozov
cec31abfea Remove unnecessary var decls
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-03 17:03:40 -08:00
Brian Goff
c9208953fa Merge pull request #17630 from LK4D4/syscall_umount_warn
Do not ignore error from syscall.Unmount
2015-11-03 19:58:19 -05:00
Peter Malmgren
f6896b61ff Fix docker status incorrectly reports containerized. Fixes #17037
Signed-off-by: Peter Malmgren <ptmalmgren@gmail.com>
2015-11-04 00:08:46 +00:00
Jess Frazelle
562a1263f2 Merge pull request #17665 from LK4D4/setupwd_refactor
Reorder code slightly in setupWorkingDirectory
2015-11-03 15:56:10 -08:00
Jess Frazelle
e704182c9c Merge pull request #17614 from LK4D4/fix_golint
Update linting tools to latest versions
2015-11-03 15:32:12 -08:00
Alexander Morozov
bb66c16871 Reorder code slightly in setupWorkingDirectory
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-03 14:33:31 -08:00
Sebastiaan van Stijn
67630bef47 Merge pull request #17649 from rsmoorthy/rsmoorthy-patch-1
volume plugin doc update
2015-11-03 23:33:20 +01:00
Jessica Frazelle
45788bb62d add fedora 23 for all the crazies who already want it
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-03 14:01:55 -08:00
David Calavera
65ffd917c6 Merge pull request #17663 from tiborvass/merge_release_v1.9.0
Merge release v1.9.0
2015-11-03 13:40:37 -08:00
Tibor Vass
78f8a1224c Change version to 1.10.0-dev
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-11-03 16:17:07 -05:00
Tibor Vass
8b0e32b151 Bump version to v1.9.0
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-11-03 15:08:56 -05:00
Antonio Murdaca
474b16af8e Merge pull request #17659 from cpuguy83/17646_keep_em_running
Fix network settings inspect tests
2015-11-03 20:25:01 +01:00
Brian Goff
c30b9e590c Merge pull request #17606 from mountkin/increase-max-retries
increase the maxJSONDecodeRetry in json log reader
2015-11-03 13:45:45 -05:00
Michael Crosby
aff8bd178c Merge pull request #17638 from calavera/move_net_stats_collector
Make the stats collector to collect network stats.
2015-11-03 10:31:40 -08:00
Srini Brahmaroutu
81b3d2eec9 after the changes to unit test framework, fixing gccgo to run unit tests
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-11-03 17:57:06 +00:00
Brian Goff
3564895e84 Fix network settings inspect tests
Makes sure the containers are actually running when inspecting so the
ip info is actually populated.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-03 12:12:19 -05:00
moxiegirl
49f55b273b Merge pull request #17658 from moxiegirl/incorporate-madhu-comments
Updating networking docs with technical information
2015-11-03 08:44:07 -08:00
Madhu Venugopal
39dfc536d4 Updating networking docs with technical information
- the /etc/hosts read caveat due to dynamic update
- information about docker_gwbridge
- Carries and closes #17654
- Updating with last change by Madhu
- Updating with the IPAM api 1.22

Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-03 08:42:40 -08:00
David Calavera
8d5695470a Merge pull request #17629 from tonistiigi/kill-autorestart-fix
Fix race causing autorestart turning off on restart
2015-11-03 08:24:11 -08:00
Sebastiaan van Stijn
43ae13742d Merge pull request #17650 from thaJeztah/fix-api-network-output
docs: update remote API responses and minor fixes
2015-11-03 16:09:01 +01:00
Sebastiaan van Stijn
d3b2e7dcf4 Merge pull request #17652 from moxiegirl/nigel-credits
Nigel acknowledgement
2015-11-03 15:35:53 +01:00
Sebastiaan van Stijn
286fe69d53 docs: update remote API responses and minor fixes
Add back the "old" networksettings fields that were removed,
but added back to maintain backward compatibility, in
https://github.com/docker/docker/pull/17538

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

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

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

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

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-03 15:24:31 +01:00
Mary Anthony
7b978cc378 Nigel acknowledgement
Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-03 05:52:33 -08:00
Sebastiaan van Stijn
43ad218293 Merge pull request #17651 from moxiegirl/nathans-tweaks
Fixing ZooKeeper and some other nits Nathan found
2015-11-03 14:40:11 +01:00
Mary Anthony
0f1083c8da Fixing ZooKeeper and some other nits Nathan found
Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-03 05:34:54 -08:00
Sebastiaan van Stijn
578f4e129e Merge pull request #17242 from jlebon/pr/makefile-no-tty
Makefile: don't allocate pseudo-tty if not interactive
2015-11-03 13:10:31 +01:00
rsmoorthy
4d9b8bae25 multiple mount/unmount req with same volume name
Updating docs to handle mount/unmount requests with same volume name. Issue #17585

Signed-off-by: Moorthy RS <rsmoorthy@gmail.com>
2015-11-03 16:33:20 +05:30
Kun Zhang
8845259f49 update docker_cli_help_test.go
Signed-off-by: Kun Zhang <zkazure@gmail.com>
2015-11-03 18:24:47 +08:00
kayrus
0a6acbede3 Updated vendor go-systemd with enabled TLS activation
Signed-off-by: kayrus <kay.diam@gmail.com>
2015-11-03 11:02:05 +01:00
Gou Rao
0385b9b65d Update plugins.md
Add OpenStorage to Docker plugin list.

Signed-off-by: Gou Rao <gou@portworx.com>
2015-11-02 22:23:13 -08:00
moxiegirl
05a4cb2221 Merge pull request #17486 from moxiegirl/16286-storage-drivers
Improved Storage Driver Documentation
2015-11-02 21:42:03 -08:00
Mary Anthony
950fbf99b1 Add special memory management file
updating after assignment for Nigel
Adding in some notes from Nigel work
Updating with the storage driver content Nigel added
Updating with Nigel's polishing tech
Adding in Nigel graphics
First pass of aufs material
Capturing Nigel's latest
Comments back to Nigel on devicemapper
Incorporating Nigel's comments v3
Converting images for dm
Entering comments into aufs page
Adding the btfs storage driver
Moving to userguide
Adding in two new driver articles from Nigel
Optimized images
Updating with comments

Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-02 21:40:18 -08:00
moxiegirl
43077f9b64 Merge pull request #17340 from moxiegirl/new-networking-docs
Network docs for release
2015-11-02 21:16:41 -08:00
Mary Anthony
9ef855f9e5 First pass at consolidating
Removing old networking.md
Updating dockernetworks.md with images
Adding information on network plugins
Adding blurb about links to docker networking
Updating the working documentation
Adding Overlay Getting Started
Downplaying links by removing refs/examples, adding refs/examples for network.
Updating getting started to reflect networks not links
Pulling out old network material
Updating per discussion with Madhu to add Default docs section
Updating with bridge default
Fix bad merge
Updating with new cluster-advertise behavior
Update working and NetworkSettings examples
Correcting example for default bridge discovery behavior
Entering comments
Fixing broken Markdown Syntax
Updating with comments
Updating all the links

Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-02 21:14:55 -08:00
Alexander Morozov
3c695d7ed7 Merge pull request #17634 from stevvooe/avoid-panic-on-flush
Avoid panic on write after close in http
2015-11-02 21:11:52 -08:00
RyanDeng
e222c61594 fix the bug: cpu percent will extremely high
Signed-off-by: Chao Deng <sheldon.d1018@gmail.com>
2015-11-03 10:57:52 +08:00
Tonis Tiigi
b8aaa4b07c Fix race causing autorestart turning off on restart
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-02 18:37:55 -08:00
Jana Radhakrishnan
79cffa5ce4 Fix a corner case issue when daemon panics
There is an extreme corner case where when the daemon
panics at the same time as a container is stopping
and cleaning up the sandbox and the sandbox may have been
left with an inconsistent state. This libnetwork vendoring
fixes that case.

Vendoring in libnetwork @ 5305ea570b85d61dd0fd261cd7e1680da1884678

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-11-02 18:37:35 -08:00
Stephen J Day
ec2289b2d9 Avoid panic on write after close in http
By adding a (*WriteFlusher).Close, we limit the Write calls to possibly
deallocated http response buffers to the lifetime of an http request.
Typically, this is seen as a very confusing panic, the cause is usually a
situation where an http.ResponseWriter is held after request completion. We
avoid the panic by disallowing further writes to the response writer after the
request is completed.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-11-02 18:14:43 -08:00
Tibor Vass
4eac6d4529 Merge pull request #17633 from tiborvass/skip-loadimage-error-onrestore
Do not stop daemon from booting if io.EOF on loading image
2015-11-02 21:10:27 -05:00
Tibor Vass
27c2368599 Do not stop daemon from booting if io.EOF on loading image
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-11-02 21:07:28 -05:00
David Calavera
453473d6a9 Make the stats collector to collect network stats.
Currently, we get the network stats each time per subscriber, causing a
high load of cpu when there are several subscribers per container.

This change makes the daemon to collect once and publish N times, where N is the
number of subscribers per container.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-02 21:06:44 -05:00
Doug Davis
c90125dc8a Merge pull request #17637 from aaronlehmann/network-test-name-typo
Fix typo in name of integration test TestInspectApiMultipeNetworks
2015-11-02 20:42:36 -05:00
Brian Goff
c6c7d5870c Merge pull request #17635 from MHBauer/volume-backend
create generic backend to cut dependency on daemon
2015-11-02 20:31:46 -05:00
Aaron Lehmann
701e5dfe8a Fix typo in name of integration test TestInspectApiMultipeNetworks
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-02 17:30:16 -08:00
Morgan Bauer
836df9c446 create generic backend to cut dependency on daemon
- create a volume-specific interface that for the methods of daemon
   that are used
 - remove dependency on daemon package by volume package of server
 - like 5087977fc1

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-11-02 16:29:16 -08:00
David Calavera
79d47c5b96 Merge pull request #17628 from LK4D4/umount_log_err
Log error from unmountVolumes on cleanup
2015-11-02 15:38:32 -08:00
David Calavera
65cbf37bf7 Merge pull request #17626 from mavenugo/ith
IT for ungraceful daemon restart with multiple host-mode containers
2015-11-02 15:38:14 -08:00
Doug Davis
6d5e47a690 Merge pull request #17517 from MHBauer/network-impl
create generic backend to cut dependency on daemon
2015-11-02 17:54:28 -05:00
Alexander Morozov
3f10bdf100 Do not ignore error from syscall.Unmount
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-02 14:40:29 -08:00
Derek McGowan
6964f42350 Merge pull request #17557 from aaronlehmann/update-distribution
Vendor updated version of docker/distribution
2015-11-02 14:37:04 -08:00
David Calavera
642a1f67b6 Merge pull request #17573 from Microsoft/10662-parsersos
Windows: Fix unit tests parsers\os
2015-11-02 14:31:09 -08:00
Alexander Morozov
944ea3134d Merge pull request #17554 from calavera/warm_ipc_unmounts
Turn IPC unmount errors into warnings.
2015-11-02 14:25:39 -08:00
Alexander Morozov
a20fea1823 Log error from unmountVolumes on cleanup
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-02 14:11:42 -08:00
Madhu Venugopal
b323e3df8b IT for ungraceful daemon restart with multiple host-mode containers
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-11-02 14:00:11 -08:00
Aaron Lehmann
257c59251b Vendor updated version of docker/distribution
This updates the vendored docker/distribution to the current master
branch.

Note the following changes:

- The manifest package was split into manifest/schema1. Most references
  to the manifest package in the engine needed to be updated to use
  schema1 instead.

- Validation functions in api/v2 were replaced by the
  distribution/reference package. The engine code has been updated to
  use the reference package for validation where necessary. A future PR
  will change the engine to use the types defined in
  distribution/reference more comprehensively.

- The reference package explicitly allows double _ characters in
  repository names. registry_test.go was updated for this.

- TestPullFailsWithAlteredManifest was corrupting the manifest JSON, now
  that the schema1 package unmarshals the correct payload. The test is
  being changed to modify the JSON without affecting its length, which
  allows the pull to succeed to the point where digest validation
  happens.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-02 12:40:18 -08:00
Morgan Bauer
5087977fc1 create generic backend to cut dependency on daemon
- create a network-specific interface that for the methods of daemon
   that are used
 - remove dependency on daemon package

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-11-02 12:30:10 -08:00
David Calavera
beeec6d103 Merge pull request #17558 from aboch/nw
Fix bug in initializeNetwork()
2015-11-02 12:15:41 -08:00
David Calavera
920ab75bd5 Merge pull request #17598 from zelahi/16756-dockercli-createtest
Added c.Assert statements to docker_api_create_test.go
2015-11-02 11:43:20 -08:00
David Calavera
b95048758a Merge pull request #17619 from jfrazelle/canonical-update
rebased canonical/json off go 1.5.1
2015-11-02 11:42:26 -08:00
David Calavera
f962c0715f Merge pull request #17620 from vdemeester/unit-test-TESTDIRS
Bring TESTDIRS back for unit-tests
2015-11-02 11:41:19 -08:00
John Howard
a40c828040 Windows: Fix unit tests parsers\os
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-02 11:28:47 -08:00
Alessandro Boch
45e71a7984 Fix bug in initializeNetwork()
- On `docker run --net <network id> ...`
  the bug would cause the container to attempt
  to connect to the network two times
- Also made sure endpoint creation rollback will
  be executed on failures in `func (container *Container) connectToNetwork()`

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-11-02 11:20:15 -08:00
Tibor Vass
6c31a9a50d Merge pull request #17594 from mrjana/restart
Fix race with host networking causing `invalid argument` errors
2015-11-02 13:46:43 -05:00
Vincent Demeester
4a54ab387f Add TESTDIRS back
Makes it simpler to test only one package.
Was removed by #17491.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-02 19:44:09 +01:00
Jessica Frazelle
0d881349e8 rebased canonical/json off go 1.5.1
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-02 10:23:02 -08:00
Alexander Morozov
6563b7d2e8 Merge pull request #17542 from estesp/restart-root-dir-cleanup
Fix integration-cli daemon restart with user namespaces enabled
2015-11-02 09:50:12 -08:00
Alexander Morozov
ca1e2d5782 Merge pull request #17605 from runcom/enhance-err-msg
graph: enhance err message on failed image restore
2015-11-02 08:49:43 -08:00
Sebastiaan van Stijn
e41de3e631 Add examples for ENV vars in API
As discussed in https://github.com/docker/docker/issues/16623,
the API calls for setting ENV-vars lacked an actual example.

This PR adds some examples to the API calls.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-11-02 17:44:31 +01:00
Jana Radhakrishnan
10e1b9f02e Vendoring libnetwork
Vendoring libnetwork @ 05a5a1510f85977f374a9b9804a116391bab5089

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-11-02 08:33:52 -08:00
Alexander Morozov
c70d1bde63 Update linting tools
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-02 08:32:49 -08:00
Alexander Morozov
7aa28b6bdd Fix go vet warnings
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-02 08:28:34 -08:00
Alexander Morozov
270e8cf64d Fix golint warnings
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-02 08:02:25 -08:00
Doug Davis
ca0a9913c3 Merge pull request #17609 from LK4D4/fix_format
Fix error formatting
2015-11-02 10:34:29 -05:00
Alexander Morozov
b087846c0e Fix error formatting
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-02 06:51:48 -08:00
Vincent Demeester
38d3fc00d3 Merge pull request #17602 from HuKeping/update-history
Update logic of history
2015-11-02 13:55:32 +01:00
Shijiang Wei
a82f9ac819 increase the maxJSONDecodeRetry in json log reader
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-11-02 17:51:22 +08:00
Antonio Murdaca
f5fc832b6e graph: enhance err message on failed image restore
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-02 10:10:23 +01:00
John Howard
864e892e2a Windows: Fix dockerfile\parser unit test
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-01 20:08:37 -08:00
Zuhayr Elahi
6694326d5d Added c.Assert statements to docker_api_create_test.go
removed the if/else statements and added c.Assert statements for docker_api_create_test.go.

Removed check.commentf in c.Assert statements

Signed-off-by: Zuhayr Elahi <elahi.zuhayr@gmail.com>
2015-11-01 19:54:19 -08:00
Sven Dowideit
c6fd886db3 Merge pull request #17601 from moxiegirl/moving-project
Moving project to docker/opensource
2015-11-02 12:44:41 +10:00
Mary Anthony
e400125b66 Moving project to docker/opensource
Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-01 18:39:10 -08:00
Hu Keping
5a3236d9e8 Update logic of history
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-11-02 10:27:54 +08:00
moxiegirl
e2e2ea401a Merge pull request #17591 from moxiegirl/remove-old-api
Remove old api docs that are no-longer appearing on docs-docker.com
2015-11-01 12:30:58 -08:00
Alexander Morozov
1340d456ad Merge pull request #17572 from Microsoft/10662-parserskernel
Windows: Fix parsers kernel test
2015-11-01 10:37:22 -08:00
Mary Anthony
d2382f7b96 Remove old api docs that are no-longer appearing on docs-docker.com
Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-01 08:22:10 -08:00
Sebastiaan van Stijn
e2a879bedd Merge pull request #17590 from moxiegirl/fix-122-link
Update to hide the 1.10 material
2015-11-01 17:06:44 +01:00
Mary Anthony
e4d86c2c38 Update to hide the 1.10 material
Signed-off-by: Mary Anthony <mary@docker.com>
2015-11-01 08:03:08 -08:00
Sebastiaan van Stijn
d4bf773d27 Merge pull request #17583 from moxiegirl/link-fixes
Fixing broken links
2015-11-01 16:44:15 +01:00
John Howard
670fd201de Windows: Fix parsers kernel test
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-01 07:05:16 -08:00
Antonio Murdaca
29c9717cac Merge pull request #16903 from cxxly/16756-refactor-docker_cli_netmode_test
refactor docker_cli_netmode_test .go with Assert statement
2015-11-01 11:07:54 +01:00
John Howard
8764967381 Windows: Fix daemon\graphdriver\graphtest
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-31 21:14:18 -07:00
Mary Anthony
5ce093e945 Fixing broken links
Fixing the weight

Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-31 19:45:56 -07:00
John Howard
910e4ba7ed Windows: Factor out user in execdriver\driver
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-31 19:19:24 -07:00
Phil Estes
0c57b9f5b3 Fix integration-cli daemon restart with user namespaces enabled
The `d.root` dir is resolved to the full path to the graph dir after the
daemon starts, but on restart, should be set back to the parent (without
the "<uid>.<gid>" ending) so that it uses/resolves to the same graphdir
on restart.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-31 14:39:33 -04:00
John Howard
be2f53ece8 Windows: Fix native exec template
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-31 11:39:19 -07:00
John Howard
96b45e9216 Windows: Fix docker device tool
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-31 11:32:37 -07:00
Alexander Morozov
4468e1e74e Merge pull request #17567 from Microsoft/10662-lxcunittest
Windows: Fix go test in execdriver\lxc
2015-10-31 09:40:19 -07:00
Alexander Morozov
8d584da96e Merge pull request #17568 from Microsoft/10662-journald
Windows: Fix journald compile error
2015-10-31 09:35:39 -07:00
John Howard
5452954d89 Windows: Fix journald compile error
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-31 08:31:25 -07:00
John Howard
30ab497e17 Windows: Fix go test in execdriver\lxc
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-31 08:25:36 -07:00
Arnaud Porterie
5719d01066 Merge pull request #16579 from coolljt0725/fix_attach_paused_container
Add show error when attach to a paused container
2015-10-31 07:43:22 -07:00
Alexander Morozov
ed6e3cf704 Merge pull request #17537 from mountkin/fix-logger-race
fix a race in json logger reader
2015-10-30 23:00:17 -07:00
Brian Goff
f87082f08e Merge pull request #17545 from LK4D4/writehs_encode
Use json.Encoder for container.writeHostConfig
2015-10-30 21:11:15 -04:00
Brian Goff
cccb6bce7d Merge pull request #17524 from mountkin/fix-teardown
dont try to remove builtin networks in teardown
2015-10-30 20:59:57 -04:00
Donald Huang
8ceded6d03 add tests for docker stats versioning
testing for #17549

Signed-off-by: Donald Huang <don.hcd@gmail.com>
2015-10-31 00:23:08 +00:00
David Calavera
2e466bafda Merge pull request #17548 from mavenugo/ugr
Vendoring libnetwork to fix #17526 & #17527
2015-10-30 17:13:40 -07:00
David Calavera
09cb1f1121 Merge pull request #17529 from Microsoft/10662-builderisolation
Windows: [TP4] Allows --isolation on docker build
2015-10-30 17:10:04 -07:00
David Calavera
6d8aff07ac Merge pull request #17547 from LK4D4/unn_stat
Remove unnecessary Stat check from readHostConfig
2015-10-30 16:56:11 -07:00
David Calavera
9bf20c6847 Merge pull request #17549 from donhcd/fixPre122Stats
fix pre-1.21 docker stats
2015-10-30 16:45:41 -07:00
Alessandro Boch
e16e794805 IT for daemon restarts when container connected to multiple networks
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-30 16:25:25 -07:00
Madhu Venugopal
401632c756 fixing ungraceful daemon restart case where nw connect is not persisted
For graceful restart case it was done when the container was brought
down. But for ungraceful cases, the persistence is missing for nw
connect

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-30 16:24:02 -07:00
Madhu Venugopal
2361edbcea Vendoring in libnetwork to fix an ungraceful restart case
Also picked up a minor typo fix

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-30 16:24:02 -07:00
David Calavera
a54d5932e3 Turn IPC unmount errors into warnings.
And do not try to unmount empty paths.

Because nobody should be woken up in the middle of the night for them.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-30 19:13:52 -04:00
Alexandre Beslic
33f5429786 Merge pull request #17538 from calavera/deprecated_bridge_interface
Fix network inspect for default networks.
2015-10-30 16:03:51 -07:00
Donald Huang
d2c04f844b fix pre-1.22 docker stats
This fixes a bug introduced in #15786:

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

Signed-off-by: Donald Huang <don.hcd@gmail.com>
2015-10-30 22:28:03 +00:00
David Calavera
0c991f3d68 Merge pull request #16779 from Microsoft/10662-execdrivercommand
Windows: Refactor execdriver.Command
2015-10-30 14:59:59 -07:00
Alexander Morozov
36a69bbc60 Remove unnecessary Stat check from readHostConfig
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-30 14:54:09 -07:00
Alexander Morozov
cf1a6c08fa Use json.Encoder for container.writeHostConfig
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-30 14:45:35 -07:00
Alexander Morozov
23a0fe9627 Merge pull request #17539 from cpuguy83/cleaner_ipc_unmount_handling
Force IPC mount to unmount on daemon shutdown/init
2015-10-30 14:40:42 -07:00
David Calavera
85d7bbf7aa Merge pull request #17528 from LK4D4/todisk_encode
Use json.Encoder for container.toDisk
2015-10-30 14:36:42 -07:00
Tibor Vass
74362e8392 Merge pull request #17531 from crosbymichael/no-set-reservation
Don't set mem soft limit if not specifiecd
2015-10-30 17:01:36 -04:00
Alexandre Beslic
8d7d51190d Merge pull request #17541 from aboch/uc
Modify IPAMConfig structure json tags
2015-10-30 14:01:13 -07:00
David Calavera
f301c5765a Fix network inspect for default networks.
- Keep old fields in NetworkSetting to respect the deprecation policy.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-30 16:55:21 -04:00
John Howard
9d14866d71 Windows: Refactor execdriver.Command
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-30 13:53:00 -07:00
John Howard
805dd0eeed Windows: Native ANSI console support
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-30 13:44:04 -07:00
Mike Brown
b1da9fcc84 putting in support for rmi id for legacy docker.io/name images in local repositories
Signed-off-by: Mike Brown <brownwm@us.ibm.com>
2015-10-30 15:28:12 -05:00
Alessandro Boch
d795bc7d53 Modify IPAMConfig structure json tags
- So that it complies with docker convention for inspect

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-30 12:57:49 -07:00
Brian Goff
78bd17e805 Force IPC mount to unmount on daemon shutdown/init
Instead of using `MNT_DETACH` to unmount the container's mqueue/shm
mounts, force it... but only on daemon init and shutdown.

This makes sure that these IPC mounts are cleaned up even when the
daemon is killed.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-30 15:41:48 -04:00
Tibor Vass
a154b95d06 Merge pull request #17536 from aboch/uc
Modify Network structures json tags
2015-10-30 15:28:38 -04:00
Shijiang Wei
e41eae8b42 fix a race in json logger reader
The json decoder starts to decode immediately an inotify event is
received.
But at the time the inotify event is trigged, the json log
entry might haven't been fully written to the disk.
In this case the decoder will return an "io.UnexpectedEOF" error, but
there is still data remaining in the decoder's buffer. And the data
should be passed to the decoder when the next inotify event is
triggered.

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-31 02:28:23 +08:00
Alessandro Boch
b2d0b75018 Modify Network structure json tags
- So that they comply with docker inspect convention
  Which is allowing camel case for json field names

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-30 11:23:59 -07:00
John Howard
d5c85897f4 Windows: Allows --isolation on docker build
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-30 11:14:38 -07:00
Jess Frazelle
0aa3bff482 Merge pull request #17530 from Microsoft/jjh/windowsmasterbuild
Build broken on master (awslogs)
2015-10-30 10:39:48 -07:00
Brian Goff
17a8fbeaeb Merge pull request #17514 from mavenugo/ugr
Fixing a case of dangling endpoint during ungraceful daemon restart
2015-10-30 13:38:27 -04:00
Michael Crosby
ecb87ed0a5 Don't set mem soft limit if not specifiecd
You cannot do this for individual cgroups for all the containers.  Only
set the reservation if the user requested it.  The error you will
receive is an EINTVAL when you try to set a large limit like we were in
the memory limit.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2015-10-30 10:34:01 -07:00
moxiegirl
aa832d0197 Merge pull request #17523 from Evalle/17326-fix-ubuntu-installation-instructions
Fix ubuntu installation instructions page
2015-10-30 10:10:04 -07:00
moxiegirl
f714118439 Merge pull request #17447 from ehaydenr/master
Update kill.md
2015-10-30 10:07:44 -07:00
John Howard
2716e3964d Windows build broken on master (awslogs)
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-30 10:02:32 -07:00
Tibor Vass
c545dce004 Merge pull request #16640 from samuelkarp/awslogs-logging-driver
[awslogs] Auto-detect region and set user-agent
2015-10-30 12:38:40 -04:00
Michael Crosby
aadae4b503 Merge pull request #16412 from Microsoft/10662-hyper-v-containers
Windows [TP4]: Adds support for Hyper-V Containers
2015-10-30 09:34:16 -07:00
Alexander Morozov
cf02b369e0 Use json.Encoder for container.toDisk
* for simmetry with fromDisk
* it might be slightly better for GC because of internal sync.Pool

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-30 09:29:53 -07:00
Vincent Demeester
05534b6f80 Merge pull request #17518 from WeiZhang555/integration-test-bug
bug fix for test cases
2015-10-30 16:56:35 +01:00
Shijiang Wei
5970e94072 dont try to remove builtin networks in teardown
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-30 23:05:33 +08:00
evalle
eb0a208f4b Fix ubuntu installation instructions page
Signed-off-by: evalle <shmarnev@gmail.com>
2015-10-30 15:46:34 +01:00
Brian Goff
2c6351a4a5 Merge pull request #17385 from aditirajagopal/16756-upgrade_commit_test
Checkers on integration-cli/docker_cli_commit_test
2015-10-30 10:36:41 -04:00
Vincent Demeester
0598ff46ac Merge pull request #17427 from zelahi/16756-dockercli-killtest
modified docker_cli_kill_test.go to use c.Asserts
2015-10-30 12:56:52 +01:00
Antonio Murdaca
77488b90c5 Merge pull request #17425 from wenchma/16756-docker_cli_attach_unix_test
Using checkers assert for integration-cli/docker_cli_attach_unix_test.go
2015-10-30 12:41:14 +01:00
Antonio Murdaca
e990eca1e5 Merge pull request #17510 from LK4D4/refactor_shutdown
Refactor Shutdown a little to reduce indentation
2015-10-30 12:24:03 +01:00
Sebastiaan van Stijn
855487b379 Merge pull request #17365 from HuKeping/rework-history
Rework docker cli history
2015-10-30 10:33:16 +01:00
Antonio Murdaca
6b9de7342f Merge pull request #17498 from LK4D4/fix_graph_comment
Fix Graph() docstring
2015-10-30 09:48:16 +01:00
Vincent Demeester
81c5b1ce4a Merge pull request #17492 from aidanhs/aphs-remove-dead-code
Remove dead code
2015-10-30 08:50:54 +01:00
Vincent Demeester
4f3dd3db5a Merge pull request #17463 from dongluochen/volumeRouter
extract docker volume API from local
2015-10-30 08:33:43 +01:00
Zhang Wei
8f53edae3b bug fix for test cases
Fix bug that `isNwPresent` can't distinguish network names with same
prefix.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-10-30 15:13:35 +08:00
Aditi Rajagopal
483abbb313 Checkers on integration-cli/docker_cli_commit_test
Applying #16756 to integration-cli/docker_cli_commit_test.go

Signed-off-by: Aditi Rajagopal <arajagopal@us.ibm.com>
2015-10-29 21:47:54 -05:00
Madhu Venugopal
0c07096b7d Fixes a case of dangling endpoint during ungraceful daemon restart
When a container restarts after a ungraceful daemon restart, first
cleanup any unclean sandbox before trying to allocate network resources.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-29 18:56:56 -07:00
Madhu Venugopal
ebf76171f6 Vendoring libnetwork to solve an ungraceful restart condition
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-29 18:56:17 -07:00
Tianon Gravi
1795eb9545 Merge pull request #17512 from jfrazelle/update-go-deb-rpm
update go version for debs and rpms
2015-10-29 18:56:06 -07:00
Tibor Vass
d7bdbdf564 Merge pull request #17504 from calavera/default_network_driver
Let the api to choose the default network driver.
2015-10-29 20:37:21 -04:00
Alexander Morozov
ace5854f65 Refactor Shutdown a little to reduce indentation
Also make daemon.netController.Stop() regardless of container existance.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-29 17:20:32 -07:00
Jessica Frazelle
985fe8857d update go version for debs and rpms
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-29 17:04:38 -07:00
David Calavera
34668ad68b Let the api to choose the default network driver.
That way swarm can understand the user's intention.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-29 19:47:12 -04:00
Eric Rosenberg
c1a5ee53c1 Update kill.md
Added Note to show users that signals will not propagate to the container if the preferred exec form isn't used.

Signed-off-by: Eric Rosenberg <ehaydenr@gmail.com>
2015-10-29 18:40:16 -05:00
Brian Goff
82203d06eb Merge pull request #17497 from LK4D4/put_err
Do not ignore errors from graphdriver.Put
2015-10-29 19:37:10 -04:00
Brian Goff
6c80fd2468 Merge pull request #17228 from ecnahc515/patch-1
cliconfig: Do not rely on platform dependent code
2015-10-29 19:29:38 -04:00
Jess Frazelle
d30caedbf8 Merge pull request #17491 from LK4D4/seq_tests
Run unit tests as single command
2015-10-29 16:29:24 -07:00
John Howard
15e35c4470 Windows: Adds support for Hyper-V Containers
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-29 16:18:52 -07:00
John Howard
1847641b7b Fix test file paths
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-29 15:51:04 -07:00
Chase Bolt
d8aaf96216 expand the list a bit more
Signed-off-by: Chase Bolt <chase.bolt@gmail.com>
2015-10-29 15:23:44 -07:00
David Calavera
2eaa25d355 Merge pull request #17499 from jfrazelle/fix-lxc-tests
lxc does not support exec
2015-10-29 15:08:13 -07:00
Alexander Morozov
7f7950aa18 Merge pull request #17490 from aboch/pm
Libnetwork vendoring & overlay networking fixes
2015-10-29 13:45:19 -07:00
David Calavera
cdfd9846f4 Merge pull request #17460 from dmcgowan/fix-rmi-force-tag
Fix rmi -f removing multiple tags
2015-10-29 13:01:06 -07:00
Jessica Frazelle
aaa134ea0e lxc does not support exec
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-29 11:51:59 -07:00
Alessandro Boch
e03daebb48 Execute buildPortMapInfo after Endpoint.Join()
- As the retrieved info may not be available at
  Endpoint creation time for certain network drivers
- Also retrieve the MAC address from Endpoint.Info().Iface()

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-29 11:47:30 -07:00
Alexander Morozov
134772f91e Fix Graph() docstring
It's not true anymore, it used in builder for example.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-29 11:41:42 -07:00
Alexander Morozov
ac4b290552 Do not ignore errors from graphdriver.Put
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-29 11:25:53 -07:00
Chase Bolt
787d94626f setting device-mapper-libs version dependency for centos 7 rpm
Signed-off-by: Chase Bolt <chase.bolt@gmail.com>
2015-10-29 11:11:19 -07:00
Brian Goff
8d62f243c7 Merge pull request #17488 from jfrazelle/skip-windows-test
cant run volume on windows w remote daemon host
2015-10-29 13:37:39 -04:00
Aidan Hobson Sayers
164d0bca63 Remove dead code
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-10-29 16:56:29 +00:00
Alexander Morozov
1c23de0e64 Run unit tests as single command
For me it increased speed of unit-tests tremendously, however this disabled
coverage profiles generation, which I think is pretty good tradeoff.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-29 09:39:51 -07:00
Alessandro Boch
90744fe943 Vendoring libnetwork 20351a84241aa1278493d74492db947336989be6
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-29 09:24:48 -07:00
Jessica Frazelle
1a6a860c14 cant run volume on windows
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-29 08:55:48 -07:00
Wen Cheng Ma
f4abc6406e Using checkers assert for integration-cli/docker_cli_attach_unix_test.go
Fixes part of #16756

Signed-off-by: Wen Cheng Ma <wenchma@cn.ibm.com>
2015-10-29 21:38:00 +08:00
Hu Keping
09eedc35b2 Rework docker cli history
The implementation of `history` is a little redundant espacially
when user set the `--human` and/or `--no-trunc` options.

There are too many conditionals for `human`, `no-trunc` and `quiet` which
I think is useless and complicated.

Since `quiet` will only display the container IDs so it could be not
nested with the other options.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-29 17:59:07 +08:00
Jess Frazelle
8e144e6c50 Merge pull request #17471 from jfrazelle/fix-userns
fix experimental tests
2015-10-29 00:10:08 -07:00
Jessica Frazelle
44da86172a fix experimental tests
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-28 21:14:45 -07:00
Jess Frazelle
965706245b Merge pull request #17462 from LK4D4/fix_device_tool
Fix docker-device-tool
2015-10-28 18:56:54 -07:00
Lei Jitang
de1d611990 Add show error when attach to a paused container
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-28 21:00:09 -04:00
David Calavera
0e1618db19 Merge pull request #17437 from LK4D4/put_error
Do not ignore error from driver.Put
2015-10-28 17:32:03 -07:00
Alexander Morozov
584bdaf5d9 Fix docker-device-tool
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-28 16:43:53 -07:00
David Calavera
7de2b49ac8 Merge pull request #17458 from LK4D4/unnec_err
Remove unnecessary error returns
2015-10-28 16:25:40 -07:00
Derek McGowan
48e7f7963e Fix rmi -f removing multiple tags
When an image has multiple tags and rmi is called with force on a tag, only the single tag should be removed.
The current behavior is broken and removes all tags and the image.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-10-28 16:07:02 -07:00
Doug Davis
b6e1f4dd69 Merge pull request #16898 from hqhq/hq_bump_bolt
Bump bolt to v1.1.0
2015-10-28 18:51:23 -04:00
Alexander Morozov
990655448d Remove unnecessary error returns
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-28 15:15:22 -07:00
David Calavera
54d42f4a10 Merge pull request #17424 from coolljt0725/fix_inspect_gateway_value
Fix docker inspect display odd gateway value for none network mode
2015-10-28 13:39:59 -07:00
David Calavera
2fb442f145 Merge pull request #17445 from tiborvass/fix-docker-py
docker-py: upgrade and fix test script
2015-10-28 11:16:41 -07:00
Tibor Vass
8db141049f docker-py: upgrade and fix test script
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-28 12:56:50 -04:00
John Howard
5f4cb33a51 Fix volume error messages
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-28 09:23:43 -07:00
Alexander Morozov
bc09eceaf4 Do not ignore error from driver.Put
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-28 06:54:09 -07:00
Roma Sokolov
e98b8e0857 Add newlines to FormatProgress for JSON as well
Commit 060da572d2 has introduced newlines
to streamformatter to help parse Remote API responses. However,
FormatProgress method was omitted from the list of patched methods,
leaving progress messages in, say, /images/create without newlines.

Signed-off-by: Roma Sokolov <sokolov.r.v@gmail.com>
2015-10-28 12:58:47 +00:00
Zuhayr Elahi
d0762a60e0 modified docker_cli_kill_test.go to use c.Asserts
Signed-off-by: Zuhayr Elahi <elahi.zuhayr@gmail.com>
2015-10-27 21:18:26 -07:00
Jess Frazelle
96a6e810de Merge pull request #17418 from diogomonica/bump-go-1.5
Bump go 1.5
2015-10-27 20:12:43 -07:00
Lei Jitang
7fa601adc7 Fix docker inspect display odd gateway value for none network mode
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-27 21:47:12 -04:00
Jess Frazelle
b227d19cae Merge pull request #17423 from cpuguy83/so_sensitive
Revert "dockerversion placeholder for library-import"
2015-10-27 18:32:18 -07:00
Brian Goff
b78ca243d9 Revert "dockerversion placeholder for library-import"
This reverts commit d5cd032a86.

Commit caused issues on systems with case-insensitive filesystems.
Revert for now

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-27 21:23:53 -04:00
Qiang Huang
a41917c2c8 Bump bolt to v1.1.0
It adds ARM64, ppc64le, s390x, solaris support, and a bunch of
bugfixs.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-10-28 08:49:45 +08:00
Dong Chen
9862a4b43e extract docker volume API from local
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
2015-10-27 17:28:19 -07:00
Tibor Vass
94811ae814 Merge pull request #17422 from calavera/inspect_networks_docs
Update inspect api examples with new network settings.
2015-10-27 20:09:54 -04:00
David Calavera
9ab71b68af Merge pull request #17393 from tiborvass/carry-17360
Carry Fix docker inspect container only reports last assigned information
2015-10-27 17:00:41 -07:00
David Calavera
9a7e632cf0 Update inspect api examples with new network settings.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-27 19:56:29 -04:00
Brian Goff
2266462f72 Merge pull request #17373 from Microsoft/10662-volumetests
Windows: Volume integration tests
2015-10-27 19:52:11 -04:00
Samuel Karp
8a6dfb26f3 [awslogs] Auto-detect region on EC2 instances
Signed-off-by: Samuel Karp <skarp@amazon.com>
2015-10-27 23:47:28 +00:00
Samuel Karp
480c9c0178 [awslogs] Set User-Agent for Amazon CloudWatch Logs
Signed-off-by: Samuel Karp <skarp@amazon.com>
2015-10-27 23:47:19 +00:00
Samuel Karp
70083e6fc3 Update vendored aws-sdk-go
Signed-off-by: Samuel Karp <skarp@amazon.com>
2015-10-27 23:43:51 +00:00
David Calavera
25682577c9 Extract network settings types for inspect.
Keeping backwards compatibility.

Signed-off-by: David Calavera <david.calavera@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-27 19:16:21 -04:00
Sebastiaan van Stijn
b96e076af9 Merge pull request #16017 from flowlo/master
docs: Explain volume_name in POST /container Binds
2015-10-27 23:28:47 +01:00
David Calavera
1156b7ff66 Merge pull request #17401 from hugomarisco/patch-1
update gpg add key command, without sudo it fails
2015-10-27 15:16:27 -07:00
Nathan Williams
258bbdb57e fix oracle/rhel install docs
Signed-off-by: Nathan Williams <nath.e.will@gmail.com>
2015-10-27 15:12:15 -07:00
Nathan Williams
6ff8b32bff fix fedora install docs
Signed-off-by: Nathan Williams <nath.e.will@gmail.com>
2015-10-27 15:11:43 -07:00
Nathan Williams
c6e1d98266 fix docs for cent repo setup
Signed-off-by: Nathan Williams <nath.e.will@gmail.com>
2015-10-27 15:10:45 -07:00
Jessica Frazelle
9bcbb39fa8 update to binaries, fix parsers package, non-parallel test unit
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-27 14:43:25 -07:00
Brian Goff
1c8ee617d1 Merge pull request #17382 from jecarey/16765-docker_cli_images_test
Use of checkers on docker_cli_images_test.go
2015-10-27 17:25:45 -04:00
David Calavera
6276c676a8 Merge pull request #17350 from vdemeester/11699-auto-libraryimport
dockerversion placeholder for library-import
2015-10-27 13:39:40 -07:00
Alexandre Beslic
85ae8b034a Merge pull request #17364 from mavenugo/advertise
Enhancing --cluster-advertise to support <interface-name>
2015-10-27 13:29:18 -07:00
David Calavera
82f70677b9 Merge pull request #17405 from LK4D4/cont_pointer
Return pointer from newBaseContainer
2015-10-27 13:27:10 -07:00
James Carey
5814d67f98 Use of checkers on docker_cli_images_test.go
Signed-off-by: James Carey <jecarey@us.ibm.com>
2015-10-27 15:26:38 -05:00
Lei Jitang
1b9a08e719 Fix docker inspect container only reports last assigned information
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-27 16:26:06 -04:00
David Calavera
2b1b7823e6 Merge pull request #17406 from LK4D4/ent_and_args_simple
Simplify getEntrypointAndArgs
2015-10-27 13:24:59 -07:00
moxiegirl
bf9f2691ca Merge pull request #17161 from moxiegirl/commands-network
Updating network commands: adding man pages
2015-10-27 13:22:30 -07:00
David Calavera
64854277f8 Merge pull request #17390 from sanimej/libn
Vendor in libnetwork changes to support container rename
2015-10-27 13:21:15 -07:00
Tibor Vass
194b64951a Merge pull request #17230 from aboch/ae
Do not update etc/hosts file for every container
2015-10-27 16:14:44 -04:00
Vincent Demeester
d5cd032a86 dockerversion placeholder for library-import
- Move autogen/dockerversion to version
- Update autogen and "builds" to use this package and a build flag

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-27 20:36:07 +01:00
David Calavera
eec5e67561 Merge pull request #17408 from jfrazelle/dnf-fedora-builds
update dockerfile to use dnf because i hate the warning
2015-10-27 11:04:08 -07:00
Madhu Venugopal
3e7db73b99 Enhancing --cluster-advertise to support <interface-name>
--cluster-advertise daemon option is enahanced to support <interface-name>
in addition to <ip-address> in order to amke it  automation friendly using
docker-machine.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-27 11:03:22 -07:00
unclejack
42dcc4f3b5 Dockerfile: bump Go to 1.5
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2015-10-27 10:56:49 -07:00
Jessica Frazelle
b8891a32d1 update dockerfile to use dnf because i hate the warning
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-27 10:25:39 -07:00
Alexander Morozov
5f6d27ceba Simplify getEntrypointAndArgs
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-27 09:36:11 -07:00
Alexander Morozov
6d9bb99c97 Return pointer from newBaseContainer
It makes code more consistent.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-27 09:05:28 -07:00
Mary Anthony
d5364c7114 Updating network commands: adding man pages
Adding Related information blocks
Final first draft pass: ready for review
Review comments
Entering comments from the gang
Updating connect to include paused

Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-27 08:29:07 -07:00
Sebastiaan van Stijn
b6fa541877 Merge pull request #17394 from azurezk/doc
"docker --log-driver=XXX" in reference missing 'daemon'
2015-10-27 15:41:43 +01:00
Hugo Marisco
7f7953dcc2 update gpg add key command, without sudo it fails
Signed-off-by: Hugo Marisco <0x6875676f@gmail.com>
2015-10-27 13:49:52 +00:00
Brian Goff
ebf8ca9a67 Merge pull request #17396 from sdurrheimer/zsh-completion-fix-missing-double-quote
Fix missing double quote in zsh completion
2015-10-27 09:19:59 -04:00
Steve Durrheimer
e46445e844 Fix missing double quote in zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-27 10:50:45 +01:00
Kun Zhang
9b0d0a64fa command missing 'daemon'
Signed-off-by: Kun Zhang <zkazure@gmail.com>
2015-10-27 16:22:09 +08:00
Shijiang Wei
4f6f46a11d refacter attach API tests to use checkers
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-27 16:20:06 +08:00
Tibor Vass
b72a431928 Merge pull request #17389 from tonistiigi/15995-duplicate-names
Fix duplicate container names conflict
2015-10-27 02:42:50 -04:00
Alessandro Boch
4f6f00e191 Do not update etc/hosts for every container
- Only user named containers will be published into
  other containers' etc/hosts file.
- Also block linking to containers which are not
  connected to the default network

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-26 20:08:57 -07:00
Sebastiaan van Stijn
b92fd9ff04 Merge pull request #17124 from vincentbernat/fix/zsh-option-stacking
zsh: enable option stacking
2015-10-27 01:39:04 +01:00
David Calavera
91de5ddf18 Merge pull request #17381 from mavenugo/rc3v1
Vendoring in libnetwork with fixes for issues identified in RC1 & RC2
2015-10-26 17:06:01 -07:00
Tonis Tiigi
aee5486374 Fix duplicate container names conflict
While creating multiple containers the second 
container could remove the first one from graph
and not produce an error.

Fixes #15995

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-10-26 16:57:50 -07:00
David Calavera
fe1e04a84f Merge pull request #17285 from Microsoft/10662-exectp4workaround
Windows [TP4] Trap Hyper-V exec failure
2015-10-26 16:47:51 -07:00
David Calavera
4cbe227db8 Merge pull request #17378 from Microsoft/10662-unmountwithsyscall
Windows: Volumes PR rename UnmountWithSyscall
2015-10-26 16:15:00 -07:00
Tibor Vass
3f11360a54 Merge pull request #17384 from mavenugo/42def
Simple Info log to indicate the chosen IP Address for the default bridge
2015-10-26 19:11:56 -04:00
Vincent Demeester
bffcb8226e Merge pull request #17377 from LK4D4/remove_host_integration
Remove contrib/host-integration
2015-10-26 23:45:20 +01:00
Vincent Demeester
f3f63c6044 Merge pull request #17257 from echo33/docker_cli_exec_test
use of checkers on docker_cli_exec_test.go
2015-10-26 23:14:38 +01:00
Vincent Demeester
0d963de867 Merge pull request #17331 from coolljt0725/fix_redundat_log
Better daemon log on docker load
2015-10-26 23:09:00 +01:00
Alexander Morozov
0bd7aedc36 Merge pull request #16772 from Microsoft/10662-refactorresources
Windows: Refactor resources structure
2015-10-26 15:01:17 -07:00
Vincent Demeester
962243e387 Merge pull request #17256 from liaoqingwei/16756-docker_cli_config_test
Use of checkers on docker_cli_config_test.go
2015-10-26 23:00:04 +01:00
Madhu Venugopal
126d1b6ca1 Simple log to indicate the chosen IP Address for the default bridge
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-26 14:46:08 -07:00
Sebastiaan van Stijn
9312a738d8 Merge pull request #17002 from jfrazelle/apparmor-check-version-on-deb-install
apparmor check version on deb install
2015-10-26 22:44:11 +01:00
John Howard
2af5034ce8 Windows: Volume integration tests
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-26 14:33:28 -07:00
Vincent Bernat
402caa94d2 zsh: allow option stacking for short options without arguments
This enables Zsh to understand commands like "docker run -it
ubuntu". However, by enabling this, this also makes Zsh completes
"docker run -u<tab>" with "docker run -uapprox" which is not valid. The
users have to put the space or the equal sign themselves before trying
to complete.

Therefore, this behavior is disabled by default. To enable it:

    zstyle ':completion:*:*:docker:*' option-stacking yes
    zstyle ':completion:*:*:docker-*:*' option-stacking yes

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2015-10-26 21:58:59 +01:00
Vincent Bernat
8ac32d900a zsh: allow short options to specify their arguments with "="
This is allowed by Docker and helps the completion to not get confused
when a user uses this notation. This will also help to enable stacking
of short options since Zsh needs that to not stack options with
arguments.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2015-10-26 21:58:59 +01:00
Madhu Venugopal
139d1e13e2 Vendoring in libnetwork with fixes for issues identified in RC1 & RC2
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-26 13:56:56 -07:00
John Howard
b1220a763c Windows: Refactor resources structure
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-26 13:48:16 -07:00
David Calavera
2dd822f322 Merge pull request #17206 from liaoqingwei/16756-docker_cli_import_test
Use of checkers on docker_cli_import_test.go
2015-10-26 13:42:02 -07:00
David Calavera
e252fe288c Merge pull request #17266 from cpuguy83/dump_http_request_on_debug
Dump request when daemon is set to debug
2015-10-26 13:41:14 -07:00
John Howard
853f2e9952 Windows: Volumes PR fix one of Tibors nits
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-26 13:34:49 -07:00
Michael Crosby
8173acca95 Merge pull request #17374 from brahmaroutu/fix_gccgo_ci
GCCGO requires more memory and time to start containers, fixing GCCGO…
2015-10-26 13:33:59 -07:00
Michael Crosby
5cf028d3dd Merge pull request #17313 from calavera/version_exec_json_check
Version exec json check.
2015-10-26 13:32:32 -07:00
David Calavera
c52fdce2f2 Merge pull request #17286 from FeroVolar/namegenerator
Add Heyrovsky
2015-10-26 13:26:43 -07:00
David Calavera
1b9d064b73 Merge pull request #17376 from LK4D4/fix_dumper
Fix dumper program to use proper import
2015-10-26 13:25:36 -07:00
Michael Crosby
74a881c9e4 Merge pull request #17368 from HuKeping/update-test
Update docker_cli_build_unix_test
2015-10-26 13:21:31 -07:00
Alexander Morozov
0dec8091a2 Remove contrib/host-integration
It's outdated and unused.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-26 13:18:50 -07:00
Alexander Morozov
1477a3d7fd Fix dumper program to use proper import
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-26 13:10:01 -07:00
Brian Goff
5087e8c2e8 Merge pull request #17180 from rhatdan/destroy
Docker is calling cont.Destroy twice on success
2015-10-26 15:48:04 -04:00
Brian Goff
b21f95c612 Merge pull request #17343 from fgimenez/16756-refactor-docker_cli_external_graphdriver_unix_test-to-use-checker
Use checker assert for docker_cli_external_graphdriver_unix_test.go
2015-10-26 15:39:08 -04:00
David Calavera
0b5e628e14 Version exec json check.
Keep backwards compatibility with old versions of the api.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-26 15:12:06 -04:00
Srini Brahmaroutu
2046ba3e3c GCCGO requires more memory and time to start containers, fixing GCCGO x86 CI
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-10-26 19:09:00 +00:00
Sebastiaan van Stijn
74b9d89648 Merge pull request #17134 from sdurrheimer/zsh-completion-build-multi-tag
Add zsh completion for 'docker build' multi tags
2015-10-26 19:05:23 +01:00
Alexander Morozov
34439f3ecb Merge pull request #17351 from mavenugo/predefined
Prevent user from deleting pre-defined networks
2015-10-26 10:06:45 -07:00
Tibor Vass
7e275cf0e5 Merge pull request #17333 from sdurrheimer/zsh-completion-fix-repeatable-options
Fix repeatable options in zsh completion
2015-10-26 12:43:21 -04:00
Hu Keping
f410d7e70f Update docker_cli_build_unix_test
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-26 21:06:11 +08:00
Antonio Murdaca
9328fc7e62 Merge pull request #17222 from maaquib/16756-integration-cli-export-import-test
Using checkers assert for integration-cli/docker_cli_export_import_test.go
2015-10-26 13:58:21 +01:00
Federico Gimenez
7058ec278d Use checker assert for integration-cli/docker_cli_external_graphdriver_unix_test.go
Signed-off-by: Federico Gimenez <fgimenez@coit.es>
2015-10-26 09:09:38 +01:00
Hu Keping
3aa70c1948 Warning out when disalbe oom killer but not set the memory limit
It is always the best practice that only disable the OOM Killer where
you also set the `-m/--memory` option, otherwise it's dangerous.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-26 11:33:51 +08:00
liaoqingwei
d1ed5f62ad Use of checkers on docker_cli_config_test.go.
Signed-off-by: liaoqingwei <liaoqingwei@huawei.com>
2015-10-26 10:51:12 +08:00
Jian Zhang
f26a31e80c Use checker assert for integration-cli/docker_cli_cp_* four files.
Signed-off-by: Jian Zhang <zhangjian.fnst@cn.fujitsu.com>
2015-10-26 10:22:28 +08:00
weiyan
9120a1fc3e use of checkers on docker_cli_exec_test.go
Signed-off-by: weiyan <weiyan3@huawei.com>
2015-10-26 10:01:48 +08:00
Brian Goff
75128c46c7 Merge pull request #17189 from maaquib/16756-integration-cli-unix-events-test
Using checkers assert for integration-cli/docker_cli_events_unix_test.go
2015-10-25 20:39:32 -04:00
Madhu Venugopal
ead62b5952 Prevent user from deleting pre-defined networks
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-25 17:17:29 -07:00
Vincent Demeester
c71e97fc12 Merge pull request #17332 from askb/17225_flakytest_TestExecEnv
Fix for the issue #17225 flaky test DockerSuite.TestExecEnv test case.
2015-10-25 21:17:50 +01:00
Doug Davis
029e7ae4e0 Merge pull request #17348 from askb/17243_flaykytest_TestExecAfterContainerRestart
Fix for #17243 DockerSuite.TestExecAfterContainerRestart.
2015-10-25 13:25:21 -04:00
Anil Belur
2a5f04dcc9 Fix for #17243 DockerSuite.TestExecAfterContainerRestart.
Added waitRun(containerID) statement after docker run -d and docker restart
to ensure the container is restarted before issuing a exec cmd.

Signed-off-by: Anil Belur <askb23@gmail.com>
2015-10-25 21:43:31 +05:30
Sebastiaan van Stijn
5bcd6aba4b Merge pull request #17339 from moxiegirl/docs-readme-update
Tweaking some things
2015-10-25 16:45:04 +01:00
Tibor Vass
271f85afac Merge pull request #17325 from aboch/d0
Disable built-in SD on default bridge network
2015-10-25 11:04:27 -04:00
Federico Gimenez
e8da75d4a1 Integration test: bridge ip is excluded from the allocator pool
Signed-off-by: Federico Gimenez <fgimenez@coit.es>
2015-10-25 09:36:38 +01:00
moxiegirl
c10ef20ed8 Merge pull request #17319 from vdemeester/fix-network-help-inspect-syntax
Update docker network inspect help syntax
2015-10-24 21:56:38 -07:00
Mary Anthony
5560e8a61c Tweaking some things
Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-24 18:07:08 -07:00
Anil Belur
6d974ec19d Fix for the issue #17225 flaky test DockerSuite.TestExecEnv test case.
This is done by calling waitRun() followed by the docker run, which ensures the container is loaded
before calling docker exec to obtain the env variable set previously.

Incorporated the change as suggeted by duglin.

Signed-off-by: Anil Belur <askb23@gmail.com>
2015-10-24 22:54:24 +05:30
Steve Durrheimer
cc77fc3cb2 Add zsh completion for 'docker build' multi tags
+ Fix some others multi options

Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-24 16:41:22 +02:00
Steve Durrheimer
7963807610 Fix repeatable options in zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-24 16:38:41 +02:00
Brian Goff
80439a4ce2 Merge pull request #17296 from jecarey/16756-docker_cli_history_test
Use of checkers on docker_cli_history_test.go
2015-10-24 08:14:08 -04:00
Brian Goff
c3ea74f686 Merge pull request #17301 from sdurrheimer/zsh-completion-splunk-log-driver
Add splunk log driver to zsh completion
2015-10-24 08:00:12 -04:00
Steve Durrheimer
230313b1c5 Add splunk log driver to zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-24 13:49:27 +02:00
Lei Jitang
79804d271c Better log on docker load
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-24 06:33:15 -04:00
James Carey
04b6b0b47f Use of checkers on docker_cli_history_test.go
Signed-off-by: James Carey <jecarey@us.ibm.com>
2015-10-23 22:32:56 -05:00
Sebastiaan van Stijn
e2d263d64e Merge pull request #17311 from lsiqueira/patch-1
Update CONTRIBUTING.md
2015-10-23 19:49:29 -07:00
Alessandro Boch
be1c77595e Disable built-in SD on docker0 network
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-23 19:46:28 -07:00
Sebastiaan van Stijn
8d4888df90 Merge pull request #16488 from splunk/splunk_log_driver
Add Splunk logging driver #16207
2015-10-23 18:22:14 -07:00
Santhosh Manohar
1041f39670 Vendor in libnetwork changes to support container rename
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-10-23 16:27:03 -07:00
Madhu Venugopal
3b16a8c91c integration-cli test for active container rename and reuse
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-10-23 16:26:24 -07:00
Santhosh Manohar
8e0bbb2898 Add libnetwork call on daemon rename
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-10-23 16:26:24 -07:00
Tibor Vass
e74cf8acad Merge pull request #16433 from Microsoft/10662-volumes5
Windows: [TP4] Add volume support
2015-10-23 18:43:07 -04:00
Sebastiaan van Stijn
448398c2a8 Merge pull request #15780 from mountkin/build-multi-tags
Add ability to add multiple tags with docker build
2015-10-23 13:50:35 -07:00
Vincent Demeester
3dd50eaf05 Update docker network inspect help syntax
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-23 22:48:22 +02:00
Denis Gladkikh
1f1dbf312d Add Splunk logging driver #16207
Allow to send Splunk logs using Http Event Collector

Signed-off-by: Denis Gladkikh <denis@gladkikh.email>
2015-10-23 13:37:53 -07:00
Vincent Demeester
a2e5bbe640 Merge pull request #17306 from albers/completion-log-driver-options
bash completion for log driver options `env` and `labels`
2015-10-23 21:28:40 +02:00
Tibor Vass
f7bdcea529 Merge pull request #17291 from aaronlehmann/buffer-compression
Add a buffered Writer between layer compression and layer upload
2015-10-23 13:52:08 -04:00
Shijiang Wei
c2eb37f9ae Add ability to add multiple tags with docker build
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-24 00:59:56 +08:00
Antonio Murdaca
cd5108b178 Merge pull request #17303 from coolljt0725/remove_unused_parameter
Remove unused parmeter of createRootFilesystemInDriver in graph/graph.go
2015-10-23 18:24:45 +02:00
Leandro Siqueira
e50c8f67ea Update CONTRIBUTING.md
Fix typo and update number of questions

Signed-off-by: Leandro Siqueira <leandro.siqueira@gmail.com>
2015-10-23 12:07:57 -04:00
John Howard
2e56e78caf Windows [TP4] Trap Exec Hyper-V Cont error
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-23 08:42:24 -07:00
John Howard
a3c43964cf Windows [TP4] HCSShim Revendor
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-23 08:41:30 -07:00
Brian Goff
b972a6e3f8 Merge pull request #17287 from maaquib/16756-integration-cli-experimental-test
Using checkers assert for integration-cli/docker_cli_experimental_test.go
2015-10-23 09:44:32 -04:00
Brian Goff
37dbe07519 Dump request when daemon is set to debug
Uses a new middleware which calls httputils.DumpRequest which is output
to `logrus.Debug`.
This is implemented in a separate middleare so that we only have to
check the logging level when the router is instantiated rather than at
every request.
If this was just `logrus.Debug(httputil.DumpRequest(...))`, the
DumpRequest would be called on each request requardless of logging
level set on the daemon.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-23 09:04:32 -04:00
Harald Albers
d0c019850c bash completion for log driver options env and labels
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-23 10:55:47 +02:00
Vincent Demeester
60ea37d56f Merge pull request #17299 from sdurrheimer/zsh-completion-network-inspect-multi
Zsh completion for 'docker network inspect' multiple networks
2015-10-23 10:49:02 +02:00
Lei Jitang
45a8a3796f Remove unused parmeter of createRootFilesystemInDriver in graph/graph.go
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-23 03:07:06 -04:00
Steve Durrheimer
cb93fefa40 Zsh completion for 'docker network inspect' multiple networks
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-23 08:13:33 +02:00
Sebastiaan van Stijn
d023d5a8a2 Merge pull request #17295 from SvenDowideit/two-more-links
Two more links to fix
2015-10-22 22:10:33 -07:00
Sven Dowideit
1f9332cd16 Two more links to fix
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-10-23 14:10:43 +10:00
Aaron Lehmann
bb69f10df9 Add a buffered Writer between layer compression and layer upload
Without this buffering, the compressor was outputting 64 bytes at a
time to the HTTP stream, which was resulting in absurdly small chunk
sizes and a lot of extra overhead. The buffering restores the chunk size
to 32768 bytes, which matches the behavior with 1.8.2.

Times pushing to a local registry:

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

Fixes: #17038

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-10-22 19:58:01 -07:00
Mohammed Aaqib Ansari
ff91c8ac1a Using checkers assert for integration-cli/docker_cli_experimental_test.go
Signed-off-by: Mohammed Aaqib Ansari <maaquib@gmail.com>
2015-10-22 20:29:18 -04:00
Michael Crosby
21aecf62a0 Merge pull request #17284 from calavera/buffer_inspect_template
Fail when there is an error executing an inspect template.
2015-10-22 17:06:16 -07:00
Fero Volar
ac37d1f10a Add Bassi
Signed-off-by: Fero Volar <alian@alian.info>
2015-10-23 01:32:47 +02:00
David Calavera
3b9c13873a Fail when there is an error executing an inspect template.
- Do not execute the template directly in the cli outout, go is not atomic
in this operation and can send bytes before failing the execution.
- Fail after evaluating a raw interface if the typed execution also
failed, assuming there is a template parsing error.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-22 19:24:50 -04:00
Tibor Vass
37da495d4c Merge pull request #17278 from mavenugo/etchosts
Vendoring libnetwork & libkv with fixes
2015-10-22 19:02:02 -04:00
Fero Volar
685425bb2b Add Heyrovsky
Signed-off-by: Fero Volar <alian@alian.info>
2015-10-23 01:01:58 +02:00
Sean OMeara
d2d40c2d9c Documenation update - articles/chef
Signed-off-by: Sean OMeara <sean@chef.io>
2015-10-22 17:53:28 -04:00
Tibor Vass
4c253ddf20 Merge pull request #17275 from vdemeester/17246-tags-to-repotags
Use RepoTags & RepoDigest in inspect
2015-10-22 17:14:49 -04:00
Alessandro Boch
5b53839326 Add integ-test for fixed--cidr == bridge network
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-22 14:12:46 -07:00
Madhu Venugopal
793b20ba09 Vendoring in libkv to be aligned with libnetwork
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 14:12:46 -07:00
Madhu Venugopal
52df87ac2b Vendoring in Libnetwork
This carries fixes for
- Internal racy /etc/hosts updates within container during SD
- Renable SD service record watch after cluster-store restarts
- Fix to allow remote IPAM driver to return no IP if the user prefers
- Fix to allow --fixed-cidr and --bip to be in same range

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-22 14:12:46 -07:00
Vincent Demeester
f664f6e4b1 Use RepoTags & RepoDigest in inspect
To be coherent with /images/json (images command)

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-22 23:00:59 +02:00
David Calavera
4816626f3e Merge pull request #17270 from albers/completion-network-ids
bash completion can be configured to complete network IDs
2015-10-22 13:37:38 -07:00
David Calavera
2afdc6582b Merge pull request #17274 from aboch/ai
Turn off discovery when icc == false
2015-10-22 13:08:31 -07:00
Antonio Murdaca
09cd98462b Merge pull request #17269 from tonistiigi/trust-deprecation-warning
Show trust variable deprecation warning only if used
2015-10-22 22:05:29 +02:00
Vincent Demeester
8b198a3bfb Merge pull request #17268 from albers/completion-network-inspect-args
bash completion for `docker network inspect` supports multiple networks
2015-10-22 21:18:10 +02:00
Alessandro Boch
20faaaa872 Turn off service discovery when icc==false
- Turn off built-in service discovery on docker0 bridge
  when icc is false

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-22 12:02:02 -07:00
Tonis Tiigi
dfdee41308 Show trust variable deprecation warning only if used
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-10-22 11:01:30 -07:00
John Howard
a7e686a779 Windows: Add volume support
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-22 10:42:53 -07:00
Harald Albers
1598500df8 bash completion can be configured to complete network IDs
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 18:58:34 +02:00
Harald Albers
10e485b386 bash completion for docker network inspect supports multiple networks
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-22 17:53:17 +02:00
Sebastiaan van Stijn
bb19575d40 Merge pull request #17259 from SvenDowideit/fix-some-errant-links
Fix some errant links
2015-10-22 07:26:15 -07:00
Sven Dowideit
9ed6cec8ff Fix some errant links
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2015-10-22 20:33:24 +10:00
Vincent Demeester
48fe12af0c Merge pull request #16784 from MHBauer/test-refactor
use gocheck asserts instead of fatal
2015-10-22 08:34:50 +02:00
Sebastiaan van Stijn
c6ec33ea8f Merge pull request #17241 from gondor/docs-extend-plugins
docs: Add Netshare volume plugin to extend/plugins
2015-10-21 19:24:32 -07:00
Jeremy Unruh
a263709a9b changes from review - which -> that
Signed-off-by: Jeremy Unruh <jeremybunruh@gmail.com>
2015-10-21 18:42:17 -07:00
Jeremy Unruh
f8c0d4d055 changes from review - move up to conform to alphabetical order
Signed-off-by: Jeremy Unruh <jeremybunruh@gmail.com>
2015-10-21 18:07:55 -07:00
Brian Goff
fa2bf776a2 Merge pull request #16971 from HuKeping/upgrade-test
Use checker on integration test when possible
2015-10-21 20:49:38 -04:00
Hu Keping
710817a71b Use checker on integration test when possible
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-22 15:53:17 +08:00
Tianon Gravi
4786ac1ffe Merge pull request #17153 from albers/completion-cp-args
[Fix 17029] docker cp completion not correct
2015-10-21 14:58:11 -07:00
Jess Frazelle
697d4c9e72 Merge pull request #17203 from hopkings2008/auth_token
In NewV2Repository, check the suffix of endpoint.URL and append 'v2' …
2015-10-21 14:57:05 -07:00
Vincent Demeester
ab22fe0f7c Merge pull request #17055 from daehyeok/parse_utf8
ProcessWord support UTF-8
2015-10-21 23:42:50 +02:00
Jess Frazelle
af6743a6c6 Merge pull request #17144 from thaJeztah/fix-16668-update-fish-completions-dest
RPM change install location of Fish completions
2015-10-21 14:36:50 -07:00
Tibor Vass
e319b122d3 Merge pull request #17227 from aaronlehmann/layer-compression
Fix layer compression regression
2015-10-21 17:32:58 -04:00
Jess Frazelle
bf8ba3d0c9 Merge pull request #16908 from brahmaroutu/skip_oom_gccgo
Skipping two tests when running with GCCGO (CI)
2015-10-21 14:01:59 -07:00
Jess Frazelle
08fb495975 Merge pull request #17145 from thaJeztah/deb-add-fish-completions
deb: add fish completions
2015-10-21 13:58:22 -07:00
Jess Frazelle
70af70aa0b Merge pull request #17220 from calavera/fix_double_removal
Do not fail when a container is being removed and we request its delete again.
2015-10-21 13:57:16 -07:00
Jess Frazelle
f33678d1bf Merge pull request #17251 from tiborvass/fix-release-script
release: fix bash bug in script
2015-10-21 13:08:50 -07:00
Tibor Vass
420e07cc2c release: fix bash bug in script
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-21 16:02:14 -04:00
Tibor Vass
56ef47e881 Merge pull request #16890 from runcom/perf-boost
rmi and build cache miss performance improvements
2015-10-21 16:00:25 -04:00
Phil Estes
94a16c81f4 Merge pull request #17245 from dhiltgen/discovery_tls
Wire up libnetwork with TLS discovery options
2015-10-21 15:20:24 -04:00
Jonathan Lebon
4d41fe0b80 Makefile: don't allocate pseudo-tty if not interactive
In cases where we are running non-interactively (e.g. on Jenkins), we
shouldn't try to allocate a TTY, which would fail. This patch makes the
flag `-t` be dependent on whether the shell session is interactive or
not.

When it is interactive, it's important to have `-t` so that the user can
pass signals through to the process.

We also remove the DOCKER_RUN_DOCS and the GITCOMMIT variables, which
are no longer in use in this Makefile (seems like the related targets
that used it were migrated to docs/Makefile).

Signed-off-by: Jonathan Lebon <jlebon@redhat.com>
2015-10-21 15:10:55 -04:00
David Calavera
8247eff8a8 Merge pull request #17213 from calavera/volume_driver_validate_name
Validate volume names for the local driver.
2015-10-21 11:48:54 -07:00
David Calavera
678acbcb3f Merge pull request #16992 from burke/fix-mqueue
Fix --ipc=host dependency on /dev/mqueue existing
2015-10-21 11:25:37 -07:00
Sebastiaan van Stijn
9f031f70ce Merge pull request #17218 from vdemeester/17023-network-multiple-inspect
Add support for multiple network in inspect
2015-10-21 11:09:02 -07:00
Tibor Vass
6a7c38a57d Merge pull request #16940 from coolljt0725/default_tls_host
Make default tls host work
2015-10-21 14:02:22 -04:00
Srini Brahmaroutu
dc813c7d13 Skipping two tests when running with GCCGO (CI)
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2015-10-21 17:53:59 +00:00
Tibor Vass
10430fd334 Merge pull request #17179 from tonistiigi/17178-dont-overwrite-layer-checksum
Don’t overwrite layer checksum on push
2015-10-21 13:42:59 -04:00
Sebastiaan van Stijn
492945235b Merge pull request #17136 from gesellix/change-route-volume-create
rename `POST /volumes` to `POST /volumes/create`
2015-10-21 10:21:27 -07:00
Daniel Hiltgen
10e7806984 Wire up libnetwork with TLS discovery options
This change exposes the TLS configuration settings to libnetwork so it can
communicate with a key/value store that has been set up with mutual TLS.

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

Signed-off-by: Daniel Hiltgen <daniel.hiltgen@docker.com>
2015-10-21 09:38:58 -07:00
Alessandro Boch
1be540b99b Vendoring in libnetwork for the anonymous endpoint
- commit f3c8ebf46b890d4612c5d98e792280d13abdb761

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-21 09:32:48 -07:00
David Calavera
d6d60287ee Move volume name validation to the local driver.
Delegate validation tasks to the volume drivers. It's up to them
to decide whether a name is valid or not.
Restrict volume names for the local driver to prevent creating
mount points outside docker's volumes directory.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-21 12:28:26 -04:00
Aaron Lehmann
4dce280d96 Fix layer compression regression
PR #15493 removed compression of layers when pushing them to a V2
registry. This this makes layer uploads larger than they should be.

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

Fixes #17209
Fixes #17038

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-10-21 09:21:14 -07:00
Daehyeok Mun
bb79b7eb9e ProcessWord support UTF-8
modified PorcessWord to working normally for UTF-8 strings and added test cases

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2015-10-21 10:10:10 -06:00
Tibor Vass
bb5551746b Merge pull request #17229 from mavenugo/ds_fix
Fixing bootup inconsistencies due to invalid cluster-store config
2015-10-21 12:00:07 -04:00
Jeremy Unruh
95c053c56b docs: Add Netshare volume plugin to extend/plugins
Signed-off-by: Jeremy Unruh <jeremybunruh@gmail.com>
2015-10-21 08:28:37 -07:00
Antonio Murdaca
f6577be1c9 graph: ensure _tmp dir is always removed
Also remove unused func `newTempFile` and prevent a possible deadlock
between pull_v2 `attemptIDReuse` and graph `register`

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-21 17:13:45 +02:00
Antonio Murdaca
f9e81b40f4 daemon: faster image cache miss detection
Lookup the graph parent reference to detect a builder cache miss before
looping the whole graph image index to build a parent-children tree.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-21 17:13:45 +02:00
Antonio Murdaca
56f5e3459f graph: add parent img refcount for faster rmi
also fix a typo in pkg/truncindex package comment

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-21 17:13:45 +02:00
Antonio Murdaca
04ef69a1e9 integration-cli: docker_cli_build_test: check error before defer
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-21 17:13:45 +02:00
Mohammed Aaqib Ansari
e72f92cb99 Using checkers assert for integration-cli/docker_cli_export_import_test.go
Signed-off-by: Mohammed Aaqib Ansari <maaquib@gmail.com>
2015-10-21 08:57:20 -04:00
Vincent Demeester
7af9f988ac Add support for multiple network in inspect
To be consistent with other inspect command (on container and images),
add the possiblity to pass multiple network to the network inspect
commands.

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

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-21 08:57:29 +02:00
yuzou
5f59f52c14 In NewV2Repository, check the suffix of endpoint.URL and append 'v2' correctly.
Signed-off-by: yuzou <zouyu7@huawei.com>
2015-10-21 11:43:31 +08:00
Madhu Venugopal
37627427a2 Integration test for default bridge init with invalid cluster config
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-20 19:56:59 -07:00
Madhu Venugopal
2de2192c27 Vendoring in libnetwork to fix daemon bootup instabilities
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-20 19:56:59 -07:00
Chance Zibolski
834f8b132b cliconfig: Do not rely on platform dependent code
The 	`github.com/docker/docker/pkg/system` import was only being used to call to os.MkdirAll so it seems unnecessary to pull in all of system/* when this is all that is necessary.

Additionally, this was causing problems with attempting to vendor cliconfig using Godeps, as it would only vendor the necessary files based on the platform it's running on, this was seen when vendoring the package on a Mac, and then attempting to build on a Linux box due to `github.com/docker/docker/pkg/units/` not being properly included.

Signed-off-by: Chance Zibolski <chance@coreos.com>
2015-10-20 19:04:53 -07:00
Jess Frazelle
967e49bdbc Merge pull request #17219 from endophage/gotuf_bugfixes
some bugfixes on getting tuf files
2015-10-20 18:13:19 -07:00
Brian Goff
78e2167976 Merge pull request #17202 from aboch/ipa
Do not mask ipam driver if no ip config is passed
2015-10-20 19:45:08 -04:00
David Calavera
c4e49d1014 Do not fail when a container is being removed and we request its delete again.
Abort the process and return a success response, letting the original
request finish its job.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-20 18:48:34 -04:00
Brian Goff
c516aa645e Merge pull request #17177 from runcom/bc-fixes
Return empty Config fields, now omitempty, for API < 1.21
2015-10-20 16:39:53 -04:00
David Lawrence
43ba8a0426 some bugfixes on getting tuf files, this is backed by a lot of new unit tests in gotuf
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-10-20 13:22:06 -07:00
Tibor Vass
3957368eff Merge pull request #17149 from albers/completion-network-ipam
bash completion for new `docker network create` options
2015-10-20 15:54:05 -04:00
Tibor Vass
081edfed32 Merge pull request #17150 from sdurrheimer/zsh-completion-network-driver-option
Add zsh completion for 'docker network create -o --opt'
2015-10-20 15:48:12 -04:00
David Calavera
a7868191d4 Merge pull request #17188 from jfrazelle/fix-release-rpm
fix copy of multiple rpms
2015-10-20 11:31:35 -07:00
Alessandro Boch
27f908a051 Do not mask ipam driver if no ip config is passed
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-10-20 11:19:37 -07:00
Vincent Demeester
b7fcc71a3c Merge pull request #16917 from WeiZhang555/start-inte
use of checkers on `integration-cli/docker_cli_start_test.go`
2015-10-20 19:51:15 +02:00
Jess Frazelle
a2d1ec06e6 Merge pull request #16984 from estesp/update-busybox
Update Dockerfile to use the correct busybox:latest identifier
2015-10-20 10:35:31 -07:00
Brian Goff
7777c1be9b Merge pull request #17176 from rhvgoyal/fix-locking-issue
devmapper: Drop devices lock before returning from function
2015-10-20 13:08:29 -04:00
xlgao-zju
609961ddcc validate the name of named volume
Signed-off-by: xlgao-zju <xlgao@zju.edu.cn>
2015-10-20 12:36:04 -04:00
Phil Estes
414cfe9467 Update Dockerfile to use the correct busybox:latest identifier
Also requires some tests to be updated which relied on behavior
of a busybox image that wasn't actually "busybox:latest"; meaning these
tests were unable to be verified/run against a real busybox:latest image
on a daemon.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-20 12:03:11 -04:00
Alexander Morozov
ad861876e8 Merge pull request #17035 from estesp/fix-build-dir-perms
Correct build-time directory creation with user namespaced daemon
2015-10-20 08:57:19 -07:00
Zhang Wei
08944cdef7 use of checkers on Integration test
Part of #16756

Use c.Assert instead of condition judgement in
integration-cli/docker_cli_start_test.go

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-10-20 23:07:33 +08:00
Brian Goff
aa8abf637a Merge pull request #17196 from liaoqingwei/16756-docker_cli_info_test
Use of checkers on docker_cli_info_test.go
2015-10-20 10:48:20 -04:00
Tibor Vass
566964bf73 Merge pull request #17191 from mrjana/restart
Fix docker startup failure due to dangling endpoints
2015-10-20 10:32:33 -04:00
Brian Goff
9f19cbc2c4 Fix bug in volume driver test implementation
Also cleans up some of the driver handlers and converts this to use
checkers everywhere.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-20 09:17:49 -04:00
moxiegirl
e92a735d70 Merge pull request #17192 from HuKeping/docs-update
Docs: update docs for API stats
2015-10-20 06:15:58 -07:00
Phil Estes
ae8c004dc1 Correct build-time directory creation with user namespaced daemon
This fixes errors in ownership on directory creation during build that
can cause inaccessible files depending on the paths in the Dockerfile
and non-existing directories in the starting image.

Add tests for the mkdir variants in pkg/idtools

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2015-10-20 08:59:48 -04:00
liaoqingwei
288214e5ae Use of checkers on docker_cli_import_test.go.
Signed-off-by: liaoqingwei <liaoqingwei@huawei.com>
2015-10-20 19:58:16 +08:00
Brian Goff
89bfbb1516 Merge pull request #17052 from echo33/docker_cli_start_volume_driver_unix_test
use of checkers on docker_cli_start_volume_driver_unix_test.go
2015-10-20 07:21:28 -04:00
Mohammed Aaqib Ansari
bc478b453f Using checkers assert for integration-cli/docker_cli_events_unix_test.go
Signed-off-by: Mohammed Aaqib Ansari <maaquib@gmail.com>
2015-10-20 07:04:55 -04:00
Hu Keping
969f1d9773 Docs: update docs for API stats
Signed-off-by: Hu Keping <hukeping@huawei.com>
2015-10-20 16:31:20 +08:00
liaoqingwei
37b3cd421f Use of checkers on docker_cli_info_test.go.
Signed-off-by: liaoqingwei <liaoqingwei@huawei.com>
2015-10-20 13:38:55 +08:00
Jana Radhakrishnan
8adfc7e2d2 Fix docker startup failure due to dangling endpoints
Fixes docker startup failure due to dangling endpoints
which makes docker to not come up.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-19 21:29:35 -07:00
Jana Radhakrishnan
9750dd0088 Vendoring libnetwork
Vendoring libnetwork @ 05890386de89e01c73f8898c2941b020bbe57052

Has bug fixes for 1.9

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2015-10-19 21:29:26 -07:00
Sven Dowideit
b826215c57 Merge pull request #16801 from aidanhs/aphs-add-socat-t
Update ambassador image, use the socat -t option
2015-10-20 14:24:25 +10:00
Sebastiaan van Stijn
310725c933 Merge pull request #17094 from GabrielNicolasAvellaneda/docs-fixes
MINOR documentation fix.
2015-10-19 18:36:42 -07:00
Jess Frazelle
98c01c2c90 Merge pull request #17088 from Microsoft/sjw/archive_hang_fix
Fixing hang in archive.CopyFileWithTar with invalid dst
2015-10-19 17:18:25 -07:00
Jess Frazelle
48147d287b Merge pull request #17187 from mavenugo/dopts
Fail the container start if the network has been removed
2015-10-19 17:12:07 -07:00
Jessica Frazelle
14e85c8c55 add test script for built debs
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-19 16:15:27 -07:00
Jessica Frazelle
8369f00d30 add generate aa profile to deb install
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-19 16:15:25 -07:00
Jessica Frazelle
c39689ca70 add dh-apparmor & apparmor to deb builder dockerfiles
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-19 16:15:22 -07:00
Jessica Frazelle
8cf89245f5 change default docker-engine profile to a template based on apparmor_parser version
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-19 16:15:18 -07:00
Jessica Frazelle
f549b1c9ea fix copy of multiple rpms
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-19 16:14:06 -07:00
Jess Frazelle
b135f758d7 Merge pull request #17186 from LK4D4/icc_clear
Use more clear message for icc=false + iptables=false
2015-10-19 15:40:41 -07:00
Jess Frazelle
c766bcdc73 Merge pull request #17135 from albers/completion-restart-unless-stopped
Bash completion for restart policy `unless-stopped`
2015-10-19 15:26:16 -07:00
Jess Frazelle
6f4d7dfbf4 Merge pull request #17148 from albers/completion-dm-options
bash completion: support for more devicemapper options
2015-10-19 15:25:27 -07:00
Madhu Venugopal
8755920d0d Fail the container start if the network has been removed
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-19 15:00:07 -07:00
Vivek Goyal
2f16895ee9 devmapper: Drop devices lock before returning from function
cleanupDeleted() takes devices.Lock() but does not drop it if there are
no deleted devices. Hence docker deadlocks if one is using deferred
device deletion feature. (--storage-opt dm.use_deferred_deletion=true).

Fix it. Drop the lock before returning.

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

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-10-19 17:51:17 -04:00
Alexander Morozov
ab495ab0d0 Use more clear message for icc=false + iptables=false
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-19 14:19:21 -07:00
Tibor Vass
82a8a14c4d Merge pull request #17128 from calavera/network_controller_enabled
Do not initialize the networking routes when netController is not enabled.
2015-10-19 16:13:31 -04:00
Tibor Vass
1ab5ca2d5b Merge pull request #17116 from dmcgowan/increase-ping-timeout
Increase ping timeout for registries
2015-10-19 16:10:01 -04:00
Morgan Bauer
eedeeaf49c use gocheck asserts instead of fatal
- for #16756

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-19 12:30:22 -07:00
Stefan J. Wernli
a150eee308 Fixing hang in archive.CopyWithTar with invalid dst
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-10-19 11:56:05 -07:00
Dan Walsh
0c518b6ab2 Docker is calling cont.Destroy twice on success
Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-10-19 14:53:55 -04:00
David Calavera
b27fa6c58e Merge pull request #16957 from MHBauer/eventsservice-refactor
refactor access to daemon member EventsService
2015-10-19 11:45:29 -07:00
Tonis Tiigi
fb4a725692 Don’t overwrite layer checksum on push
After v1.8.3 layer checksum is used for image ID
validation. Rewriting the checksums on push would
mean that next pulls will get different image IDs
and pulls may fail if its detected that same
manifest digest can now point to new image ID.

Fixes #17178

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-10-19 11:44:16 -07:00
David Calavera
eb982e7c00 Return 404 for all network operations without network controller.
This will prevent the api from trying to serve network requests in
systems where libnetwork is not enabled, returning 404 responses in any
case.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-19 14:40:18 -04:00
Antonio Murdaca
850bc0838a Return empty Config fields, now omitempty, for API < 1.21
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-10-19 19:09:36 +02:00
Antonio Murdaca
bb085b7661 Merge pull request #17125 from calavera/check_exec_start_json
Check the content type is json when calling exec start.
2015-10-19 18:44:42 +02:00
Morgan Bauer
2abf5d986e refactor access to daemon member EventsService
Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-19 09:41:29 -07:00
Doug Davis
e62fd33d96 Merge pull request #17115 from mountkin/tag-on-build
Proposal: emit a "tag" event when building image with "-t" parameter
2015-10-19 12:35:58 -04:00
Vincent Demeester
6e0f00ed0a Merge pull request #16710 from gbarboza/sort_port_display
Sort PORTS order in docker ps output
2015-10-19 18:24:24 +02:00
Brian Goff
df15523745 Merge pull request #16854 from WeiZhang555/inte-test
use of checkers on `integration-cli/docker_cli_links_test.go` and `integration-cli/docker_cli_links_unix_test.go`
2015-10-19 12:10:31 -04:00
Brian Goff
d0b4e7a064 Merge pull request #16986 from clnperez/test-inspect-warn-fix
Fix TestInspectInt64 for kernels without swap limit capability
2015-10-19 11:54:28 -04:00
David Calavera
45dc57f229 Check the content type is json when calling exec start.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-19 11:46:44 -04:00
Garrett Barboza
c4c6d33bbc Change sorting method and add test to DisplayablePorts
Signed-off-by: Garrett Barboza <garrett@garrettbarboza.com>
2015-10-19 10:38:54 -05:00
Christy Perez
ae29bd435b Fix TestInspectInt64 for run scenarios that return warnings
Instead of returning only the container ID, starting a container may
also return a warning:

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

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

Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com>
2015-10-19 08:56:32 -05:00
Brian Goff
8005dbd748 Merge pull request #17127 from gesellix/docs-filters-query
docs: fix description of `filters` param for /volumes and /networks.
2015-10-19 09:49:37 -04:00
Lei Jitang
fbb01b8162 Make default tls host work
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-19 21:17:37 +08:00
Phil Estes
8eba018b61 Merge pull request #17155 from janten/meitner
Correct Lise Meitner's name, add Euler and Noether
2015-10-19 08:26:55 -04:00
Phil Estes
1f9557ac66 Merge pull request #17166 from echo33/docker_cli_diff_test
use of checkers on docker_cli_diff_test.go
2015-10-19 08:25:32 -04:00
Phil Estes
1c783567c0 Merge pull request #17167 from liaoqingwei/16756-docker_cli_inspect_experimental_test.go
Use of checkers on docker_cli_inspect_experimental_test.go
2015-10-19 08:21:17 -04:00
Shijiang Wei
2968fa44eb emit a "tag" event when building image with "-t" parameter
This is useful for cluster systems such as swarm to sync the image
state when new images are successfully built.

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-19 20:09:14 +08:00
liaoqingwei
f3b2b8700f Use of checkers on docker_cli_inspect_experimental_test.go.
Signed-off-by: liaoqingwei <liaoqingwei@huawei.com>
2015-10-19 19:44:04 +08:00
weiyan
a91a874f73 use of checkers on docker_cli_start_volume_driver_unix_test.go
Signed-off-by: weiyan <weiyan3@huawei.com>
2015-10-19 19:19:57 +08:00
weiyan
7be79767c1 use of checkers on docker_cli_diff_test.go
Signed-off-by: weiyan <weiyan3@huawei.com>
2015-10-19 19:07:59 +08:00
Antonio Murdaca
eaa1fc41c6 Merge pull request #16897 from sunyuan3/docker_cli_rm_test
use of checkers on docker_cli_rm_test.go
2015-10-19 09:14:23 +02:00
Vincent Demeester
cfdb954303 Merge pull request #17162 from echo33/docker_cli_exec_unix_test
use of checkers on docker_cli_exec_unix_test.go
2015-10-19 08:54:42 +02:00
weiyan
d65ac42ca8 use of checkers on docker_cli_exec_unix_test.go
Signed-off-by: weiyan <weiyan3@huawei.com>
2015-10-19 15:14:59 +08:00
Yuan Sun
0780ddc498 use of checkers on docker_cli_rm_test.go
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-10-19 10:42:56 +08:00
Jan-Gerd Tenberge
ab31d9500e Fix spelling error, add Noether and Euler
Signed-off-by: Jan-Gerd Tenberge <janten@gmail.com>
2015-10-19 01:14:39 +02:00
moxiegirl
bab701c143 Merge pull request #17157 from ripcurld00d/fedora_doc
Update fedora doc
2015-10-18 14:41:07 -07:00
ripcurld00d
6a64865991 Update fedora doc
`service` is deprecated from Fedora v21.
It's important to enable and start the `docker` daemon using `systemctl`.

Signed-off-by: Boaz Shuster <ripcurld.github@gmail.com>
2015-10-18 23:00:23 +03:00
Vincent Demeester
bece5b82a8 Merge pull request #17008 from liaoqingwei/dev1
Update testcases: use of checkers on docker_cli_nat_test.go
2015-10-18 18:11:02 +02:00
Harald Albers
c71c7f4b4f bash completion for docker cp supports copying both ways
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-18 08:24:02 -07:00
Steve Durrheimer
6447abfc35 Add zsh completion for 'docker network create -o --opt'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-18 15:09:59 +02:00
Harald Albers
5013a2fbd6 bash completion for new docker network create options
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-18 05:42:23 -07:00
liaoqingwei
26ae6d6b36 Use of checkers on docker_cli_nat_test.go.
Signed-off-by: liaoqingwei <liaoqingwei@huawei.com>
2015-10-18 20:02:55 +08:00
Harald Albers
2d44ed6d64 bash completion: support for dm.use_deferred_* options
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-18 04:42:17 -07:00
Sebastiaan van Stijn
6b1a643ac8 deb: add fish completions
This adds the Fish completions to the .deb package.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-17 23:28:11 -07:00
Sebastiaan van Stijn
fb372e66bb RPM change install location of Fish completions
External completions for fish should be installed
in /usr/local/share/fish/vendor_completions.d to
not conflict with built-in completions.

for reference, see:
https://github.com/fish-shell/fish-shell/issues/1485

fixes #16668

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-17 22:58:09 -07:00
moxiegirl
ef49d127e3 Merge pull request #17141 from thaJeztah/fix-17140-storage-driver-formatting
docs: fix storage driver options list
2015-10-17 19:33:40 -07:00
Sebastiaan van Stijn
8f36ded5b1 docs: fix storage driver options list
This fixes the indentation of the storage driver
options list.

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

Fixes #17140

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-17 19:17:07 -07:00
Zhang Wei
97b9223a1f use of checkers on Integration test
Part of #16756

Use c.Assert instead of condition judgement.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-10-18 09:00:08 +08:00
Vincent Batts
2726434f72 Merge pull request #16960 from pydima/9283_consider_hard_links_in_image_size
Consider hardlinks in image size.
2015-10-17 14:22:33 -04:00
Sebastiaan van Stijn
cffd50752c Merge pull request #17056 from vdemeester/16756-integration-cli-checkers-api-build
Vendoring new go-check checkers and use checker for docker_api_build_test.go
2015-10-17 08:50:51 -07:00
Harald Albers
504d2a9212 Bash completion for restart policy unless-stopped
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-17 07:24:17 -07:00
Vincent Demeester
253f975fdb Use checker assert for docker_api_build_test.go
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-17 14:28:13 +02:00
Vincent Demeester
9685b4767f Vendoring shakers library and update go-check
The shakers library defines a bunch of go-check checkers to ease
writing tests.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-17 14:28:08 +02:00
Tobias Gesellchen
0c95eeb584 rename POST /volumes to POST /volumes/create to be consistent with the other POST /.../create endpoints
see #17132

Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-10-17 14:13:40 +02:00
Brian Goff
9b1fb0d45b Merge pull request #16871 from ZJU-SEL/fix_version_test
update docker_cli_version_test.go
2015-10-17 08:02:18 -04:00
Dmitry Vorobev
4102537cfd Fixes #9283. Consider hardlinks in image size.
Based on #8984. This patch fixes behavior when image size calculation
didn't consider hardlinks.

Signed-off-by: Dmitry Vorobev <dimahabr@gmail.com>
2015-10-17 12:24:05 +02:00
Antonio Murdaca
ab1f03397e Merge pull request #17119 from vdemeester/17117-deprecate-c-cli-opts
Deprecate -c cli short variant flag in docker cli build & create
2015-10-17 10:22:46 +02:00
Sebastiaan van Stijn
e3fabf3ea1 Merge pull request #16831 from jfrazelle/release-updates
Release updates
2015-10-16 16:57:10 -07:00
David Calavera
c3f42b29a8 Merge pull request #17113 from mountkin/validate-filter
make sure the value of the dangling filter is correct
2015-10-16 16:32:11 -07:00
Derek McGowan
f8ea4ad16d Increase ping timeout
Ensure v2 registries are given more than 5 seconds to return a ping and avoid an unnecessary fallback to v1.
Elevates log level about failed v2 ping to a warning to match the warning related to using v1 registries.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-10-16 15:34:35 -07:00
Tobias Gesellchen
3e064371e7 docs: fix description of filters param for /volumes and /networks.
fixes #17091

Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2015-10-17 00:24:40 +02:00
Tibor Vass
365a0db0f0 Merge pull request #17046 from mavenugo/dopts
driver-opts for network create
2015-10-16 15:23:59 -07:00
David Calavera
ec7c368ff0 Merge pull request #16901 from WeiZhang555/rmi-inte
Update integration test `integration-cli/docker_cli_rmi_test.go` with Assert
2015-10-16 15:23:00 -07:00
Vincent Demeester
d8b4471a59 Merge pull request #16977 from mountkin/refactor-test
refactor integration test to use checkers
2015-10-17 00:22:03 +02:00
Antonio Murdaca
4fc97e40c9 Merge pull request #16950 from cpuguy83/support_ipv6_in_host_parser
Allow API to bind to ipv6 addresses
2015-10-17 00:20:49 +02:00
David Calavera
8c1fa7f320 Merge pull request #16994 from Microsoft/10662-copied
Windows: Fix annoying bad log
2015-10-16 15:14:08 -07:00
David Calavera
475be776b8 Merge pull request #17051 from thaJeztah/fix-volume-readonly-doc
remove incorrect "readonly" example
2015-10-16 15:11:48 -07:00
Vincent Demeester
d1064bd441 Deprecate -c cli short variant flag in docker cli
- build
- create

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-10-17 00:05:34 +02:00
David Calavera
258357857b Merge pull request #17065 from ZJaffee/api-exec-resize-test
cleaned up integration-cli/docker_api_exec_resize_test.go
2015-10-16 14:59:06 -07:00
David Calavera
3668be932e Merge pull request #16574 from Djelibeybi/rpm-changelog
Generate a full RPM changelog from the existing CHANGELOG.md file
2015-10-16 14:55:39 -07:00
Madhu Venugopal
6f3eb994b5 Pass network driver option in docker network command
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-16 14:33:54 -07:00
Madhu Venugopal
cf1b5fe601 Vendoring libnetwork to Replace the label variable to DriverOpts
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-16 14:30:57 -07:00
Tibor Vass
e23d834a01 Merge pull request #17106 from albers/completion-import
Add missing options to bash completion for `docker import`
2015-10-16 14:28:14 -07:00
Tibor Vass
b1bab9e1e7 Merge pull request #17107 from albers/completion-build
Add missing options to bash completion for `docker build`
2015-10-16 14:27:51 -07:00
Vincent Demeester
c56b02b284 Merge pull request #17081 from ZJaffee/api_network_test
Cleaned up integration-cli/docker_api_network_test.go
2015-10-16 23:14:17 +02:00
Vincent Demeester
8b90aefd14 Merge pull request #17121 from sdurrheimer/zsh-completion-fix-double-dash-option-arguments
Zsh : all --<option>= flag values may be given in the next argument
2015-10-16 23:13:25 +02:00
Brian Goff
84be89a273 Merge pull request #16969 from zhangjianfnst/16756-improve-integration-cli
Use c.Assert in integration-cli/docker_cli_logs_test.go
2015-10-16 16:55:44 -04:00
Steve Durrheimer
b34aa69e8f Zsh completion : all --<option>= flag values may be given in the next argument
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-16 21:18:27 +02:00
Sebastiaan van Stijn
ccf5b60c6f Merge pull request #17098 from sdurrheimer/zsh-completion-import-message
Add zsh completion for 'docker import -m --message'
2015-10-16 11:36:46 -07:00
Tibor Vass
b054a88af1 Merge pull request #17093 from endophage/update_notary_gotuf
updating notary and gotuf with latest bugfixes
2015-10-16 11:19:21 -07:00
Zachary Jaffee
7b6bca5af1 cleaned up integration-cli/docker_api_exec_resize_test.go
Signed-off-by: Zachary Jaffee <zij@case.edu>
2015-10-16 13:22:40 -04:00
Sebastiaan van Stijn
e2870bda43 Merge pull request #17085 from dnephin/add_digest_to_api_docs
Correct API docs for /images/create
2015-10-16 10:10:41 -07:00
Vincent Demeester
2afdab4454 Merge pull request #17100 from WeiZhang555/port-inte
update docker_cli_port_test.go with Assert
2015-10-16 19:06:14 +02:00
David Lawrence
7ce9f02751 updating notary and gotuf with latest bugfixes
Signed-off-by: David Lawrence <david.lawrence@docker.com>
2015-10-16 09:33:26 -07:00
David Calavera
841205ec01 Merge pull request #17062 from coolljt0725/fix_cancel
Fix cancel build doesn't remove the intermediate container
2015-10-16 09:06:09 -07:00
Brian Goff
08a43b8b3b Merge pull request #17101 from sdurrheimer/zsh-completion-deprecate-run-dash-c-option
Deprecate 'docker run -c' option in zsh completion
2015-10-16 11:40:02 -04:00
Brian Goff
30b945fac9 Merge pull request #17099 from sdurrheimer/zsh-completion-restart-unless-stopped
Add zsh completion for 'unless-stopped' restart policy
2015-10-16 11:37:27 -04:00
Vincent Demeester
71982d8e57 Merge pull request #17105 from liaoqingwei/dev3
Use of checkers on docker_cli_pause_test.go.
2015-10-16 17:36:56 +02:00
David Calavera
579cf43f0f Merge pull request #17102 from sdurrheimer/zsh-completion-build-build-arg
Add zsh completion for 'docker build --build-arg'
2015-10-16 08:34:12 -07:00
David Calavera
f9026e2b7b Merge pull request #17078 from kevinkucharczyk/api_version_test
Clean up integration-cli/docker_api_version_test.go
2015-10-16 08:26:53 -07:00
Zhang Wei
1ae4eeb813 update docker_cli_port_test.go with Assert
Part of #16756

Use c.Assert instead of condition judgement

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-10-16 22:58:51 +08:00
Shijiang Wei
98c1a412b4 make sure the value of the dangling filter is correct
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-16 22:09:32 +08:00
Brian Goff
835fbee9a2 Merge pull request #17053 from liaoqingwei/dev2
use of checkers on docker_cli_network_unix_test.go
2015-10-16 09:36:59 -04:00
Brian Goff
60b5b0d380 Merge pull request #17112 from moxiegirl/fix-16961-tic
Removing extra tic
2015-10-16 09:10:12 -04:00
Mary Anthony
ee30af5ffb bad d
Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-16 06:09:03 -07:00
Mary Anthony
e44876bf1f Removing extra tic
Signed-off-by: Mary Anthony <mary@docker.com>
2015-10-16 06:07:52 -07:00
liaoqingwei
851a533a82 Use of checkers on docker_cli_pause_test.go.
Signed-off-by: liaoqingwei <liaoqingwei@huawei.com>
2015-10-16 21:07:02 +08:00
Harald Albers
b0315375f8 Add missing options to bash completion for docker import
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-16 12:42:12 +02:00
Harald Albers
3a713d91ce bash completion: minor refactoring for consistency
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-16 12:41:09 +02:00
Harald Albers
28c66b0491 Add missing options to bash completion for docker build
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-16 12:40:55 +02:00
Antonio Murdaca
dee57e4c3e Merge pull request #17087 from LK4D4/speedup_ps
Speedup container list
2015-10-16 12:35:28 +02:00
Lei Jitang
9392de9dfe Fix cancel build doesn't remove the intermediate container
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-16 05:18:10 -04:00
liaoqingwei
9e3db08363 Use of checkers on docker_cli_network_unix_test.go.
Signed-off-by: liaoqingwei <liaoqingwei@huawei.com>
2015-10-16 16:56:40 +08:00
Steve Durrheimer
96a09ea77c Add zsh completion for 'docker import -m --message'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-16 10:14:42 +02:00
Steve Durrheimer
89e0990224 Add zsh completion for 'docker build --build-arg'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-16 08:48:12 +02:00
Steve Durrheimer
c37c9df18a Deprecate 'docker run -c' option in zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-16 08:37:16 +02:00
Steve Durrheimer
cb2bd8bcec Add zsh completion for 'unless-stopped' restart policy
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-16 08:30:56 +02:00
Kevin P. Kucharczyk
6f1b5946b1 Clean up integration-cli/docker_api_version_test.go
Signed-off-by: Kevin P. Kucharczyk <kevinkucharczyk@gmail.com>
2015-10-16 07:03:39 +02:00
Alexander Morozov
f256d8ad2d Speedup container list
Remove all unneeded disk operations (reload TagStore, umarshal image)
for checking if image still points to same ID. Now slowest part is
queries to sqlite which hopefuly will be removed soon.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-10-15 20:41:35 -07:00
Vincent Batts
d35a1f2868 Merge pull request #16932 from c0b/fix-race-16924
Fix race #16924 [panic: runtime error: slice bounds out of range] docker daemon crash of racing
2015-10-15 18:05:05 -05:00
GabrielNicolasAvellaneda
3c1db88290 MINOR typo fix.
Signed-off-by: GabrielNicolasAvellaneda <avellaneda.gabriel@gmail.com>
2015-10-15 19:54:35 -03:00
Vincent Demeester
1052ff674c Merge pull request #17073 from ZJaffee/api_events_test
Cleaned up integration-cli/docker_api_events_test.go
2015-10-16 00:22:29 +02:00
Vincent Demeester
58b36ba242 Merge pull request #17080 from ZJaffee/api_logs_test
Cleaned up integration-cli/docker_api_logs_test.go
2015-10-16 00:21:30 +02:00
David Calavera
e1804098b9 Merge pull request #16997 from Microsoft/10662-kill-parttwo
Windows: [TP4] docker kill handling part two
2015-10-15 14:42:19 -07:00
Jess Frazelle
ebfed4d474 Merge pull request #17082 from sdurrheimer/zsh-completion-remove-network-ls-old-options
Remove 'docker network ls -n -l --latest' options from in zsh completion
2015-10-15 13:48:39 -07:00
Jess Frazelle
ff4026fa5b Merge pull request #17084 from sdurrheimer/zsh-completion-network-ipam
Add zsh completion for '--ipam-driver --subnet --ip-range --gateway -…
2015-10-15 13:48:19 -07:00
Daniel Nephin
2ec4404ba0 Correct API docs for /images/create
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2015-10-15 16:00:05 -04:00
Steve Durrheimer
a00c0d795d Add zsh completion for '--ipam-driver --subnet --ip-range --gateway --aux-address' for 'docker network create'
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-15 21:40:50 +02:00
Steve Durrheimer
080a906aac Remove '-n -l --latest' options from 'docker network ls' in zsh completion
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-10-15 21:12:31 +02:00
David Calavera
f255155f6b Merge pull request #17057 from mavenugo/nls
Added `network` to docker --help and help cleanup
2015-10-15 11:00:43 -07:00
Zachary Jaffee
7345050e4d Cleaned up integration-cli/docker_api_network_test.go
Signed-off-by: Zachary Jaffee <zij@case.edu>
2015-10-15 13:37:54 -04:00
Zachary Jaffee
7aab43e8d4 Cleaned up integration-cli/docker_api_logs_test.go
Signed-off-by: Zachary Jaffee <zij@case.edu>
2015-10-15 13:33:31 -04:00
Tianon Gravi
add0d25029 Merge pull request #17054 from hqhq/hq_use_go1.4.3
Bump Go to 1.4.3 for builder
2015-10-15 10:13:23 -07:00
Zachary Jaffee
176d8c5a14 Cleaned up integration-cli/docker_api_events_test.go
Signed-off-by: Zachary Jaffee <zij@case.edu>
2015-10-15 12:40:36 -04:00
Arnaud Porterie
9216b08536 Merge pull request #16998 from vieux/engine_version
only display 'Engine Version' when it's not empty
2015-10-15 08:43:32 -07:00
Aidan Hobson Sayers
ac9c0f81df Remove references to the docker-ut image
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-10-15 15:02:26 +01:00
Vincent Demeester
0f00c36d65 Merge pull request #17004 from echo33/docker_cli_restart_test
use of checkers on docker_cli_restart_test.go
2015-10-15 13:31:05 +02:00
Doug Davis
32ead68e9f Merge pull request #16966 from MHBauer/image-refactor
refactor use of container struct from daemon
2015-10-15 07:30:08 -04:00
Madhu Venugopal
46f7ab3585 Added network to docker --help and help cleanup
Fixes https://github.com/docker/docker/issues/16909

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-10-15 03:10:39 -07:00
weiyan
196af472a6 use of checkers on docker_cli_restart_test.go
Signed-off-by: weiyan <weiyan3@huawei.com>
2015-10-15 16:35:03 +08:00
Vincent Demeester
e4dadeed88 Merge pull request #17011 from sunyuan3/TestRunWithBlkioInvalidWeight
update TestRunWithBlkioInvalidWeight
2015-10-15 08:34:52 +02:00
Qiang Huang
42d643af55 Bump Go to 1.4.3 for builder
We already bumped this for Dockerfile, should keep build environment
consistent with that.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2015-10-15 14:02:18 +08:00
Jian Zhang
946e8cde53 Use c.Assert in integration-cli/docker_cli_logs_test.go
Signed-off-by: Jian Zhang <zhangjian.fnst@cn.fujitsu.com>
2015-10-15 10:53:19 +08:00
Sebastiaan van Stijn
244d9c3370 remove incorrect "readonly" example
The :ro option can only be used for named and bind-mounted
volumes, not on "regular" (unnamed) volumes as explained in
https://github.com/docker/docker/pull/16013#issuecomment-146647216

The example in the documentation actually resulted in a
bind-mounted volume, mounted at "ro" inside the container.

This removes the incorrect example from the documentation.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2015-10-14 17:56:38 -07:00
Victor Vieux
17b0017cd0 use Server Version
Signed-off-by: Victor Vieux <vieux@docker.com>
2015-10-14 17:46:59 -07:00
moxiegirl
919c3c1ec8 Merge pull request #17024 from sallyom/man-run-clarify
add clarity to -p option
2015-10-14 14:12:25 -07:00
Brian Goff
84488e228a Merge pull request #17030 from calavera/remove_var_check
Remove defensive check of mux vars handling.
2015-10-14 16:36:50 -04:00
Jess Frazelle
b22f89cb77 Merge pull request #16221 from flavio/get-docker-update-suse-installation
Update SUSE/openSUSE installation script
2015-10-14 13:02:45 -07:00
Sally O'Malley
37c6c53b56 add clarity to -p option
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-10-14 15:18:04 -04:00
Flavio Castelli
400ac8a66c Update SUSE/openSUSE installation script
Fix installation on SUSE Linux Enterprise machine, the updated Docker RPMs have
been moved to a different location.

Update both openSUSE and SUSE Linux Enterprise scripts to allow the
installation of experimental builds.

Signed-off-by: Flavio Castelli <fcastelli@suse.com>
2015-10-14 20:55:28 +02:00
Sebastiaan van Stijn
2b4128e904 Merge pull request #16617 from zhangjianfnst/15869-improve-commandline-doc
Improve the way we deliver Examples in command line.
2015-10-14 11:05:27 -07:00
Brian Goff
adb37a1b39 Merge pull request #17025 from albers/completion-inspect-size
[Fix #15796] Add bash completion for `docker inspect --size`
2015-10-14 13:48:43 -04:00
David Calavera
389ce0aae6 Remove defensive check of mux vars handling.
We should not check if the mux framework internals work as expected in every handler.
The missing parameter error doesn't make sense from the user point of view.

This change initializes a proper vars context if the mux fails to do so and delegates
specific parameter error checks to the handlers.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-10-14 10:31:09 -07:00
Vincent Demeester
aaa8cae345 Merge pull request #16968 from MHBauer/network-refactor
refactor use of container struct from daemon
2015-10-14 17:48:08 +02:00
Harald Albers
29714ee836 Add bash completion for docker inspect --size
Signed-off-by: Harald Albers <github@albersweb.de>
2015-10-14 17:34:56 +02:00
Burke Libbey
fd955ce6ca Better error when --host=ipc but no /dev/mqueue
Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-10-14 10:52:16 -04:00
Burke Libbey
ab7923558d Revert "Fix --ipc=host dependency on /dev/mqueue existing"
This reverts commit f624d6187a.

Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-10-14 10:52:04 -04:00
Brian Goff
d60883eb10 Merge pull request #17006 from echo33/docker_cli_v2_only
use of checkers on docker_cli_v2_only.go
2015-10-14 10:27:37 -04:00
Victor Vieux
ddf04ad113 only display 'Engine Version' when it's not empty
Signed-off-by: Victor Vieux <vieux@docker.com>
2015-10-14 06:45:11 -07:00
weiyan
899ca94ce8 use of checkers on docker_cli_v2_only.go
Signed-off-by: weiyan <weiyan3@huawei.com>
2015-10-14 20:10:34 +08:00
Yuan Sun
d550fbb80e update TestRunWithBlkioInvalidWeight
Signed-off-by: Yuan Sun <sunyuan3@huawei.com>
2015-10-14 16:20:52 +08:00
Jian Zhang
cc653b5d61 Improve the way we deliver Examples in command line. (Add descriptive titles)
Signed-off-by: Jian Zhang <zhangjian.fnst@cn.fujitsu.com>
2015-10-14 11:04:51 +08:00
Tibor Vass
7a19164c17 Merge pull request #16995 from jfrazelle/lxc-i-loathe-you
Fix lxc
2015-10-13 19:00:24 -07:00
Jess Frazelle
22a0b0a4f9 Merge pull request #16999 from tiborvass/bump_apiversion_to_v1.22
Bump API Version to v1.22
2015-10-13 18:59:09 -07:00
Tibor Vass
22a0ea5550 Bump API Version to v1.22
Signed-off-by: Tibor Vass <tibor@docker.com>
2015-10-13 17:27:33 -07:00
Morgan Bauer
a0398fbd19 refactor use of container struct from daemon
- do existence check instead of get container
 - new connect method on daemon.
 - cli network disconnect integration test

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-13 16:34:28 -07:00
John Howard
bc503ca8ab Windows: [TP4] docker kill handling
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-13 16:04:49 -07:00
Derek Ch
b48f4bf523 fix a race crash when building with "ADD some-broken.tar.xz ..."
The race is between pools.Put which calls buf.Reset and exec.Cmd
doing io.Copy from the buffer; it caused a runtime crash, as
described in #16924:

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

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

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

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

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

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

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

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

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

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

Signed-off-by: Derek Ch <denc716@gmail.com>
2015-10-13 15:58:06 -07:00
Jessica Frazelle
28ad7c588f update tests
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-13 15:52:14 -07:00
John Howard
69949df242 Windows: Fix annoying bad log
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-10-13 15:03:20 -07:00
Antonio Murdaca
cfcddefacd daemon: execdriver: lxc: fix cgroup paths
When running LXC dind (outer docker is started with native driver)
cgroup paths point to `/docker/CID` inside `/proc/self/mountinfo` but
these paths aren't mounted (root is wrong). This fix just discard the
cgroup dir from mountinfo and set it to root `/`.
This patch fixes/skip OOM LXC tests that were failing.
Fix #16520

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

Signed-off-by: Antonio Murdaca <runcom@linux.com>
2015-10-13 14:46:59 -07:00
Burke Libbey
f624d6187a Fix --ipc=host dependency on /dev/mqueue existing
Since #15862, containers fail to start when started with --ipc=host if
/dev/mqueue is not present. This change causes docker to create
container-local mounts for --ipc=host containers as well as in the
default case.

Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-10-13 17:46:55 -04:00
Shijiang Wei
a1d4b7dd0d refactor integration test to use checkers
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-13 20:21:38 +08:00
Tonis Tiigi
ef05b83417 Copy aufs hardlinks to top layer
Show warning if old method is used.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-10-12 20:44:32 -07:00
Morgan Bauer
844fb29619 refactor use of container struct from daemon
- use Exists instead of Get
 - push Get inside of daemonbuilder

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
2015-10-12 16:20:55 -07:00
Brian Goff
a82e3bc704 Allow API to bind to ipv6 addresses
Use `net.SplitHostPort` which supports ipv6 rather than relying on
splitting on `:`

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-10-12 13:55:27 -04:00
Mageee
d4d0718ebf update docker_cli_version_test.go
fix spelling mistake again

Signed-off-by: Mageee <fangpuyi@foxmail.com>
2015-10-12 15:13:31 +08:00
Xiaoxu Chen
a9c7c48cca update integration-cli/docker_cli_netmode_test.go
part of #16756

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

refactor integration-cli/docker_cli_netmode_test.go use Assert statement
part of #16756

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

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

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

update docker_cli_netmode_test.go
part of #16756

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

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

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

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

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

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

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

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

Signed-off-by: Xiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>
2015-10-12 13:34:43 +08:00
Shijiang Wei
13364cd431 fix the flaws in the test of the attach API
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-10-11 23:40:16 +08:00
Zhang Wei
c6b02ad73b Update integration test with Assert
Part of #16756

Update integration-cli/docker_cli_rmi_test.go:
Use Assert instead of condition judgement in test.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-10-11 10:56:02 +08:00
Lorenz Leutgeb
2bd2893b92 docs: Explain volume_name in POST /container Binds
Signed-off-by: Lorenz Leutgeb <lorenz.leutgeb@gmail.com>
2015-10-09 11:32:11 +02:00
Lei Jitang
458ec418cd Add more cgroup config to docker info
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-10-09 03:02:04 -04:00
Jessica Frazelle
96559aaef2 add clean apt db to release script
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-08 09:21:20 -07:00
Jessica Frazelle
0aee0b1f9e add script to generate index listing for the repo if say hosted on s3
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-08 09:21:16 -07:00
Aidan Hobson Sayers
f9a1c8fc64 Update ambassador image, use the socat -t option
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2015-10-06 13:42:06 +01:00
Mrunal Patel
4911b58862 Skip /dev setup in container when it is bind mounted in
We need to set the device array to nil to skip /dev setup in runc/libcontainer.
See c9d5850629

Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
2015-09-28 18:28:16 -04:00
Dan Levy
9728269424 Try me now, no linuxmint mentions needed
Signed-off-by: Dan Levy <dan@danlevy.net>
2015-09-25 19:07:59 -06:00
Avi Miller
1374ebcde0 Generate a full RPM changelog from the existing CHANGELOG.md file
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2015-09-25 17:25:00 +10:00
2313 changed files with 193033 additions and 97354 deletions

View File

@@ -1,2 +1,3 @@
bundles
.gopath
vendor/pkg

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)**

13
.gitignore vendored
View File

@@ -4,24 +4,14 @@
*.exe
*.exe~
*.orig
*.rej
*.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
docs/AWS_S3_BUCKET
docs/GITCOMMIT
docs/GIT_BRANCH
@@ -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,12 +2,396 @@
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.9.1
## 1.11.0 (2016-04-13)
## Runtime
**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)
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)
+ Add `--device-read-iops` and `--device-write-iops` flags to `docker run` [#15879](https://github.com/docker/docker/pull/15879)
+ Add `--oom-score-adj` flag to `docker run` [#16277](https://github.com/docker/docker/pull/16277)
+ Add `--detach-keys` flag to `attach`, `run`, `start` and `exec` commands to override the default key sequence that detaches from a container [#15666](https://github.com/docker/docker/pull/15666)
+ Add `--shm-size` flag to `run`, `create` and `build` to set the size of `/dev/shm` [#16168](https://github.com/docker/docker/pull/16168)
+ Show the number of running, stopped, and paused containers in `docker info` [#19249](https://github.com/docker/docker/pull/19249)
+ Show the `OSType` and `Architecture` in `docker info` [#17478](https://github.com/docker/docker/pull/17478)
+ Add `--cgroup-parent` flag on `daemon` to set cgroup parent for all containers [#19062](https://github.com/docker/docker/pull/19062)
+ Add `-L` flag to docker cp to follow symlinks [#16613](https://github.com/docker/docker/pull/16613)
+ New `status=dead` filter for `docker ps` [#17908](https://github.com/docker/docker/pull/17908)
* Change `docker run` exit codes to distinguish between runtime and application errors [#14012](https://github.com/docker/docker/pull/14012)
* Enhance `docker events --since` and `--until` to support nanoseconds and timezones [#17495](https://github.com/docker/docker/pull/17495)
* Add `--all`/`-a` flag to `stats` to include both running and stopped containers [#16742](https://github.com/docker/docker/pull/16742)
* Change the default cgroup-driver to `cgroupfs` [#17704](https://github.com/docker/docker/pull/17704)
* Emit a "tag" event when tagging an image with `build -t` [#17115](https://github.com/docker/docker/pull/17115)
* Best effort for linked containers' start order when starting the daemon [#18208](https://github.com/docker/docker/pull/18208)
* Add ability to add multiple tags on `build` [#15780](https://github.com/docker/docker/pull/15780)
* 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 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 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)
### Security
+ Add `--userns-remap` flag to `daemon` to support user namespaces (previously in experimental) [#19187](https://github.com/docker/docker/pull/19187)
+ 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.
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.
`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)
- Fix issue where docker could hang indefinitely waiting for a nonexistent process to pull an image [#19743](https://github.com/docker/docker/pull/19743)
### Networking
+ Use DNS-based discovery instead of `/etc/hosts` [#19198](https://github.com/docker/docker/pull/19198)
+ Support for network-scoped alias using `--net-alias` on `run` and `--alias` on `network connect` [#19242](https://github.com/docker/docker/pull/19242)
+ Add `--ip` and `--ip6` on `run` and `network connect` to support custom IP addresses for a container in a network [#19001](https://github.com/docker/docker/pull/19001)
+ Add `--ipam-opt` to `network create` for passing custom IPAM options [#17316](https://github.com/docker/docker/pull/17316)
+ Add `--internal` flag to `network create` to restrict external access to and from the network [#19276](https://github.com/docker/docker/pull/19276)
+ Add `kv.path` option to `--cluster-store-opt` [#19167](https://github.com/docker/docker/pull/19167)
+ Add `discovery.heartbeat` and `discovery.ttl` options to `--cluster-store-opt` to configure discovery TTL and heartbeat timer [#18204](https://github.com/docker/docker/pull/18204)
+ Add `--format` flag to `network inspect` [#17481](https://github.com/docker/docker/pull/17481)
+ Add `--link` to `network connect` to provide a container-local alias [#19229](https://github.com/docker/docker/pull/19229)
+ Support for Capability exchange with remote IPAM plugins [#18775](https://github.com/docker/docker/pull/18775)
+ Add `--force` to `network disconnect` to force container to be disconnected from network [#19317](https://github.com/docker/docker/pull/19317)
* Support for multi-host networking using built-in overlay driver for all engine supported kernels: 3.10+ [#18775](https://github.com/docker/docker/pull/18775)
* `--link` is now supported on `docker run` for containers in user-defined network [#19229](https://github.com/docker/docker/pull/19229)
* Enhance `docker network rm` to allow removing multiple networks [#17489](https://github.com/docker/docker/pull/17489)
* Include container names in `network inspect` [#17615](https://github.com/docker/docker/pull/17615)
* Include auto-generated subnets for user-defined networks in `network inspect` [#17316](https://github.com/docker/docker/pull/17316)
* Add `--filter` flag to `network ls` to hide predefined networks [#17782](https://github.com/docker/docker/pull/17782)
* Add support for network connect/disconnect to stopped containers [#18906](https://github.com/docker/docker/pull/18906)
* Add network ID to container inspect [#19323](https://github.com/docker/docker/pull/19323)
- Fix MTU issue where Docker would not start with two or more default routes [#18108](https://github.com/docker/docker/pull/18108)
- Fix duplicate IP address for containers [#18106](https://github.com/docker/docker/pull/18106)
- Fix issue preventing sometimes docker from creating the bridge network [#19338](https://github.com/docker/docker/pull/19338)
- Do not substitute 127.0.0.1 name server when using `--net=host` [#19573](https://github.com/docker/docker/pull/19573)
### Logging
+ New logging driver for Splunk [#16488](https://github.com/docker/docker/pull/16488)
+ Add support for syslog over TCP+TLS [#18998](https://github.com/docker/docker/pull/18998)
* Enhance `docker logs --since` and `--until` to support nanoseconds and time [#17495](https://github.com/docker/docker/pull/17495)
* Enhance AWS logs to auto-detect region [#16640](https://github.com/docker/docker/pull/16640)
### 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
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
+ Add support for `**` in `.dockerignore` to wildcard multiple levels of directories [#17090](https://github.com/docker/docker/pull/17090)
- Fix handling of UTF-8 characters in Dockerfiles [#17055](https://github.com/docker/docker/pull/17055)
- Fix permissions problem when reading from STDIN [#19283](https://github.com/docker/docker/pull/19283)
### Client
+ Add support for overriding the API version to use via an `DOCKER_API_VERSION` environment-variable [#15964](https://github.com/docker/docker/pull/15964)
- Fix a bug preventing Windows clients to log in to Docker Hub [#19891](https://github.com/docker/docker/pull/19891)
### Misc
* systemd: Set TasksMax in addition to LimitNPROC in systemd service file [#19391](https://github.com/docker/docker/pull/19391)
### Deprecations
* Remove LXC support. The LXC driver was deprecated in Docker 1.8, and has now been removed [#17700](https://github.com/docker/docker/pull/17700)
* Remove `--exec-driver` daemon flag, because it is no longer in use [#17700](https://github.com/docker/docker/pull/17700)
* Remove old deprecated single-dashed long CLI flags (such as `-rm`; use `--rm` instead) [#17724](https://github.com/docker/docker/pull/17724)
* Deprecate HostConfig at API container start [#17799](https://github.com/docker/docker/pull/17799)
* Deprecate docker packages for newly EOL'd Linux distributions: Fedora 21 and Ubuntu 15.04 (Vivid) [#18794](https://github.com/docker/docker/pull/18794), [#18809](https://github.com/docker/docker/pull/18809)
* Deprecate `-f` flag for docker tag [#18350](https://github.com/docker/docker/pull/18350)
## 1.9.1 (2015-11-21)
### Runtime
- Do not prevent daemon from booting if images could not be restored (#17695)
- Force IPC mount to unmount on daemon shutdown/init (#17539)
@@ -21,17 +405,17 @@ be found.
- selinux: only relabel if user requested so with the `z` option (#17450, #17834)
- Do not make network calls when normalizing names (#18014)
## Client
### Client
- Fix `docker login` on windows (#17738)
- Fix bug with `docker inspect` output when not connected to daemon (#17715)
- Fix `docker inspect -f {{.HostConfig.Dns}} somecontainer` (#17680)
## Builder
### Builder
- Fix regression with symlink behavior in ADD/COPY (#17710)
## Networking
### Networking
- Allow passing a network ID as an argument for `--net` (#17558)
- Fix connect to host and prevent disconnect from host for `host` network (#17476)
@@ -41,13 +425,13 @@ be found.
- Allow port-mapping only for endpoints created on docker run (#17858)
- Fixed an endpoint delete issue with a possible stale sbox (#18102)
## Distribution
### Distribution
- Correct parent chain in v2 push when v1Compatibility files on the disk are inconsistent (#18047)
## 1.9.0 (2015-11-03)
## Runtime
### Runtime
+ `docker stats` now returns block IO metrics (#15005)
+ `docker stats` now details network stats per interface (#15786)
@@ -77,11 +461,11 @@ with `ro` option (#14965)
- Fix an issue with incorrect template execution in `docker inspect` (#17284)
- DEPRECATE `-c` short flag variant for `--cpu-shares` in docker run (#16271)
## Client
### Client
+ Allow `docker import` to import from local files (#11907)
## Builder
### Builder
+ Add a `STOPSIGNAL` Dockerfile instruction allowing to set a different
stop-signal for the container process (#15307)
@@ -89,7 +473,7 @@ stop-signal for the container process (#15307)
that allows to add build-time environment variables (#15182)
- Improve cache miss performance (#16890)
## Storage
### Storage
- devicemapper: Implement deferred deletion capability (#16381)
@@ -111,7 +495,7 @@ that allows to add build-time environment variables (#15182)
Those are now specific to the `bridge` network. Use `NetworkSettings.Networks` to inspect
the networking settings of a container per network.
## Volumes
### Volumes
+ New top-level `volume` subcommand and API (#14242)
- Move API volume driver settings to host-specific config (#15798)
@@ -120,7 +504,7 @@ that allows to add build-time environment variables (#15182)
(#15507)
- DEPRECATE auto-creating missing host paths for bind mounts (#16349)
## Logging
### Logging
+ Add `awslogs` logging driver for Amazon CloudWatch (#15495)
+ Add generic `tag` log option to allow customizing container/image
@@ -128,7 +512,7 @@ information passed to driver (e.g. show container names) (#15384)
- Implement the `docker logs` endpoint for the journald driver (#13707)
- DEPRECATE driver-specific log tags (e.g. `syslog-tag`, etc.) (#15384)
## Distribution
### Distribution
+ `docker search` now works with partial names (#16509)
- Push optimization: avoid buffering to file (#15493)
@@ -141,7 +525,7 @@ by another client (#15489)
`DOCKER_CONTENT_TRUST_OFFLINE_PASSPHRASE` and
`DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE` (#16894)
## Security
### Security
+ Add SELinux profiles to the rpm package (#15832)
- Fix various issues with AppArmor profiles provided in the deb package
@@ -405,7 +789,7 @@ by another client (#15489)
+ Docker daemon has full IPv6 support
+ The `docker run` command can take the `--pid=host` flag to use the host PID namespace, which makes it possible for example to debug host processes using containerized debugging tools
+ The `docker run` command can take the `--read-only` flag to make the containers root filesystem mounted as readonly, which can be used in combination with volumes to force a containers processes to only write to locations that will be persisted
+ Container total memory usage can be limited for `docker run` using the `memory-swap` flag
+ Container total memory usage can be limited for `docker run` using the `--memory-swap` flag
* Major stability improvements for devicemapper storage driver
* Better integration with host system: containers will reflect changes to the host's `/etc/resolv.conf` file when restarted
* Better integration with host system: per-container iptable rules are moved to the DOCKER chain
@@ -1302,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.
@@ -1636,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

@@ -2,7 +2,7 @@
Want to hack on Docker? Awesome! We have a contributor's guide that explains
[setting up a Docker development environment and the contribution
process](https://docs.docker.com/project/who-written-for/).
process](https://docs.docker.com/opensource/project/who-written-for/).
![Contributors guide](docs/static_files/contributors.png)
@@ -41,21 +41,22 @@ and will thank you for it!
Check that [our issue database](https://github.com/docker/docker/issues)
doesn't already include that problem or suggestion before submitting an issue.
If you find a match, add a quick "+1" or "I have this problem too." Doing this
helps prioritize the most common problems and requests. **DO NOT DO THAT** to
subscribe to the issue unless you have something meaningful to add to the
conversation. The best way to subscribe the issue is by clicking Subscribe
button in top right of the page.
If you find a match, you can use the "subscribe" button to get notified on
updates. Do *not* leave random "+1" or "I have this too" comments, as they
only clutter the discussion, and don't help resolving it. However, if you
have ways to reproduce the issue or have additional information that may help
resolving the issue, please leave a comment.
When reporting issues, please include your host OS (Ubuntu 12.04, Fedora 19,
etc). Please include:
When reporting issues, always include:
* The output of `uname -a`.
* The output of `docker version`.
* The output of `docker info`.
Please also include the steps required to reproduce the problem if possible and
Also include the steps required to reproduce the problem if possible and
applicable. This information will help us review and fix your issue faster.
When sending lengthy log-files, consider posting them as a gist (https://gist.github.com).
Don't forget to remove sensitive data from your logfiles before posting (you can
replace those parts with "REDACTED").
**Issue Report Template**:
@@ -111,7 +112,7 @@ anybody starts working on it.
We are always thrilled to receive pull requests. We do our best to process them
quickly. If your pull request is not accepted on the first try,
don't get discouraged! Our contributor's guide explains [the review process we
use for simple changes](https://docs.docker.com/project/make-a-contribution/).
use for simple changes](https://docs.docker.com/opensource/workflow/make-a-contribution/).
### Design and cleanup proposals
@@ -119,8 +120,8 @@ You can propose new designs for existing Docker features. You can also design
entirely new features. We really appreciate contributors who want to refactor or
otherwise cleanup our project. For information on making these types of
contributions, see [the advanced contribution
section](https://docs.docker.com/project/advanced-contributing/) in the
contributors guide.
section](https://docs.docker.com/opensource/workflow/advanced-contributing/) in
the contributors guide.
We try hard to keep Docker lean and focused. Docker can't do everything for
everybody. This means that we might decide against incorporating a new feature.
@@ -141,7 +142,7 @@ However, there might be a way to implement that feature *on top of* Docker.
IRC is a rich chat protocol but it can overwhelm new users. You can search
<a href="https://botbot.me/freenode/docker/#" target="_blank">our chat archives</a>.
</p>
Read our <a href="https://docs.docker.com/project/get-help/#irc-quickstart" target="_blank">IRC quickstart guide</a> for an easy way to get started.
Read our <a href="https://docs.docker.com/opensource/get-help/#irc-quickstart" target="_blank">IRC quickstart guide</a> for an easy way to get started.
</td>
</tr>
<tr>
@@ -151,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>
@@ -166,7 +169,7 @@ However, there might be a way to implement that feature *on top of* Docker.
<tr>
<td>Stack Overflow</td>
<td>
Stack Overflow has over 7000K Docker questions listed. We regularly
Stack Overflow has over 17000 Docker questions listed. We regularly
monitor <a href="https://stackoverflow.com/search?tab=newest&q=docker" target="_blank">Docker questions</a>
and so do many other knowledgeable Docker users.
</td>
@@ -186,14 +189,14 @@ Fork the repository and make changes on your fork in a feature branch:
Submit unit tests for your changes. Go has a great test framework built in; use
it! Take a look at existing tests for inspiration. [Run the full test
suite](https://docs.docker.com/project/test-and-docs/) on your branch before
suite](https://docs.docker.com/opensource/project/test-and-docs/) on your branch before
submitting a pull request.
Update the documentation when creating or modifying features. Test your
documentation changes for clarity, concision, and correctness, as well as a
clean documentation build. See our contributors guide for [our style
guide](https://docs.docker.com/project/doc-style) and instructions on [building
the documentation](https://docs.docker.com/project/test-and-docs/#build-and-test-the-documentation).
guide](https://docs.docker.com/opensource/doc-style) and instructions on [building
the documentation](https://docs.docker.com/opensource/project/test-and-docs/#build-and-test-the-documentation).
Write clean code. Universally formatted code promotes ease of writing, reading,
and maintenance. Always run `gofmt -s -w file.go` on each changed file before
@@ -227,7 +230,7 @@ high majority of submissions should have a single commit, so if in doubt: squash
down to one.
After every commit, [make sure the test suite passes]
(https://docs.docker.com/project/test-and-docs/). Include documentation
(https://docs.docker.com/opensource/project/test-and-docs/). Include documentation
changes in the same pull request so that a revert would remove all traces of
the feature or fix.
@@ -311,26 +314,15 @@ format right away, but please do adjust your processes for future contributions.
### How can I become a maintainer?
* Step 1: Learn the component inside out
* Step 2: Make yourself useful by contributing code, bug fixes, support etc.
* Step 3: Volunteer on the IRC channel (#docker at Freenode)
* Step 4: Propose yourself at a scheduled docker meeting in #docker-dev
The procedures for adding new maintainers are explained in the
global [MAINTAINERS](https://github.com/docker/opensource/blob/master/MAINTAINERS)
file in the [https://github.com/docker/opensource/](https://github.com/docker/opensource/)
repository.
Don't forget: being a maintainer is a time investment. Make sure you
will have time to make yourself available. You don't have to be a
maintainer to make a difference on the project!
### IRC meetings
There are two monthly meetings taking place on #docker-dev IRC to accommodate all
timezones. Anybody can propose a topic for discussion prior to the meeting.
If you feel the conversation is going off-topic, feel free to point it out.
For the exact dates and times, have a look at [the irc-minutes
repo](https://github.com/docker/irc-minutes). The minutes also contain all the
notes from previous meetings.
## Docker community guidelines
We want to keep the Docker community awesome, growing and collaborative. We need
@@ -355,6 +347,12 @@ guidelines for the community as a whole:
to an email you are potentially sending to a large number of people. Please
consider this before you update. Also remember that nobody likes spam.
* Don't send email to the maintainers: There's no need to send email to the
maintainers to ask them to investigate an issue or to take a look at a
pull request. Instead of sending an email, GitHub mentions should be
used to ping maintainers to review a pull request, a proposal or an
issue.
### Guideline violations — 3 strikes method
The point of this section is not to find opportunities to punish people, but we

View File

@@ -23,97 +23,127 @@
# the case. Therefore, you don't have to disable it anymore.
#
FROM ubuntu:14.04
MAINTAINER Tianon Gravi <admwiggin@gmail.com> (@tianon)
FROM debian:jessie
RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys E871F18B51E0147C77796AC81196BA81F6B0FC61
RUN echo deb http://ppa.launchpad.net/zfs-native/stable/ubuntu trusty main > /etc/apt/sources.list.d/zfs.list
# add zfs ppa
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 \
|| 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 \
createrepo \
curl \
dpkg-sig \
gcc-mingw-w64 \
git \
iptables \
jq \
libapparmor-dev \
libcap-dev \
libltdl-dev \
libsqlite3-dev \
libsystemd-journal-dev \
libtool \
mercurial \
parallel \
net-tools \
pkg-config \
python-dev \
python-mock \
python-pip \
python-websocket \
reprepro \
ruby1.9.1 \
ruby1.9.1-dev \
s3cmd=1.1.0* \
ubuntu-zfs \
xfsprogs \
libzfs-dev \
--no-install-recommends
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++
# Get lvm2 source for compiling statically
RUN git clone -b v2_02_103 https://git.fedorahosted.org/git/lvm2.git /usr/local/lvm2
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
# Compile and install lvm2
RUN cd /usr/local/lvm2 \
&& ./configure --enable-static_link \
&& ./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 lxc
ENV LXC_VERSION 1.1.2
RUN mkdir -p /usr/src/lxc \
&& curl -sSL https://linuxcontainers.org/downloads/lxc/lxc-${LXC_VERSION}.tar.gz | tar -v -C /usr/src/lxc/ -xz --strip-components=1
RUN cd /usr/src/lxc \
&& ./configure \
&& make \
&& make install \
&& ldconfig
# 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
ENV GO_VERSION 1.4.3
RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/local -xz \
&& mkdir -p /go/bin
# 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
# with a heads-up.
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
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
RUN cd /usr/local/go/src && ./make.bash --no-clean 2>&1
# Compile Go for cross compilation
ENV DOCKER_CROSSPLATFORMS \
linux/386 linux/arm \
darwin/amd64 darwin/386 \
darwin/amd64 \
freebsd/amd64 freebsd/386 freebsd/arm \
windows/amd64 windows/386
# (set an explicit GOARM of 5 for maximum compatibility)
ENV GOARM 5
RUN cd /usr/local/go/src \
&& set -x \
&& for platform in $DOCKER_CROSSPLATFORMS; do \
GOOS=${platform%/*} \
GOARCH=${platform##*/} \
./make.bash --no-clean 2>&1; \
done
# 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
# Update this sha when we upgrade to go 1.5.0
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
@@ -122,48 +152,48 @@ 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
# TODO replace FPM with some very minimal debhelper stuff
RUN gem install --no-rdoc --no-ri fpm --version 1.3.2
# Install registry
ENV REGISTRY_COMMIT 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_COMMIT 8e8122eb5528f621afcd4e2854c47302f17392f7
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_COMMIT") \
&& GOPATH="$GOPATH/src/github.com/docker/notary/Godeps/_workspace:$GOPATH" \
&& (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 47ab89ec2bd3bddf1221b856ffbaff333edeabb4
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
# 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'
@@ -173,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 selinux
ENV DOCKER_BUILDTAGS apparmor pkcs11 seccomp selinux
# Let us use a .bashrc file
RUN ln -sfv $PWD/.bashrc ~/.bashrc
@@ -182,18 +212,19 @@ RUN ln -sfv $PWD/.bashrc ~/.bashrc
RUN ln -sv $PWD/contrib/completion/bash/docker /etc/bash_completion.d/docker
# Get useful and necessary Hub images so we can "docker load" locally instead of pulling
COPY contrib/download-frozen-image.sh /go/src/github.com/docker/docker/contrib/
RUN ./contrib/download-frozen-image.sh /docker-frozen-images \
busybox:latest@8c2e06607696bd4afb3d03b687e361cc43cf8ec1a4a725bc96e39f05ba97dd55 \
hello-world:frozen@91c95931e552b11604fea91c2f537284149ec32fff0f700a4769cfd31d7696ae \
jess/unshare@5c9f6ea50341a2a8eb6677527f2bdedbf331ae894a41714fda770fb130f3314d
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:f968f10b4b523737e253a97eac59b0d1420b5c19b69928d35801a6373ffe330e \
hello-world:latest@sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
# 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 -b v1.0.3 https://github.com/cpuguy83/go-md2man.git "$GOPATH/src/github.com/cpuguy83/go-md2man" \
&& git clone -b v1.2 https://github.com/russross/blackfriday.git "$GOPATH/src/github.com/russross/blackfriday" \
&& 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"
@@ -208,12 +239,35 @@ RUN set -x \
&& rm -rf "$GOPATH"
# Build/install the tool for embedding resources in Windows binaries
ENV RSRC_COMMIT e48dbf1b7fc464a9e85fcec450dddf80816b76e0
ENV RSRC_COMMIT ba14da1f827188454a4591717fff29999010887f
RUN set -x \
&& git clone https://github.com/akavel/rsrc.git /go/src/github.com/akavel/rsrc \
&& cd /go/src/github.com/akavel/rsrc \
&& git checkout -q $RSRC_COMMIT \
&& go install -v
&& export GOPATH="$(mktemp -d)" \
&& 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

227
Dockerfile.armhf Normal file
View File

@@ -0,0 +1,227 @@
# This file describes the standard way to build Docker on ARMv7, using docker
#
# Usage:
#
# # Assemble the full dev environment. This is slow the first time.
# docker build -t docker -f Dockerfile.armhf .
#
# # 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 armhf/debian:jessie
# Packaged dependencies
RUN apt-get update && apt-get install -y \
apparmor \
aufs-tools \
automake \
bash-completion \
btrfs-tools \
build-essential \
createrepo \
curl \
dpkg-sig \
git \
iptables \
jq \
net-tools \
libapparmor-dev \
libcap-dev \
libltdl-dev \
libsqlite3-dev \
libsystemd-journal-dev \
libtool \
mercurial \
pkg-config \
python-dev \
python-mock \
python-pip \
python-websocket \
xfsprogs \
tar \
--no-install-recommends
# 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
# 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 Go
# 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
ENV PATH /go/bin:/usr/local/go/bin:$PATH
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
# we're building for armhf, which is ARMv7, so let's be explicit about that
ENV GOARCH arm
ENV GOARM 7
# 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
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
RUN git clone https://github.com/golang/tools.git /go/src/golang.org/x/tools \
&& (cd /go/src/golang.org/x/tools && git checkout -q $GO_TOOLS_COMMIT) \
&& go install -v golang.org/x/tools/cmd/cover \
&& go install -v golang.org/x/tools/cmd/vet
# Grab Go's lint tool
ENV GO_LINT_COMMIT 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: 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 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 cb08de17d74bef86ce6c5abe8b240e282f5750be
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.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 \
armhf/buildpack-deps:jessie@sha256:ca6cce8e5bf5c952129889b5cc15cd6aa8d995d77e55e3749bbaadae50e476cb \
armhf/busybox:latest@sha256:d98a7343ac750ffe387e3d514f8521ba69846c216778919b01414b8617cfb3d4 \
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)
# 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"
# Build/install the tool for embedding resources in Windows binaries
ENV RSRC_VERSION v2
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" \
&& 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
ENTRYPOINT ["hack/dind"]
# Upload docker source
COPY . /go/src/github.com/docker/docker

View File

@@ -6,7 +6,7 @@
# docker build -t docker -f Dockerfile.gccgo .
#
FROM gcc:5.2
FROM gcc:5.3
# Packaged dependencies
RUN apt-get update && apt-get install -y \
@@ -17,12 +17,15 @@ RUN apt-get update && apt-get install -y \
curl \
git \
iptables \
jq \
net-tools \
libapparmor-dev \
libcap-dev \
libsqlite3-dev \
mercurial \
net-tools \
parallel \
python-dev \
python-mock \
python-pip \
python-websocket \
@@ -39,20 +42,25 @@ RUN cd /usr/local/lvm2 \
&& make install_device-mapper
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# Install lxc
ENV LXC_VERSION 1.1.2
RUN mkdir -p /usr/src/lxc \
&& curl -sSL https://linuxcontainers.org/downloads/lxc/lxc-${LXC_VERSION}.tar.gz | tar -v -C /usr/src/lxc/ -xz --strip-components=1
RUN cd /usr/src/lxc \
&& ./configure \
&& make \
&& make install \
&& ldconfig
# 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" \
&& ( \
cd "$SECCOMP_PATH" \
&& git checkout "$SECCOMP_VERSION" \
&& ./autogen.sh \
&& ./configure --prefix=/usr \
&& make \
&& make install \
) \
&& rm -rf "$SECCOMP_PATH"
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
# Get the "docker-py" source so we can run their integration tests
ENV DOCKER_PY_COMMIT 139850f3f3b17357bab5ba3edfb745fb14043764
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
@@ -63,7 +71,29 @@ 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 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"]

227
Dockerfile.ppc64le Normal file
View File

@@ -0,0 +1,227 @@
# This file describes the standard way to build Docker on ppc64le, using docker
#
# Usage:
#
# # Assemble the full dev environment. This is slow the first time.
# docker build -t docker -f Dockerfile.ppc64le .
#
# # 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 ppc64le/gcc:5.3
# Packaged dependencies
RUN apt-get update && apt-get install -y \
apparmor \
aufs-tools \
automake \
bash-completion \
btrfs-tools \
build-essential \
createrepo \
curl \
dpkg-sig \
git \
iptables \
jq \
net-tools \
libapparmor-dev \
libcap-dev \
libltdl-dev \
libsqlite3-dev \
libsystemd-journal-dev \
libtool \
mercurial \
pkg-config \
python-dev \
python-mock \
python-pip \
python-websocket \
xfsprogs \
tar \
--no-install-recommends
# 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 ppc64le 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
# TODO install Go, using gccgo as GOROOT_BOOTSTRAP (Go 1.5+ supports ppc64le properly)
# possibly a ppc64le/golang image?
## 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
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
RUN git clone https://github.com/golang/tools.git /go/src/golang.org/x/tools \
&& (cd /go/src/golang.org/x/tools && git checkout -q $GO_TOOLS_COMMIT) \
&& go install -v golang.org/x/tools/cmd/cover \
&& go install -v golang.org/x/tools/cmd/vet
# Grab Go's lint tool
ENV GO_LINT_COMMIT 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 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 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
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 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 \
ppc64le/buildpack-deps:jessie@sha256:902bfe4ef1389f94d143d64516dd50a2de75bca2e66d4a44b1d73f63ddf05dda \
ppc64le/busybox:latest@sha256:38bb82085248d5a3c24bd7a5dc146f2f2c191e189da0441f1c2ca560e3fc6f1b \
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)
# 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"
# Build/install the tool for embedding resources in Windows binaries
ENV RSRC_VERSION v2
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" \
&& 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"]
# Upload docker source
COPY . /go/src/github.com/docker/docker

206
Dockerfile.s390x Normal file
View File

@@ -0,0 +1,206 @@
# This file describes the standard way to build Docker on s390x, using docker
#
# Usage:
#
# # Assemble the full dev environment. This is slow the first time.
# docker build -t docker -f Dockerfile.s390x .
#
# # 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 s390x/gcc:5.3
# Packaged dependencies
RUN apt-get update && apt-get install -y \
apparmor \
aufs-tools \
automake \
bash-completion \
btrfs-tools \
build-essential \
createrepo \
curl \
dpkg-sig \
git \
iptables \
jq \
net-tools \
libapparmor-dev \
libcap-dev \
libltdl-dev \
libsqlite3-dev \
libsystemd-journal-dev \
libtool \
mercurial \
pkg-config \
python-dev \
python-mock \
python-pip \
python-websocket \
xfsprogs \
tar \
--no-install-recommends
# 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 s390x 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
# Note: Go comes from the base image (gccgo, specifically)
# We can't compile Go proper because s390x isn't an officially supported architecture yet.
ENV PATH /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
# 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
RUN git clone https://github.com/golang/tools.git /go/src/golang.org/x/tools \
&& (cd /go/src/golang.org/x/tools && git checkout -q $GO_TOOLS_COMMIT) \
&& go install -v golang.org/x/tools/cmd/cover \
&& go install -v golang.org/x/tools/cmd/vet
# Grab Go's lint tool
ENV GO_LINT_COMMIT f42f5c1c440621302702cb0741e9d2ca547ae80f
RUN git clone https://github.com/golang/lint.git /go/src/github.com/golang/lint \
&& (cd /go/src/github.com/golang/lint && git checkout -q $GO_LINT_COMMIT) \
&& go install -v github.com/golang/lint/golint
# Install registry
ENV REGISTRY_COMMIT ec87e9b6971d831f0eff752ddb54fb64693e51cd
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 \
&& 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 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 \
s390x/buildpack-deps:jessie@sha256:4d1381224acaca6c4bfe3604de3af6972083a8558a99672cb6989c7541780099 \
s390x/busybox:latest@sha256:dd61522c983884a66ed72d60301925889028c6d2d5e0220a8fe1d9b4c6a4f01b \
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)
# 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"
# Build/install the tool for embedding resources in Windows binaries
ENV RSRC_VERSION v2
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" \
&& 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"]
# Upload docker source
COPY . /go/src/github.com/docker/docker

View File

@@ -27,9 +27,30 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
xz-utils \
\
aufs-tools \
lxc \
&& 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

@@ -176,7 +176,7 @@
END OF TERMS AND CONDITIONS
Copyright 2013-2015 Docker, Inc.
Copyright 2013-2016 Docker, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@@ -1,243 +1,16 @@
# Docker maintainers file
#
# This file describes who runs the Docker project and how.
# This is a living document - if you see something out of date or missing,
# speak up!
# This file describes who runs the docker/docker project and how.
# This is a living document - if you see something out of date or missing, speak up!
#
# It is structured to be consumable by both humans and programs.
# To extract its contents programmatically, use any TOML-compliant
# parser.
[Rules]
[Rules.maintainers]
title = "What is a maintainer?"
text = """
There are different types of maintainers, with different responsibilities, but
all maintainers have 3 things in common:
1) They share responsibility in the project's success.
2) They have made a long-term, recurring time investment to improve the project.
3) They spend that time doing whatever needs to be done, not necessarily what
is the most interesting or fun.
Maintainers are often under-appreciated, because their work is harder to appreciate.
It's easy to appreciate a really cool and technically advanced feature. It's harder
to appreciate the absence of bugs, the slow but steady improvement in stability,
or the reliability of a release process. But those things distinguish a good
project from a great one.
"""
[Rules.bdfl]
title = "The Benevolent dictator for life (BDFL)"
text = """
Docker follows the timeless, highly efficient and totally unfair system
known as [Benevolent dictator for
life](https://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life), with
yours truly, Solomon Hykes, in the role of BDFL. This means that all
decisions are made, by default, by Solomon. Since making every decision
myself would be highly un-scalable, in practice decisions are spread
across multiple maintainers.
Ideally, the BDFL role is like the Queen of England: awesome crown, but not
an actual operational role day-to-day. The real job of a BDFL is to NEVER GO AWAY.
Every other rule can change, perhaps drastically so, but the BDFL will always
be there, preserving the philosophy and principles of the project, and keeping
ultimate authority over its fate. This gives us great flexibility in experimenting
with various governance models, knowing that we can always press the "reset" button
without fear of fragmentation or deadlock. See the US congress for a counter-example.
BDFL daily routine:
* Is the project governance stuck in a deadlock or irreversibly fragmented?
* If yes: refactor the project governance
* Are there issues or conflicts escalated by core?
* If yes: resolve them
* Go back to polishing that crown.
"""
[Rules.decisions]
title = "How are decisions made?"
text = """
Short answer: EVERYTHING IS A PULL REQUEST.
Docker is an open-source project with an open design philosophy. This
means that the repository is the source of truth for EVERY aspect of the
project, including its philosophy, design, road map, and APIs. *If it's
part of the project, it's in the repo. If it's in the repo, it's part of
the project.*
As a result, all decisions can be expressed as changes to the
repository. An implementation change is a change to the source code. An
API change is a change to the API specification. A philosophy change is
a change to the philosophy manifesto, and so on.
All decisions affecting Docker, big and small, follow the same 3 steps:
* Step 1: Open a pull request. Anyone can do this.
* Step 2: Discuss the pull request. Anyone can do this.
* Step 3: Merge or refuse the pull request. Who does this depends on the nature
of the pull request and which areas of the project it affects. See *review flow*
for details.
Because Docker is such a large and active project, it's important for everyone to know
who is responsible for deciding what. That is determined by a precise set of rules.
* For every *decision* in the project, the rules should designate, in a deterministic way,
who should *decide*.
* For every *problem* in the project, the rules should designate, in a deterministic way,
who should be responsible for *fixing* it.
* For every *question* in the project, the rules should designate, in a deterministic way,
who should be expected to have the *answer*.
"""
[Rules.review]
title = "Review flow"
text = """
Pull requests should be processed according to the following flow:
* For each subsystem affected by the change, the maintainers of the subsystem must approve or refuse it.
It is the responsibility of the subsystem maintainers to process patches affecting them in a timely
manner.
* If the change affects areas of the code which are not part of a subsystem,
or if subsystem maintainers are unable to reach a timely decision, it must be approved by
the core maintainers.
* If the change affects the UI or public APIs, or if it represents a major change in architecture,
the architects must approve or refuse it.
* If the change affects the operations of the project, it must be approved or rejected by
the relevant operators.
* If the change affects the governance, philosophy, goals or principles of the project,
it must be approved by BDFL.
"""
[Rules.DCO]
title = "Helping contributors with the DCO"
text = """
The [DCO or `Sign your work`](
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work)
requirement is not intended as a roadblock or speed bump.
Some Docker contributors are not as familiar with `git`, or have used a web based
editor, and thus asking them to `git commit --amend -s` is not the best way forward.
In this case, maintainers can update the commits based on clause (c) of the DCO. The
most trivial way for a contributor to allow the maintainer to do this, is to add
a DCO signature in a Pull Requests's comment, or a maintainer can simply note that
the change is sufficiently trivial that it does not substantially change the existing
contribution - i.e., a spelling change.
When you add someone's DCO, please also add your own to keep a log.
"""
[Rules.holiday]
title = "I'm a maintainer, and I'm going on holiday"
text = """
Please let your co-maintainers and other contributors know by raising a pull
request that comments out your `MAINTAINERS` file entry using a `#`.
"""
[Rules."no direct push"]
title = "I'm a maintainer. Should I make pull requests too?"
text = """
Yes. Nobody should ever push to master directly. All changes should be
made through a pull request.
"""
[Rules.meta]
title = "How is this process changed?"
text = "Just like everything else: by making a pull request :)"
# Current project organization
#
# This file is compiled into the MAINTAINERS file in docker/opensource.
#
[Org]
bdfl = "shykes"
# The chief architect is responsible for the overall integrity of the technical architecture
# across all subsystems, and the consistency of APIs and UI.
#
# Changes to UI, public APIs and overall architecture (for example a plugin system) must
# be approved by the chief architect.
"Chief Architect" = "shykes"
[Org.Operators]
# The operators make sure the trains run on time. They are responsible for overall operations
# of the project. This includes facilitating communication between all the participants; helping
# newcomers get involved and become successful contributors and maintainers; tracking the schedule
# of releases; managing the relationship with downstream distributions and upstream dependencies;
# define measures of success for the project and measure progress; Devise and implement tools and
# processes which make contributors and maintainers happier and more efficient.
[Org.Operators.security]
people = [
"erw",
"diogomonica",
"nathanmccauley"
]
[Org.Operators."monthly meetings"]
people = [
"sven",
"tianon"
]
[Org.Operators.infrastructure]
people = [
"jfrazelle",
"crosbymichael"
]
[Org.Operators.community]
people = [
"theadactyl"
]
# The chief maintainer is responsible for all aspects of quality for the project including
# code reviews, usability, stability, security, performance, etc.
# The most important function of the chief maintainer is to lead by example. On the first
# day of a new maintainer, the best advice should be "follow the C.M.'s example and you'll
# be fine".
"Chief Maintainer" = "crosbymichael"
# The community manager is responsible for serving the project community, including users,
# contributors and partners. This involves:
# - facilitating communication between maintainers, contributors and users
# - organizing contributor and maintainer events
# - helping new contributors get involved
# - anything the project community needs to be successful
#
# The community manager is a point of contact for any contributor who has questions, concerns
# or feedback about project operations.
"Community Manager" = "theadactyl"
[Org."Core maintainers"]
# The Core maintainers are the ghostbusters of the project: when there's a problem others
@@ -251,147 +24,39 @@ made through a pull request.
# For each release (including minor releases), a "release captain" is assigned from the
# pool of core maintainers. Rotation is encouraged across all maintainers, to ensure
# the release process is clear and up-to-date.
#
# It is common for core maintainers to "branch out" to join or start a subsystem.
people = [
"aaronlehmann",
"calavera",
"coolljt0725",
"cpuguy83",
"crosbymichael",
"erikh",
"duglin",
"estesp",
"icecrime",
"jhowardmsft",
"jfrazelle",
"lk4d4",
"mhbauer",
"runcom",
"tianon",
"tibor",
"tonistiigi",
"unclejack",
"vbatts",
"vdemeester",
"vieux",
"vishh"
"vdemeester"
]
[Org.Subsystems]
[Org."Docs maintainers"]
# As the project grows, it gets separated into well-defined subsystems. Each subsystem
# has a dedicated group of maintainers, which are dedicated to that subsytem and responsible
# for its quality.
# This "cellular division" is the primary mechanism for scaling maintenance of the project as it grows.
#
# The maintainers of each subsytem are responsible for:
#
# 1. Exposing a clear road map for improving their subsystem.
# 2. Deliver prompt feedback and decisions on pull requests affecting their subsystem.
# 3. Be available to anyone with questions, bug reports, criticism etc.
# on their component. This includes IRC, GitHub requests and the mailing
# list.
# 4. Make sure their subsystem respects the philosophy, design and
# road map of the project.
#
# #### How to review patches to your subsystem
#
# Accepting pull requests:
#
# - If the pull request appears to be ready to merge, give it a `LGTM`, which
# stands for "Looks Good To Me".
# - If the pull request has some small problems that need to be changed, make
# a comment adressing the issues.
# - If the changes needed to a PR are small, you can add a "LGTM once the
# following comments are addressed..." this will reduce needless back and
# forth.
# - If the PR only needs a few changes before being merged, any MAINTAINER can
# make a replacement PR that incorporates the existing commits and fixes the
# problems before a fast track merge.
#
# Closing pull requests:
#
# - If a PR appears to be abandoned, after having attempted to contact the
# original contributor, then a replacement PR may be made. Once the
# replacement PR is made, any contributor may close the original one.
# - If you are not sure if the pull request implements a good feature or you
# do not understand the purpose of the PR, ask the contributor to provide
# more documentation. If the contributor is not able to adequately explain
# the purpose of the PR, the PR may be closed by any MAINTAINER.
# - If a MAINTAINER feels that the pull request is sufficiently architecturally
# flawed, or if the pull request needs significantly more design discussion
# before being considered, the MAINTAINER should close the pull request with
# a short explanation of what discussion still needs to be had. It is
# important not to leave such pull requests open, as this will waste both the
# MAINTAINER's time and the contributor's time. It is not good to string a
# contributor on for weeks or months, having them make many changes to a PR
# that will eventually be rejected.
# TODO Describe the docs maintainers role.
[Org.Subsystems.Documentation]
people = [
"james",
"moxiegirl",
"thaJeztah",
"jamtur01",
"sven"
]
[Org.Subsystems.libcontainer]
people = [
"crosbymichael",
"jnagal",
"lk4d4",
"mpatel",
"vmarmol"
]
[Org.Subsystems.registry]
people = [
"dmcg",
"dmp42",
"jlhawn",
"samalba",
"sday",
"vbatts"
]
[Org.Subsystems."build tools"]
people = [
"shykes",
"tianon"
]
[Org.Subsystem."remote api"]
people = [
"vieux"
]
[Org.Subsystem.swarm]
people = [
"aluzzardi",
"vieux"
]
[Org.Subsystem.machine]
people = [
"bfirsh",
"ehazlett"
]
[Org.Subsystem.compose]
people = [
"aanand"
]
[Org.Subsystem.builder]
people = [
"duglin",
"erikh",
"tibor"
]
people = [
"jamtur01",
"moxiegirl",
"sven",
"thajeztah"
]
[Org.Curators]
@@ -405,10 +70,41 @@ made through a pull request.
# - close an issue or pull request when it's an exact duplicate
# - close an issue or pull request when it's inappropriate or off-topic
people = [
"thajeztah"
]
people = [
"programmerq",
"thajeztah"
]
[Org.Alumni]
# This list contains maintainers that are no longer active on the project.
# It is thanks to these people that the project has become what it is today.
# Thank you!
people = [
# 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
# in his own repository https://github.com/erikh. You may
# still stumble into him in our issue tracker, or on IRC.
"erikh",
# Victor is one of the earliest contributors to Docker, having worked on the
# project when it was still "dotCloud" in April 2013. He's been responsible
# for multiple releases (https://github.com/docker/docker/pulls?q=is%3Apr+bump+in%3Atitle+author%3Avieux),
# and up until today (2015), our number 2 contributor. Although he's no longer
# a maintainer for the Docker "Engine", he's still actively involved in other
# Docker projects, and most likely can be found in the Docker Swarm repository,
# for which he's a core maintainer.
"vieux",
# Vishnu became a maintainer to help out on the daemon codebase and
# libcontainer integration. He's currently involved in the
# Open Containers Initiative, working on the specifications,
# besides his work on cAdvisor and Kubernetes for Google.
"vishh"
]
[people]
@@ -418,26 +114,21 @@ made through a pull request.
# ADD YOURSELF HERE IN ALPHABETICAL ORDER
[people.aanand]
Name = "Aanand Prasad"
Email = "aanand@docker.com"
GitHub = "aanand"
[people.aluzzardi]
Name = "Andrea Luzzardi"
Email = "aluzzardi@docker.com"
GitHub = "aluzzardi"
[people.bfirsh]
Name = "Ben Firshman"
Email = "ben@firshman.co.uk"
GitHub = "bfirsh"
[people.aaronlehmann]
Name = "Aaron Lehmann"
Email = "aaron.lehmann@docker.com"
GitHub = "aaronlehmann"
[people.calavera]
Name = "David Calavera"
Email = "david.calavera@gmail.com"
GitHub = "calavera"
[people.coolljt0725]
Name = "Lei Jitang"
Email = "leijitang@huawei.com"
GitHub = "coolljt0725"
[people.cpuguy83]
Name = "Brian Goff"
Email = "cpuguy83@gmail.com"
@@ -448,41 +139,16 @@ made through a pull request.
Email = "crosbymichael@gmail.com"
GitHub = "crosbymichael"
[people.diogomonica]
Name = "Diogo Monica"
Email = "diogo@docker.com"
GitHub = "diogomonica"
[people.duglin]
Name = "Doug Davis"
Email = "dug@us.ibm.com"
GitHub = "duglin"
[people.dmcg]
Name = "Derek McGowan"
Email = "derek@docker.com"
Github = "dmcgowan"
[people.dmp42]
Name = "Olivier Gambier"
Email = "olivier@docker.com"
Github = "dmp42"
[people.ehazlett]
Name = "Evan Hazlett"
Email = "ejhazlett@gmail.com"
GitHub = "ehazlett"
[people.erikh]
Name = "Erik Hollensbe"
Email = "erik@docker.com"
GitHub = "erikh"
[people.erw]
Name = "Eric Windisch"
Email = "eric@windisch.us"
GitHub = "ewindisch"
[people.estesp]
Name = "Phil Estes"
Email = "estesp@linux.vnet.ibm.com"
@@ -493,51 +159,46 @@ made through a pull request.
Email = "arnaud@docker.com"
GitHub = "icecrime"
[people.jamtur01]
Name = "James Turnbull"
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.jlhawn]
Name = "Josh Hawn"
Email = "josh.hawn@docker.com"
Github = "jlhawn"
[people.jnagal]
Name = "Rohit Jnagal"
Email = "jnagal@google.com"
GitHub = "rjnagal"
[people.lk4d4]
Name = "Alexander Morozov"
Email = "lk4d4@docker.com"
GitHub = "lk4d4"
[people.mhbauer]
Name = "Morgan Bauer"
Email = "mbauer@us.ibm.com"
GitHub = "mhbauer"
[people.moxiegirl]
Name = "Mary Anthony"
Email = "mary.anthony@docker.com"
GitHub = "moxiegirl"
[people.mpatel]
Name = "Mrunal Patel"
Email = "mpatel@redhat.com"
GitHub = "mrunalp"
[people.nathanmccauley]
Name = "Nathan McCauley"
Email = "nathan.mccauley@docker.com"
GitHub = "nathanmccauley"
[people.programmerq]
Name = "Jeff Anderson"
Email = "jeff@docker.com"
GitHub = "programmerq"
[people.runcom]
Name = "Antonio Murdaca"
Email = "me@runcom.ninja"
Email = "runcom@redhat.com"
GitHub = "runcom"
[people.sday]
Name = "Stephen Day"
Email = "stephen.day@docker.com"
Github = "stevvooe"
[people.shykes]
Name = "Solomon Hykes"
Email = "solomon@docker.com"
@@ -553,11 +214,6 @@ made through a pull request.
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"
@@ -568,6 +224,11 @@ made through a pull request.
Email = "tibor@docker.com"
GitHub = "tiborvass"
[people.tonistiigi]
Name = "Tõnis Tiigi"
Email = "tonis@docker.com"
GitHub = "tonistiigi"
[people.unclejack]
Name = "Cristian Staretu"
Email = "cristian.staretu@gmail.com"
@@ -592,8 +253,3 @@ made through a pull request.
Name = "Vishnu Kannan"
Email = "vishnuk@google.com"
GitHub = "vishh"
[people.vmarmol]
Name = "Victor Marmol"
Email = "vmarmol@google.com"
GitHub = "vmarmol"

View File

@@ -1,16 +1,23 @@
.PHONY: all binary build cross default docs docs-build docs-shell shell test test-unit test-integration-cli test-docker-py validate
.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}')
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_EXECDRIVER \
-e DOCKER_EXPERIMENTAL \
-e DOCKER_REMAP_ROOT \
-e DOCKER_GRAPHDRIVER \
-e DOCKER_INCREMENTAL_BINARY \
-e DOCKER_REMAP_ROOT \
-e DOCKER_STORAGE_OPTS \
-e DOCKER_USERLANDPROXY \
-e TESTDIRS \
@@ -24,17 +31,26 @@ 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))
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH),:$(GIT_BRANCH))
DOCKER_RUN_DOCKER := docker run --rm -it --privileged $(DOCKER_ENVS) $(DOCKER_MOUNT) "$(DOCKER_IMAGE)"
DOCKER_FLAGS := docker run --rm -i --privileged $(DOCKER_ENVS) $(DOCKER_MOUNT)
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
# if this session isn't interactive, then we don't want to allocate a
# TTY, which would fail, but if it is interactive, we do want to attach
# so that the user can send e.g. ^C through.
INTERACTIVE := $(shell [ -t 0 ] && echo 1 || echo 0)
ifeq ($(INTERACTIVE), 1)
DOCKER_FLAGS += -t
endif
# for some docs workarounds (see below in "docs-build" target)
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
DOCKER_RUN_DOCKER := $(DOCKER_FLAGS) "$(DOCKER_IMAGE)"
default: binary
@@ -44,38 +60,47 @@ all: build
binary: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary
cross: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary cross
deb: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary build-deb
rpm: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary build-rpm
test: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary cross test-unit test-integration-cli test-docker-py
test-unit: build
$(DOCKER_RUN_DOCKER) hack/make.sh test-unit
test-integration-cli: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary test-integration-cli
test-docker-py: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary test-docker-py
validate: build
$(DOCKER_RUN_DOCKER) hack/make.sh validate-dco validate-gofmt validate-pkg validate-lint validate-test validate-toml validate-vet
shell: build
$(DOCKER_RUN_DOCKER) bash
build: bundles
docker build -t "$(DOCKER_IMAGE)" .
docker build ${DOCKER_BUILD_ARGS} -t "$(DOCKER_IMAGE)" -f "$(DOCKERFILE)" .
bundles:
mkdir 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
shell: build
$(DOCKER_RUN_DOCKER) bash
test: build
$(DOCKER_RUN_DOCKER) hack/make.sh dynbinary cross test-unit test-integration-cli test-docker-py
test-docker-py: build
$(DOCKER_RUN_DOCKER) hack/make.sh dynbinary test-docker-py
test-integration-cli: build
$(DOCKER_RUN_DOCKER) hack/make.sh dynbinary test-integration-cli
test-unit: build
$(DOCKER_RUN_DOCKER) hack/make.sh test-unit
validate: build
$(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

2
NOTICE
View File

@@ -1,5 +1,5 @@
Docker
Copyright 2012-2015 Docker, Inc.
Copyright 2012-2016 Docker, Inc.
This product includes software developed at Docker, Inc. (https://www.docker.com).

View File

@@ -18,7 +18,7 @@ It benefits directly from the experience accumulated over several years
of large-scale operation and support of hundreds of thousands of
applications and databases.
![Docker L](docs/static_files/docker-logo-compressed.png "Docker")
![](docs/static_files/docker-logo-compressed.png "Docker")
## Security Disclosure
@@ -143,15 +143,14 @@ as they can be built by running a Unix command in a container.
Getting started
===============
Docker can be installed on your local machine as well as servers - both
bare metal and virtualized. It is available as a binary on most modern
Linux systems, or as a VM on Windows, Mac and other systems.
Docker can be installed either on your computer for building applications or
on servers for running them. To get started, [check out the installation
instructions in the
documentation](https://docs.docker.com/engine/installation/).
We also offer an [interactive tutorial](https://www.docker.com/tryit/)
for quickly learning the basics of using Docker.
For up-to-date install instructions, see the [Docs](https://docs.docker.com).
Usage examples
==============
@@ -159,7 +158,7 @@ Docker can be used to run short-lived commands, long-running daemons
(app servers, databases, etc.), interactive shell sessions, etc.
You can find a [list of real-world
examples](https://docs.docker.com/examples/) in the
examples](https://docs.docker.com/engine/examples/) in the
documentation.
Under the hood
@@ -168,7 +167,7 @@ Under the hood
Under the hood, Docker is built on the following components:
* The
[cgroups](https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt)
[cgroups](https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt)
and
[namespaces](http://man7.org/linux/man-pages/man7/namespaces.7.html)
capabilities of the Linux kernel
@@ -184,7 +183,7 @@ Contributing to Docker [![GoDoc](https://godoc.org/github.com/docker/docker?stat
| [![Jenkins Build Status](https://jenkins.dockerproject.org/view/Docker/job/Docker%20Master/badge/icon)](https://jenkins.dockerproject.org/view/Docker/job/Docker%20Master/) | [![Jenkins Build Status](https://jenkins.dockerproject.org/view/Docker/job/Docker%20Master%20%28experimental%29/badge/icon)](https://jenkins.dockerproject.org/view/Docker/job/Docker%20Master%20%28experimental%29/) | [![Build Status](http://jenkins.dockerproject.org/job/Docker%20Master%20(windows)/badge/icon)](http://jenkins.dockerproject.org/job/Docker%20Master%20(windows)/) | [![Build Status](http://jenkins.dockerproject.org/job/Docker%20Master%20(freebsd)/badge/icon)](http://jenkins.dockerproject.org/job/Docker%20Master%20(freebsd)/) |
Want to hack on Docker? Awesome! We have [instructions to help you get
started contributing code or documentation](https://docs.docker.com/project/who-written-for/).
started contributing code or documentation](https://docs.docker.com/opensource/project/who-written-for/).
These instructions are probably not perfect, please let us know if anything
feels wrong or incomplete. Better yet, submit a PR and improve them yourself.
@@ -217,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
@@ -235,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>
@@ -289,7 +290,7 @@ for a container-centric world
system
* [Docker Compose](https://github.com/docker/compose) (formerly Fig):
Define and run multi-container apps
* [Kitematic](https://github.com/kitematic/kitematic): The easiest way to use
* [Kitematic](https://github.com/docker/kitematic): The easiest way to use
Docker on Mac and Windows
If you know of another project underway that should be listed here, please help

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.

45
VENDORING.md Normal file
View File

@@ -0,0 +1,45 @@
# Vendoring policies
This document outlines recommended Vendoring policies for Docker repositories.
(Example, libnetwork is a Docker repo and logrus is not.)
## Vendoring using tags
Commit ID based vendoring provides little/no information about the updates
vendored. To fix this, vendors will now require that repositories use annotated
tags along with commit ids to snapshot commits. Annotated tags by themselves
are not sufficient, since the same tag can be force updated to reference
different commits.
Each tag should:
- Follow Semantic Versioning rules (refer to section on "Semantic Versioning")
- Have a corresponding entry in the change tracking document.
Each repo should:
- Have a change tracking document between tags/releases. Ex: CHANGELOG.md,
github releases file.
The goal here is for consuming repos to be able to use the tag version and
changelog updates to determine whether the vendoring will cause any breaking or
backward incompatible changes. This also means that repos can specify having
dependency on a package of a specific version or greater up to the next major
release, without encountering breaking changes.
## Semantic Versioning
Annotated version tags should follow Schema Versioning policies.
According to http://semver.org:
"Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions
to the MAJOR.MINOR.PATCH format."
## Vendoring cadence
In order to avoid huge vendoring changes, it is recommended to have a regular
cadence for vendoring updates. eg. monthly.
## Pre-merge vendoring tests
All related repos will be vendored into docker/docker.
CI on docker/docker should catch any breaking changes involving multiple repos.

View File

@@ -1 +1 @@
1.9.1
1.11.0

View File

@@ -1,16 +1,16 @@
package client
import (
"encoding/json"
"fmt"
"io"
"net/url"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/signal"
"github.com/docker/engine-api/types"
)
// CmdAttach attaches to a running container.
@@ -18,61 +18,86 @@ import (
// Usage: docker attach [OPTIONS] CONTAINER
func (cli *DockerCli) CmdAttach(args ...string) error {
cmd := Cli.Subcmd("attach", []string{"CONTAINER"}, Cli.DockerCommands["attach"].Description, true)
noStdin := cmd.Bool([]string{"#nostdin", "-no-stdin"}, false, "Do not attach STDIN")
proxy := cmd.Bool([]string{"#sig-proxy", "-sig-proxy"}, true, "Proxy all received signals to the process")
noStdin := cmd.Bool([]string{"-no-stdin"}, false, "Do not attach STDIN")
proxy := cmd.Bool([]string{"-sig-proxy"}, true, "Proxy all received signals to the process")
detachKeys := cmd.String([]string{"-detach-keys"}, "", "Override the key sequence for detaching a container")
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
c, err := cli.client.ContainerInspect(context.Background(), cmd.Arg(0))
if err != nil {
return err
}
defer serverResp.body.Close()
var c types.ContainerJSON
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return err
}
if !c.State.Running {
return fmt.Errorf("You cannot attach to a stopped container, start it first")
}
if c.State.Paused {
return fmt.Errorf("You cannot attach to a paused container, unpause it first")
}
if err := cli.CheckTtyInput(!*noStdin, c.Config.Tty); err != nil {
return err
}
if *detachKeys != "" {
cli.configFile.DetachKeys = *detachKeys
}
options := types.ContainerAttachOptions{
ContainerID: cmd.Arg(0),
Stream: true,
Stdin: !*noStdin && c.Config.OpenStdin,
Stdout: true,
Stderr: true,
DetachKeys: cli.configFile.DetachKeys,
}
var in io.ReadCloser
if options.Stdin {
in = cli.in
}
if *proxy && !c.Config.Tty {
sigc := cli.forwardAllSignals(options.ContainerID)
defer signal.StopCatch(sigc)
}
resp, err := cli.client.ContainerAttach(context.Background(), options)
if err != nil {
return err
}
defer resp.Close()
if in != nil && c.Config.Tty {
if err := cli.setRawTerminal(); err != nil {
return err
}
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)
}
}
var in io.ReadCloser
v := url.Values{}
v.Set("stream", "1")
if !*noStdin && c.Config.OpenStdin {
v.Set("stdin", "1")
in = cli.in
}
v.Set("stdout", "1")
v.Set("stderr", "1")
if *proxy && !c.Config.Tty {
sigc := cli.forwardAllSignals(cmd.Arg(0))
defer signal.StopCatch(sigc)
}
if err := cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), c.Config.Tty, in, cli.out, cli.err, nil, nil); err != nil {
if err := cli.holdHijackedConnection(c.Config.Tty, in, cli.out, cli.err, resp); err != nil {
return err
}
_, status, err := getExitCode(cli, cmd.Arg(0))
_, status, err := getExitCode(cli, options.ContainerID)
if err != nil {
return err
}

View File

@@ -3,44 +3,36 @@ package client
import (
"archive/tar"
"bufio"
"encoding/base64"
"encoding/json"
"bytes"
"fmt"
"io"
"io/ioutil"
"net/http"
"net/url"
"os"
"os/exec"
"path/filepath"
"regexp"
"runtime"
"strconv"
"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/graph/tags"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/fileutils"
"github.com/docker/docker/pkg/httputils"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/progressreader"
"github.com/docker/docker/pkg/progress"
"github.com/docker/docker/pkg/streamformatter"
"github.com/docker/docker/pkg/ulimit"
"github.com/docker/docker/pkg/units"
"github.com/docker/docker/pkg/urlutil"
"github.com/docker/docker/registry"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/utils"
"github.com/docker/docker/reference"
runconfigopts "github.com/docker/docker/runconfig/opts"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
"github.com/docker/go-units"
)
const (
tarHeaderSize = 512
)
type translatorFunc func(reference.NamedTagged) (reference.Canonical, error)
// CmdBuild builds a new image from the source code at a given path.
//
@@ -49,26 +41,32 @@ const (
// Usage: docker build [OPTIONS] PATH | URL | -
func (cli *DockerCli) CmdBuild(args ...string) error {
cmd := Cli.Subcmd("build", []string{"PATH | URL | -"}, Cli.DockerCommands["build"].Description, true)
tag := cmd.String([]string{"t", "-tag"}, "", "Repository name (and optionally a tag) for the image")
suppressOutput := cmd.Bool([]string{"q", "-quiet"}, false, "Suppress the verbose output generated by the containers")
noCache := cmd.Bool([]string{"#no-cache", "-no-cache"}, false, "Do not use cache when building the image")
rm := cmd.Bool([]string{"#rm", "-rm"}, true, "Remove intermediate containers after a successful build")
flTags := opts.NewListOpts(validateTag)
cmd.Var(&flTags, []string{"t", "-tag"}, "Name and optionally a tag in the 'name:tag' format")
suppressOutput := cmd.Bool([]string{"q", "-quiet"}, false, "Suppress the build output and print image ID on success")
noCache := cmd.Bool([]string{"-no-cache"}, false, "Do not use cache when building the image")
rm := cmd.Bool([]string{"-rm"}, true, "Remove intermediate containers after a successful build")
forceRm := cmd.Bool([]string{"-force-rm"}, false, "Always remove intermediate containers")
pull := cmd.Bool([]string{"-pull"}, false, "Always attempt to pull a newer version of the image")
dockerfileName := cmd.String([]string{"f", "-file"}, "", "Name of the Dockerfile (Default is 'PATH/Dockerfile')")
flMemoryString := cmd.String([]string{"m", "-memory"}, "", "Memory limit")
flMemorySwap := cmd.String([]string{"-memory-swap"}, "", "Total memory (memory + swap), '-1' to disable swap")
flMemorySwap := cmd.String([]string{"-memory-swap"}, "", "Swap limit equal to memory plus swap: '-1' to enable unlimited swap")
flShmSize := cmd.String([]string{"-shm-size"}, "", "Size of /dev/shm, default value is 64MB")
flCPUShares := cmd.Int64([]string{"#c", "-cpu-shares"}, 0, "CPU shares (relative weight)")
flCPUPeriod := cmd.Int64([]string{"-cpu-period"}, 0, "Limit the CPU CFS (Completely Fair Scheduler) period")
flCPUQuota := cmd.Int64([]string{"-cpu-quota"}, 0, "Limit the CPU CFS (Completely Fair Scheduler) quota")
flCPUSetCpus := cmd.String([]string{"-cpuset-cpus"}, "", "CPUs in which to allow execution (0-3, 0,1)")
flCPUSetMems := cmd.String([]string{"-cpuset-mems"}, "", "MEMs in which to allow execution (0-3, 0,1)")
flCgroupParent := cmd.String([]string{"-cgroup-parent"}, "", "Optional parent cgroup for the container")
flBuildArg := opts.NewListOpts(opts.ValidateEnv)
flBuildArg := opts.NewListOpts(runconfigopts.ValidateEnv)
cmd.Var(&flBuildArg, []string{"-build-arg"}, "Set build-time variables")
isolation := cmd.String([]string{"-isolation"}, "", "Container isolation technology")
ulimits := make(map[string]*ulimit.Ulimit)
flUlimits := opts.NewUlimitOpt(&ulimits)
flLabels := opts.NewListOpts(nil)
cmd.Var(&flLabels, []string{"-label"}, "Set metadata for an image")
ulimits := make(map[string]*units.Ulimit)
flUlimits := runconfigopts.NewUlimitOpt(&ulimits)
cmd.Var(flUlimits, []string{"-ulimit"}, "Ulimit options")
cmd.Require(flag.Exact, 1)
@@ -79,34 +77,42 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
cmd.ParseFlags(args, true)
var (
context io.ReadCloser
isRemote bool
err error
ctx io.ReadCloser
err error
)
_, err = exec.LookPath("git")
hasGit := err == nil
specifiedContext := cmd.Arg(0)
var (
contextDir string
tempDir string
relDockerfile string
progBuff io.Writer
buildBuff io.Writer
)
progBuff = cli.out
buildBuff = cli.out
if *suppressOutput {
progBuff = bytes.NewBuffer(nil)
buildBuff = bytes.NewBuffer(nil)
}
switch {
case specifiedContext == "-":
tempDir, relDockerfile, err = getContextFromReader(cli.in, *dockerfileName)
case urlutil.IsGitURL(specifiedContext) && hasGit:
tempDir, relDockerfile, err = getContextFromGitURL(specifiedContext, *dockerfileName)
ctx, relDockerfile, err = builder.GetContextFromReader(cli.in, *dockerfileName)
case urlutil.IsGitURL(specifiedContext):
tempDir, relDockerfile, err = builder.GetContextFromGitURL(specifiedContext, *dockerfileName)
case urlutil.IsURL(specifiedContext):
tempDir, relDockerfile, err = getContextFromURL(cli.out, 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 {
if *suppressOutput && urlutil.IsURL(specifiedContext) {
fmt.Fprintln(cli.err, progBuff)
}
return fmt.Errorf("unable to prepare context: %s", err)
}
@@ -115,76 +121,65 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
contextDir = tempDir
}
// Resolve the FROM lines in the Dockerfile to trusted digest references
// using Notary. On a successful build, we must tag the resolved digests
// to the original name specified in the Dockerfile.
newDockerfile, resolvedTags, err := rewriteDockerfileFrom(filepath.Join(contextDir, relDockerfile), cli.trustedReference)
if err != nil {
return fmt.Errorf("unable to process Dockerfile: %v", err)
}
defer newDockerfile.Close()
if ctx == nil {
// And canonicalize dockerfile name to a platform-independent one
relDockerfile, err = archive.CanonicalTarNameForPath(relDockerfile)
if err != nil {
return fmt.Errorf("cannot canonicalize dockerfile path %s: %v", relDockerfile, err)
}
// And canonicalize dockerfile name to a platform-independent one
relDockerfile, err = archive.CanonicalTarNameForPath(relDockerfile)
if err != nil {
return fmt.Errorf("cannot canonicalize dockerfile path %s: %v", relDockerfile, err)
}
f, err := os.Open(filepath.Join(contextDir, ".dockerignore"))
if err != nil && !os.IsNotExist(err) {
return err
}
f, err := os.Open(filepath.Join(contextDir, ".dockerignore"))
if err != nil && !os.IsNotExist(err) {
return err
}
var excludes []string
if err == nil {
excludes, err = dockerignore.ReadAll(f)
if err != nil {
return err
}
}
var excludes []string
if err == nil {
excludes, err = utils.ReadDockerIgnore(f)
if err := builder.ValidateContextDirectory(contextDir, excludes); err != nil {
return fmt.Errorf("Error checking context: '%s'.", err)
}
// If .dockerignore mentions .dockerignore or the Dockerfile
// then make sure we send both files over to the daemon
// because Dockerfile is, obviously, needed no matter what, and
// .dockerignore is needed to know if either one needs to be
// removed. The daemon will remove them for us, if needed, after it
// parses the Dockerfile. Ignore errors here, as they will have been
// caught by validateContextDirectory above.
var includes = []string{"."}
keepThem1, _ := fileutils.Matches(".dockerignore", excludes)
keepThem2, _ := fileutils.Matches(relDockerfile, excludes)
if keepThem1 || keepThem2 {
includes = append(includes, ".dockerignore", relDockerfile)
}
ctx, err = archive.TarWithOptions(contextDir, &archive.TarOptions{
Compression: archive.Uncompressed,
ExcludePatterns: excludes,
IncludeFiles: includes,
})
if err != nil {
return err
}
}
if err := utils.ValidateContextDirectory(contextDir, excludes); err != nil {
return fmt.Errorf("Error checking context: '%s'.", err)
var resolvedTags []*resolvedTag
if isTrusted() {
// Wrap the tar archive to replace the Dockerfile entry with the rewritten
// Dockerfile which uses trusted pulls.
ctx = replaceDockerfileTarWrapper(ctx, relDockerfile, cli.trustedReference, &resolvedTags)
}
// If .dockerignore mentions .dockerignore or the Dockerfile
// then make sure we send both files over to the daemon
// because Dockerfile is, obviously, needed no matter what, and
// .dockerignore is needed to know if either one needs to be
// removed. The deamon will remove them for us, if needed, after it
// parses the Dockerfile. Ignore errors here, as they will have been
// caught by ValidateContextDirectory above.
var includes = []string{"."}
keepThem1, _ := fileutils.Matches(".dockerignore", excludes)
keepThem2, _ := fileutils.Matches(relDockerfile, excludes)
if keepThem1 || keepThem2 {
includes = append(includes, ".dockerignore", relDockerfile)
}
context, err = archive.TarWithOptions(contextDir, &archive.TarOptions{
Compression: archive.Uncompressed,
ExcludePatterns: excludes,
IncludeFiles: includes,
})
if err != nil {
return err
}
// Wrap the tar archive to replace the Dockerfile entry with the rewritten
// Dockerfile which uses trusted pulls.
context = replaceDockerfileTarWrapper(context, newDockerfile, relDockerfile)
// Setup an upload progress bar
// FIXME: ProgressReader shouldn't be this annoying to use
sf := streamformatter.NewStreamFormatter()
var body io.Reader = progressreader.New(progressreader.Config{
In: context,
Out: cli.out,
Formatter: sf,
NewLines: true,
ID: "",
Action: "Sending build context to Docker daemon",
})
progressOutput := streamformatter.NewStreamFormatter().NewProgressOutput(progBuff, true)
var body io.Reader = progress.NewProgressReader(ctx, progressOutput, 0, "", "Sending build context to Docker daemon")
var memory int64
if *flMemoryString != "" {
@@ -207,428 +202,153 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
memorySwap = parsedMemorySwap
}
}
// Send the build context
v := &url.Values{}
//Check if the given image name can be resolved
if *tag != "" {
repository, tag := parsers.ParseRepositoryTag(*tag)
if err := registry.ValidateRepositoryName(repository); err != nil {
var shmSize int64
if *flShmSize != "" {
shmSize, err = units.RAMInBytes(*flShmSize)
if err != nil {
return err
}
if len(tag) > 0 {
if err := tags.ValidateTagName(tag); err != nil {
}
options := types.ImageBuildOptions{
Context: body,
Memory: memory,
MemorySwap: memorySwap,
Tags: flTags.GetAll(),
SuppressOutput: *suppressOutput,
NoCache: *noCache,
Remove: *rm,
ForceRemove: *forceRm,
PullParent: *pull,
Isolation: container.Isolation(*isolation),
CPUSetCPUs: *flCPUSetCpus,
CPUSetMems: *flCPUSetMems,
CPUShares: *flCPUShares,
CPUQuota: *flCPUQuota,
CPUPeriod: *flCPUPeriod,
CgroupParent: *flCgroupParent,
Dockerfile: relDockerfile,
ShmSize: shmSize,
Ulimits: flUlimits.GetList(),
BuildArgs: runconfigopts.ConvertKVStringsToMap(flBuildArg.GetAll()),
AuthConfigs: cli.retrieveAuthConfigs(),
Labels: runconfigopts.ConvertKVStringsToMap(flLabels.GetAll()),
}
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 {
if jerr, ok := err.(*jsonmessage.JSONError); ok {
// If no error code is set, default to 1
if jerr.Code == 0 {
jerr.Code = 1
}
if *suppressOutput {
fmt.Fprintf(cli.err, "%s%s", progBuff, buildBuff)
}
return Cli.StatusError{Status: jerr.Message, StatusCode: jerr.Code}
}
}
// Windows: show error message about modified file permissions if the
// daemon isn't running Windows.
if response.OSType != "windows" && runtime.GOOS == "windows" {
fmt.Fprintln(cli.err, `SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.`)
}
// 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.
if *suppressOutput {
fmt.Fprintf(cli.out, "%s", buildBuff)
}
if isTrusted() {
// Since the build was successful, now we must tag any of the resolved
// images from the above Dockerfile rewrite.
for _, resolved := range resolvedTags {
if err := cli.tagTrusted(resolved.digestRef, resolved.tagRef); err != nil {
return err
}
}
}
v.Set("t", *tag)
if *suppressOutput {
v.Set("q", "1")
}
if isRemote {
v.Set("remote", cmd.Arg(0))
}
if *noCache {
v.Set("nocache", "1")
}
if *rm {
v.Set("rm", "1")
} else {
v.Set("rm", "0")
}
if *forceRm {
v.Set("forcerm", "1")
}
if *pull {
v.Set("pull", "1")
}
v.Set("cpusetcpus", *flCPUSetCpus)
v.Set("cpusetmems", *flCPUSetMems)
v.Set("cpushares", strconv.FormatInt(*flCPUShares, 10))
v.Set("cpuquota", strconv.FormatInt(*flCPUQuota, 10))
v.Set("cpuperiod", strconv.FormatInt(*flCPUPeriod, 10))
v.Set("memory", strconv.FormatInt(memory, 10))
v.Set("memswap", strconv.FormatInt(memorySwap, 10))
v.Set("cgroupparent", *flCgroupParent)
v.Set("dockerfile", relDockerfile)
ulimitsVar := flUlimits.GetList()
ulimitsJSON, err := json.Marshal(ulimitsVar)
if err != nil {
return err
}
v.Set("ulimits", string(ulimitsJSON))
// collect all the build-time environment variables for the container
buildArgs := runconfig.ConvertKVStringsToMap(flBuildArg.GetAll())
buildArgsJSON, err := json.Marshal(buildArgs)
if err != nil {
return err
}
v.Set("buildargs", string(buildArgsJSON))
headers := http.Header(make(map[string][]string))
buf, err := json.Marshal(cli.configFile.AuthConfigs)
if err != nil {
return err
}
headers.Add("X-Registry-Config", base64.URLEncoding.EncodeToString(buf))
headers.Set("Content-Type", "application/tar")
sopts := &streamOpts{
rawTerminal: true,
in: body,
out: cli.out,
headers: headers,
}
serverResp, err := cli.stream("POST", fmt.Sprintf("/build?%s", v.Encode()), sopts)
// Windows: show error message about modified file permissions.
if runtime.GOOS == "windows" {
h, err := httputils.ParseServerHeader(serverResp.header.Get("Server"))
if err == nil {
if h.OS != "windows" {
fmt.Fprintln(cli.err, `SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.`)
}
}
}
if jerr, ok := err.(*jsonmessage.JSONError); ok {
// If no error code is set, default to 1
if jerr.Code == 0 {
jerr.Code = 1
}
return Cli.StatusError{Status: jerr.Message, StatusCode: jerr.Code}
}
if err != nil {
return err
}
// Since the build was successful, now we must tag any of the resolved
// images from the above Dockerfile rewrite.
for _, resolved := range resolvedTags {
if err := cli.tagTrusted(resolved.repoInfo, resolved.digestRef, resolved.tagRef); err != nil {
return err
}
}
return nil
}
// isUNC returns true if the path is UNC (one starting \\). It always returns
// false on Linux.
func isUNC(path string) bool {
return runtime.GOOS == "windows" && strings.HasPrefix(path, `\\`)
}
// getDockerfileRelPath uses the given context directory for a `docker build`
// and returns the absolute path to the context directory, the relative path of
// the dockerfile in that context directory, and a non-nil error on success.
func getDockerfileRelPath(givenContextDir, givenDockerfile string) (absContextDir, relDockerfile string, err error) {
if absContextDir, err = filepath.Abs(givenContextDir); err != nil {
return "", "", fmt.Errorf("unable to get absolute context directory: %v", err)
}
// The context dir might be a symbolic link, so follow it to the actual
// target directory.
//
// FIXME. We use isUNC (always false on non-Windows platforms) to workaround
// an issue in golang. On Windows, EvalSymLinks does not work on UNC file
// paths (those starting with \\). This hack means that when using links
// on UNC paths, they will not be followed.
if !isUNC(absContextDir) {
absContextDir, err = filepath.EvalSymlinks(absContextDir)
if err != nil {
return "", "", fmt.Errorf("unable to evaluate symlinks in context path: %v", err)
}
}
stat, err := os.Lstat(absContextDir)
// validateTag checks if the given image name can be resolved.
func validateTag(rawRepo string) (string, error) {
_, err := reference.ParseNamed(rawRepo)
if err != nil {
return "", "", fmt.Errorf("unable to stat context directory %q: %v", absContextDir, err)
return "", err
}
if !stat.IsDir() {
return "", "", fmt.Errorf("context must be a directory: %s", absContextDir)
}
absDockerfile := givenDockerfile
if absDockerfile == "" {
// No -f/--file was specified so use the default relative to the
// context directory.
absDockerfile = filepath.Join(absContextDir, api.DefaultDockerfileName)
// Just to be nice ;-) look for 'dockerfile' too but only
// use it if we found it, otherwise ignore this check
if _, err = os.Lstat(absDockerfile); os.IsNotExist(err) {
altPath := filepath.Join(absContextDir, strings.ToLower(api.DefaultDockerfileName))
if _, err = os.Lstat(altPath); err == nil {
absDockerfile = altPath
}
}
}
// If not already an absolute path, the Dockerfile path should be joined to
// the base directory.
if !filepath.IsAbs(absDockerfile) {
absDockerfile = filepath.Join(absContextDir, absDockerfile)
}
// Evaluate symlinks in the path to the Dockerfile too.
//
// FIXME. We use isUNC (always false on non-Windows platforms) to workaround
// an issue in golang. On Windows, EvalSymLinks does not work on UNC file
// paths (those starting with \\). This hack means that when using links
// on UNC paths, they will not be followed.
if !isUNC(absDockerfile) {
absDockerfile, err = filepath.EvalSymlinks(absDockerfile)
if err != nil {
return "", "", fmt.Errorf("unable to evaluate symlinks in Dockerfile path: %v", err)
}
}
if _, err := os.Lstat(absDockerfile); err != nil {
if os.IsNotExist(err) {
return "", "", fmt.Errorf("Cannot locate Dockerfile: %q", absDockerfile)
}
return "", "", fmt.Errorf("unable to stat Dockerfile: %v", err)
}
if relDockerfile, err = filepath.Rel(absContextDir, absDockerfile); err != nil {
return "", "", fmt.Errorf("unable to get relative Dockerfile path: %v", err)
}
if strings.HasPrefix(relDockerfile, ".."+string(filepath.Separator)) {
return "", "", fmt.Errorf("The Dockerfile (%s) must be within the build context (%s)", givenDockerfile, givenContextDir)
}
return absContextDir, relDockerfile, nil
}
// writeToFile copies from the given reader and writes it to a file with the
// given filename.
func writeToFile(r io.Reader, filename string) error {
file, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, os.FileMode(0600))
if err != nil {
return fmt.Errorf("unable to create file: %v", err)
}
defer file.Close()
if _, err := io.Copy(file, r); err != nil {
return fmt.Errorf("unable to write file: %v", err)
}
return nil
}
// getContextFromReader will read the contents of the given reader as either a
// Dockerfile or tar archive to be extracted to a temporary directory used as
// the context directory. Returns the absolute path to the temporary context
// directory, the relative path of the dockerfile in that context directory,
// and a non-nil error on success.
func getContextFromReader(r io.Reader, dockerfileName string) (absContextDir, relDockerfile string, err error) {
buf := bufio.NewReader(r)
magic, err := buf.Peek(tarHeaderSize)
if err != nil && err != io.EOF {
return "", "", fmt.Errorf("failed to peek context header from STDIN: %v", err)
}
if absContextDir, err = ioutil.TempDir("", "docker-build-context-"); err != nil {
return "", "", fmt.Errorf("unbale to create temporary context directory: %v", err)
}
defer func(d string) {
if err != nil {
os.RemoveAll(d)
}
}(absContextDir)
if !archive.IsArchive(magic) { // Input should be read as a Dockerfile.
// -f option has no meaning when we're reading it from stdin,
// so just use our default Dockerfile name
relDockerfile = api.DefaultDockerfileName
return absContextDir, relDockerfile, writeToFile(buf, filepath.Join(absContextDir, relDockerfile))
}
if err := archive.Untar(buf, absContextDir, nil); err != nil {
return "", "", fmt.Errorf("unable to extract stdin to temporary context directory: %v", err)
}
return getDockerfileRelPath(absContextDir, dockerfileName)
}
// getContextFromGitURL uses a Git URL as context for a `docker build`. The
// git repo is cloned into a temporary directory used as the context directory.
// Returns the absolute path to the temporary context directory, the relative
// path of the dockerfile in that context directory, and a non-nil error on
// success.
func getContextFromGitURL(gitURL, dockerfileName string) (absContextDir, relDockerfile string, err error) {
if absContextDir, err = utils.GitClone(gitURL); err != nil {
return "", "", fmt.Errorf("unable to 'git clone' to temporary context directory: %v", err)
}
return getDockerfileRelPath(absContextDir, dockerfileName)
}
// getContextFromURL uses a remote URL as context for a `docker build`. The
// remote resource is downloaded as either a Dockerfile or a context tar
// archive and stored in a temporary directory used as the context directory.
// Returns the absolute path to the temporary context directory, the relative
// path of the dockerfile in that context directory, and a non-nil error on
// success.
func getContextFromURL(out io.Writer, remoteURL, dockerfileName string) (absContextDir, relDockerfile string, err error) {
response, err := httputils.Download(remoteURL)
if err != nil {
return "", "", fmt.Errorf("unable to download remote context %s: %v", remoteURL, err)
}
defer response.Body.Close()
// Pass the response body through a progress reader.
progReader := &progressreader.Config{
In: response.Body,
Out: out,
Formatter: streamformatter.NewStreamFormatter(),
Size: response.ContentLength,
NewLines: true,
ID: "",
Action: fmt.Sprintf("Downloading build context from remote url: %s", remoteURL),
}
return getContextFromReader(progReader, dockerfileName)
}
// getContextFromLocalDir uses the given local directory as context for a
// `docker build`. Returns the absolute path to the local context directory,
// the relative path of the dockerfile in that context directory, and a non-nil
// error on success.
func getContextFromLocalDir(localDir, dockerfileName string) (absContextDir, relDockerfile string, err error) {
// When using a local context directory, when the Dockerfile is specified
// with the `-f/--file` option then it is considered relative to the
// current directory and not the context directory.
if dockerfileName != "" {
if dockerfileName, err = filepath.Abs(dockerfileName); err != nil {
return "", "", fmt.Errorf("unable to get absolute path to Dockerfile: %v", err)
}
}
return getDockerfileRelPath(localDir, dockerfileName)
return rawRepo, nil
}
var dockerfileFromLinePattern = regexp.MustCompile(`(?i)^[\s]*FROM[ \f\r\t\v]+(?P<image>[^ \f\r\t\v\n#]+)`)
type trustedDockerfile struct {
*os.File
size int64
}
func (td *trustedDockerfile) Close() error {
td.File.Close()
return os.Remove(td.File.Name())
}
// resolvedTag records the repository, tag, and resolved digest reference
// from a Dockerfile rewrite.
type resolvedTag struct {
repoInfo *registry.RepositoryInfo
digestRef, tagRef registry.Reference
digestRef reference.Canonical
tagRef reference.NamedTagged
}
// rewriteDockerfileFrom rewrites the given Dockerfile by resolving images in
// "FROM <image>" instructions to a digest reference. `translator` is a
// function that takes a repository name and tag reference and returns a
// trusted digest reference.
func rewriteDockerfileFrom(dockerfileName string, translator func(string, registry.Reference) (registry.Reference, error)) (newDockerfile *trustedDockerfile, resolvedTags []*resolvedTag, err error) {
dockerfile, err := os.Open(dockerfileName)
if err != nil {
return nil, nil, fmt.Errorf("unable to open Dockerfile: %v", err)
}
defer dockerfile.Close()
func rewriteDockerfileFrom(dockerfile io.Reader, translator translatorFunc) (newDockerfile []byte, resolvedTags []*resolvedTag, err error) {
scanner := bufio.NewScanner(dockerfile)
// Make a tempfile to store the rewritten Dockerfile.
tempFile, err := ioutil.TempFile("", "trusted-dockerfile-")
if err != nil {
return nil, nil, fmt.Errorf("unable to make temporary trusted Dockerfile: %v", err)
}
trustedFile := &trustedDockerfile{
File: tempFile,
}
defer func() {
if err != nil {
// Close the tempfile if there was an error during Notary lookups.
// Otherwise the caller should close it.
trustedFile.Close()
}
}()
buf := bytes.NewBuffer(nil)
// Scan the lines of the Dockerfile, looking for a "FROM" line.
for scanner.Scan() {
line := scanner.Text()
matches := dockerfileFromLinePattern.FindStringSubmatch(line)
if matches != nil && matches[1] != "scratch" {
if matches != nil && matches[1] != api.NoBaseImageSpecifier {
// Replace the line with a resolved "FROM repo@digest"
repo, tag := parsers.ParseRepositoryTag(matches[1])
if tag == "" {
tag = tags.DefaultTag
}
repoInfo, err := registry.ParseRepositoryInfo(repo)
ref, err := reference.ParseNamed(matches[1])
if err != nil {
return nil, nil, fmt.Errorf("unable to parse repository info: %v", err)
return nil, nil, err
}
ref := registry.ParseReference(tag)
if !ref.HasDigest() && isTrusted() {
trustedRef, err := translator(repo, ref)
ref = reference.WithDefaultTag(ref)
if ref, ok := ref.(reference.NamedTagged); ok && isTrusted() {
trustedRef, err := translator(ref)
if err != nil {
return nil, nil, err
}
line = dockerfileFromLinePattern.ReplaceAllLiteralString(line, fmt.Sprintf("FROM %s", trustedRef.ImageName(repo)))
line = dockerfileFromLinePattern.ReplaceAllLiteralString(line, fmt.Sprintf("FROM %s", trustedRef.String()))
resolvedTags = append(resolvedTags, &resolvedTag{
repoInfo: repoInfo,
digestRef: trustedRef,
tagRef: ref,
})
}
}
n, err := fmt.Fprintln(tempFile, line)
_, err := fmt.Fprintln(buf, line)
if err != nil {
return nil, nil, err
}
trustedFile.size += int64(n)
}
tempFile.Seek(0, os.SEEK_SET)
return trustedFile, resolvedTags, scanner.Err()
return buf.Bytes(), resolvedTags, scanner.Err()
}
// replaceDockerfileTarWrapper wraps the given input tar archive stream and
// replaces the entry with the given Dockerfile name with the contents of the
// new Dockerfile. Returns a new tar archive stream with the replaced
// Dockerfile.
func replaceDockerfileTarWrapper(inputTarStream io.ReadCloser, newDockerfile *trustedDockerfile, dockerfileName string) io.ReadCloser {
func replaceDockerfileTarWrapper(inputTarStream io.ReadCloser, dockerfileName string, translator translatorFunc, resolvedTags *[]*resolvedTag) io.ReadCloser {
pipeReader, pipeWriter := io.Pipe()
go func() {
tarReader := tar.NewReader(inputTarStream)
tarWriter := tar.NewWriter(pipeWriter)
@@ -649,13 +369,18 @@ func replaceDockerfileTarWrapper(inputTarStream io.ReadCloser, newDockerfile *tr
}
var content io.Reader = tarReader
if hdr.Name == dockerfileName {
// This entry is the Dockerfile. Since the tar archive was
// generated from a directory on the local filesystem, the
// Dockerfile will only appear once in the archive.
hdr.Size = newDockerfile.size
content = newDockerfile
var newDockerfile []byte
newDockerfile, *resolvedTags, err = rewriteDockerfileFrom(content, translator)
if err != nil {
pipeWriter.CloseWithError(err)
return
}
hdr.Size = int64(len(newDockerfile))
content = bytes.NewBuffer(newDockerfile)
}
if err := tarWriter.WriteHeader(hdr); err != nil {

View File

@@ -1,21 +1,23 @@
package client
import (
"crypto/tls"
"errors"
"fmt"
"io"
"net/http"
"net/url"
"os"
"strings"
"runtime"
"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/sockets"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/pkg/tlsconfig"
"github.com/docker/engine-api/client"
"github.com/docker/go-connections/sockets"
"github.com/docker/go-connections/tlsconfig"
)
// DockerCli represents the docker command line client.
@@ -24,13 +26,6 @@ type DockerCli struct {
// initializing closure
init func() error
// proto holds the client protocol i.e. unix.
proto string
// addr holds the client address.
addr string
// basePath holds the path to prepend to the requests
basePath string
// configFile has the client configuration file
configFile *cliconfig.ConfigFile
// in holds the input stream and closer (io.ReadCloser) for the client.
@@ -41,11 +36,6 @@ type DockerCli struct {
err io.Writer
// keyFile holds the key file as a string.
keyFile string
// tlsConfig holds the TLS configuration for the client, and will
// set the scheme to https in NewDockerCli if present.
tlsConfig *tls.Config
// scheme holds the scheme of the client i.e. https.
scheme string
// inFd holds the file descriptor of the client's STDIN (if valid).
inFd uintptr
// outFd holds file descriptor of the client's STDOUT (if valid).
@@ -54,8 +44,10 @@ type DockerCli struct {
isTerminalIn bool
// isTerminalOut indicates whether the client's STDOUT is a TTY
isTerminalOut bool
// transport holds the client transport instance.
transport *http.Transport
// client is the http client that performs all API operations
client client.APIClient
// state holds the terminal state
state *term.State
}
// Initialize calls the init function that will setup the configuration for the client
@@ -80,11 +72,42 @@ func (cli *DockerCli) CheckTtyInput(attachStdin, ttyMode bool) error {
}
// PsFormat returns the format string specified in the configuration.
// String contains columns and format specification, for example {{ID}\t{{Name}}.
// String contains columns and format specification, for example {{ID}}\t{{Name}}.
func (cli *DockerCli) PsFormat() string {
return cli.configFile.PsFormat
}
// ImagesFormat returns the format string specified in the configuration.
// String contains columns and format specification, for example {{ID}}\t{{Name}}.
func (cli *DockerCli) ImagesFormat() string {
return cli.configFile.ImagesFormat
}
func (cli *DockerCli) setRawTerminal() error {
if cli.isTerminalIn && os.Getenv("NORAW") == "" {
state, err := term.SetRawTerminal(cli.inFd)
if err != nil {
return err
}
cli.state = state
}
return nil
}
func (cli *DockerCli) restoreTerminal(in io.Closer) error {
if cli.state != nil {
term.RestoreTerminal(cli.inFd, cli.state)
}
// WARNING: DO NOT REMOVE THE OS CHECK !!!
// For some reason this Close call blocks on darwin..
// As the client exists right after, simply discard the close
// until we find a better solution.
if in != nil && runtime.GOOS != "darwin" {
return in.Close()
}
return nil
}
// NewDockerCli returns a DockerCli instance with IO output and error streams set by in, out and err.
// The key file, protocol (i.e. unix) and address are passed in as strings, along with the tls.Config. If the tls.Config
// is set the client scheme will be set to https.
@@ -98,50 +121,42 @@ func NewDockerCli(in io.ReadCloser, out, err io.Writer, clientFlags *cli.ClientF
}
cli.init = func() error {
clientFlags.PostParse()
configFile, e := cliconfig.Load(cliconfig.ConfigDir())
if e != nil {
fmt.Fprintf(cli.err, "WARNING: Error loading config file:%v\n", e)
}
if !configFile.ContainsAuth() {
credentials.DetectDefaultStore(configFile)
}
cli.configFile = configFile
hosts := clientFlags.Common.Hosts
switch len(hosts) {
case 0:
hosts = []string{os.Getenv("DOCKER_HOST")}
case 1:
// only accept one host to talk to
default:
return errors.New("Please specify only one -H")
host, err := getServerHost(clientFlags.Common.Hosts, clientFlags.Common.TLSOptions)
if err != nil {
return err
}
defaultHost := opts.DefaultTCPHost
if clientFlags.Common.TLSOptions != nil {
defaultHost = opts.DefaultTLSHost
customHeaders := cli.configFile.HTTPHeaders
if customHeaders == nil {
customHeaders = map[string]string{}
}
customHeaders["User-Agent"] = clientUserAgent()
verStr := api.DefaultVersion.String()
if tmpStr := os.Getenv("DOCKER_API_VERSION"); tmpStr != "" {
verStr = tmpStr
}
var e error
if hosts[0], e = opts.ParseHost(defaultHost, hosts[0]); e != nil {
return e
httpClient, err := newHTTPClient(host, clientFlags.Common.TLSOptions)
if err != nil {
return err
}
protoAddrParts := strings.SplitN(hosts[0], "://", 2)
cli.proto, cli.addr = protoAddrParts[0], protoAddrParts[1]
if cli.proto == "tcp" {
// error is checked in pkg/parsers already
parsed, _ := url.Parse("tcp://" + cli.addr)
cli.addr = parsed.Host
cli.basePath = parsed.Path
}
if clientFlags.Common.TLSOptions != nil {
cli.scheme = "https"
var e error
cli.tlsConfig, e = tlsconfig.Client(*clientFlags.Common.TLSOptions)
if e != nil {
return e
}
} else {
cli.scheme = "http"
client, err := client.NewClient(host, verStr, httpClient, customHeaders)
if err != nil {
return err
}
cli.client = client
if cli.in != nil {
cli.inFd, cli.isTerminalIn = term.GetFdInfo(cli.in)
@@ -150,20 +165,51 @@ func NewDockerCli(in io.ReadCloser, out, err io.Writer, clientFlags *cli.ClientF
cli.outFd, cli.isTerminalOut = term.GetFdInfo(cli.out)
}
// The transport is created here for reuse during the client session.
cli.transport = &http.Transport{
TLSClientConfig: cli.tlsConfig,
}
sockets.ConfigureTCPTransport(cli.transport, cli.proto, cli.addr)
configFile, e := cliconfig.Load(cliconfig.ConfigDir())
if e != nil {
fmt.Fprintf(cli.err, "WARNING: Error loading config file:%v\n", e)
}
cli.configFile = configFile
return nil
}
return cli
}
func getServerHost(hosts []string, tlsOptions *tlsconfig.Options) (host string, err error) {
switch len(hosts) {
case 0:
host = os.Getenv("DOCKER_HOST")
case 1:
host = hosts[0]
default:
return "", errors.New("Please specify only one -H")
}
host, err = opts.ParseHost(tlsOptions != nil, host)
return
}
func newHTTPClient(host string, tlsOptions *tlsconfig.Options) (*http.Client, error) {
if tlsOptions == nil {
// let the api client configure the default transport.
return nil, nil
}
config, err := tlsconfig.Client(*tlsOptions)
if err != nil {
return nil, err
}
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

@@ -2,16 +2,17 @@ package client
import (
"encoding/json"
"errors"
"fmt"
"net/url"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/registry"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/reference"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
)
// CmdCommit creates a new image from a container's changes.
@@ -21,61 +22,61 @@ func (cli *DockerCli) CmdCommit(args ...string) error {
cmd := Cli.Subcmd("commit", []string{"CONTAINER [REPOSITORY[:TAG]]"}, Cli.DockerCommands["commit"].Description, true)
flPause := cmd.Bool([]string{"p", "-pause"}, true, "Pause container during commit")
flComment := cmd.String([]string{"m", "-message"}, "", "Commit message")
flAuthor := cmd.String([]string{"a", "#author", "-author"}, "", "Author (e.g., \"John Hannibal Smith <hannibal@a-team.com>\")")
flAuthor := cmd.String([]string{"a", "-author"}, "", "Author (e.g., \"John Hannibal Smith <hannibal@a-team.com>\")")
flChanges := opts.NewListOpts(nil)
cmd.Var(&flChanges, []string{"c", "-change"}, "Apply Dockerfile instruction to the created image")
// FIXME: --run is deprecated, it will be replaced with inline Dockerfile commands.
flConfig := cmd.String([]string{"#run", "#-run"}, "", "This option is deprecated and will be removed in a future version in favor of inline Dockerfile-compatible commands")
flConfig := cmd.String([]string{"#-run"}, "", "This option is deprecated and will be removed in a future version in favor of inline Dockerfile-compatible commands")
cmd.Require(flag.Max, 2)
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
var (
name = cmd.Arg(0)
repository, tag = parsers.ParseRepositoryTag(cmd.Arg(1))
name = cmd.Arg(0)
repositoryAndTag = cmd.Arg(1)
repositoryName string
tag string
)
//Check if the given image name can be resolved
if repository != "" {
if err := registry.ValidateRepositoryName(repository); err != nil {
if repositoryAndTag != "" {
ref, err := reference.ParseNamed(repositoryAndTag)
if err != nil {
return err
}
repositoryName = ref.Name()
switch x := ref.(type) {
case reference.Canonical:
return errors.New("cannot commit to digest reference")
case reference.NamedTagged:
tag = x.Tag()
}
}
v := url.Values{}
v.Set("container", name)
v.Set("repo", repository)
v.Set("tag", tag)
v.Set("comment", *flComment)
v.Set("author", *flAuthor)
for _, change := range flChanges.GetAll() {
v.Add("changes", change)
}
if *flPause != true {
v.Set("pause", "0")
}
var (
config *runconfig.Config
response types.ContainerCommitResponse
)
var config *container.Config
if *flConfig != "" {
config = &runconfig.Config{}
config = &container.Config{}
if err := json.Unmarshal([]byte(*flConfig), config); err != nil {
return err
}
}
serverResp, err := cli.call("POST", "/commit?"+v.Encode(), config, nil)
if err != nil {
return err
options := types.ContainerCommitOptions{
ContainerID: name,
RepositoryName: repositoryName,
Tag: tag,
Comment: *flComment,
Author: *flAuthor,
Changes: flChanges.GetAll(),
Pause: *flPause,
Config: config,
}
defer serverResp.body.Close()
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
response, err := cli.client.ContainerCommit(context.Background(), options)
if err != nil {
return err
}

View File

@@ -1,21 +1,19 @@
package client
import (
"encoding/base64"
"encoding/json"
"fmt"
"io"
"net/http"
"net/url"
"os"
"path/filepath"
"strings"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/archive"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/system"
"github.com/docker/engine-api/types"
)
type copyDirection int
@@ -26,22 +24,26 @@ const (
acrossContainers = fromContainer | toContainer
)
type cpConfig struct {
followLink bool
}
// CmdCp copies files/folders to or from a path in a container.
//
// When copying from a container, if LOCALPATH is '-' the data is written as a
// When copying from a container, if DEST_PATH is '-' the data is written as a
// tar archive file to STDOUT.
//
// When copying to a container, if LOCALPATH is '-' the data is read as a tar
// archive file from STDIN, and the destination CONTAINER:PATH, must specify
// When copying to a container, if SRC_PATH is '-' the data is read as a tar
// archive file from STDIN, and the destination CONTAINER:DEST_PATH, must specify
// a directory.
//
// Usage:
// docker cp CONTAINER:PATH LOCALPATH|-
// docker cp LOCALPATH|- CONTAINER:PATH
// docker cp CONTAINER:SRC_PATH DEST_PATH|-
// docker cp SRC_PATH|- CONTAINER:DEST_PATH
func (cli *DockerCli) CmdCp(args ...string) error {
cmd := Cli.Subcmd(
"cp",
[]string{"CONTAINER:PATH LOCALPATH|-", "LOCALPATH|- CONTAINER:PATH"},
[]string{"CONTAINER:SRC_PATH DEST_PATH|-", "SRC_PATH|- CONTAINER:DEST_PATH"},
strings.Join([]string{
Cli.DockerCommands["cp"].Description,
"\nUse '-' as the source to read a tar archive from stdin\n",
@@ -52,6 +54,8 @@ func (cli *DockerCli) CmdCp(args ...string) error {
true,
)
followLink := cmd.Bool([]string{"L", "-follow-link"}, false, "Always follow symbol link in SRC_PATH")
cmd.Require(flag.Exact, 2)
cmd.ParseFlags(args, true)
@@ -73,11 +77,15 @@ func (cli *DockerCli) CmdCp(args ...string) error {
direction |= toContainer
}
cpParam := &cpConfig{
followLink: *followLink,
}
switch direction {
case fromContainer:
return cli.copyFromContainer(srcContainer, srcPath, dstPath)
return cli.copyFromContainer(srcContainer, srcPath, dstPath, cpParam)
case toContainer:
return cli.copyToContainer(srcPath, dstContainer, dstPath)
return cli.copyToContainer(srcPath, dstContainer, dstPath, cpParam)
case acrossContainers:
// Copying between containers isn't supported.
return fmt.Errorf("copying between containers is not supported")
@@ -119,38 +127,7 @@ func splitCpArg(arg string) (container, path string) {
}
func (cli *DockerCli) statContainerPath(containerName, path string) (types.ContainerPathStat, error) {
var stat types.ContainerPathStat
query := make(url.Values, 1)
query.Set("path", filepath.ToSlash(path)) // Normalize the paths used in the API.
urlStr := fmt.Sprintf("/containers/%s/archive?%s", containerName, query.Encode())
response, err := cli.call("HEAD", urlStr, nil, nil)
if err != nil {
return stat, err
}
defer response.body.Close()
if response.statusCode != http.StatusOK {
return stat, fmt.Errorf("unexpected status code from daemon: %d", response.statusCode)
}
return getContainerPathStatFromHeader(response.header)
}
func getContainerPathStatFromHeader(header http.Header) (types.ContainerPathStat, error) {
var stat types.ContainerPathStat
encodedStat := header.Get("X-Docker-Container-Path-Stat")
statDecoder := base64.NewDecoder(base64.StdEncoding, strings.NewReader(encodedStat))
err := json.NewDecoder(statDecoder).Decode(&stat)
if err != nil {
err = fmt.Errorf("unable to decode container path stat header: %s", err)
}
return stat, err
return cli.client.ContainerStatPath(context.Background(), containerName, path)
}
func resolveLocalPath(localPath string) (absPath string, err error) {
@@ -161,7 +138,7 @@ func resolveLocalPath(localPath string) (absPath string, err error) {
return archive.PreserveTrailingDotOrSeparator(absPath, localPath), nil
}
func (cli *DockerCli) copyFromContainer(srcContainer, srcPath, dstPath string) (err error) {
func (cli *DockerCli) copyFromContainer(srcContainer, srcPath, dstPath string, cpParam *cpConfig) (err error) {
if dstPath != "-" {
// Get an absolute destination path.
dstPath, err = resolveLocalPath(dstPath)
@@ -170,53 +147,59 @@ func (cli *DockerCli) copyFromContainer(srcContainer, srcPath, dstPath string) (
}
}
query := make(url.Values, 1)
query.Set("path", filepath.ToSlash(srcPath)) // Normalize the paths used in the API.
// if client requests to follow symbol link, then must decide target file to be copied
var rebaseName string
if cpParam.followLink {
srcStat, err := cli.statContainerPath(srcContainer, srcPath)
urlStr := fmt.Sprintf("/containers/%s/archive?%s", srcContainer, query.Encode())
// If the destination is a symbolic link, we should follow it.
if err == nil && srcStat.Mode&os.ModeSymlink != 0 {
linkTarget := srcStat.LinkTarget
if !system.IsAbs(linkTarget) {
// Join with the parent directory.
srcParent, _ := archive.SplitPathDirEntry(srcPath)
linkTarget = filepath.Join(srcParent, linkTarget)
}
response, err := cli.call("GET", urlStr, nil, nil)
linkTarget, rebaseName = archive.GetRebaseName(srcPath, linkTarget)
srcPath = linkTarget
}
}
content, stat, err := cli.client.CopyFromContainer(context.Background(), srcContainer, srcPath)
if err != nil {
return err
}
defer response.body.Close()
if response.statusCode != http.StatusOK {
return fmt.Errorf("unexpected status code from daemon: %d", response.statusCode)
}
defer content.Close()
if dstPath == "-" {
// Send the response to STDOUT.
_, err = io.Copy(os.Stdout, response.body)
_, err = io.Copy(os.Stdout, content)
return err
}
// In order to get the copy behavior right, we need to know information
// about both the source and the destination. The response headers include
// stat info about the source that we can use in deciding exactly how to
// copy it locally. Along with the stat info about the local destination,
// we have everything we need to handle the multiple possibilities there
// can be when copying a file/dir from one location to another file/dir.
stat, err := getContainerPathStatFromHeader(response.header)
if err != nil {
return fmt.Errorf("unable to get resource stat from response: %s", err)
}
// Prepare source copy info.
srcInfo := archive.CopyInfo{
Path: srcPath,
Exists: true,
IsDir: stat.Mode.IsDir(),
Path: srcPath,
Exists: true,
IsDir: stat.Mode.IsDir(),
RebaseName: rebaseName,
}
preArchive := content
if len(srcInfo.RebaseName) != 0 {
_, srcBase := archive.SplitPathDirEntry(srcInfo.Path)
preArchive = archive.RebaseArchiveEntries(content, srcBase, srcInfo.RebaseName)
}
// See comments in the implementation of `archive.CopyTo` for exactly what
// goes into deciding how and whether the source archive needs to be
// altered for the correct copy behavior.
return archive.CopyTo(response.body, srcInfo, dstPath)
return archive.CopyTo(preArchive, srcInfo, dstPath)
}
func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string) (err error) {
func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string, cpParam *cpConfig) (err error) {
if srcPath != "-" {
// Get an absolute source path.
srcPath, err = resolveLocalPath(srcPath)
@@ -250,7 +233,7 @@ func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string) (er
// Ignore any error and assume that the parent directory of the destination
// path exists, in which case the copy may still succeed. If there is any
// type of conflict (e.g., non-directory overwriting an existing directory
// or vice versia) the extraction will fail. If the destination simply did
// or vice versa) the extraction will fail. If the destination simply did
// not exist, but the parent directory does, the extraction will still
// succeed.
if err == nil {
@@ -271,7 +254,7 @@ func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string) (er
}
} else {
// Prepare source copy info.
srcInfo, err := archive.CopyInfoSourcePath(srcPath)
srcInfo, err := archive.CopyInfoSourcePath(srcPath, cpParam.followLink)
if err != nil {
return err
}
@@ -285,7 +268,7 @@ func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string) (er
// With the stat info about the local source as well as the
// destination, we have enough information to know whether we need to
// alter the archive that we upload so that when the server extracts
// it to the specified directory in the container we get the disired
// it to the specified directory in the container we get the desired
// copy behavior.
// See comments in the implementation of `archive.PrepareArchiveCopy`
@@ -304,22 +287,12 @@ func (cli *DockerCli) copyToContainer(srcPath, dstContainer, dstPath string) (er
content = preparedArchive
}
query := make(url.Values, 2)
query.Set("path", filepath.ToSlash(resolvedDstPath)) // Normalize the paths used in the API.
// Do not allow for an existing directory to be overwritten by a non-directory and vice versa.
query.Set("noOverwriteDirNonDir", "true")
urlStr := fmt.Sprintf("/containers/%s/archive?%s", dstContainer, query.Encode())
response, err := cli.stream("PUT", urlStr, &streamOpts{in: content})
if err != nil {
return err
}
defer response.body.Close()
if response.statusCode != http.StatusOK {
return fmt.Errorf("unexpected status code from daemon: %d", response.statusCode)
options := types.CopyToContainerOptions{
ContainerID: dstContainer,
Path: resolvedDstPath,
Content: content,
AllowOverwriteDirWithFile: false,
}
return nil
return cli.client.CopyToContainer(context.Background(), options)
}

View File

@@ -1,20 +1,21 @@
package client
import (
"encoding/base64"
"encoding/json"
"fmt"
"io"
"net/url"
"os"
"strings"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/graph/tags"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/jsonmessage"
"github.com/docker/docker/reference"
"github.com/docker/docker/registry"
"github.com/docker/docker/runconfig"
runconfigopts "github.com/docker/docker/runconfig/opts"
"github.com/docker/engine-api/client"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/container"
networktypes "github.com/docker/engine-api/types/network"
)
func (cli *DockerCli) pullImage(image string) error {
@@ -22,40 +23,44 @@ func (cli *DockerCli) pullImage(image string) error {
}
func (cli *DockerCli) pullImageCustomOut(image string, out io.Writer) error {
v := url.Values{}
repos, tag := parsers.ParseRepositoryTag(image)
// pull only the image tagged 'latest' if no tag was specified
if tag == "" {
tag = tags.DefaultTag
ref, err := reference.ParseNamed(image)
if err != nil {
return err
}
var tag string
switch x := reference.WithDefaultTag(ref).(type) {
case reference.Canonical:
tag = x.Digest().String()
case reference.NamedTagged:
tag = x.Tag()
}
v.Set("fromImage", repos)
v.Set("tag", tag)
// Resolve the Repository name from fqn to RepositoryInfo
repoInfo, err := registry.ParseRepositoryInfo(repos)
repoInfo, err := registry.ParseRepositoryInfo(ref)
if err != nil {
return err
}
// Resolve the Auth config relevant for this server
authConfig := registry.ResolveAuthConfig(cli.configFile, repoInfo.Index)
buf, err := json.Marshal(authConfig)
authConfig := cli.resolveAuthConfig(repoInfo.Index)
encodedAuth, err := encodeAuthToBase64(authConfig)
if err != nil {
return err
}
registryAuthHeader := []string{
base64.URLEncoding.EncodeToString(buf),
options := types.ImageCreateOptions{
Parent: ref.Name(),
Tag: tag,
RegistryAuth: encodedAuth,
}
sopts := &streamOpts{
rawTerminal: true,
out: out,
headers: map[string][]string{"X-Registry-Auth": registryAuthHeader},
}
if _, err := cli.stream("POST", "/images/create?"+v.Encode(), sopts); err != nil {
responseBody, err := cli.client.ImageCreate(context.Background(), options)
if err != nil {
return err
}
return nil
defer responseBody.Close()
return jsonmessage.DisplayJSONMessagesStream(responseBody, out, cli.outFd, cli.isTerminalOut, nil)
}
type cidFile struct {
@@ -77,14 +82,7 @@ func newCIDFile(path string) (*cidFile, error) {
return &cidFile{path: path, file: f}, nil
}
func (cli *DockerCli) createContainer(config *runconfig.Config, hostConfig *runconfig.HostConfig, cidfile, name string) (*types.ContainerCreateResponse, error) {
containerValues := url.Values{}
if name != "" {
containerValues.Set("name", name)
}
mergedConfig := runconfig.MergeConfigs(config, hostConfig)
func (cli *DockerCli) createContainer(config *container.Config, hostConfig *container.HostConfig, networkingConfig *networktypes.NetworkingConfig, cidfile, name string) (*types.ContainerCreateResponse, error) {
var containerIDFile *cidFile
if cidfile != "" {
var err error
@@ -94,56 +92,52 @@ func (cli *DockerCli) createContainer(config *runconfig.Config, hostConfig *runc
defer containerIDFile.Close()
}
repo, tag := parsers.ParseRepositoryTag(config.Image)
if tag == "" {
tag = tags.DefaultTag
var trustedRef reference.Canonical
_, ref, err := reference.ParseIDOrReference(config.Image)
if err != nil {
return nil, err
}
if ref != nil {
ref = reference.WithDefaultTag(ref)
ref := registry.ParseReference(tag)
var trustedRef registry.Reference
if isTrusted() && !ref.HasDigest() {
var err error
trustedRef, err = cli.trustedReference(repo, ref)
if err != nil {
return nil, err
}
config.Image = trustedRef.ImageName(repo)
}
//create the container
serverResp, err := cli.call("POST", "/containers/create?"+containerValues.Encode(), mergedConfig, nil)
//if image not found try to pull it
if serverResp.statusCode == 404 && strings.Contains(err.Error(), config.Image) {
fmt.Fprintf(cli.err, "Unable to find image '%s' locally\n", ref.ImageName(repo))
// we don't want to write to stdout anything apart from container.ID
if err = cli.pullImageCustomOut(config.Image, cli.err); err != nil {
return nil, err
}
if trustedRef != nil && !ref.HasDigest() {
repoInfo, err := registry.ParseRepositoryInfo(repo)
if ref, ok := ref.(reference.NamedTagged); ok && isTrusted() {
var err error
trustedRef, err = cli.trustedReference(ref)
if err != nil {
return nil, err
}
if err := cli.tagTrusted(repoInfo, trustedRef, ref); err != nil {
config.Image = trustedRef.String()
}
}
//create the container
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) && 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
if err = cli.pullImageCustomOut(config.Image, cli.err); err != nil {
return nil, err
}
}
// Retry
if serverResp, err = cli.call("POST", "/containers/create?"+containerValues.Encode(), mergedConfig, nil); err != nil {
if ref, ok := ref.(reference.NamedTagged); ok && trustedRef != nil {
if err := cli.tagTrusted(trustedRef, ref); err != nil {
return nil, err
}
}
// Retry
var retryErr error
response, retryErr = cli.client.ContainerCreate(context.Background(), config, hostConfig, networkingConfig, name)
if retryErr != nil {
return nil, retryErr
}
} else {
return nil, err
}
} else if err != nil {
return nil, err
}
defer serverResp.body.Close()
var response types.ContainerCreateResponse
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
return nil, err
}
for _, warning := range response.Warnings {
fmt.Fprintf(cli.err, "WARNING: %s\n", warning)
}
@@ -167,7 +161,8 @@ func (cli *DockerCli) CmdCreate(args ...string) error {
flName = cmd.String([]string{"-name"}, "", "Assign a name to the container")
)
config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
config, hostConfig, networkingConfig, cmd, err := runconfigopts.Parse(cmd, args)
if err != nil {
cmd.ReportError(err.Error(), true)
os.Exit(1)
@@ -176,7 +171,7 @@ func (cli *DockerCli) CmdCreate(args ...string) error {
cmd.Usage()
return nil
}
response, err := cli.createContainer(config, hostConfig, hostConfig.ContainerIDFile, *flName)
response, err := cli.createContainer(config, hostConfig, networkingConfig, hostConfig.ContainerIDFile, *flName)
if err != nil {
return err
}

View File

@@ -1,10 +1,10 @@
package client
import (
"encoding/json"
"fmt"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/archive"
flag "github.com/docker/docker/pkg/mflag"
@@ -27,18 +27,11 @@ func (cli *DockerCli) CmdDiff(args ...string) error {
return fmt.Errorf("Container name cannot be empty")
}
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/changes", nil, nil)
changes, err := cli.client.ContainerDiff(context.Background(), cmd.Arg(0))
if err != nil {
return err
}
defer serverResp.body.Close()
changes := []types.ContainerChange{}
if err := json.NewDecoder(serverResp.body).Decode(&changes); err != nil {
return err
}
for _, change := range changes {
var kind string
switch change.Kind {

View File

@@ -1,14 +1,24 @@
package client
import (
"net/url"
"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"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers/filters"
"github.com/docker/docker/pkg/timeutils"
"github.com/docker/engine-api/types"
eventtypes "github.com/docker/engine-api/types/events"
"github.com/docker/engine-api/types/filters"
)
// CmdEvents prints a live stream of real time events from the server.
@@ -16,7 +26,7 @@ import (
// Usage: docker events [OPTIONS]
func (cli *DockerCli) CmdEvents(args ...string) error {
cmd := Cli.Subcmd("events", nil, Cli.DockerCommands["events"].Description, true)
since := cmd.String([]string{"#since", "-since"}, "", "Show all events created since timestamp")
since := cmd.String([]string{"-since"}, "", "Show all events created since timestamp")
until := cmd.String([]string{"-until"}, "", "Stream events until this timestamp")
flFilter := opts.NewListOpts(nil)
cmd.Var(&flFilter, []string{"f", "-filter"}, "Filter output based on conditions provided")
@@ -24,10 +34,7 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
cmd.ParseFlags(args, true)
var (
v = url.Values{}
eventFilterArgs = filters.Args{}
)
eventFilterArgs := filters.NewArgs()
// Consolidate all filter flags, and sanity check them early.
// They'll get process in the daemon/server.
@@ -38,26 +45,102 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
return err
}
}
ref := time.Now()
if *since != "" {
v.Set("since", timeutils.GetTimestamp(*since, ref))
options := types.EventsOptions{
Since: *since,
Until: *until,
Filters: eventFilterArgs,
}
if *until != "" {
v.Set("until", timeutils.GetTimestamp(*until, ref))
responseBody, err := cli.client.Events(context.Background(), options)
if err != nil {
return err
}
if len(eventFilterArgs) > 0 {
filterJSON, err := filters.ToParam(eventFilterArgs)
defer responseBody.Close()
return streamEvents(responseBody, cli.out)
}
// streamEvents decodes prints the incoming events in the provided output.
func streamEvents(input io.Reader, output io.Writer) error {
return decodeEvents(input, func(event eventtypes.Message, err error) error {
if err != nil {
return err
}
v.Set("filters", filterJSON)
}
sopts := &streamOpts{
rawTerminal: true,
out: cli.out,
}
if _, err := cli.stream("GET", "/events?"+v.Encode(), sopts); err != nil {
return err
printOutput(event, output)
return nil
})
}
type eventProcessor func(event eventtypes.Message, err error) error
func decodeEvents(input io.Reader, ep eventProcessor) error {
dec := json.NewDecoder(input)
for {
var event eventtypes.Message
err := dec.Decode(&event)
if err != nil && err == io.EOF {
break
}
if procErr := ep(event, err); procErr != nil {
return procErr
}
}
return nil
}
// printOutput prints all types of event information.
// Each output includes the event type, actor id, name and action.
// Actor attributes are printed at the end if the actor has any.
func printOutput(event eventtypes.Message, output io.Writer) {
if event.TimeNano != 0 {
fmt.Fprintf(output, "%s ", time.Unix(0, event.TimeNano).Format(jsonlog.RFC3339NanoFixed))
} else if event.Time != 0 {
fmt.Fprintf(output, "%s ", time.Unix(event.Time, 0).Format(jsonlog.RFC3339NanoFixed))
}
fmt.Fprintf(output, "%s %s %s", event.Type, event.Action, event.Actor.ID)
if len(event.Actor.Attributes) > 0 {
var attrs []string
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

@@ -1,15 +1,16 @@
package client
import (
"encoding/json"
"fmt"
"io"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/promise"
"github.com/docker/docker/runconfig"
"github.com/docker/engine-api/types"
)
// CmdExec runs a command in a running container.
@@ -17,44 +18,44 @@ import (
// Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
func (cli *DockerCli) CmdExec(args ...string) error {
cmd := Cli.Subcmd("exec", []string{"CONTAINER COMMAND [ARG...]"}, Cli.DockerCommands["exec"].Description, true)
detachKeys := cmd.String([]string{"-detach-keys"}, "", "Override the key sequence for detaching a container")
execConfig, err := runconfig.ParseExec(cmd, args)
execConfig, err := ParseExec(cmd, args)
// just in case the ParseExec does not exit
if execConfig.Container == "" || err != nil {
return Cli.StatusError{StatusCode: 1}
}
serverResp, err := cli.call("POST", "/containers/"+execConfig.Container+"/exec", execConfig, nil)
if *detachKeys != "" {
cli.configFile.DetachKeys = *detachKeys
}
// Send client escape keys
execConfig.DetachKeys = cli.configFile.DetachKeys
response, err := cli.client.ContainerExecCreate(context.Background(), *execConfig)
if err != nil {
return err
}
defer serverResp.body.Close()
var response types.ContainerExecCreateResponse
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
return err
}
execID := response.ID
if execID == "" {
fmt.Fprintf(cli.out, "exec ID empty")
return nil
}
//Temp struct for execStart so that we don't need to transfer all the execConfig
execStartCheck := &types.ExecStartCheck{
Detach: execConfig.Detach,
Tty: execConfig.Tty,
}
if !execConfig.Detach {
if err := cli.CheckTtyInput(execConfig.AttachStdin, execConfig.Tty); err != nil {
return err
}
} else {
if _, _, err := readBody(cli.call("POST", "/exec/"+execID+"/start", execStartCheck, nil)); err != nil {
execStartCheck := types.ExecStartCheck{
Detach: execConfig.Detach,
Tty: execConfig.Tty,
}
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()
@@ -66,18 +67,9 @@ func (cli *DockerCli) CmdExec(args ...string) error {
var (
out, stderr io.Writer
in io.ReadCloser
hijacked = make(chan io.Closer)
errCh chan error
)
// Block the return until the chan gets closed
defer func() {
logrus.Debugf("End of CmdExec(), Waiting for hijack to finish.")
if _, ok := <-hijacked; ok {
fmt.Fprintln(cli.err, "Hijack did not finish (chan still open)")
}
}()
if execConfig.AttachStdin {
in = cli.in
}
@@ -91,24 +83,21 @@ func (cli *DockerCli) CmdExec(args ...string) error {
stderr = cli.err
}
}
errCh = promise.Go(func() error {
return cli.hijack("POST", "/exec/"+execID+"/start", execConfig.Tty, in, out, stderr, hijacked, execConfig)
})
// Acknowledge the hijack before starting
select {
case closer := <-hijacked:
// Make sure that hijack gets closed when returning. (result
// in closing hijack chan and freeing server's goroutines.
if closer != nil {
defer closer.Close()
}
case err := <-errCh:
if err != nil {
logrus.Debugf("Error hijack: %s", err)
resp, err := cli.client.ContainerExecAttach(context.Background(), execID, *execConfig)
if err != nil {
return err
}
defer resp.Close()
if in != nil && execConfig.Tty {
if err := cli.setRawTerminal(); err != nil {
return err
}
defer cli.restoreTerminal(in)
}
errCh = promise.Go(func() error {
return cli.holdHijackedConnection(execConfig.Tty, in, out, stderr, resp)
})
if execConfig.Tty && cli.isTerminalIn {
if err := cli.monitorTtySize(execID, true); err != nil {
@@ -132,3 +121,46 @@ func (cli *DockerCli) CmdExec(args ...string) error {
return nil
}
// ParseExec parses the specified args for the specified command and generates
// an ExecConfig from it.
// If the minimal number of specified args is not right or if specified args are
// not valid, it will return an error.
func ParseExec(cmd *flag.FlagSet, args []string) (*types.ExecConfig, error) {
var (
flStdin = cmd.Bool([]string{"i", "-interactive"}, false, "Keep STDIN open even if not attached")
flTty = cmd.Bool([]string{"t", "-tty"}, false, "Allocate a pseudo-TTY")
flDetach = cmd.Bool([]string{"d", "-detach"}, false, "Detached mode: run command in the background")
flUser = cmd.String([]string{"u", "-user"}, "", "Username or UID (format: <name|uid>[:<group|gid>])")
flPrivileged = cmd.Bool([]string{"-privileged"}, false, "Give extended privileges to the command")
execCmd []string
container string
)
cmd.Require(flag.Min, 2)
if err := cmd.ParseFlags(args, true); err != nil {
return nil, err
}
container = cmd.Arg(0)
parsedArgs := cmd.Args()
execCmd = parsedArgs[1:]
execConfig := &types.ExecConfig{
User: *flUser,
Privileged: *flPrivileged,
Tty: *flTty,
Cmd: execCmd,
Container: container,
Detach: *flDetach,
}
// If -d is not set, attach to everything by default
if !*flDetach {
execConfig.AttachStdout = true
execConfig.AttachStderr = true
if *flStdin {
execConfig.AttachStdin = true
}
}
return execConfig, nil
}

View File

@@ -1,4 +1,4 @@
package runconfig
package client
import (
"fmt"
@@ -6,6 +6,7 @@ import (
"testing"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/engine-api/types"
)
type arguments struct {
@@ -18,7 +19,7 @@ func TestParseExec(t *testing.T) {
&arguments{[]string{"-u"}}: fmt.Errorf("flag needs an argument: -u"),
&arguments{[]string{"--user"}}: fmt.Errorf("flag needs an argument: --user"),
}
valids := map[*arguments]*ExecConfig{
valids := map[*arguments]*types.ExecConfig{
&arguments{
[]string{"container", "command"},
}: {
@@ -92,7 +93,7 @@ func TestParseExec(t *testing.T) {
}
}
func compareExecConfig(config1 *ExecConfig, config2 *ExecConfig) bool {
func compareExecConfig(config1 *types.ExecConfig, config2 *types.ExecConfig) bool {
if config1.AttachStderr != config2.AttachStderr {
return false
}

View File

@@ -2,7 +2,9 @@ package client
import (
"errors"
"os"
"io"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -20,27 +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.")
}
image := cmd.Arg(0)
sopts := &streamOpts{
rawTerminal: true,
out: output,
responseBody, err := cli.client.ContainerExport(context.Background(), cmd.Arg(0))
if err != nil {
return err
}
if _, err := cli.stream("GET", "/containers/"+image+"/export", sopts); err != nil {
defer responseBody.Close()
if *outfile == "" {
_, err := io.Copy(cli.out, responseBody)
return err
}
return nil
return copyToFile(*outfile, responseBody)
}

View File

@@ -1,4 +1,4 @@
package ps
package formatter
import (
"fmt"
@@ -7,35 +7,41 @@ import (
"time"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/pkg/stringutils"
"github.com/docker/docker/pkg/units"
"github.com/docker/engine-api/types"
"github.com/docker/go-units"
)
const (
tableKey = "table"
idHeader = "CONTAINER ID"
imageHeader = "IMAGE"
namesHeader = "NAMES"
commandHeader = "COMMAND"
createdAtHeader = "CREATED AT"
runningForHeader = "CREATED"
statusHeader = "STATUS"
portsHeader = "PORTS"
sizeHeader = "SIZE"
labelsHeader = "LABELS"
containerIDHeader = "CONTAINER ID"
imageHeader = "IMAGE"
namesHeader = "NAMES"
commandHeader = "COMMAND"
createdSinceHeader = "CREATED"
createdAtHeader = "CREATED AT"
runningForHeader = "CREATED"
statusHeader = "STATUS"
portsHeader = "PORTS"
sizeHeader = "SIZE"
labelsHeader = "LABELS"
imageIDHeader = "IMAGE ID"
repositoryHeader = "REPOSITORY"
tagHeader = "TAG"
digestHeader = "DIGEST"
mountsHeader = "MOUNTS"
)
type containerContext struct {
trunc bool
header []string
c types.Container
baseSubContext
trunc bool
c types.Container
}
func (c *containerContext) ID() string {
c.addHeader(idHeader)
c.addHeader(containerIDHeader)
if c.trunc {
return stringid.TruncateID(c.c.ID)
}
@@ -62,8 +68,8 @@ func (c *containerContext) Image() string {
return "<no image>"
}
if c.trunc {
if stringid.TruncateID(c.c.ImageID) == stringid.TruncateID(c.c.Image) {
return stringutils.Truncate(c.c.Image, 12)
if trunc := stringid.TruncateID(c.c.ImageID); trunc == stringid.TruncateID(c.c.Image) {
return trunc
}
}
return c.c.Image
@@ -137,14 +143,90 @@ func (c *containerContext) Label(name string) string {
return c.c.Labels[name]
}
func (c *containerContext) fullHeader() string {
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
i types.Image
repo string
tag string
digest string
}
func (c *imageContext) ID() string {
c.addHeader(imageIDHeader)
if c.trunc {
return stringid.TruncateID(c.i.ID)
}
return c.i.ID
}
func (c *imageContext) Repository() string {
c.addHeader(repositoryHeader)
return c.repo
}
func (c *imageContext) Tag() string {
c.addHeader(tagHeader)
return c.tag
}
func (c *imageContext) Digest() string {
c.addHeader(digestHeader)
return c.digest
}
func (c *imageContext) CreatedSince() string {
c.addHeader(createdSinceHeader)
createdAt := time.Unix(int64(c.i.Created), 0)
return units.HumanDuration(time.Now().UTC().Sub(createdAt))
}
func (c *imageContext) CreatedAt() string {
c.addHeader(createdAtHeader)
return time.Unix(int64(c.i.Created), 0).String()
}
func (c *imageContext) Size() string {
c.addHeader(sizeHeader)
return units.HumanSize(float64(c.i.Size))
}
type subContext interface {
fullHeader() string
addHeader(header string)
}
type baseSubContext struct {
header []string
}
func (c *baseSubContext) fullHeader() string {
if c.header == nil {
return ""
}
return strings.Join(c.header, "\t")
}
func (c *containerContext) addHeader(header string) {
func (c *baseSubContext) addHeader(header string) {
if c.header == nil {
c.header = []string{}
}

View File

@@ -1,4 +1,4 @@
package ps
package formatter
import (
"reflect"
@@ -6,13 +6,13 @@ import (
"testing"
"time"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/engine-api/types"
)
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 {
@@ -22,8 +22,8 @@ func TestContainerPsContext(t *testing.T) {
expHeader string
call func() string
}{
{types.Container{ID: containerID}, true, stringid.TruncateID(containerID), idHeader, ctx.ID},
{types.Container{ID: containerID}, false, containerID, idHeader, ctx.ID},
{types.Container{ID: containerID}, true, stringid.TruncateID(containerID), containerIDHeader, ctx.ID},
{types.Container{ID: containerID}, false, containerID, containerIDHeader, ctx.ID},
{types.Container{Names: []string{"/foobar_baz"}}, true, "foobar_baz", namesHeader, ctx.Names},
{types.Container{Image: "ubuntu"}, true, "ubuntu", imageHeader, ctx.Image},
{types.Container{Image: "verylongimagename"}, true, "verylongimagename", imageHeader, ctx.Image},
@@ -55,31 +55,14 @@ 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 {
ctx = containerContext{c: c.container, trunc: c.trunc}
v := c.call()
if strings.Contains(v, ",") {
// comma-separated values means probably a map input, which won't
// be guaranteed to have the same order as our expected value
// We'll create maps and use reflect.DeepEquals to check instead:
entriesMap := make(map[string]string)
expMap := make(map[string]string)
entries := strings.Split(v, ",")
expectedEntries := strings.Split(c.expValue, ",")
for _, entry := range entries {
keyval := strings.Split(entry, "=")
entriesMap[keyval[0]] = keyval[1]
}
for _, expected := range expectedEntries {
keyval := strings.Split(expected, "=")
expMap[keyval[0]] = keyval[1]
}
if !reflect.DeepEqual(expMap, entriesMap) {
t.Fatalf("Expected entries: %v, got: %v", c.expValue, v)
}
compareMultipleValues(t, v, c.expValue)
} else if v != c.expValue {
t.Fatalf("Expected %s, was %s\n", c.expValue, v)
}
@@ -124,3 +107,86 @@ func TestContainerPsContext(t *testing.T) {
}
}
func TestImagesContext(t *testing.T) {
imageID := stringid.GenerateRandomID()
unix := time.Now().Unix()
var ctx imageContext
cases := []struct {
imageCtx imageContext
expValue string
expHeader string
call func() string
}{
{imageContext{
i: types.Image{ID: imageID},
trunc: true,
}, stringid.TruncateID(imageID), imageIDHeader, ctx.ID},
{imageContext{
i: types.Image{ID: imageID},
trunc: false,
}, imageID, imageIDHeader, ctx.ID},
{imageContext{
i: types.Image{Size: 10},
trunc: true,
}, "10 B", sizeHeader, ctx.Size},
{imageContext{
i: types.Image{Created: unix},
trunc: true,
}, time.Unix(unix, 0).String(), createdAtHeader, ctx.CreatedAt},
// FIXME
// {imageContext{
// i: types.Image{Created: unix},
// trunc: true,
// }, units.HumanDuration(time.Unix(unix, 0)), createdSinceHeader, ctx.CreatedSince},
{imageContext{
i: types.Image{},
repo: "busybox",
}, "busybox", repositoryHeader, ctx.Repository},
{imageContext{
i: types.Image{},
tag: "latest",
}, "latest", tagHeader, ctx.Tag},
{imageContext{
i: types.Image{},
digest: "sha256:d149ab53f8718e987c3a3024bb8aa0e2caadf6c0328f1d9d850b2a2a67f2819a",
}, "sha256:d149ab53f8718e987c3a3024bb8aa0e2caadf6c0328f1d9d850b2a2a67f2819a", digestHeader, ctx.Digest},
}
for _, c := range cases {
ctx = c.imageCtx
v := c.call()
if strings.Contains(v, ",") {
compareMultipleValues(t, v, c.expValue)
} else if v != c.expValue {
t.Fatalf("Expected %s, was %s\n", c.expValue, v)
}
h := ctx.fullHeader()
if h != c.expHeader {
t.Fatalf("Expected %s, was %s\n", c.expHeader, h)
}
}
}
func compareMultipleValues(t *testing.T, value, expected string) {
// comma-separated values means probably a map input, which won't
// be guaranteed to have the same order as our expected value
// We'll create maps and use reflect.DeepEquals to check instead:
entriesMap := make(map[string]string)
expMap := make(map[string]string)
entries := strings.Split(value, ",")
expectedEntries := strings.Split(expected, ",")
for _, entry := range entries {
keyval := strings.Split(entry, "=")
entriesMap[keyval[0]] = keyval[1]
}
for _, expected := range expectedEntries {
keyval := strings.Split(expected, "=")
expMap[keyval[0]] = keyval[1]
}
if !reflect.DeepEqual(expMap, entriesMap) {
t.Fatalf("Expected entries: %v, got: %v", expected, value)
}
}

View File

@@ -0,0 +1,255 @@
package formatter
import (
"bytes"
"fmt"
"io"
"strings"
"text/tabwriter"
"text/template"
"github.com/docker/docker/reference"
"github.com/docker/docker/utils/templates"
"github.com/docker/engine-api/types"
)
const (
tableFormatKey = "table"
rawFormatKey = "raw"
defaultContainerTableFormat = "table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.RunningFor}} ago\t{{.Status}}\t{{.Ports}}\t{{.Names}}"
defaultImageTableFormat = "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedSince}} ago\t{{.Size}}"
defaultImageTableFormatWithDigest = "table {{.Repository}}\t{{.Tag}}\t{{.Digest}}\t{{.ID}}\t{{.CreatedSince}} ago\t{{.Size}}"
defaultQuietFormat = "{{.ID}}"
)
// Context contains information required by the formatter to print the output as desired.
type Context struct {
// Output is the output stream to which the formatted string is written.
Output io.Writer
// Format is used to choose raw, table or custom format for the output.
Format string
// Quiet when set to true will simply print minimal information.
Quiet bool
// Trunc when set to true will truncate the output of certain fields such as Container ID.
Trunc bool
// internal element
table bool
finalFormat string
header string
buffer *bytes.Buffer
}
func (c *Context) preformat() {
c.finalFormat = c.Format
if strings.HasPrefix(c.Format, tableKey) {
c.table = true
c.finalFormat = c.finalFormat[len(tableKey):]
}
c.finalFormat = strings.Trim(c.finalFormat, " ")
r := strings.NewReplacer(`\t`, "\t", `\n`, "\n")
c.finalFormat = r.Replace(c.finalFormat)
}
func (c *Context) parseFormat() (*template.Template, error) {
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)
}
return tmpl, err
}
func (c *Context) postformat(tmpl *template.Template, subContext subContext) {
if c.table {
if len(c.header) == 0 {
// if we still don't have a header, we didn't have any containers so we need to fake it to get the right headers from the template
tmpl.Execute(bytes.NewBufferString(""), subContext)
c.header = subContext.fullHeader()
}
t := tabwriter.NewWriter(c.Output, 20, 1, 3, ' ', 0)
t.Write([]byte(c.header))
t.Write([]byte("\n"))
c.buffer.WriteTo(t)
t.Flush()
} else {
c.buffer.WriteTo(c.Output)
}
}
func (c *Context) contextFormat(tmpl *template.Template, subContext subContext) error {
if err := tmpl.Execute(c.buffer, subContext); err != nil {
c.buffer = bytes.NewBufferString(fmt.Sprintf("Template parsing error: %v\n", err))
c.buffer.WriteTo(c.Output)
return err
}
if c.table && len(c.header) == 0 {
c.header = subContext.fullHeader()
}
c.buffer.WriteString("\n")
return nil
}
// ContainerContext contains container specific information required by the formater, encapsulate a Context struct.
type ContainerContext struct {
Context
// Size when set to true will display the size of the output.
Size bool
// Containers
Containers []types.Container
}
// ImageContext contains image specific information required by the formater, encapsulate a Context struct.
type ImageContext struct {
Context
Digest bool
// Images
Images []types.Image
}
func (ctx ContainerContext) Write() {
switch ctx.Format {
case tableFormatKey:
ctx.Format = defaultContainerTableFormat
if ctx.Quiet {
ctx.Format = defaultQuietFormat
}
case rawFormatKey:
if ctx.Quiet {
ctx.Format = `container_id: {{.ID}}`
} else {
ctx.Format = `container_id: {{.ID}}
image: {{.Image}}
command: {{.Command}}
created_at: {{.CreatedAt}}
status: {{.Status}}
names: {{.Names}}
labels: {{.Labels}}
ports: {{.Ports}}
`
if ctx.Size {
ctx.Format += `size: {{.Size}}
`
}
}
}
ctx.buffer = bytes.NewBufferString("")
ctx.preformat()
if ctx.table && ctx.Size {
ctx.finalFormat += "\t{{.Size}}"
}
tmpl, err := ctx.parseFormat()
if err != nil {
return
}
for _, container := range ctx.Containers {
containerCtx := &containerContext{
trunc: ctx.Trunc,
c: container,
}
err = ctx.contextFormat(tmpl, containerCtx)
if err != nil {
return
}
}
ctx.postformat(tmpl, &containerContext{})
}
func (ctx ImageContext) Write() {
switch ctx.Format {
case tableFormatKey:
ctx.Format = defaultImageTableFormat
if ctx.Digest {
ctx.Format = defaultImageTableFormatWithDigest
}
if ctx.Quiet {
ctx.Format = defaultQuietFormat
}
case rawFormatKey:
if ctx.Quiet {
ctx.Format = `image_id: {{.ID}}`
} else {
if ctx.Digest {
ctx.Format = `repository: {{ .Repository }}
tag: {{.Tag}}
digest: {{.Digest}}
image_id: {{.ID}}
created_at: {{.CreatedAt}}
virtual_size: {{.Size}}
`
} else {
ctx.Format = `repository: {{ .Repository }}
tag: {{.Tag}}
image_id: {{.ID}}
created_at: {{.CreatedAt}}
virtual_size: {{.Size}}
`
}
}
}
ctx.buffer = bytes.NewBufferString("")
ctx.preformat()
if ctx.table && ctx.Digest && !strings.Contains(ctx.Format, "{{.Digest}}") {
ctx.finalFormat += "\t{{.Digest}}"
}
tmpl, err := ctx.parseFormat()
if err != nil {
return
}
for _, image := range ctx.Images {
repoTags := image.RepoTags
repoDigests := image.RepoDigests
if len(repoTags) == 1 && repoTags[0] == "<none>:<none>" && len(repoDigests) == 1 && repoDigests[0] == "<none>@<none>" {
// dangling image - clear out either repoTags or repoDigests so we only show it once below
repoDigests = []string{}
}
// combine the tags and digests lists
tagsAndDigests := append(repoTags, repoDigests...)
for _, repoAndRef := range tagsAndDigests {
repo := "<none>"
tag := "<none>"
digest := "<none>"
if !strings.HasPrefix(repoAndRef, "<none>") {
ref, err := reference.ParseNamed(repoAndRef)
if err != nil {
continue
}
repo = ref.Name()
switch x := ref.(type) {
case reference.Canonical:
digest = x.Digest().String()
case reference.NamedTagged:
tag = x.Tag()
}
}
imageCtx := &imageContext{
trunc: ctx.Trunc,
i: image,
repo: repo,
tag: tag,
digest: digest,
}
err = ctx.contextFormat(tmpl, imageCtx)
if err != nil {
return
}
}
}
ctx.postformat(tmpl, &imageContext{})
}

View File

@@ -0,0 +1,535 @@
package formatter
import (
"bytes"
"fmt"
"testing"
"time"
"github.com/docker/engine-api/types"
)
func TestContainerContextWrite(t *testing.T) {
unixTime := time.Now().AddDate(0, 0, -1).Unix()
expectedTime := time.Unix(unixTime, 0).String()
contexts := []struct {
context ContainerContext
expected string
}{
// Errors
{
ContainerContext{
Context: Context{
Format: "{{InvalidFunction}}",
},
},
`Template parsing error: template: :1: function "InvalidFunction" not defined
`,
},
{
ContainerContext{
Context: Context{
Format: "{{nil}}",
},
},
`Template parsing error: template: :1:2: executing "" at <nil>: nil is not a command
`,
},
// Table Format
{
ContainerContext{
Context: Context{
Format: "table",
},
},
`CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
containerID1 ubuntu "" 24 hours ago foobar_baz
containerID2 ubuntu "" 24 hours ago foobar_bar
`,
},
{
ContainerContext{
Context: Context{
Format: "table {{.Image}}",
},
},
"IMAGE\nubuntu\nubuntu\n",
},
{
ContainerContext{
Context: Context{
Format: "table {{.Image}}",
},
Size: true,
},
"IMAGE SIZE\nubuntu 0 B\nubuntu 0 B\n",
},
{
ContainerContext{
Context: Context{
Format: "table {{.Image}}",
Quiet: true,
},
},
"IMAGE\nubuntu\nubuntu\n",
},
{
ContainerContext{
Context: Context{
Format: "table",
Quiet: true,
},
},
"containerID1\ncontainerID2\n",
},
// Raw Format
{
ContainerContext{
Context: Context{
Format: "raw",
},
},
fmt.Sprintf(`container_id: containerID1
image: ubuntu
command: ""
created_at: %s
status:
names: foobar_baz
labels:
ports:
container_id: containerID2
image: ubuntu
command: ""
created_at: %s
status:
names: foobar_bar
labels:
ports:
`, expectedTime, expectedTime),
},
{
ContainerContext{
Context: Context{
Format: "raw",
},
Size: true,
},
fmt.Sprintf(`container_id: containerID1
image: ubuntu
command: ""
created_at: %s
status:
names: foobar_baz
labels:
ports:
size: 0 B
container_id: containerID2
image: ubuntu
command: ""
created_at: %s
status:
names: foobar_bar
labels:
ports:
size: 0 B
`, expectedTime, expectedTime),
},
{
ContainerContext{
Context: Context{
Format: "raw",
Quiet: true,
},
},
"container_id: containerID1\ncontainer_id: containerID2\n",
},
// Custom Format
{
ContainerContext{
Context: Context{
Format: "{{.Image}}",
},
},
"ubuntu\nubuntu\n",
},
{
ContainerContext{
Context: Context{
Format: "{{.Image}}",
},
Size: true,
},
"ubuntu\nubuntu\n",
},
}
for _, context := range contexts {
containers := []types.Container{
{ID: "containerID1", Names: []string{"/foobar_baz"}, Image: "ubuntu", Created: unixTime},
{ID: "containerID2", Names: []string{"/foobar_bar"}, Image: "ubuntu", Created: unixTime},
}
out := bytes.NewBufferString("")
context.context.Output = out
context.context.Containers = containers
context.context.Write()
actual := out.String()
if actual != context.expected {
t.Fatalf("Expected \n%s, got \n%s", context.expected, actual)
}
// Clean buffer
out.Reset()
}
}
func TestContainerContextWriteWithNoContainers(t *testing.T) {
out := bytes.NewBufferString("")
containers := []types.Container{}
contexts := []struct {
context ContainerContext
expected string
}{
{
ContainerContext{
Context: Context{
Format: "{{.Image}}",
Output: out,
},
},
"",
},
{
ContainerContext{
Context: Context{
Format: "table {{.Image}}",
Output: out,
},
},
"IMAGE\n",
},
{
ContainerContext{
Context: Context{
Format: "{{.Image}}",
Output: out,
},
Size: true,
},
"",
},
{
ContainerContext{
Context: Context{
Format: "table {{.Image}}",
Output: out,
},
Size: true,
},
"IMAGE SIZE\n",
},
}
for _, context := range contexts {
context.context.Containers = containers
context.context.Write()
actual := out.String()
if actual != context.expected {
t.Fatalf("Expected \n%s, got \n%s", context.expected, actual)
}
// Clean buffer
out.Reset()
}
}
func TestImageContextWrite(t *testing.T) {
unixTime := time.Now().AddDate(0, 0, -1).Unix()
expectedTime := time.Unix(unixTime, 0).String()
contexts := []struct {
context ImageContext
expected string
}{
// Errors
{
ImageContext{
Context: Context{
Format: "{{InvalidFunction}}",
},
},
`Template parsing error: template: :1: function "InvalidFunction" not defined
`,
},
{
ImageContext{
Context: Context{
Format: "{{nil}}",
},
},
`Template parsing error: template: :1:2: executing "" at <nil>: nil is not a command
`,
},
// Table Format
{
ImageContext{
Context: Context{
Format: "table",
},
},
`REPOSITORY TAG IMAGE ID CREATED SIZE
image tag1 imageID1 24 hours ago 0 B
image <none> imageID1 24 hours ago 0 B
image tag2 imageID2 24 hours ago 0 B
<none> <none> imageID3 24 hours ago 0 B
`,
},
{
ImageContext{
Context: Context{
Format: "table {{.Repository}}",
},
},
"REPOSITORY\nimage\nimage\nimage\n<none>\n",
},
{
ImageContext{
Context: Context{
Format: "table {{.Repository}}",
},
Digest: true,
},
`REPOSITORY DIGEST
image <none>
image sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
image <none>
<none> <none>
`,
},
{
ImageContext{
Context: Context{
Format: "table {{.Repository}}",
Quiet: true,
},
},
"REPOSITORY\nimage\nimage\nimage\n<none>\n",
},
{
ImageContext{
Context: Context{
Format: "table",
Quiet: true,
},
},
"imageID1\nimageID1\nimageID2\nimageID3\n",
},
{
ImageContext{
Context: Context{
Format: "table",
Quiet: false,
},
Digest: true,
},
`REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
image tag1 <none> imageID1 24 hours ago 0 B
image <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf imageID1 24 hours ago 0 B
image tag2 <none> imageID2 24 hours ago 0 B
<none> <none> <none> imageID3 24 hours ago 0 B
`,
},
{
ImageContext{
Context: Context{
Format: "table",
Quiet: true,
},
Digest: true,
},
"imageID1\nimageID1\nimageID2\nimageID3\n",
},
// Raw Format
{
ImageContext{
Context: Context{
Format: "raw",
},
},
fmt.Sprintf(`repository: image
tag: tag1
image_id: imageID1
created_at: %s
virtual_size: 0 B
repository: image
tag: <none>
image_id: imageID1
created_at: %s
virtual_size: 0 B
repository: image
tag: tag2
image_id: imageID2
created_at: %s
virtual_size: 0 B
repository: <none>
tag: <none>
image_id: imageID3
created_at: %s
virtual_size: 0 B
`, expectedTime, expectedTime, expectedTime, expectedTime),
},
{
ImageContext{
Context: Context{
Format: "raw",
},
Digest: true,
},
fmt.Sprintf(`repository: image
tag: tag1
digest: <none>
image_id: imageID1
created_at: %s
virtual_size: 0 B
repository: image
tag: <none>
digest: sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
image_id: imageID1
created_at: %s
virtual_size: 0 B
repository: image
tag: tag2
digest: <none>
image_id: imageID2
created_at: %s
virtual_size: 0 B
repository: <none>
tag: <none>
digest: <none>
image_id: imageID3
created_at: %s
virtual_size: 0 B
`, expectedTime, expectedTime, expectedTime, expectedTime),
},
{
ImageContext{
Context: Context{
Format: "raw",
Quiet: true,
},
},
`image_id: imageID1
image_id: imageID1
image_id: imageID2
image_id: imageID3
`,
},
// Custom Format
{
ImageContext{
Context: Context{
Format: "{{.Repository}}",
},
},
"image\nimage\nimage\n<none>\n",
},
{
ImageContext{
Context: Context{
Format: "{{.Repository}}",
},
Digest: true,
},
"image\nimage\nimage\n<none>\n",
},
}
for _, context := range contexts {
images := []types.Image{
{ID: "imageID1", RepoTags: []string{"image:tag1"}, RepoDigests: []string{"image@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"}, Created: unixTime},
{ID: "imageID2", RepoTags: []string{"image:tag2"}, Created: unixTime},
{ID: "imageID3", RepoTags: []string{"<none>:<none>"}, RepoDigests: []string{"<none>@<none>"}, Created: unixTime},
}
out := bytes.NewBufferString("")
context.context.Output = out
context.context.Images = images
context.context.Write()
actual := out.String()
if actual != context.expected {
t.Fatalf("Expected \n%s, got \n%s", context.expected, actual)
}
// Clean buffer
out.Reset()
}
}
func TestImageContextWriteWithNoImage(t *testing.T) {
out := bytes.NewBufferString("")
images := []types.Image{}
contexts := []struct {
context ImageContext
expected string
}{
{
ImageContext{
Context: Context{
Format: "{{.Repository}}",
Output: out,
},
},
"",
},
{
ImageContext{
Context: Context{
Format: "table {{.Repository}}",
Output: out,
},
},
"REPOSITORY\n",
},
{
ImageContext{
Context: Context{
Format: "{{.Repository}}",
Output: out,
},
Digest: true,
},
"",
},
{
ImageContext{
Context: Context{
Format: "table {{.Repository}}",
Output: out,
},
Digest: true,
},
"REPOSITORY DIGEST\n",
},
}
for _, context := range contexts {
context.context.Images = images
context.context.Write()
actual := out.String()
if actual != context.expected {
t.Fatalf("Expected \n%s, got \n%s", context.expected, actual)
}
// Clean buffer
out.Reset()
}
}

View File

@@ -1,217 +1,23 @@
package client
import (
"crypto/tls"
"errors"
"fmt"
"io"
"net"
"net/http"
"net/http/httputil"
"os"
"runtime"
"strings"
"time"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/term"
"github.com/docker/engine-api/types"
)
type tlsClientCon struct {
*tls.Conn
rawConn net.Conn
}
func (c *tlsClientCon) CloseWrite() error {
// Go standard tls.Conn doesn't provide the CloseWrite() method so we do it
// on its underlying connection.
if cwc, ok := c.rawConn.(interface {
CloseWrite() error
}); ok {
return cwc.CloseWrite()
}
return nil
}
func tlsDial(network, addr string, config *tls.Config) (net.Conn, error) {
return tlsDialWithDialer(new(net.Dialer), network, addr, config)
}
// We need to copy Go's implementation of tls.Dial (pkg/cryptor/tls/tls.go) in
// order to return our custom tlsClientCon struct which holds both the tls.Conn
// object _and_ its underlying raw connection. The rationale for this is that
// we need to be able to close the write end of the connection when attaching,
// which tls.Conn does not provide.
func tlsDialWithDialer(dialer *net.Dialer, network, addr string, config *tls.Config) (net.Conn, error) {
// We want the Timeout and Deadline values from dialer to cover the
// whole process: TCP connection and TLS handshake. This means that we
// also need to start our own timers now.
timeout := dialer.Timeout
if !dialer.Deadline.IsZero() {
deadlineTimeout := dialer.Deadline.Sub(time.Now())
if timeout == 0 || deadlineTimeout < timeout {
timeout = deadlineTimeout
}
}
var errChannel chan error
if timeout != 0 {
errChannel = make(chan error, 2)
time.AfterFunc(timeout, func() {
errChannel <- errors.New("")
})
}
rawConn, err := dialer.Dial(network, addr)
if err != nil {
return nil, err
}
// When we set up a TCP connection for hijack, there could be long periods
// of inactivity (a long running command with no output) that in certain
// network setups may cause ECONNTIMEOUT, leaving the client in an unknown
// state. Setting TCP KeepAlive on the socket connection will prohibit
// ECONNTIMEOUT unless the socket connection truly is broken
if tcpConn, ok := rawConn.(*net.TCPConn); ok {
tcpConn.SetKeepAlive(true)
tcpConn.SetKeepAlivePeriod(30 * time.Second)
}
colonPos := strings.LastIndex(addr, ":")
if colonPos == -1 {
colonPos = len(addr)
}
hostname := addr[:colonPos]
// If no ServerName is set, infer the ServerName
// from the hostname we're connecting to.
if config.ServerName == "" {
// Make a copy to avoid polluting argument or default.
c := *config
c.ServerName = hostname
config = &c
}
conn := tls.Client(rawConn, config)
if timeout == 0 {
err = conn.Handshake()
} else {
go func() {
errChannel <- conn.Handshake()
}()
err = <-errChannel
}
if err != nil {
rawConn.Close()
return nil, err
}
// This is Docker difference with standard's crypto/tls package: returned a
// wrapper which holds both the TLS and raw connections.
return &tlsClientCon{conn, rawConn}, nil
}
func (cli *DockerCli) dial() (net.Conn, error) {
if cli.tlsConfig != nil && cli.proto != "unix" {
// Notice this isn't Go standard's tls.Dial function
return tlsDial(cli.proto, cli.addr, cli.tlsConfig)
}
return net.Dial(cli.proto, cli.addr)
}
func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.ReadCloser, stdout, stderr io.Writer, started chan io.Closer, data interface{}) error {
defer func() {
if started != nil {
close(started)
}
}()
params, err := cli.encodeData(data)
if err != nil {
return err
}
req, err := http.NewRequest(method, fmt.Sprintf("%s/v%s%s", cli.basePath, api.Version, path), params)
if err != nil {
return err
}
// Add CLI Config's HTTP Headers BEFORE we set the Docker headers
// then the user can't change OUR headers
for k, v := range cli.configFile.HTTPHeaders {
req.Header.Set(k, v)
}
req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION+" ("+runtime.GOOS+")")
req.Header.Set("Content-Type", "text/plain")
req.Header.Set("Connection", "Upgrade")
req.Header.Set("Upgrade", "tcp")
req.Host = cli.addr
dial, err := cli.dial()
if err != nil {
if strings.Contains(err.Error(), "connection refused") {
return fmt.Errorf("Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?")
}
return err
}
// When we set up a TCP connection for hijack, there could be long periods
// of inactivity (a long running command with no output) that in certain
// network setups may cause ECONNTIMEOUT, leaving the client in an unknown
// state. Setting TCP KeepAlive on the socket connection will prohibit
// ECONNTIMEOUT unless the socket connection truly is broken
if tcpConn, ok := dial.(*net.TCPConn); ok {
tcpConn.SetKeepAlive(true)
tcpConn.SetKeepAlivePeriod(30 * time.Second)
}
clientconn := httputil.NewClientConn(dial, nil)
defer clientconn.Close()
// Server hijacks the connection, error 'connection closed' expected
clientconn.Do(req)
rwc, br := clientconn.Hijack()
defer rwc.Close()
if started != nil {
started <- rwc
}
var oldState *term.State
if in != nil && setRawTerminal && cli.isTerminalIn && os.Getenv("NORAW") == "" {
oldState, err = term.SetRawTerminal(cli.inFd)
if err != nil {
return err
}
defer term.RestoreTerminal(cli.inFd, oldState)
}
func (cli *DockerCli) holdHijackedConnection(tty bool, inputStream io.ReadCloser, outputStream, errorStream io.Writer, resp types.HijackedResponse) error {
var err error
receiveStdout := make(chan error, 1)
if stdout != nil || stderr != nil {
if outputStream != nil || errorStream != nil {
go func() {
defer func() {
if in != nil {
if setRawTerminal && cli.isTerminalIn {
term.RestoreTerminal(cli.inFd, oldState)
}
in.Close()
}
}()
// When TTY is ON, use regular copy
if setRawTerminal && stdout != nil {
_, err = io.Copy(stdout, br)
if tty && outputStream != nil {
_, err = io.Copy(outputStream, resp.Reader)
} else {
_, err = stdcopy.StdCopy(stdout, stderr, br)
_, err = stdcopy.StdCopy(outputStream, errorStream, resp.Reader)
}
logrus.Debugf("[hijack] End of stdout")
receiveStdout <- err
@@ -220,17 +26,13 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
stdinDone := make(chan struct{})
go func() {
if in != nil {
io.Copy(rwc, in)
if inputStream != nil {
io.Copy(resp.Conn, inputStream)
logrus.Debugf("[hijack] End of stdin")
}
if conn, ok := rwc.(interface {
CloseWrite() error
}); ok {
if err := conn.CloseWrite(); err != nil {
logrus.Debugf("Couldn't send EOF: %s", err)
}
if err := resp.CloseWrite(); err != nil {
logrus.Debugf("Couldn't send EOF: %s", err)
}
close(stdinDone)
}()
@@ -242,7 +44,7 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
return err
}
case <-stdinDone:
if stdout != nil || stderr != nil {
if outputStream != nil || errorStream != nil {
if err := <-receiveStdout; err != nil {
logrus.Debugf("Error receiveStdout: %s", err)
return err

View File

@@ -1,18 +1,19 @@
package client
import (
"encoding/json"
"fmt"
"strconv"
"strings"
"text/tabwriter"
"time"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/pkg/stringutils"
"github.com/docker/docker/pkg/units"
"github.com/docker/go-units"
)
// CmdHistory shows the history of an image.
@@ -22,56 +23,53 @@ func (cli *DockerCli) CmdHistory(args ...string) error {
cmd := Cli.Subcmd("history", []string{"IMAGE"}, Cli.DockerCommands["history"].Description, true)
human := cmd.Bool([]string{"H", "-human"}, true, "Print sizes and dates in human readable format")
quiet := cmd.Bool([]string{"q", "-quiet"}, false, "Only show numeric IDs")
noTrunc := cmd.Bool([]string{"#notrunc", "-no-trunc"}, false, "Don't truncate output")
noTrunc := cmd.Bool([]string{"-no-trunc"}, false, "Don't truncate output")
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
serverResp, err := cli.call("GET", "/images/"+cmd.Arg(0)+"/history", nil, nil)
history, err := cli.client.ImageHistory(context.Background(), cmd.Arg(0))
if err != nil {
return err
}
defer serverResp.body.Close()
history := []types.ImageHistory{}
if err := json.NewDecoder(serverResp.body).Decode(&history); err != nil {
return err
}
w := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
if !*quiet {
fmt.Fprintln(w, "IMAGE\tCREATED\tCREATED BY\tSIZE\tCOMMENT")
if *quiet {
for _, entry := range history {
if *noTrunc {
fmt.Fprintf(w, "%s\n", entry.ID)
} else {
fmt.Fprintf(w, "%s\n", stringid.TruncateID(entry.ID))
}
}
w.Flush()
return nil
}
var imageID string
var createdBy string
var created string
var size string
fmt.Fprintln(w, "IMAGE\tCREATED\tCREATED BY\tSIZE\tCOMMENT")
for _, entry := range history {
if *noTrunc {
fmt.Fprintf(w, entry.ID)
imageID = entry.ID
createdBy = strings.Replace(entry.CreatedBy, "\t", " ", -1)
if *noTrunc == false {
createdBy = stringutils.Truncate(createdBy, 45)
imageID = stringid.TruncateID(entry.ID)
}
if *human {
created = units.HumanDuration(time.Now().UTC().Sub(time.Unix(entry.Created, 0))) + " ago"
size = units.HumanSize(float64(entry.Size))
} else {
fmt.Fprintf(w, stringid.TruncateID(entry.ID))
created = time.Unix(entry.Created, 0).Format(time.RFC3339)
size = strconv.FormatInt(entry.Size, 10)
}
if !*quiet {
if *human {
fmt.Fprintf(w, "\t%s ago\t", units.HumanDuration(time.Now().UTC().Sub(time.Unix(entry.Created, 0))))
} else {
fmt.Fprintf(w, "\t%s\t", time.Unix(entry.Created, 0).Format(time.RFC3339))
}
if *noTrunc {
fmt.Fprintf(w, "%s\t", strings.Replace(entry.CreatedBy, "\t", " ", -1))
} else {
fmt.Fprintf(w, "%s\t", stringutils.Truncate(strings.Replace(entry.CreatedBy, "\t", " ", -1), 45))
}
if *human {
fmt.Fprintf(w, "%s\t", units.HumanSize(float64(entry.Size)))
} else {
fmt.Fprintf(w, "%d\t", entry.Size)
}
fmt.Fprintf(w, "%s", entry.Comment)
}
fmt.Fprintf(w, "\n")
fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s\n", imageID, created, createdBy, size, entry.Comment)
}
w.Flush()
return nil

View File

@@ -1,21 +1,14 @@
package client
import (
"encoding/json"
"fmt"
"net/url"
"text/tabwriter"
"time"
"golang.org/x/net/context"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/client/formatter"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/parsers/filters"
"github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/pkg/units"
"github.com/docker/docker/utils"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/filters"
)
// CmdImages lists the images in a specified repository, or all top-level images if no repository is specified.
@@ -25,8 +18,9 @@ func (cli *DockerCli) CmdImages(args ...string) error {
cmd := Cli.Subcmd("images", []string{"[REPOSITORY[:TAG]]"}, Cli.DockerCommands["images"].Description, true)
quiet := cmd.Bool([]string{"q", "-quiet"}, false, "Only show numeric IDs")
all := cmd.Bool([]string{"a", "-all"}, false, "Show all images (default hides intermediate images)")
noTrunc := cmd.Bool([]string{"#notrunc", "-no-trunc"}, false, "Don't truncate output")
noTrunc := cmd.Bool([]string{"-no-trunc"}, false, "Don't truncate output")
showDigests := cmd.Bool([]string{"-digests"}, false, "Show digests")
format := cmd.String([]string{"-format"}, "", "Pretty-print images using a Go template")
flFilter := opts.NewListOpts(nil)
cmd.Var(&flFilter, []string{"f", "-filter"}, "Filter output based on conditions provided")
@@ -36,7 +30,7 @@ func (cli *DockerCli) CmdImages(args ...string) error {
// Consolidate all filter flags, and sanity check them early.
// They'll get process in the daemon/server.
imageFilterArgs := filters.Args{}
imageFilterArgs := filters.NewArgs()
for _, f := range flFilter.GetAll() {
var err error
imageFilterArgs, err = filters.ParseFlag(f, imageFilterArgs)
@@ -45,86 +39,43 @@ func (cli *DockerCli) CmdImages(args ...string) error {
}
}
matchName := cmd.Arg(0)
v := url.Values{}
if len(imageFilterArgs) > 0 {
filterJSON, err := filters.ToParam(imageFilterArgs)
if err != nil {
return err
}
v.Set("filters", filterJSON)
}
var matchName string
if cmd.NArg() == 1 {
// FIXME rename this parameter, to not be confused with the filters flag
v.Set("filter", matchName)
}
if *all {
v.Set("all", "1")
matchName = cmd.Arg(0)
}
serverResp, err := cli.call("GET", "/images/json?"+v.Encode(), nil, nil)
options := types.ImageListOptions{
MatchName: matchName,
All: *all,
Filters: imageFilterArgs,
}
images, err := cli.client.ImageList(context.Background(), options)
if err != nil {
return err
}
defer serverResp.body.Close()
images := []types.Image{}
if err := json.NewDecoder(serverResp.body).Decode(&images); err != nil {
return err
}
w := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
if !*quiet {
if *showDigests {
fmt.Fprintln(w, "REPOSITORY\tTAG\tDIGEST\tIMAGE ID\tCREATED\tVIRTUAL SIZE")
f := *format
if len(f) == 0 {
if len(cli.ImagesFormat()) > 0 && !*quiet {
f = cli.ImagesFormat()
} else {
fmt.Fprintln(w, "REPOSITORY\tTAG\tIMAGE ID\tCREATED\tVIRTUAL SIZE")
f = "table"
}
}
for _, image := range images {
ID := image.ID
if !*noTrunc {
ID = stringid.TruncateID(ID)
}
repoTags := image.RepoTags
repoDigests := image.RepoDigests
if len(repoTags) == 1 && repoTags[0] == "<none>:<none>" && len(repoDigests) == 1 && repoDigests[0] == "<none>@<none>" {
// dangling image - clear out either repoTags or repoDigsts so we only show it once below
repoDigests = []string{}
}
// combine the tags and digests lists
tagsAndDigests := append(repoTags, repoDigests...)
for _, repoAndRef := range tagsAndDigests {
repo, ref := parsers.ParseRepositoryTag(repoAndRef)
// default tag and digest to none - if there's a value, it'll be set below
tag := "<none>"
digest := "<none>"
if utils.DigestReference(ref) {
digest = ref
} else {
tag = ref
}
if !*quiet {
if *showDigests {
fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s ago\t%s\n", repo, tag, digest, ID, units.HumanDuration(time.Now().UTC().Sub(time.Unix(int64(image.Created), 0))), units.HumanSize(float64(image.VirtualSize)))
} else {
fmt.Fprintf(w, "%s\t%s\t%s\t%s ago\t%s\n", repo, tag, ID, units.HumanDuration(time.Now().UTC().Sub(time.Unix(int64(image.Created), 0))), units.HumanSize(float64(image.VirtualSize)))
}
} else {
fmt.Fprintln(w, ID)
}
}
imagesCtx := formatter.ImageContext{
Context: formatter.Context{
Output: cli.out,
Format: f,
Quiet: *quiet,
Trunc: !*noTrunc,
},
Digest: *showDigests,
Images: images,
}
if !*quiet {
w.Flush()
}
imagesCtx.Write()
return nil
}

View File

@@ -3,15 +3,17 @@ package client
import (
"fmt"
"io"
"net/url"
"os"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/urlutil"
"github.com/docker/docker/registry"
"github.com/docker/docker/reference"
"github.com/docker/engine-api/types"
)
// CmdImport creates an empty filesystem image, imports the contents of the tarball into the image, and optionally tags the image.
@@ -29,51 +31,52 @@ func (cli *DockerCli) CmdImport(args ...string) error {
cmd.ParseFlags(args, true)
var (
v = url.Values{}
in io.Reader
tag string
src = cmd.Arg(0)
srcName = src
repository = cmd.Arg(1)
changes = flChanges.GetAll()
)
v.Set("fromSrc", src)
v.Set("repo", repository)
v.Set("message", *message)
for _, change := range flChanges.GetAll() {
v.Add("changes", change)
}
if cmd.NArg() == 3 {
fmt.Fprintf(cli.err, "[DEPRECATED] The format 'file|URL|- [REPOSITORY [TAG]]' has been deprecated. Please use file|URL|- [REPOSITORY[:TAG]]\n")
v.Set("tag", cmd.Arg(2))
tag = cmd.Arg(2)
}
if repository != "" {
//Check if the given image name can be resolved
repo, _ := parsers.ParseRepositoryTag(repository)
if err := registry.ValidateRepositoryName(repo); err != nil {
if _, err := reference.ParseNamed(repository); err != nil {
return err
}
}
var in io.Reader
if src == "-" {
in = cli.in
} else if !urlutil.IsURL(src) {
v.Set("fromSrc", "-")
srcName = "-"
file, err := os.Open(src)
if err != nil {
return err
}
defer file.Close()
in = file
}
sopts := &streamOpts{
rawTerminal: true,
in: in,
out: cli.out,
options := types.ImageImportOptions{
Source: in,
SourceName: srcName,
RepositoryName: repository,
Message: *message,
Tag: tag,
Changes: changes,
}
_, err := cli.stream("POST", "/images/create?"+v.Encode(), sopts)
return err
responseBody, err := cli.client.ImageImport(context.Background(), options)
if err != nil {
return err
}
defer responseBody.Close()
return jsonmessage.DisplayJSONMessagesStream(responseBody, cli.out, cli.outFd, cli.isTerminalOut, nil)
}

View File

@@ -1,15 +1,16 @@
package client
import (
"encoding/json"
"fmt"
"strings"
"golang.org/x/net/context"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/pkg/httputils"
"github.com/docker/docker/pkg/ioutils"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/units"
"github.com/docker/docker/utils"
"github.com/docker/go-units"
)
// CmdInfo displays system-wide information.
@@ -21,45 +22,69 @@ func (cli *DockerCli) CmdInfo(args ...string) error {
cmd.ParseFlags(args, true)
serverResp, err := cli.call("GET", "/info", nil, nil)
info, err := cli.client.Info(context.Background())
if err != nil {
return err
}
defer serverResp.body.Close()
info := &types.Info{}
if err := json.NewDecoder(serverResp.body).Decode(info); err != nil {
return fmt.Errorf("Error reading remote info: %v", err)
}
fmt.Fprintf(cli.out, "Containers: %d\n", info.Containers)
fmt.Fprintf(cli.out, " Running: %d\n", info.ContainersRunning)
fmt.Fprintf(cli.out, " Paused: %d\n", info.ContainersPaused)
fmt.Fprintf(cli.out, " Stopped: %d\n", info.ContainersStopped)
fmt.Fprintf(cli.out, "Images: %d\n", info.Images)
ioutils.FprintfIfNotEmpty(cli.out, "Server Version: %s\n", info.ServerVersion)
ioutils.FprintfIfNotEmpty(cli.out, "Storage Driver: %s\n", info.Driver)
if info.DriverStatus != nil {
for _, pair := range info.DriverStatus {
fmt.Fprintf(cli.out, " %s: %s\n", pair[0], pair[1])
// print a warning if devicemapper is using a loopback file
if pair[0] == "Data loop file" {
fmt.Fprintln(cli.err, " WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.")
}
}
}
if info.SystemStatus != nil {
for _, pair := range info.SystemStatus {
fmt.Fprintf(cli.out, "%s: %s\n", pair[0], pair[1])
}
}
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:")
fmt.Fprintf(cli.out, " %s", strings.Join(info.Plugins.Volume, " "))
fmt.Fprintf(cli.out, "\n")
fmt.Fprintf(cli.out, " Network:")
fmt.Fprintf(cli.out, " %s", strings.Join(info.Plugins.Network, " "))
fmt.Fprintf(cli.out, "\n")
if len(info.Plugins.Authorization) != 0 {
fmt.Fprintf(cli.out, " Authorization:")
fmt.Fprintf(cli.out, " %s", strings.Join(info.Plugins.Authorization, " "))
fmt.Fprintf(cli.out, "\n")
}
ioutils.FprintfIfNotEmpty(cli.out, "Kernel Version: %s\n", info.KernelVersion)
ioutils.FprintfIfNotEmpty(cli.out, "Operating System: %s\n", info.OperatingSystem)
ioutils.FprintfIfNotEmpty(cli.out, "OSType: %s\n", info.OSType)
ioutils.FprintfIfNotEmpty(cli.out, "Architecture: %s\n", info.Architecture)
fmt.Fprintf(cli.out, "CPUs: %d\n", info.NCPU)
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)
@@ -70,28 +95,44 @@ 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
if h, err := httputils.ParseServerHeader(serverResp.header.Get("Server")); err == nil {
if h.OS != "windows" {
if !info.MemoryLimit {
fmt.Fprintf(cli.err, "WARNING: No memory limit support\n")
}
if !info.SwapLimit {
fmt.Fprintf(cli.err, "WARNING: No swap limit support\n")
}
if !info.IPv4Forwarding {
fmt.Fprintf(cli.err, "WARNING: IPv4 forwarding is disabled\n")
}
if !info.BridgeNfIptables {
fmt.Fprintf(cli.err, "WARNING: bridge-nf-call-iptables is disabled\n")
}
if !info.BridgeNfIP6tables {
fmt.Fprintf(cli.err, "WARNING: bridge-nf-call-ip6tables is disabled\n")
}
if info.OSType != "windows" {
if !info.MemoryLimit {
fmt.Fprintln(cli.err, "WARNING: No memory limit support")
}
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")
}
if !info.CPUCfsQuota {
fmt.Fprintln(cli.err, "WARNING: No cpu cfs quota support")
}
if !info.CPUCfsPeriod {
fmt.Fprintln(cli.err, "WARNING: No cpu cfs period support")
}
if !info.CPUShares {
fmt.Fprintln(cli.err, "WARNING: No cpu shares support")
}
if !info.CPUSet {
fmt.Fprintln(cli.err, "WARNING: No cpuset support")
}
if !info.IPv4Forwarding {
fmt.Fprintln(cli.err, "WARNING: IPv4 forwarding is disabled")
}
if !info.BridgeNfIptables {
fmt.Fprintln(cli.err, "WARNING: bridge-nf-call-iptables is disabled")
}
if !info.BridgeNfIP6tables {
fmt.Fprintln(cli.err, "WARNING: bridge-nf-call-ip6tables is disabled")
}
}

View File

@@ -1,203 +1,127 @@
package client
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/url"
"strings"
"text/template"
"github.com/docker/docker/api/types"
"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...]
func (cli *DockerCli) CmdInspect(args ...string) error {
cmd := Cli.Subcmd("inspect", []string{"CONTAINER|IMAGE [CONTAINER|IMAGE...]"}, Cli.DockerCommands["inspect"].Description, true)
tmplStr := cmd.String([]string{"f", "#format", "-format"}, "", "Format the output using the given go template")
tmplStr := cmd.String([]string{"f", "-format"}, "", "Format the output using the given go template")
inspectType := cmd.String([]string{"-type"}, "", "Return JSON for specified type, (e.g image or container)")
size := cmd.Bool([]string{"s", "-size"}, false, "Display total file sizes if the type is container")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
var tmpl *template.Template
var err error
var obj []byte
if *tmplStr != "" {
if tmpl, err = template.New("").Funcs(funcMap).Parse(*tmplStr); err != nil {
return Cli.StatusError{StatusCode: 64,
Status: "Template parsing error: " + err.Error()}
}
}
if *inspectType != "" && *inspectType != "container" && *inspectType != "image" {
return fmt.Errorf("%q is not a valid value for --type", *inspectType)
}
indented := new(bytes.Buffer)
indented.WriteString("[\n")
status := 0
isImage := false
v := url.Values{}
if *size {
v.Set("size", "1")
var elementSearcher inspectSearcher
switch *inspectType {
case "container":
elementSearcher = cli.inspectContainers(*size)
case "image":
elementSearcher = cli.inspectImages(*size)
default:
elementSearcher = cli.inspectAll(*size)
}
for _, name := range cmd.Args() {
if *inspectType == "" || *inspectType == "container" {
obj, _, err = readBody(cli.call("GET", "/containers/"+name+"/json?"+v.Encode(), nil, nil))
if err != nil {
if err == errConnectionFailed {
return err
}
if *inspectType == "container" {
if strings.Contains(err.Error(), "No such") {
fmt.Fprintf(cli.err, "Error: No such container: %s\n", name)
} else {
fmt.Fprintf(cli.err, "%s", err)
return cli.inspectElements(*tmplStr, cmd.Args(), elementSearcher)
}
func (cli *DockerCli) inspectContainers(getSize bool) inspectSearcher {
return func(ref string) (interface{}, []byte, error) {
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(context.Background(), ref, getSize)
}
}
func (cli *DockerCli) inspectAll(getSize bool) inspectSearcher {
return func(ref string) (interface{}, []byte, error) {
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(context.Background(), ref, getSize)
if err != nil {
if client.IsErrImageNotFound(err) {
return nil, nil, fmt.Errorf("Error: No such image or container: %s", ref)
}
status = 1
continue
return nil, nil, err
}
return i, rawImage, err
}
return nil, nil, err
}
return c, rawContainer, err
}
}
if obj == nil && (*inspectType == "" || *inspectType == "image") {
obj, _, err = readBody(cli.call("GET", "/images/"+name+"/json", nil, nil))
isImage = true
if err != nil {
if err == errConnectionFailed {
return err
}
if strings.Contains(err.Error(), "No such") {
if *inspectType == "" {
fmt.Fprintf(cli.err, "Error: No such image or container: %s\n", name)
} else {
fmt.Fprintf(cli.err, "Error: No such image: %s\n", name)
}
} else {
fmt.Fprintf(cli.err, "%s", err)
}
status = 1
continue
}
}
type inspectSearcher func(ref string) (interface{}, []byte, error)
if tmpl == nil {
if err := json.Indent(indented, obj, "", " "); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
}
} else {
rdr := bytes.NewReader(obj)
dec := json.NewDecoder(rdr)
buf := bytes.NewBufferString("")
if isImage {
inspPtr := types.ImageInspect{}
if err := dec.Decode(&inspPtr); err != nil {
fmt.Fprintf(cli.err, "Unable to read inspect data: %v\n", err)
status = 1
break
}
if err := tmpl.Execute(buf, inspPtr); err != nil {
rdr.Seek(0, 0)
var ok bool
if buf, ok = cli.decodeRawInspect(tmpl, dec); !ok {
fmt.Fprintf(cli.err, "Template parsing error: %v\n", err)
status = 1
break
}
}
} else {
inspPtr := types.ContainerJSON{}
if err := dec.Decode(&inspPtr); err != nil {
fmt.Fprintf(cli.err, "Unable to read inspect data: %v\n", err)
status = 1
break
}
if err := tmpl.Execute(buf, inspPtr); err != nil {
rdr.Seek(0, 0)
var ok bool
if buf, ok = cli.decodeRawInspect(tmpl, dec); !ok {
fmt.Fprintf(cli.err, "Template parsing error: %v\n", err)
status = 1
break
}
}
}
cli.out.Write(buf.Bytes())
cli.out.Write([]byte{'\n'})
}
indented.WriteString(",")
func (cli *DockerCli) inspectElements(tmplStr string, references []string, searchByReference inspectSearcher) error {
elementInspector, err := cli.newInspectorWithTemplate(tmplStr)
if err != nil {
return Cli.StatusError{StatusCode: 64, Status: err.Error()}
}
if indented.Len() > 1 {
// Remove trailing ','
indented.Truncate(indented.Len() - 1)
}
indented.WriteString("]\n")
var inspectErr error
for _, ref := range references {
element, raw, err := searchByReference(ref)
if err != nil {
inspectErr = err
break
}
if tmpl == nil {
// Note that we will always write "[]" when "-f" isn't specified,
// to make sure the output would always be array, see
// https://github.com/docker/docker/pull/9500#issuecomment-65846734
if _, err := io.Copy(cli.out, indented); err != nil {
return err
if err := elementInspector.Inspect(element, raw); err != nil {
inspectErr = err
break
}
}
if status != 0 {
if err := elementInspector.Flush(); err != nil {
cli.inspectErrorStatus(err)
}
if status := cli.inspectErrorStatus(inspectErr); status != 0 {
return Cli.StatusError{StatusCode: status}
}
return nil
}
// decodeRawInspect executes the inspect template with a raw interface.
// This allows docker cli to parse inspect structs injected with Swarm fields.
// Unfortunately, go 1.4 doesn't fail executing invalid templates when the input is an interface.
// It doesn't allow to modify this behavior either, sending <no value> messages to the output.
// We assume that the template is invalid when there is a <no value>, if the template was valid
// we'd get <nil> or "" values. In that case we fail with the original error raised executing the
// template with the typed input.
//
// TODO: Go 1.5 allows to customize the error behavior, we can probably get rid of this as soon as
// we build Docker with that version:
// https://golang.org/pkg/text/template/#Template.Option
func (cli *DockerCli) decodeRawInspect(tmpl *template.Template, dec *json.Decoder) (*bytes.Buffer, bool) {
var raw interface{}
buf := bytes.NewBufferString("")
if rawErr := dec.Decode(&raw); rawErr != nil {
fmt.Fprintf(cli.err, "Unable to read inspect data: %v\n", rawErr)
return buf, false
func (cli *DockerCli) inspectErrorStatus(err error) (status int) {
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
}
if rawErr := tmpl.Execute(buf, raw); rawErr != nil {
return buf, false
}
if strings.Contains(buf.String(), "<no value>") {
return buf, false
}
return buf, true
return
}
func (cli *DockerCli) newInspectorWithTemplate(tmplStr string) (inspect.Inspector, error) {
elementInspector := inspect.NewIndentedInspector(cli.out)
if tmplStr != "" {
tmpl, err := templates.Parse(tmplStr)
if err != nil {
return nil, fmt.Errorf("Template parsing error: %s", err)
}
elementInspector = inspect.NewTemplateInspector(cli.out, tmpl)
}
return elementInspector, nil
}

View File

@@ -0,0 +1,119 @@
package inspect
import (
"bytes"
"encoding/json"
"fmt"
"io"
"text/template"
)
// Inspector defines an interface to implement to process elements
type Inspector interface {
Inspect(typedElement interface{}, rawElement []byte) error
Flush() error
}
// TemplateInspector uses a text template to inspect elements.
type TemplateInspector struct {
outputStream io.Writer
buffer *bytes.Buffer
tmpl *template.Template
}
// NewTemplateInspector creates a new inspector with a template.
func NewTemplateInspector(outputStream io.Writer, tmpl *template.Template) Inspector {
return &TemplateInspector{
outputStream: outputStream,
buffer: new(bytes.Buffer),
tmpl: tmpl,
}
}
// Inspect executes the inspect template.
// It decodes the raw element into a map if the initial execution fails.
// This allows docker cli to parse inspect structs injected with Swarm fields.
func (i *TemplateInspector) Inspect(typedElement interface{}, rawElement []byte) error {
buffer := new(bytes.Buffer)
if err := i.tmpl.Execute(buffer, typedElement); err != nil {
if rawElement == nil {
return fmt.Errorf("Template parsing error: %v", err)
}
return i.tryRawInspectFallback(rawElement, err)
}
i.buffer.Write(buffer.Bytes())
i.buffer.WriteByte('\n')
return nil
}
// Flush write the result of inspecting all elements into the output stream.
func (i *TemplateInspector) Flush() error {
if i.buffer.Len() == 0 {
_, err := io.WriteString(i.outputStream, "\n")
return err
}
_, err := io.Copy(i.outputStream, i.buffer)
return err
}
// IndentedInspector uses a buffer to stop the indented representation of an element.
type IndentedInspector struct {
outputStream io.Writer
elements []interface{}
rawElements [][]byte
}
// NewIndentedInspector generates a new IndentedInspector.
func NewIndentedInspector(outputStream io.Writer) Inspector {
return &IndentedInspector{
outputStream: outputStream,
}
}
// Inspect writes the raw element with an indented json format.
func (i *IndentedInspector) Inspect(typedElement interface{}, rawElement []byte) error {
if rawElement != nil {
i.rawElements = append(i.rawElements, rawElement)
} else {
i.elements = append(i.elements, typedElement)
}
return nil
}
// Flush write the result of inspecting all elements into the output stream.
func (i *IndentedInspector) Flush() error {
if len(i.elements) == 0 && len(i.rawElements) == 0 {
_, err := io.WriteString(i.outputStream, "[]\n")
return err
}
var buffer io.Reader
if len(i.rawElements) > 0 {
bytesBuffer := new(bytes.Buffer)
bytesBuffer.WriteString("[")
for idx, r := range i.rawElements {
bytesBuffer.Write(r)
if idx < len(i.rawElements)-1 {
bytesBuffer.WriteString(",")
}
}
bytesBuffer.WriteString("]")
indented := new(bytes.Buffer)
if err := json.Indent(indented, bytesBuffer.Bytes(), "", " "); err != nil {
return err
}
buffer = indented
} else {
b, err := json.MarshalIndent(i.elements, "", " ")
if err != nil {
return err
}
buffer = bytes.NewReader(b)
}
if _, err := io.Copy(i.outputStream, buffer); err != nil {
return err
}
_, err := io.WriteString(i.outputStream, "\n")
return err
}

View File

@@ -0,0 +1,40 @@
// +build !go1.5
package inspect
import (
"bytes"
"encoding/json"
"fmt"
"strings"
)
// tryeRawInspectFallback executes the inspect template with a raw interface.
// This allows docker cli to parse inspect structs injected with Swarm fields.
// Unfortunately, go 1.4 doesn't fail executing invalid templates when the input is an interface.
// It doesn't allow to modify this behavior either, sending <no value> messages to the output.
// We assume that the template is invalid when there is a <no value>, if the template was valid
// we'd get <nil> or "" values. In that case we fail with the original error raised executing the
// template with the typed input.
func (i *TemplateInspector) tryRawInspectFallback(rawElement []byte, originalErr error) error {
var raw interface{}
buffer := new(bytes.Buffer)
rdr := bytes.NewReader(rawElement)
dec := json.NewDecoder(rdr)
if rawErr := dec.Decode(&raw); rawErr != nil {
return fmt.Errorf("unable to read inspect data: %v", rawErr)
}
if rawErr := i.tmpl.Execute(buffer, raw); rawErr != nil {
return fmt.Errorf("Template parsing error: %v", rawErr)
}
if strings.Contains(buffer.String(), "<no value>") {
return fmt.Errorf("Template parsing error: %v", originalErr)
}
i.buffer.Write(buffer.Bytes())
i.buffer.WriteByte('\n')
return nil
}

View File

@@ -0,0 +1,29 @@
// +build go1.5
package inspect
import (
"bytes"
"encoding/json"
"fmt"
)
func (i *TemplateInspector) tryRawInspectFallback(rawElement []byte, _ error) error {
var raw interface{}
buffer := new(bytes.Buffer)
rdr := bytes.NewReader(rawElement)
dec := json.NewDecoder(rdr)
if rawErr := dec.Decode(&raw); rawErr != nil {
return fmt.Errorf("unable to read inspect data: %v", rawErr)
}
tmplMissingKey := i.tmpl.Option("missingkey=error")
if rawErr := tmplMissingKey.Execute(buffer, raw); rawErr != nil {
return fmt.Errorf("Template parsing error: %v", rawErr)
}
i.buffer.Write(buffer.Bytes())
i.buffer.WriteByte('\n')
return nil
}

View File

@@ -0,0 +1,221 @@
package inspect
import (
"bytes"
"strings"
"testing"
"github.com/docker/docker/utils/templates"
)
type testElement struct {
DNS string `json:"Dns"`
}
func TestTemplateInspectorDefault(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := templates.Parse("{{.DNS}}")
if err != nil {
t.Fatal(err)
}
i := NewTemplateInspector(b, tmpl)
if err := i.Inspect(testElement{"0.0.0.0"}, nil); err != nil {
t.Fatal(err)
}
if err := i.Flush(); err != nil {
t.Fatal(err)
}
if b.String() != "0.0.0.0\n" {
t.Fatalf("Expected `0.0.0.0\\n`, got `%s`", b.String())
}
}
func TestTemplateInspectorEmpty(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := templates.Parse("{{.DNS}}")
if err != nil {
t.Fatal(err)
}
i := NewTemplateInspector(b, tmpl)
if err := i.Flush(); err != nil {
t.Fatal(err)
}
if b.String() != "\n" {
t.Fatalf("Expected `\\n`, got `%s`", b.String())
}
}
func TestTemplateInspectorTemplateError(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := templates.Parse("{{.Foo}}")
if err != nil {
t.Fatal(err)
}
i := NewTemplateInspector(b, tmpl)
err = i.Inspect(testElement{"0.0.0.0"}, nil)
if err == nil {
t.Fatal("Expected error got nil")
}
if !strings.HasPrefix(err.Error(), "Template parsing error") {
t.Fatalf("Expected template error, got %v", err)
}
}
func TestTemplateInspectorRawFallback(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := templates.Parse("{{.Dns}}")
if err != nil {
t.Fatal(err)
}
i := NewTemplateInspector(b, tmpl)
if err := i.Inspect(testElement{"0.0.0.0"}, []byte(`{"Dns": "0.0.0.0"}`)); err != nil {
t.Fatal(err)
}
if err := i.Flush(); err != nil {
t.Fatal(err)
}
if b.String() != "0.0.0.0\n" {
t.Fatalf("Expected `0.0.0.0\\n`, got `%s`", b.String())
}
}
func TestTemplateInspectorRawFallbackError(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := templates.Parse("{{.Dns}}")
if err != nil {
t.Fatal(err)
}
i := NewTemplateInspector(b, tmpl)
err = i.Inspect(testElement{"0.0.0.0"}, []byte(`{"Foo": "0.0.0.0"}`))
if err == nil {
t.Fatal("Expected error got nil")
}
if !strings.HasPrefix(err.Error(), "Template parsing error") {
t.Fatalf("Expected template error, got %v", err)
}
}
func TestTemplateInspectorMultiple(t *testing.T) {
b := new(bytes.Buffer)
tmpl, err := templates.Parse("{{.DNS}}")
if err != nil {
t.Fatal(err)
}
i := NewTemplateInspector(b, tmpl)
if err := i.Inspect(testElement{"0.0.0.0"}, nil); err != nil {
t.Fatal(err)
}
if err := i.Inspect(testElement{"1.1.1.1"}, nil); err != nil {
t.Fatal(err)
}
if err := i.Flush(); err != nil {
t.Fatal(err)
}
if b.String() != "0.0.0.0\n1.1.1.1\n" {
t.Fatalf("Expected `0.0.0.0\\n1.1.1.1\\n`, got `%s`", b.String())
}
}
func TestIndentedInspectorDefault(t *testing.T) {
b := new(bytes.Buffer)
i := NewIndentedInspector(b)
if err := i.Inspect(testElement{"0.0.0.0"}, nil); err != nil {
t.Fatal(err)
}
if err := i.Flush(); err != nil {
t.Fatal(err)
}
expected := `[
{
"Dns": "0.0.0.0"
}
]
`
if b.String() != expected {
t.Fatalf("Expected `%s`, got `%s`", expected, b.String())
}
}
func TestIndentedInspectorMultiple(t *testing.T) {
b := new(bytes.Buffer)
i := NewIndentedInspector(b)
if err := i.Inspect(testElement{"0.0.0.0"}, nil); err != nil {
t.Fatal(err)
}
if err := i.Inspect(testElement{"1.1.1.1"}, nil); err != nil {
t.Fatal(err)
}
if err := i.Flush(); err != nil {
t.Fatal(err)
}
expected := `[
{
"Dns": "0.0.0.0"
},
{
"Dns": "1.1.1.1"
}
]
`
if b.String() != expected {
t.Fatalf("Expected `%s`, got `%s`", expected, b.String())
}
}
func TestIndentedInspectorEmpty(t *testing.T) {
b := new(bytes.Buffer)
i := NewIndentedInspector(b)
if err := i.Flush(); err != nil {
t.Fatal(err)
}
expected := "[]\n"
if b.String() != expected {
t.Fatalf("Expected `%s`, got `%s`", expected, b.String())
}
}
func TestIndentedInspectorRawElements(t *testing.T) {
b := new(bytes.Buffer)
i := NewIndentedInspector(b)
if err := i.Inspect(testElement{"0.0.0.0"}, []byte(`{"Dns": "0.0.0.0", "Node": "0"}`)); err != nil {
t.Fatal(err)
}
if err := i.Inspect(testElement{"1.1.1.1"}, []byte(`{"Dns": "1.1.1.1", "Node": "1"}`)); err != nil {
t.Fatal(err)
}
if err := i.Flush(); err != nil {
t.Fatal(err)
}
expected := `[
{
"Dns": "0.0.0.0",
"Node": "0"
},
{
"Dns": "1.1.1.1",
"Node": "1"
}
]
`
if b.String() != expected {
t.Fatalf("Expected `%s`, got `%s`", expected, b.String())
}
}

View File

@@ -2,6 +2,9 @@ package client
import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -17,17 +20,16 @@ func (cli *DockerCli) CmdKill(args ...string) error {
cmd.ParseFlags(args, true)
var errNames []string
var errs []string
for _, name := range cmd.Args() {
if _, _, err := readBody(cli.call("POST", fmt.Sprintf("/containers/%s/kill?signal=%s", name, *signal), nil, nil)); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
if err := cli.client.ContainerKill(context.Background(), name, *signal); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}
}
if len(errNames) > 0 {
return fmt.Errorf("Error: failed to kill containers: %v", errNames)
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
return nil
}

View File

@@ -4,7 +4,10 @@ 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"
)
@@ -16,27 +19,32 @@ 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)
var (
input io.Reader = cli.in
err error
)
var input io.Reader = cli.in
if *infile != "" {
input, err = os.Open(*infile)
file, err := os.Open(*infile)
if err != nil {
return err
}
defer file.Close()
input = file
}
sopts := &streamOpts{
rawTerminal: true,
in: input,
out: cli.out,
if !cli.isTerminalOut {
*quiet = true
}
if _, err := cli.stream("POST", "/images/load", sopts); err != nil {
response, err := cli.client.ImageLoad(context.Background(), input, *quiet)
if err != nil {
return err
}
return nil
defer response.Body.Close()
if response.Body != nil && response.JSON {
return jsonmessage.DisplayJSONMessagesStream(response.Body, cli.out, cli.outFd, cli.isTerminalOut, nil)
}
_, err = io.Copy(cli.out, response.Body)
return err
}

View File

@@ -2,35 +2,36 @@ package client
import (
"bufio"
"encoding/json"
"fmt"
"io"
"os"
"runtime"
"strings"
"github.com/docker/docker/api/types"
"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/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.
//
// Usage: docker login SERVER
func (cli *DockerCli) CmdLogin(args ...string) error {
cmd := Cli.Subcmd("login", []string{"[SERVER]"}, Cli.DockerCommands["login"].Description+".\nIf no server is specified \""+registry.IndexServer+"\" is the default.", true)
cmd := Cli.Subcmd("login", []string{"[SERVER]"}, Cli.DockerCommands["login"].Description+".\nIf no server is specified, the default is defined by the daemon.", true)
cmd.Require(flag.Max, 1)
var username, password, email string
flUser := cmd.String([]string{"u", "-username"}, "", "Username")
flPassword := cmd.String([]string{"p", "-password"}, "", "Password")
cmd.StringVar(&username, []string{"u", "-username"}, "", "Username")
cmd.StringVar(&password, []string{"p", "-password"}, "", "Password")
cmd.StringVar(&email, []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)
@@ -39,115 +40,138 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
cli.in = os.Stdin
}
serverAddress := registry.IndexServer
var serverAddress string
var isDefaultRegistry bool
if len(cmd.Args()) > 0 {
serverAddress = cmd.Arg(0)
}
promptDefault := func(prompt string, configDefault string) {
if configDefault == "" {
fmt.Fprintf(cli.out, "%s: ", prompt)
} else {
fmt.Fprintf(cli.out, "%s (%s): ", prompt, configDefault)
}
}
readInput := func(in io.Reader, out io.Writer) string {
reader := bufio.NewReader(in)
line, _, err := reader.ReadLine()
if err != nil {
fmt.Fprintln(out, err.Error())
os.Exit(1)
}
return string(line)
}
authconfig, ok := cli.configFile.AuthConfigs[serverAddress]
if !ok {
authconfig = cliconfig.AuthConfig{}
}
if username == "" {
promptDefault("Username", authconfig.Username)
username = readInput(cli.in, cli.out)
username = strings.TrimSpace(username)
if username == "" {
username = authconfig.Username
}
}
// Assume that a different username means they may not want to use
// the password or email from the config file, so prompt them
if username != authconfig.Username {
if password == "" {
oldState, err := term.SaveState(cli.inFd)
if err != nil {
return err
}
fmt.Fprintf(cli.out, "Password: ")
term.DisableEcho(cli.inFd, oldState)
password = readInput(cli.in, cli.out)
fmt.Fprint(cli.out, "\n")
term.RestoreTerminal(cli.inFd, oldState)
if password == "" {
return fmt.Errorf("Error : Password Required")
}
}
if email == "" {
promptDefault("Email", authconfig.Email)
email = readInput(cli.in, cli.out)
if email == "" {
email = authconfig.Email
}
}
} else {
// However, if they don't override the username use the
// password or 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 password == "" {
password = authconfig.Password
}
if email == "" {
email = authconfig.Email
}
serverAddress = cli.electAuthServer()
isDefaultRegistry = true
}
authconfig.Username = username
authconfig.Password = password
authconfig.Email = email
authconfig.ServerAddress = serverAddress
cli.configFile.AuthConfigs[serverAddress] = authconfig
serverResp, err := cli.call("POST", "/auth", cli.configFile.AuthConfigs[serverAddress], nil)
if serverResp.statusCode == 401 {
delete(cli.configFile.AuthConfigs, serverAddress)
if err2 := cli.configFile.Save(); err2 != nil {
fmt.Fprintf(cli.out, "WARNING: could not save config file: %v\n", err2)
}
return err
}
authConfig, err := cli.configureAuth(*flUser, *flPassword, serverAddress, isDefaultRegistry)
if err != nil {
return err
}
defer serverResp.body.Close()
var response types.AuthResponse
if err := json.NewDecoder(serverResp.body).Decode(&response); err != nil {
// Upon error, remove entry
delete(cli.configFile.AuthConfigs, serverAddress)
response, err := cli.client.RegistryLogin(context.Background(), authConfig)
if err != nil {
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
}
func (cli *DockerCli) promptWithDefault(prompt string, configDefault string) {
if configDefault == "" {
fmt.Fprintf(cli.out, "%s: ", prompt)
} else {
fmt.Fprintf(cli.out, "%s (%s): ", prompt, configDefault)
}
}
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
}
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)
if flUser == "" {
flUser = authconfig.Username
}
}
if flUser == "" {
return authconfig, fmt.Errorf("Error: Non-null Username Required")
}
if flPassword == "" {
oldState, err := term.SaveState(cli.inFd)
if err != nil {
return authconfig, err
}
fmt.Fprintf(cli.out, "Password: ")
term.DisableEcho(cli.inFd, oldState)
flPassword = readInput(cli.in, cli.out)
fmt.Fprint(cli.out, "\n")
term.RestoreTerminal(cli.inFd, oldState)
if flPassword == "" {
return authconfig, fmt.Errorf("Error: Password Required")
}
}
authconfig.Username = flUser
authconfig.Password = flPassword
authconfig.ServerAddress = serverAddress
authconfig.IdentityToken = ""
return authconfig, nil
}
func readInput(in io.Reader, out io.Writer) string {
reader := bufio.NewReader(in)
line, _, err := reader.ReadLine()
if err != nil {
fmt.Fprintln(out, err.Error())
os.Exit(1)
}
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

@@ -1,15 +1,15 @@
package client
import (
"encoding/json"
"fmt"
"net/url"
"time"
"io"
"golang.org/x/net/context"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/timeutils"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/engine-api/types"
)
var validDrivers = map[string]bool{
@@ -32,43 +32,34 @@ func (cli *DockerCli) CmdLogs(args ...string) error {
name := cmd.Arg(0)
serverResp, err := cli.call("GET", "/containers/"+name+"/json", nil, nil)
c, err := cli.client.ContainerInspect(context.Background(), name)
if err != nil {
return err
}
var c types.ContainerJSON
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return err
}
if !validDrivers[c.HostConfig.LogConfig.Type] {
return fmt.Errorf("\"logs\" command is supported only for \"json-file\" and \"journald\" logging drivers (got: %s)", c.HostConfig.LogConfig.Type)
}
v := url.Values{}
v.Set("stdout", "1")
v.Set("stderr", "1")
if *since != "" {
v.Set("since", timeutils.GetTimestamp(*since, time.Now()))
options := types.ContainerLogsOptions{
ContainerID: name,
ShowStdout: true,
ShowStderr: true,
Since: *since,
Timestamps: *times,
Follow: *follow,
Tail: *tail,
}
if *times {
v.Set("timestamps", "1")
responseBody, err := cli.client.ContainerLogs(context.Background(), options)
if err != nil {
return err
}
defer responseBody.Close()
if *follow {
v.Set("follow", "1")
if c.Config.Tty {
_, err = io.Copy(cli.out, responseBody)
} else {
_, err = stdcopy.StdCopy(cli.out, cli.err, responseBody)
}
v.Set("tail", *tail)
sopts := &streamOpts{
rawTerminal: c.Config.Tty,
out: cli.out,
err: cli.err,
}
_, err = cli.stream("GET", "/containers/"+name+"/logs?"+v.Encode(), sopts)
return err
}

View File

@@ -1,20 +1,22 @@
package client
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net"
"sort"
"strings"
"text/tabwriter"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/daemon/network"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/stringid"
runconfigopts "github.com/docker/docker/runconfig/opts"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/filters"
"github.com/docker/engine-api/types/network"
)
// CmdNetwork is the parent subcommand for all network commands
@@ -41,12 +43,19 @@ func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
flIpamIPRange := opts.NewListOpts(nil)
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")
cmd.Var(&flIpamGateway, []string{"-gateway"}, "ipv4 or ipv6 Gateway for the master subnet")
cmd.Var(flIpamAux, []string{"-aux-address"}, "auxiliary ipv4 or ipv6 addresses used by Network driver")
cmd.Var(flOpts, []string{"o", "-opt"}, "set driver specific options")
cmd.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)
@@ -70,16 +79,15 @@ func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
nc := types.NetworkCreate{
Name: cmd.Arg(0),
Driver: driver,
IPAM: network.IPAM{Driver: *flIpamDriver, Config: ipamCfg},
IPAM: network.IPAM{Driver: *flIpamDriver, Config: ipamCfg, Options: flIpamOpt.GetAll()},
Options: flOpts.GetAll(),
CheckDuplicate: true,
Internal: *flInternal,
EnableIPv6: *flIPv6,
Labels: runconfigopts.ConvertKVStringsToMap(flLabels.GetAll()),
}
obj, _, err := readBody(cli.call("POST", "/networks/create", nc, nil))
if err != nil {
return err
}
var resp types.NetworkCreateResponse
err = json.Unmarshal(obj, &resp)
resp, err := cli.client.NetworkCreate(context.Background(), nc)
if err != nil {
return err
}
@@ -87,37 +95,54 @@ func (cli *DockerCli) CmdNetworkCreate(args ...string) error {
return nil
}
// CmdNetworkRm deletes a network
// CmdNetworkRm deletes one or more networks
//
// Usage: docker network rm <NETWORK-NAME | NETWORK-ID>
// Usage: docker network rm NETWORK-NAME|NETWORK-ID [NETWORK-NAME|NETWORK-ID...]
func (cli *DockerCli) CmdNetworkRm(args ...string) error {
cmd := Cli.Subcmd("network rm", []string{"NETWORK"}, "Deletes a network", false)
cmd.Require(flag.Exact, 1)
err := cmd.ParseFlags(args, true)
if err != nil {
cmd := Cli.Subcmd("network rm", []string{"NETWORK [NETWORK...]"}, "Deletes one or more networks", false)
cmd.Require(flag.Min, 1)
if err := cmd.ParseFlags(args, true); err != nil {
return err
}
_, _, err = readBody(cli.call("DELETE", "/networks/"+cmd.Arg(0), nil, nil))
if err != nil {
return err
status := 0
for _, net := range cmd.Args() {
if err := cli.client.NetworkRemove(context.Background(), net); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
}
}
if status != 0 {
return Cli.StatusError{StatusCode: status}
}
return nil
}
// CmdNetworkConnect connects a container to a network
//
// Usage: docker network connect <NETWORK> <CONTAINER>
// Usage: docker network connect [OPTIONS] <NETWORK> <CONTAINER>
func (cli *DockerCli) CmdNetworkConnect(args ...string) error {
cmd := Cli.Subcmd("network connect", []string{"NETWORK CONTAINER"}, "Connects a container to a network", false)
cmd.Require(flag.Exact, 2)
err := cmd.ParseFlags(args, true)
if err != nil {
flIPAddress := cmd.String([]string{"-ip"}, "", "IP Address")
flIPv6Address := cmd.String([]string{"-ip6"}, "", "IPv6 Address")
flLinks := opts.NewListOpts(runconfigopts.ValidateLink)
cmd.Var(&flLinks, []string{"-link"}, "Add link to another container")
flAliases := opts.NewListOpts(nil)
cmd.Var(&flAliases, []string{"-alias"}, "Add network-scoped alias for the container")
cmd.Require(flag.Min, 2)
if err := cmd.ParseFlags(args, true); err != nil {
return err
}
nc := types.NetworkConnect{Container: cmd.Arg(1)}
_, _, err = readBody(cli.call("POST", "/networks/"+cmd.Arg(0)+"/connect", nc, nil))
return err
epConfig := &network.EndpointSettings{
IPAMConfig: &network.EndpointIPAMConfig{
IPv4Address: *flIPAddress,
IPv6Address: *flIPv6Address,
},
Links: flLinks.GetAll(),
Aliases: flAliases.GetAll(),
}
return cli.client.NetworkConnect(context.Background(), cmd.Arg(0), cmd.Arg(1), epConfig)
}
// CmdNetworkDisconnect disconnects a container from a network
@@ -125,18 +150,16 @@ func (cli *DockerCli) CmdNetworkConnect(args ...string) error {
// Usage: docker network disconnect <NETWORK> <CONTAINER>
func (cli *DockerCli) CmdNetworkDisconnect(args ...string) error {
cmd := Cli.Subcmd("network disconnect", []string{"NETWORK CONTAINER"}, "Disconnects container from a network", false)
force := cmd.Bool([]string{"f", "-force"}, false, "Force the container to disconnect from a network")
cmd.Require(flag.Exact, 2)
err := cmd.ParseFlags(args, true)
if err != nil {
if err := cmd.ParseFlags(args, true); err != nil {
return err
}
nc := types.NetworkConnect{Container: cmd.Arg(1)}
_, _, err = readBody(cli.call("POST", "/networks/"+cmd.Arg(0)+"/disconnect", nc, nil))
return err
return cli.client.NetworkDisconnect(context.Background(), cmd.Arg(0), cmd.Arg(1), *force)
}
// CmdNetworkLs lists all the netorks managed by docker daemon
// CmdNetworkLs lists all the networks managed by docker daemon
//
// Usage: docker network ls [OPTIONS]
func (cli *DockerCli) CmdNetworkLs(args ...string) error {
@@ -144,19 +167,29 @@ func (cli *DockerCli) CmdNetworkLs(args ...string) error {
quiet := cmd.Bool([]string{"q", "-quiet"}, false, "Only display numeric IDs")
noTrunc := cmd.Bool([]string{"-no-trunc"}, false, "Do not truncate the output")
flFilter := opts.NewListOpts(nil)
cmd.Var(&flFilter, []string{"f", "-filter"}, "Filter output based on conditions provided")
cmd.Require(flag.Exact, 0)
err := cmd.ParseFlags(args, true)
if err != nil {
return err
}
obj, _, err := readBody(cli.call("GET", "/networks", nil, nil))
if err != nil {
return err
}
var networkResources []types.NetworkResource
err = json.Unmarshal(obj, &networkResources)
// Consolidate all filter flags, and sanity check them early.
// They'll get process after get response from server.
netFilterArgs := filters.NewArgs()
for _, f := range flFilter.GetAll() {
if netFilterArgs, err = filters.ParseFlag(f, netFilterArgs); err != nil {
return err
}
}
options := types.NetworkListOptions{
Filters: netFilterArgs,
}
networkResources, err := cli.client.NetworkList(context.Background(), options)
if err != nil {
return err
}
@@ -167,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
@@ -189,58 +222,36 @@ 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...]
func (cli *DockerCli) CmdNetworkInspect(args ...string) error {
cmd := Cli.Subcmd("network inspect", []string{"NETWORK [NETWORK...]"}, "Displays detailed information on a network", false)
cmd := Cli.Subcmd("network inspect", []string{"NETWORK [NETWORK...]"}, "Displays detailed information on one or more networks", false)
tmplStr := cmd.String([]string{"f", "-format"}, "", "Format the output using the given go template")
cmd.Require(flag.Min, 1)
err := cmd.ParseFlags(args, true)
if err != nil {
if err := cmd.ParseFlags(args, true); err != nil {
return err
}
status := 0
var networks []*types.NetworkResource
for _, name := range cmd.Args() {
obj, _, err := readBody(cli.call("GET", "/networks/"+name, nil, nil))
if err != nil {
if strings.Contains(err.Error(), "not found") {
fmt.Fprintf(cli.err, "Error: No such network: %s\n", name)
} else {
fmt.Fprintf(cli.err, "%s", err)
}
status = 1
continue
}
networkResource := types.NetworkResource{}
if err := json.NewDecoder(bytes.NewReader(obj)).Decode(&networkResource); err != nil {
return err
}
networks = append(networks, &networkResource)
inspectSearcher := func(name string) (interface{}, []byte, error) {
i, err := cli.client.NetworkInspect(context.Background(), name)
return i, nil, err
}
b, err := json.MarshalIndent(networks, "", " ")
if err != nil {
return err
}
if _, err := io.Copy(cli.out, bytes.NewReader(b)); err != nil {
return err
}
io.WriteString(cli.out, "\n")
if status != 0 {
return Cli.StatusError{StatusCode: status}
}
return nil
return cli.inspectElements(*tmplStr, cmd.Args(), inspectSearcher)
}
// Consolidates the ipam configuration as a group from differnt related configurations
// Consolidates the ipam configuration as a group from different related configurations
// user can configure network with multiple non-overlapping subnets and hence it is
// possible to corelate the various related parameters and consolidate them.
// consoidateIpam consolidates subnets, ip-ranges, gateways and auxilary addresses into
// possible to correlate the various related parameters and consolidate them.
// consoidateIpam consolidates subnets, ip-ranges, gateways and auxiliary addresses into
// structured ipam data.
func consolidateIpam(subnets, ranges, gateways []string, auxaddrs map[string]string) ([]network.IPAMConfig, error) {
if len(subnets) < len(ranges) || len(subnets) < len(gateways) {

View File

@@ -2,6 +2,9 @@ package client
import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -16,17 +19,16 @@ func (cli *DockerCli) CmdPause(args ...string) error {
cmd.ParseFlags(args, true)
var errNames []string
var errs []string
for _, name := range cmd.Args() {
if _, _, err := readBody(cli.call("POST", fmt.Sprintf("/containers/%s/pause", name), nil, nil)); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
if err := cli.client.ContainerPause(context.Background(), name); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}
}
if len(errNames) > 0 {
return fmt.Errorf("Error: failed to pause containers: %v", errNames)
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
return nil
}

View File

@@ -1,13 +1,14 @@
package client
import (
"encoding/json"
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/nat"
"github.com/docker/go-connections/nat"
)
// CmdPort lists port mappings for a container.
@@ -20,23 +21,11 @@ func (cli *DockerCli) CmdPort(args ...string) error {
cmd.ParseFlags(args, true)
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
c, err := cli.client.ContainerInspect(context.Background(), cmd.Arg(0))
if err != nil {
return err
}
defer serverResp.body.Close()
var c struct {
NetworkSettings struct {
Ports nat.PortMap
}
}
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return err
}
if cmd.NArg() == 2 {
var (
port = cmd.Arg(1)

View File

@@ -1,16 +1,14 @@
package client
import (
"encoding/json"
"net/url"
"strconv"
"golang.org/x/net/context"
"github.com/docker/docker/api/client/ps"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/client/formatter"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers/filters"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/filters"
)
// CmdPs outputs a list of Docker containers.
@@ -20,18 +18,17 @@ func (cli *DockerCli) CmdPs(args ...string) error {
var (
err error
psFilterArgs = filters.Args{}
v = url.Values{}
psFilterArgs = filters.NewArgs()
cmd = Cli.Subcmd("ps", nil, Cli.DockerCommands["ps"].Description, true)
quiet = cmd.Bool([]string{"q", "-quiet"}, false, "Only display numeric IDs")
size = cmd.Bool([]string{"s", "-size"}, false, "Display total file sizes")
all = cmd.Bool([]string{"a", "-all"}, false, "Show all containers (default shows just running)")
noTrunc = cmd.Bool([]string{"#notrunc", "-no-trunc"}, false, "Don't truncate output")
nLatest = cmd.Bool([]string{"l", "-latest"}, false, "Show the latest created container, include non-running")
since = cmd.String([]string{"#sinceId", "#-since-id", "-since"}, "", "Show created since Id or Name, include non-running")
before = cmd.String([]string{"#beforeId", "#-before-id", "-before"}, "", "Show only container created before Id or Name")
last = cmd.Int([]string{"n"}, -1, "Show n last created containers, include non-running")
noTrunc = cmd.Bool([]string{"-no-trunc"}, false, "Don't truncate output")
nLatest = cmd.Bool([]string{"l", "-latest"}, false, "Show the latest created container (includes all states)")
since = cmd.String([]string{"#-since"}, "", "Show containers created since Id or Name (includes all states)")
before = cmd.String([]string{"#-before"}, "", "Only show containers created before Id or Name")
last = cmd.Int([]string{"n"}, -1, "Show n last created containers (includes all states)")
format = cmd.String([]string{"-format"}, "", "Pretty-print containers using a Go template")
flFilter = opts.NewListOpts(nil)
)
@@ -44,26 +41,6 @@ func (cli *DockerCli) CmdPs(args ...string) error {
*last = 1
}
if *all {
v.Set("all", "1")
}
if *last != -1 {
v.Set("limit", strconv.Itoa(*last))
}
if *since != "" {
v.Set("since", *since)
}
if *before != "" {
v.Set("before", *before)
}
if *size {
v.Set("size", "1")
}
// Consolidate all filter flags, and sanity check them.
// They'll get processed in the daemon/server.
for _, f := range flFilter.GetAll() {
@@ -72,27 +49,20 @@ func (cli *DockerCli) CmdPs(args ...string) error {
}
}
if len(psFilterArgs) > 0 {
filterJSON, err := filters.ToParam(psFilterArgs)
if err != nil {
return err
}
v.Set("filters", filterJSON)
options := types.ContainerListOptions{
All: *all,
Limit: *last,
Since: *since,
Before: *before,
Size: *size,
Filter: psFilterArgs,
}
serverResp, err := cli.call("GET", "/containers/json?"+v.Encode(), nil, nil)
containers, err := cli.client.ContainerList(context.Background(), options)
if err != nil {
return err
}
defer serverResp.body.Close()
containers := []types.Container{}
if err := json.NewDecoder(serverResp.body).Decode(&containers); err != nil {
return err
}
f := *format
if len(f) == 0 {
if len(cli.PsFormat()) > 0 && !*quiet {
@@ -102,15 +72,18 @@ func (cli *DockerCli) CmdPs(args ...string) error {
}
}
psCtx := ps.Context{
Output: cli.out,
Format: f,
Quiet: *quiet,
Size: *size,
Trunc: !*noTrunc,
psCtx := formatter.ContainerContext{
Context: formatter.Context{
Output: cli.out,
Format: f,
Quiet: *quiet,
Trunc: !*noTrunc,
},
Size: *size,
Containers: containers,
}
ps.Format(psCtx, containers)
psCtx.Write()
return nil
}

View File

@@ -1,140 +0,0 @@
package ps
import (
"bytes"
"fmt"
"io"
"strings"
"text/tabwriter"
"text/template"
"github.com/docker/docker/api/types"
)
const (
tableFormatKey = "table"
rawFormatKey = "raw"
defaultTableFormat = "table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.RunningFor}} ago\t{{.Status}}\t{{.Ports}}\t{{.Names}}"
defaultQuietFormat = "{{.ID}}"
)
// Context contains information required by the formatter to print the output as desired.
type Context struct {
// Output is the output stream to which the formatted string is written.
Output io.Writer
// Format is used to choose raw, table or custom format for the output.
Format string
// Size when set to true will display the size of the output.
Size bool
// Quiet when set to true will simply print minimal information.
Quiet bool
// Trunc when set to true will truncate the output of certain fields such as Container ID.
Trunc bool
}
// Format helps to format the output using the parameters set in the Context.
// Currently Format allow to display in raw, table or custom format the output.
func Format(ctx Context, containers []types.Container) {
switch ctx.Format {
case tableFormatKey:
tableFormat(ctx, containers)
case rawFormatKey:
rawFormat(ctx, containers)
default:
customFormat(ctx, containers)
}
}
func rawFormat(ctx Context, containers []types.Container) {
if ctx.Quiet {
ctx.Format = `container_id: {{.ID}}`
} else {
ctx.Format = `container_id: {{.ID}}
image: {{.Image}}
command: {{.Command}}
created_at: {{.CreatedAt}}
status: {{.Status}}
names: {{.Names}}
labels: {{.Labels}}
ports: {{.Ports}}
`
if ctx.Size {
ctx.Format += `size: {{.Size}}
`
}
}
customFormat(ctx, containers)
}
func tableFormat(ctx Context, containers []types.Container) {
ctx.Format = defaultTableFormat
if ctx.Quiet {
ctx.Format = defaultQuietFormat
}
customFormat(ctx, containers)
}
func customFormat(ctx Context, containers []types.Container) {
var (
table bool
header string
format = ctx.Format
buffer = bytes.NewBufferString("")
)
if strings.HasPrefix(ctx.Format, tableKey) {
table = true
format = format[len(tableKey):]
}
format = strings.Trim(format, " ")
r := strings.NewReplacer(`\t`, "\t", `\n`, "\n")
format = r.Replace(format)
if table && ctx.Size {
format += "\t{{.Size}}"
}
tmpl, err := template.New("").Parse(format)
if err != nil {
buffer.WriteString(fmt.Sprintf("Template parsing error: %v\n", err))
buffer.WriteTo(ctx.Output)
return
}
for _, container := range containers {
containerCtx := &containerContext{
trunc: ctx.Trunc,
c: container,
}
if err := tmpl.Execute(buffer, containerCtx); err != nil {
buffer = bytes.NewBufferString(fmt.Sprintf("Template parsing error: %v\n", err))
buffer.WriteTo(ctx.Output)
return
}
if table && len(header) == 0 {
header = containerCtx.fullHeader()
}
buffer.WriteString("\n")
}
if table {
if len(header) == 0 {
// if we still don't have a header, we didn't have any containers so we need to fake it to get the right headers from the template
containerCtx := &containerContext{}
tmpl.Execute(bytes.NewBufferString(""), containerCtx)
header = containerCtx.fullHeader()
}
t := tabwriter.NewWriter(ctx.Output, 20, 1, 3, ' ', 0)
t.Write([]byte(header))
t.Write([]byte("\n"))
buffer.WriteTo(t)
t.Flush()
} else {
buffer.WriteTo(ctx.Output)
}
}

View File

@@ -1,208 +0,0 @@
package ps
import (
"bytes"
"testing"
"github.com/docker/docker/api/types"
)
func TestFormat(t *testing.T) {
contexts := []struct {
context Context
expected string
}{
// Errors
{
Context{
Format: "{{InvalidFunction}}",
},
`Template parsing error: template: :1: function "InvalidFunction" not defined
`,
},
{
Context{
Format: "{{nil}}",
},
`Template parsing error: template: :1:2: executing "" at <nil>: nil is not a command
`,
},
// Table Format
{
Context{
Format: "table",
},
`CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
containerID1 ubuntu "" 45 years ago foobar_baz
containerID2 ubuntu "" 45 years ago foobar_bar
`,
},
{
Context{
Format: "table {{.Image}}",
},
"IMAGE\nubuntu\nubuntu\n",
},
{
Context{
Format: "table {{.Image}}",
Size: true,
},
"IMAGE SIZE\nubuntu 0 B\nubuntu 0 B\n",
},
{
Context{
Format: "table {{.Image}}",
Quiet: true,
},
"IMAGE\nubuntu\nubuntu\n",
},
{
Context{
Format: "table",
Quiet: true,
},
"containerID1\ncontainerID2\n",
},
// Raw Format
{
Context{
Format: "raw",
},
`container_id: containerID1
image: ubuntu
command: ""
created_at: 1970-01-01 00:00:00 +0000 UTC
status:
names: foobar_baz
labels:
ports:
container_id: containerID2
image: ubuntu
command: ""
created_at: 1970-01-01 00:00:00 +0000 UTC
status:
names: foobar_bar
labels:
ports:
`,
},
{
Context{
Format: "raw",
Size: true,
},
`container_id: containerID1
image: ubuntu
command: ""
created_at: 1970-01-01 00:00:00 +0000 UTC
status:
names: foobar_baz
labels:
ports:
size: 0 B
container_id: containerID2
image: ubuntu
command: ""
created_at: 1970-01-01 00:00:00 +0000 UTC
status:
names: foobar_bar
labels:
ports:
size: 0 B
`,
},
{
Context{
Format: "raw",
Quiet: true,
},
"container_id: containerID1\ncontainer_id: containerID2\n",
},
// Custom Format
{
Context{
Format: "{{.Image}}",
},
"ubuntu\nubuntu\n",
},
{
Context{
Format: "{{.Image}}",
Size: true,
},
"ubuntu\nubuntu\n",
},
}
for _, context := range contexts {
containers := []types.Container{
{ID: "containerID1", Names: []string{"/foobar_baz"}, Image: "ubuntu"},
{ID: "containerID2", Names: []string{"/foobar_bar"}, Image: "ubuntu"},
}
out := bytes.NewBufferString("")
context.context.Output = out
Format(context.context, containers)
actual := out.String()
if actual != context.expected {
t.Fatalf("Expected \n%s, got \n%s", context.expected, actual)
}
// Clean buffer
out.Reset()
}
}
func TestCustomFormatNoContainers(t *testing.T) {
out := bytes.NewBufferString("")
containers := []types.Container{}
contexts := []struct {
context Context
expected string
}{
{
Context{
Format: "{{.Image}}",
Output: out,
},
"",
},
{
Context{
Format: "table {{.Image}}",
Output: out,
},
"IMAGE\n",
},
{
Context{
Format: "{{.Image}}",
Output: out,
Size: true,
},
"",
},
{
Context{
Format: "table {{.Image}}",
Output: out,
Size: true,
},
"IMAGE SIZE\n",
},
}
for _, context := range contexts {
customFormat(context.context, containers)
actual := out.String()
if actual != context.expected {
t.Fatalf("Expected \n%s, got \n%s", context.expected, actual)
}
// Clean buffer
out.Reset()
}
}

View File

@@ -1,14 +1,18 @@
package client
import (
"errors"
"fmt"
"net/url"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/graph/tags"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/reference"
"github.com/docker/docker/registry"
"github.com/docker/engine-api/client"
"github.com/docker/engine-api/types"
)
// CmdPull pulls an image or a repository from the registry.
@@ -23,31 +27,63 @@ func (cli *DockerCli) CmdPull(args ...string) error {
cmd.ParseFlags(args, true)
remote := cmd.Arg(0)
taglessRemote, tag := parsers.ParseRepositoryTag(remote)
if tag == "" && !*allTags {
tag = tags.DefaultTag
fmt.Fprintf(cli.out, "Using default tag: %s\n", tag)
} else if tag != "" && *allTags {
return fmt.Errorf("tag can't be used with --all-tags/-a")
distributionRef, err := reference.ParseNamed(remote)
if err != nil {
return err
}
if *allTags && !reference.IsNameOnly(distributionRef) {
return errors.New("tag can't be used with --all-tags/-a")
}
if !*allTags && reference.IsNameOnly(distributionRef) {
distributionRef = reference.WithDefaultTag(distributionRef)
fmt.Fprintf(cli.out, "Using default tag: %s\n", reference.DefaultTag)
}
var tag string
switch x := distributionRef.(type) {
case reference.Canonical:
tag = x.Digest().String()
case reference.NamedTagged:
tag = x.Tag()
}
ref := registry.ParseReference(tag)
// Resolve the Repository name from fqn to RepositoryInfo
repoInfo, err := registry.ParseRepositoryInfo(taglessRemote)
repoInfo, err := registry.ParseRepositoryInfo(distributionRef)
if err != nil {
return err
}
authConfig := cli.resolveAuthConfig(repoInfo.Index)
requestPrivilege := cli.registryAuthenticationPrivilegedFunc(repoInfo.Index, "pull")
if isTrusted() && !ref.HasDigest() {
// Check if tag is digest
authConfig := registry.ResolveAuthConfig(cli.configFile, repoInfo.Index)
return cli.trustedPull(repoInfo, ref, authConfig)
return cli.trustedPull(repoInfo, ref, authConfig, requestPrivilege)
}
v := url.Values{}
v.Set("fromImage", ref.ImageName(taglessRemote))
_, _, err = cli.clientRequestAttemptLogin("POST", "/images/create?"+v.Encode(), nil, cli.out, repoInfo.Index, "pull")
return err
return cli.imagePullPrivileged(authConfig, distributionRef.String(), "", requestPrivilege)
}
func (cli *DockerCli) imagePullPrivileged(authConfig types.AuthConfig, imageID, tag string, requestPrivilege client.RequestPrivilegeFunc) error {
encodedAuth, err := encodeAuthToBase64(authConfig)
if err != nil {
return err
}
options := types.ImagePullOptions{
ImageID: imageID,
Tag: tag,
RegistryAuth: encodedAuth,
}
responseBody, err := cli.client.ImagePull(context.Background(), options, requestPrivilege)
if err != nil {
return err
}
defer responseBody.Close()
return jsonmessage.DisplayJSONMessagesStream(responseBody, cli.out, cli.outFd, cli.isTerminalOut, nil)
}

View File

@@ -1,13 +1,18 @@
package client
import (
"fmt"
"net/url"
"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"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/reference"
"github.com/docker/docker/registry"
"github.com/docker/engine-api/client"
"github.com/docker/engine-api/types"
)
// CmdPush pushes an image or repository to the registry.
@@ -20,34 +25,52 @@ func (cli *DockerCli) CmdPush(args ...string) error {
cmd.ParseFlags(args, true)
remote, tag := parsers.ParseRepositoryTag(cmd.Arg(0))
ref, err := reference.ParseNamed(cmd.Arg(0))
if err != nil {
return err
}
var tag string
switch x := ref.(type) {
case reference.Canonical:
return errors.New("cannot push a digest reference")
case reference.NamedTagged:
tag = x.Tag()
}
// Resolve the Repository name from fqn to RepositoryInfo
repoInfo, err := registry.ParseRepositoryInfo(remote)
repoInfo, err := registry.ParseRepositoryInfo(ref)
if err != nil {
return err
}
// Resolve the Auth config relevant for this server
authConfig := registry.ResolveAuthConfig(cli.configFile, repoInfo.Index)
// If we're not using a custom registry, we know the restrictions
// applied to repository names and can warn the user in advance.
// Custom repositories can have different rules, and we must also
// allow pushing by image ID.
if repoInfo.Official {
username := authConfig.Username
if username == "" {
username = "<user>"
}
return fmt.Errorf("You cannot push a \"root\" repository. Please rename your repository to <user>/<repo> (ex: %s/%s)", username, repoInfo.LocalName)
}
authConfig := cli.resolveAuthConfig(repoInfo.Index)
requestPrivilege := cli.registryAuthenticationPrivilegedFunc(repoInfo.Index, "push")
if isTrusted() {
return cli.trustedPush(repoInfo, tag, authConfig)
return cli.trustedPush(repoInfo, tag, authConfig, requestPrivilege)
}
v := url.Values{}
v.Set("tag", tag)
responseBody, err := cli.imagePushPrivileged(authConfig, ref.Name(), tag, requestPrivilege)
if err != nil {
return err
}
_, _, err = cli.clientRequestAttemptLogin("POST", "/images/"+remote+"/push?"+v.Encode(), nil, cli.out, repoInfo.Index, "push")
return err
defer responseBody.Close()
return jsonmessage.DisplayJSONMessagesStream(responseBody, cli.out, cli.outFd, cli.isTerminalOut, nil)
}
func (cli *DockerCli) imagePushPrivileged(authConfig types.AuthConfig, imageID, tag string, requestPrivilege client.RequestPrivilegeFunc) (io.ReadCloser, error) {
encodedAuth, err := encodeAuthToBase64(authConfig)
if err != nil {
return nil, err
}
options := types.ImagePushOptions{
ImageID: imageID,
Tag: tag,
RegistryAuth: encodedAuth,
}
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 := readBody(cli.call("POST", fmt.Sprintf("/containers/%s/rename?name=%s", oldName, newName), nil, nil)); 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

@@ -2,8 +2,9 @@ package client
import (
"fmt"
"net/url"
"strconv"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -19,21 +20,16 @@ func (cli *DockerCli) CmdRestart(args ...string) error {
cmd.ParseFlags(args, true)
v := url.Values{}
v.Set("t", strconv.Itoa(*nSeconds))
var errNames []string
var errs []string
for _, name := range cmd.Args() {
_, _, err := readBody(cli.call("POST", "/containers/"+name+"/restart?"+v.Encode(), nil, nil))
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
if err := cli.client.ContainerRestart(context.Background(), name, *nSeconds); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}
}
if len(errNames) > 0 {
return fmt.Errorf("Error: failed to restart containers: %v", errNames)
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
return nil
}

View File

@@ -2,11 +2,13 @@ package client
import (
"fmt"
"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"
)
// CmdRm removes one or more containers.
@@ -15,41 +17,40 @@ import (
func (cli *DockerCli) CmdRm(args ...string) error {
cmd := Cli.Subcmd("rm", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["rm"].Description, true)
v := cmd.Bool([]string{"v", "-volumes"}, false, "Remove the volumes associated with the container")
link := cmd.Bool([]string{"l", "#link", "-link"}, false, "Remove the specified link")
link := cmd.Bool([]string{"l", "-link"}, false, "Remove the specified link")
force := cmd.Bool([]string{"f", "-force"}, false, "Force the removal of a running container (uses SIGKILL)")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
val := url.Values{}
if *v {
val.Set("v", "1")
}
if *link {
val.Set("link", "1")
}
if *force {
val.Set("force", "1")
}
var errNames []string
var errs []string
for _, name := range cmd.Args() {
if name == "" {
return fmt.Errorf("Container name cannot be empty")
}
name = strings.Trim(name, "/")
_, _, err := readBody(cli.call("DELETE", "/containers/"+name+"?"+val.Encode(), nil, nil))
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
if err := cli.removeContainer(name, *v, *link, *force); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}
}
if len(errNames) > 0 {
return fmt.Errorf("Error: failed to remove containers: %v", errNames)
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
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

@@ -1,13 +1,15 @@
package client
import (
"encoding/json"
"fmt"
"net/url"
"strings"
"golang.org/x/net/context"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/engine-api/types"
)
// CmdRmi removes all images with the specified name(s).
@@ -29,22 +31,18 @@ func (cli *DockerCli) CmdRmi(args ...string) error {
v.Set("noprune", "1")
}
var errNames []string
var errs []string
for _, name := range cmd.Args() {
serverResp, err := cli.call("DELETE", "/images/"+name+"?"+v.Encode(), nil, nil)
options := types.ImageRemoveOptions{
ImageID: name,
Force: *force,
PruneChildren: !*noprune,
}
dels, err := cli.client.ImageRemove(context.Background(), options)
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
errs = append(errs, err.Error())
} else {
defer serverResp.body.Close()
dels := []types.ImageDelete{}
if err := json.NewDecoder(serverResp.body).Decode(&dels); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
continue
}
for _, del := range dels {
if del.Deleted != "" {
fmt.Fprintf(cli.out, "Deleted: %s\n", del.Deleted)
@@ -54,8 +52,8 @@ func (cli *DockerCli) CmdRmi(args ...string) error {
}
}
}
if len(errNames) > 0 {
return fmt.Errorf("Error: failed to remove images: %v", errNames)
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
return nil
}

View File

@@ -3,19 +3,27 @@ package client
import (
"fmt"
"io"
"net/url"
"os"
"runtime"
"strings"
"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/promise"
"github.com/docker/docker/pkg/signal"
"github.com/docker/docker/runconfig"
runconfigopts "github.com/docker/docker/runconfig/opts"
"github.com/docker/engine-api/types"
"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()
@@ -36,6 +44,24 @@ func (cid *cidFile) Write(id string) error {
return nil
}
// if container start fails with 'command not found' error, return 127
// if container start fails with 'command cannot be invoked' error, return 126
// return 125 for generic docker daemon failures
func runStartContainerErr(err error) error {
trimmedErr := strings.Trim(err.Error(), "Error response from daemon: ")
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
}
// CmdRun runs a command in a new container.
//
// Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
@@ -49,6 +75,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
flDetach = cmd.Bool([]string{"d", "-detach"}, false, "Run container in background and print container ID")
flSigProxy = cmd.Bool([]string{"-sig-proxy"}, true, "Proxy received signals to the process")
flName = cmd.String([]string{"-name"}, "", "Assign a name to the container")
flDetachKeys = cmd.String([]string{"-detach-keys"}, "", "Override the key sequence for detaching a container")
flAttach *opts.ListOpts
ErrConflictAttachDetach = fmt.Errorf("Conflicting options: -a and -d")
@@ -56,11 +83,16 @@ func (cli *DockerCli) CmdRun(args ...string) error {
ErrConflictDetachAutoRemove = fmt.Errorf("Conflicting options: --rm and -d")
)
config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
config, hostConfig, networkingConfig, cmd, err := runconfigopts.Parse(cmd, args)
// just in case the Parse does not exit
if err != nil {
cmd.ReportError(err.Error(), true)
os.Exit(1)
os.Exit(125)
}
if hostConfig.OomKillDisable != nil && *hostConfig.OomKillDisable && hostConfig.Memory == 0 {
fmt.Fprintf(cli.err, "WARNING: Disabling the OOM killer on containers without setting a '-m/--memory' limit may be dangerous.\n")
}
if len(hostConfig.DNS) > 0 {
@@ -79,6 +111,8 @@ func (cli *DockerCli) CmdRun(args ...string) error {
return nil
}
config.ArgsEscaped = false
if !*flDetach {
if err := cli.CheckTtyInput(config.AttachStdin, config.Tty); err != nil {
return err
@@ -113,9 +147,10 @@ func (cli *DockerCli) CmdRun(args ...string) error {
hostConfig.ConsoleSize[0], hostConfig.ConsoleSize[1] = cli.getTtySize()
}
createResponse, err := cli.createContainer(config, hostConfig, hostConfig.ContainerIDFile, *flName)
createResponse, err := cli.createContainer(config, hostConfig, networkingConfig, hostConfig.ContainerIDFile, *flName)
if err != nil {
return err
cmd.ReportError(err.Error(), true)
return runStartContainerErr(err)
}
if sigProxy {
sigc := cli.forwardAllSignals(createResponse.ID)
@@ -136,71 +171,66 @@ func (cli *DockerCli) CmdRun(args ...string) error {
if *flAutoRemove && (hostConfig.RestartPolicy.IsAlways() || hostConfig.RestartPolicy.IsOnFailure()) {
return ErrConflictRestartPolicyAndAutoRemove
}
// We need to instantiate the chan because the select needs it. It can
// be closed but can't be uninitialized.
hijacked := make(chan io.Closer)
// Block the return until the chan gets closed
defer func() {
logrus.Debugf("End of CmdRun(), Waiting for hijack to finish.")
if _, ok := <-hijacked; ok {
fmt.Fprintln(cli.err, "Hijack did not finish (chan still open)")
}
}()
if config.AttachStdin || config.AttachStdout || config.AttachStderr {
var (
out, stderr io.Writer
in io.ReadCloser
v = url.Values{}
)
v.Set("stream", "1")
if config.AttachStdin {
v.Set("stdin", "1")
in = cli.in
}
if config.AttachStdout {
v.Set("stdout", "1")
out = cli.out
}
if config.AttachStderr {
v.Set("stderr", "1")
if config.Tty {
stderr = cli.out
} else {
stderr = cli.err
}
}
errCh = promise.Go(func() error {
return cli.hijack("POST", "/containers/"+createResponse.ID+"/attach?"+v.Encode(), config.Tty, in, out, stderr, hijacked, nil)
})
} else {
close(hijacked)
}
// Acknowledge the hijack before starting
select {
case closer := <-hijacked:
// Make sure that the hijack gets closed when returning (results
// in closing the hijack chan and freeing server's goroutines)
if closer != nil {
defer closer.Close()
if *flDetachKeys != "" {
cli.configFile.DetachKeys = *flDetachKeys
}
case err := <-errCh:
options := types.ContainerAttachOptions{
ContainerID: createResponse.ID,
Stream: true,
Stdin: config.AttachStdin,
Stdout: config.AttachStdout,
Stderr: config.AttachStderr,
DetachKeys: cli.configFile.DetachKeys,
}
resp, err := cli.client.ContainerAttach(context.Background(), options)
if err != nil {
logrus.Debugf("Error hijack: %s", err)
return err
}
if in != nil && config.Tty {
if err := cli.setRawTerminal(); err != nil {
return err
}
defer cli.restoreTerminal(in)
}
errCh = promise.Go(func() error {
return cli.holdHijackedConnection(config.Tty, in, out, stderr, resp)
})
}
defer func() {
if *flAutoRemove {
if _, _, err = readBody(cli.call("DELETE", "/containers/"+createResponse.ID+"?v=1", nil, nil)); err != nil {
fmt.Fprintf(cli.err, "Error deleting container: %s\n", err)
if *flAutoRemove {
defer func() {
if err := cli.removeContainer(createResponse.ID, true, false, false); err != nil {
fmt.Fprintf(cli.err, "%v\n", err)
}
}
}()
}()
}
//start the container
if _, _, err = readBody(cli.call("POST", "/containers/"+createResponse.ID+"/start", nil, nil)); err != nil {
return err
if err := cli.client.ContainerStart(context.Background(), createResponse.ID); err != nil {
cmd.ReportError(err.Error(), false)
return runStartContainerErr(err)
}
if (config.AttachStdin || config.AttachStdout || config.AttachStderr) && config.Tty && cli.isTerminalOut {
@@ -229,8 +259,8 @@ 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 _, _, err := readBody(cli.call("POST", "/containers/"+createResponse.ID+"/wait", nil, nil)); err != nil {
return err
if status, err = cli.client.ContainerWait(context.Background(), createResponse.ID); err != nil {
return runStartContainerErr(err)
}
if _, status, err = getExitCode(cli, createResponse.ID); err != nil {
return err
@@ -239,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 = waitForExit(cli, createResponse.ID); err != nil {
if status, err = cli.client.ContainerWait(context.Background(), createResponse.ID); err != nil {
return err
}
} else {

View File

@@ -2,8 +2,9 @@ package client
import (
"errors"
"net/url"
"os"
"io"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -21,32 +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
}
}
sopts := &streamOpts{
rawTerminal: true,
out: output,
responseBody, err := cli.client.ImageSave(context.Background(), cmd.Args())
if err != nil {
return err
}
defer responseBody.Close()
v := url.Values{}
for _, arg := range cmd.Args() {
v.Add("names", arg)
}
if _, err := cli.stream("GET", "/images/get?"+v.Encode(), sopts); err != nil {
if *outfile == "" {
_, err := io.Copy(cli.out, responseBody)
return err
}
return nil
return copyToFile(*outfile, responseBody)
}

View File

@@ -1,36 +1,30 @@
package client
import (
"encoding/json"
"fmt"
"net/url"
"sort"
"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/parsers"
"github.com/docker/docker/pkg/stringutils"
"github.com/docker/docker/registry"
"github.com/docker/engine-api/types"
registrytypes "github.com/docker/engine-api/types/registry"
)
// ByStars sorts search results in ascending order by number of stars.
type ByStars []registry.SearchResult
func (r ByStars) Len() int { return len(r) }
func (r ByStars) Swap(i, j int) { r[i], r[j] = r[j], r[i] }
func (r ByStars) Less(i, j int) bool { return r[i].StarCount < r[j].StarCount }
// CmdSearch searches the Docker Hub for images.
//
// Usage: docker search [OPTIONS] TERM
func (cli *DockerCli) CmdSearch(args ...string) error {
cmd := Cli.Subcmd("search", []string{"TERM"}, Cli.DockerCommands["search"].Description, true)
noTrunc := cmd.Bool([]string{"#notrunc", "-no-trunc"}, false, "Don't truncate output")
trusted := cmd.Bool([]string{"#t", "#trusted", "#-trusted"}, false, "Only show trusted builds")
noTrunc := cmd.Bool([]string{"-no-trunc"}, false, "Don't truncate output")
automated := cmd.Bool([]string{"-automated"}, false, "Only show automated builds")
stars := cmd.Uint([]string{"s", "#stars", "-stars"}, 0, "Only displays with at least x stars")
stars := cmd.Uint([]string{"s", "-stars"}, 0, "Only displays with at least x stars")
cmd.Require(flag.Exact, 1)
cmd.ParseFlags(args, true)
@@ -39,32 +33,36 @@ func (cli *DockerCli) CmdSearch(args ...string) error {
v := url.Values{}
v.Set("term", name)
// Resolve the Repository name from fqn to hostname + name
taglessRemote, _ := parsers.ParseRepositoryTag(name)
indexInfo, err := registry.ParseIndexInfo(taglessRemote)
indexInfo, err := registry.ParseSearchIndexInfo(name)
if err != nil {
return err
}
rdr, _, err := cli.clientRequestAttemptLogin("GET", "/images/search?"+v.Encode(), nil, nil, indexInfo, "search")
authConfig := cli.resolveAuthConfig(indexInfo)
requestPrivilege := cli.registryAuthenticationPrivilegedFunc(indexInfo, "search")
encodedAuth, err := encodeAuthToBase64(authConfig)
if err != nil {
return err
}
defer rdr.Close()
options := types.ImageSearchOptions{
Term: name,
RegistryAuth: encodedAuth,
}
results := ByStars{}
if err := json.NewDecoder(rdr).Decode(&results); err != nil {
unorderedResults, err := cli.client.ImageSearch(context.Background(), options, requestPrivilege)
if err != nil {
return err
}
sort.Sort(sort.Reverse(results))
results := searchResultsByStars(unorderedResults)
sort.Sort(results)
w := tabwriter.NewWriter(cli.out, 10, 1, 3, ' ', 0)
fmt.Fprintf(w, "NAME\tDESCRIPTION\tSTARS\tOFFICIAL\tAUTOMATED\n")
for _, res := range results {
if (*automated && !res.IsAutomated) || (int(*stars) > res.StarCount) || (*trusted && !res.IsTrusted) {
if (*automated && !res.IsAutomated) || (int(*stars) > res.StarCount) {
continue
}
desc := strings.Replace(res.Description, "\n", " ", -1)
@@ -86,3 +84,10 @@ func (cli *DockerCli) CmdSearch(args ...string) error {
w.Flush()
return nil
}
// SearchResultsByStars sorts search results in descending order by number of stars.
type searchResultsByStars []registrytypes.SearchResult
func (r searchResultsByStars) Len() int { return len(r) }
func (r searchResultsByStars) Swap(i, j int) { r[i], r[j] = r[j], r[i] }
func (r searchResultsByStars) Less(i, j int) bool { return r[j].StarCount < r[i].StarCount }

View File

@@ -1,18 +1,19 @@
package client
import (
"encoding/json"
"fmt"
"io"
"net/url"
"os"
"strings"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/promise"
"github.com/docker/docker/pkg/signal"
"github.com/docker/engine-api/types"
)
func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal {
@@ -20,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 +35,8 @@ func (cli *DockerCli) forwardAllSignals(cid string) chan os.Signal {
fmt.Fprintf(cli.err, "Unsupported signal: %v. Discarding.\n", s)
continue
}
if _, _, err := readBody(cli.call("POST", fmt.Sprintf("/containers/%s/kill?signal=%s", cid, sig), nil, nil)); err != nil {
if err := cli.client.ContainerKill(context.Background(), cid, sig); err != nil {
logrus.Debugf("Error sending signal: %s", err)
}
}
@@ -49,123 +51,107 @@ func (cli *DockerCli) CmdStart(args ...string) error {
cmd := Cli.Subcmd("start", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["start"].Description, true)
attach := cmd.Bool([]string{"a", "-attach"}, false, "Attach STDOUT/STDERR and forward signals")
openStdin := cmd.Bool([]string{"i", "-interactive"}, false, "Attach container's STDIN")
detachKeys := cmd.String([]string{"-detach-keys"}, "", "Override the key sequence for detaching a container")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
var (
cErr chan error
tty bool
)
if *attach || *openStdin {
// We're going to attach to a container.
// 1. Ensure we only have one container.
if cmd.NArg() > 1 {
return fmt.Errorf("You cannot start and attach multiple containers at once.")
}
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
// 2. Attach to the container.
containerID := cmd.Arg(0)
c, err := cli.client.ContainerInspect(context.Background(), containerID)
if err != nil {
return err
}
defer serverResp.body.Close()
var c types.ContainerJSON
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return err
}
tty = c.Config.Tty
if !tty {
sigc := cli.forwardAllSignals(cmd.Arg(0))
if !c.Config.Tty {
sigc := cli.forwardAllSignals(containerID)
defer signal.StopCatch(sigc)
}
if *detachKeys != "" {
cli.configFile.DetachKeys = *detachKeys
}
options := types.ContainerAttachOptions{
ContainerID: containerID,
Stream: true,
Stdin: *openStdin && c.Config.OpenStdin,
Stdout: true,
Stderr: true,
DetachKeys: cli.configFile.DetachKeys,
}
var in io.ReadCloser
v := url.Values{}
v.Set("stream", "1")
if *openStdin && c.Config.OpenStdin {
v.Set("stdin", "1")
if options.Stdin {
in = cli.in
}
v.Set("stdout", "1")
v.Set("stderr", "1")
hijacked := make(chan io.Closer)
// Block the return until the chan gets closed
defer func() {
logrus.Debugf("CmdStart() returned, defer waiting for hijack to finish.")
if _, ok := <-hijacked; ok {
fmt.Fprintln(cli.err, "Hijack did not finish (chan still open)")
}
cli.in.Close()
}()
cErr = promise.Go(func() error {
return cli.hijack("POST", "/containers/"+cmd.Arg(0)+"/attach?"+v.Encode(), tty, in, cli.out, cli.err, hijacked, nil)
})
// Acknowledge the hijack before starting
select {
case closer := <-hijacked:
// Make sure that the hijack gets closed when returning (results
// in closing the hijack chan and freeing server's goroutines)
if closer != nil {
defer closer.Close()
}
case err := <-cErr:
if err != nil {
resp, err := cli.client.ContainerAttach(context.Background(), options)
if err != nil {
return err
}
defer resp.Close()
if in != nil && c.Config.Tty {
if err := cli.setRawTerminal(); err != nil {
return err
}
defer cli.restoreTerminal(in)
}
}
var encounteredError error
var errNames []string
for _, name := range cmd.Args() {
_, _, err := readBody(cli.call("POST", "/containers/"+name+"/start", nil, nil))
if err != nil {
if !*attach && !*openStdin {
// attach and openStdin is false means it could be starting multiple containers
// when a container start failed, show the error message and start next
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
} else {
encounteredError = err
}
} else {
if !*attach && !*openStdin {
fmt.Fprintf(cli.out, "%s\n", name)
}
cErr := promise.Go(func() error {
return cli.holdHijackedConnection(c.Config.Tty, in, cli.out, cli.err, resp)
})
// 3. Start the container.
if err := cli.client.ContainerStart(context.Background(), containerID); err != nil {
return err
}
}
if len(errNames) > 0 {
encounteredError = fmt.Errorf("Error: failed to start containers: %v", errNames)
}
if encounteredError != nil {
return encounteredError
}
if *openStdin || *attach {
if tty && cli.isTerminalOut {
if err := cli.monitorTtySize(cmd.Arg(0), false); err != nil {
// 4. Wait for attachment to break.
if c.Config.Tty && cli.isTerminalOut {
if err := cli.monitorTtySize(containerID, false); err != nil {
fmt.Fprintf(cli.err, "Error monitoring TTY size: %s\n", err)
}
}
if attchErr := <-cErr; attchErr != nil {
return attchErr
}
_, status, err := getExitCode(cli, cmd.Arg(0))
_, status, err := getExitCode(cli, containerID)
if err != nil {
return err
}
if status != 0 {
return Cli.StatusError{StatusCode: status}
}
} else {
// We're not going to attach to anything.
// Start as many containers as we want.
return cli.startContainersWithoutAttachments(cmd.Args())
}
return nil
}
func (cli *DockerCli) startContainersWithoutAttachments(containerIDs []string) error {
var failedContainers []string
for _, containerID := range containerIDs {
if err := cli.client.ContainerStart(context.Background(), containerID); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
failedContainers = append(failedContainers, containerID)
} else {
fmt.Fprintf(cli.out, "%s\n", containerID)
}
}
if len(failedContainers) > 0 {
return fmt.Errorf("Error: failed to start containers: %v", strings.Join(failedContainers, ", "))
}
return nil
}

View File

@@ -1,240 +1,208 @@
package client
import (
"encoding/json"
"fmt"
"io"
"net/url"
"sort"
"strings"
"sync"
"text/tabwriter"
"time"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/units"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/events"
"github.com/docker/engine-api/types/filters"
)
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
}
func (s *containerStats) Collect(cli *DockerCli, streamStats bool) {
v := url.Values{}
if streamStats {
v.Set("stream", "1")
} else {
v.Set("stream", "0")
}
serverResp, err := cli.call("GET", "/containers/"+s.Name+"/stats?"+v.Encode(), nil, nil)
if err != nil {
s.mu.Lock()
s.err = err
s.mu.Unlock()
return
}
defer serverResp.body.Close()
var (
previousCPU uint64
previousSystem uint64
dec = json.NewDecoder(serverResp.body)
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 havn'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.
//
// Usage: docker stats CONTAINER [CONTAINER...]
// Usage: docker stats [OPTIONS] [CONTAINER...]
func (cli *DockerCli) CmdStats(args ...string) error {
cmd := Cli.Subcmd("stats", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["stats"].Description, true)
cmd := Cli.Subcmd("stats", []string{"[CONTAINER...]"}, Cli.DockerCommands["stats"].Description, true)
all := cmd.Bool([]string{"a", "-all"}, false, "Show all containers (default shows just running)")
noStream := cmd.Bool([]string{"-no-stream"}, false, "Disable streaming stats and only pull the first result")
cmd.Require(flag.Min, 1)
cmd.ParseFlags(args, true)
names := cmd.Args()
sort.Strings(names)
var (
cStats []*containerStats
w = tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
)
showAll := len(names) == 0
closeChan := make(chan error)
// 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(context.Background(), options)
if err != nil {
closeChan <- err
}
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 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")
}
for _, n := range names {
s := &containerStats{Name: n}
cStats = append(cStats, s)
go s.Collect(cli, !*noStream)
}
// 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
for _, c := range cStats {
c.mu.Lock()
if c.err != nil {
errs = append(errs, fmt.Sprintf("%s: %v", c.Name, c.err))
}
c.mu.Unlock()
}
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, ", "))
io.WriteString(w, "CONTAINER\tCPU %\tMEM USAGE / LIMIT\tMEM %\tNET I/O\tBLOCK I/O\tPIDS\n")
}
for range time.Tick(500 * time.Millisecond) {
printHeader()
toRemove := []int{}
for i, s := range cStats {
cStats.mu.Lock()
for i, s := range cStats.cs {
if err := s.Display(w); err != nil && !*noStream {
toRemove = append(toRemove, i)
}
}
for j := len(toRemove) - 1; j >= 0; j-- {
i := toRemove[j]
cStats = append(cStats[:i], cStats[i+1:]...)
cStats.cs = append(cStats.cs[:i], cStats.cs[i+1:]...)
}
if len(cStats) == 0 {
if len(cStats.cs) == 0 && !showAll {
return nil
}
cStats.mu.Unlock()
w.Flush()
if *noStream {
break
}
select {
case err, ok := <-closeChan:
if ok {
if err != nil {
// this is suppressing "unexpected EOF" in the cli when the
// daemon restarts so it shutdowns cleanly
if err == io.ErrUnexpectedEOF {
return nil
}
return err
}
}
default:
// just skip
}
}
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 - previousCPU)
// calculate the change for the entire system between readings
systemDelta = float64(v.CPUStats.SystemUsage - 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

@@ -5,7 +5,7 @@ import (
"sync"
"testing"
"github.com/docker/docker/api/types"
"github.com/docker/engine-api/types"
)
func TestDisplay(t *testing.T) {
@@ -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

@@ -2,8 +2,9 @@ package client
import (
"fmt"
"net/url"
"strconv"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -21,21 +22,16 @@ func (cli *DockerCli) CmdStop(args ...string) error {
cmd.ParseFlags(args, true)
v := url.Values{}
v.Set("t", strconv.Itoa(*nSeconds))
var errNames []string
var errs []string
for _, name := range cmd.Args() {
_, _, err := readBody(cli.call("POST", "/containers/"+name+"/stop?"+v.Encode(), nil, nil))
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
if err := cli.client.ContainerStop(context.Background(), name, *nSeconds); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}
}
if len(errNames) > 0 {
return fmt.Errorf("Error: failed to stop containers: %v", errNames)
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
return nil
}

View File

@@ -1,12 +1,14 @@
package client
import (
"net/url"
"errors"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/registry"
"github.com/docker/docker/reference"
"github.com/docker/engine-api/types"
)
// CmdTag tags an image into a repository.
@@ -14,29 +16,31 @@ import (
// Usage: docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
func (cli *DockerCli) CmdTag(args ...string) error {
cmd := Cli.Subcmd("tag", []string{"IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]"}, Cli.DockerCommands["tag"].Description, true)
force := cmd.Bool([]string{"f", "#force", "-force"}, false, "Force")
force := cmd.Bool([]string{"#f", "#-force"}, false, "Force the tagging even if there's a conflict")
cmd.Require(flag.Exact, 2)
cmd.ParseFlags(args, true)
var (
repository, tag = parsers.ParseRepositoryTag(cmd.Arg(1))
v = url.Values{}
)
//Check if the given image name can be resolved
if err := registry.ValidateRepositoryName(repository); err != nil {
ref, err := reference.ParseNamed(cmd.Arg(1))
if err != nil {
return err
}
v.Set("repo", repository)
v.Set("tag", tag)
if *force {
v.Set("force", "1")
if _, isCanonical := ref.(reference.Canonical); isCanonical {
return errors.New("refusing to create a tag with a digest reference")
}
if _, _, err := readBody(cli.call("POST", "/images/"+cmd.Arg(0)+"/tag?"+v.Encode(), nil, nil)); err != nil {
return err
var tag string
if tagged, isTagged := ref.(reference.NamedTagged); isTagged {
tag = tagged.Tag()
}
return nil
options := types.ImageTagOptions{
ImageID: cmd.Arg(0),
RepositoryName: ref.Name(),
Tag: tag,
Force: *force,
}
return cli.client.ImageTag(context.Background(), options)
}

View File

@@ -1,13 +1,12 @@
package client
import (
"encoding/json"
"fmt"
"net/url"
"strings"
"text/tabwriter"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
)
@@ -21,23 +20,16 @@ func (cli *DockerCli) CmdTop(args ...string) error {
cmd.ParseFlags(args, true)
val := url.Values{}
var arguments []string
if cmd.NArg() > 1 {
val.Set("ps_args", strings.Join(cmd.Args()[1:], " "))
arguments = cmd.Args()[1:]
}
serverResp, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/top?"+val.Encode(), nil, nil)
procList, err := cli.client.ContainerTop(context.Background(), cmd.Arg(0), arguments)
if err != nil {
return err
}
defer serverResp.body.Close()
procList := types.ContainerProcessList{}
if err := json.NewDecoder(serverResp.body).Decode(&procList); err != nil {
return err
}
w := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
fmt.Fprintln(w, strings.Join(procList.Titles, "\t"))

View File

@@ -1,39 +1,48 @@
package client
import (
"bufio"
"encoding/hex"
"encoding/json"
"errors"
"fmt"
"io"
"net"
"net/http"
"net/url"
"os"
"path"
"path/filepath"
"regexp"
"sort"
"strconv"
"time"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/distribution/digest"
"github.com/docker/distribution/registry/client/auth"
"github.com/docker/distribution/registry/client/transport"
"github.com/docker/docker/cliconfig"
"github.com/docker/docker/pkg/ansiescape"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/distribution"
"github.com/docker/docker/pkg/jsonmessage"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/tlsconfig"
"github.com/docker/docker/reference"
"github.com/docker/docker/registry"
apiclient "github.com/docker/engine-api/client"
"github.com/docker/engine-api/types"
registrytypes "github.com/docker/engine-api/types/registry"
"github.com/docker/go-connections/tlsconfig"
"github.com/docker/notary/client"
"github.com/docker/notary/pkg/passphrase"
"github.com/docker/notary/passphrase"
"github.com/docker/notary/trustmanager"
"github.com/endophage/gotuf/data"
"github.com/docker/notary/tuf/data"
"github.com/docker/notary/tuf/signed"
"github.com/docker/notary/tuf/store"
)
var untrusted bool
var (
releasesRole = path.Join(data.CanonicalTargetsRole, "releases")
untrusted bool
)
func addTrustedFlags(fs *flag.FlagSet, verify bool) {
var trusted bool
@@ -54,8 +63,6 @@ func isTrusted() bool {
return !untrusted
}
var targetRegexp = regexp.MustCompile(`([\S]+): digest: ([\S]+) size: ([\d]+)`)
type target struct {
reference registry.Reference
digest digest.Digest
@@ -78,7 +85,7 @@ func (cli *DockerCli) certificateDirectory(server string) (string, error) {
return filepath.Join(cliconfig.ConfigDir(), "tls", u.Host), nil
}
func trustServer(index *registry.IndexInfo) (string, error) {
func trustServer(index *registrytypes.IndexInfo) (string, error) {
if s := os.Getenv("DOCKER_CONTENT_TRUST_SERVER"); s != "" {
urlObj, err := url.Parse(s)
if err != nil || urlObj.Scheme != "https" {
@@ -94,14 +101,24 @@ func trustServer(index *registry.IndexInfo) (string, error) {
}
type simpleCredentialStore struct {
auth cliconfig.AuthConfig
auth types.AuthConfig
}
func (scs simpleCredentialStore) Basic(u *url.URL) (string, string) {
return scs.auth.Username, scs.auth.Password
}
func (cli *DockerCli) getNotaryRepository(repoInfo *registry.RepositoryInfo, authConfig cliconfig.AuthConfig) (*client.NotaryRepository, error) {
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
@@ -134,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,
@@ -163,12 +180,12 @@ func (cli *DockerCli) getNotaryRepository(repoInfo *registry.RepositoryInfo, aut
}
creds := simpleCredentialStore{auth: authConfig}
tokenHandler := auth.NewTokenHandler(authTransport, creds, repoInfo.CanonicalName, "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...)
return client.NewNotaryRepository(cli.trustDirectory(), repoInfo.CanonicalName, server, tr, cli.getPassphraseRetriever())
return client.NewNotaryRepository(cli.trustDirectory(), repoInfo.FullName(), server, tr, cli.getPassphraseRetriever())
}
func convertTarget(t client.Target) (target, error) {
@@ -188,12 +205,14 @@ func (cli *DockerCli) getPassphraseRetriever() passphrase.Retriever {
"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"),
"default": os.Getenv("DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE"),
}
// Backwards compatibility with old env names. We should remove this in 1.10
@@ -203,10 +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"] == "" {
if env["snapshot"] == "" || env["targets"] == "" || env["default"] == "" {
if passphrase := os.Getenv("DOCKER_CONTENT_TRUST_TAGGING_PASSPHRASE"); passphrase != "" {
env["snapshot"] = passphrase
env["targets"] = 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")
}
}
@@ -215,76 +235,94 @@ 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)
}
}
func (cli *DockerCli) trustedReference(repo string, ref registry.Reference) (registry.Reference, error) {
repoInfo, err := registry.ParseRepositoryInfo(repo)
func (cli *DockerCli) trustedReference(ref reference.NamedTagged) (reference.Canonical, error) {
repoInfo, err := registry.ParseRepositoryInfo(ref)
if err != nil {
return nil, err
}
// Resolve the Auth config relevant for this server
authConfig := registry.ResolveAuthConfig(cli.configFile, 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
}
t, err := notaryRepo.GetTargetByName(ref.String())
t, err := notaryRepo.GetTargetByName(ref.Tag(), releasesRole, data.CanonicalTargetsRole)
if err != nil {
return nil, err
}
r, err := convertTarget(*t)
// 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
}
return registry.DigestReference(r.digest), nil
return reference.WithDigest(ref, r.digest)
}
func (cli *DockerCli) tagTrusted(repoInfo *registry.RepositoryInfo, trustedRef, ref registry.Reference) error {
fullName := trustedRef.ImageName(repoInfo.LocalName)
fmt.Fprintf(cli.out, "Tagging %s as %s\n", fullName, ref.ImageName(repoInfo.LocalName))
tv := url.Values{}
tv.Set("repo", repoInfo.LocalName)
tv.Set("tag", ref.String())
tv.Set("force", "1")
func (cli *DockerCli) tagTrusted(trustedRef reference.Canonical, ref reference.NamedTagged) error {
fmt.Fprintf(cli.out, "Tagging %s as %s\n", trustedRef.String(), ref.String())
if _, _, err := readBody(cli.call("POST", "/images/"+fullName+"/tag?"+tv.Encode(), nil, nil)); err != nil {
return err
options := types.ImageTagOptions{
ImageID: trustedRef.String(),
RepositoryName: trustedRef.Name(),
Tag: ref.Tag(),
Force: true,
}
return nil
return cli.client.ImageTag(context.Background(), options)
}
func notaryError(err error) error {
func notaryError(repoName string, err error) error {
switch err.(type) {
case *json.SyntaxError:
logrus.Debugf("Notary syntax error: %s", err)
return errors.New("no trust data available for remote repository")
case client.ErrExpired:
return fmt.Errorf("remote repository out-of-date: %v", err)
return fmt.Errorf("Error: no trust data available for remote repository %s. Try running notary server and setting DOCKER_CONTENT_TRUST_SERVER to its HTTPS address?", repoName)
case signed.ErrExpired:
return fmt.Errorf("Error: remote repository %s out-of-date: %v", repoName, err)
case trustmanager.ErrKeyNotFound:
return fmt.Errorf("signing keys not found: %v", err)
return fmt.Errorf("Error: signing keys for remote repository %s not found: %v", repoName, err)
case *net.OpError:
return fmt.Errorf("error contacting notary server: %v", err)
return fmt.Errorf("Error: error contacting notary server: %v", err)
case store.ErrMetaNotFound:
return fmt.Errorf("Error: trust data missing for remote repository %s or remote repository not found: %v", repoName, err)
case signed.ErrInvalidKeyType:
return fmt.Errorf("Warning: potential malicious behavior - trust data mismatch for remote repository %s: %v", repoName, err)
case signed.ErrNoKeys:
return fmt.Errorf("Error: could not find signing keys for remote repository %s, or could not decrypt signing key: %v", repoName, err)
case signed.ErrLowVersion:
return fmt.Errorf("Warning: potential malicious behavior - trust data version is lower than expected for remote repository %s: %v", repoName, err)
case signed.ErrRoleThreshold:
return fmt.Errorf("Warning: potential malicious behavior - trust data has insufficient signatures for remote repository %s: %v", repoName, err)
case client.ErrRepositoryNotExist:
return fmt.Errorf("Error: remote trust data does not exist for %s: %v", repoName, err)
case signed.ErrInsufficientSignatures:
return fmt.Errorf("Error: could not produce valid signature for %s. If Yubikey was used, was touch input provided?: %v", repoName, err)
}
return err
}
func (cli *DockerCli) trustedPull(repoInfo *registry.RepositoryInfo, ref registry.Reference, authConfig cliconfig.AuthConfig) error {
var (
v = url.Values{}
refs = []target{}
)
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
@@ -292,24 +330,39 @@ func (cli *DockerCli) trustedPull(repoInfo *registry.RepositoryInfo, ref registr
if ref.String() == "" {
// List all targets
targets, err := notaryRepo.ListTargets()
targets, err := notaryRepo.ListTargets(releasesRole, data.CanonicalTargetsRole)
if err != nil {
return notaryError(err)
return notaryError(repoInfo.FullName(), err)
}
for _, tgt := range targets {
t, err := convertTarget(*tgt)
t, err := convertTarget(tgt.Target)
if err != nil {
fmt.Fprintf(cli.out, "Skipping target for %q\n", repoInfo.LocalName)
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)
}
} else {
t, err := notaryRepo.GetTargetByName(ref.String())
if err != nil {
return notaryError(err)
if len(refs) == 0 {
return notaryError(repoInfo.FullName(), fmt.Errorf("No trusted tags for %s", repoInfo.FullName()))
}
r, err := convertTarget(*t)
} 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
@@ -317,163 +370,190 @@ func (cli *DockerCli) trustedPull(repoInfo *registry.RepositoryInfo, ref registr
refs = append(refs, r)
}
v.Set("fromImage", repoInfo.LocalName)
for i, r := range refs {
displayTag := r.reference.String()
if displayTag != "" {
displayTag = ":" + displayTag
}
fmt.Fprintf(cli.out, "Pull (%d of %d): %s%s@%s\n", i+1, len(refs), repoInfo.LocalName, displayTag, r.digest)
v.Set("tag", r.digest.String())
fmt.Fprintf(cli.out, "Pull (%d of %d): %s%s@%s\n", i+1, len(refs), repoInfo.Name(), displayTag, r.digest)
_, _, err = cli.clientRequestAttemptLogin("POST", "/images/create?"+v.Encode(), nil, cli.out, repoInfo.Index, "pull")
if err != nil {
if err := cli.imagePullPrivileged(authConfig, repoInfo.Name(), r.digest.String(), requestPrivilege); err != nil {
return err
}
// If reference is not trusted, tag by trusted reference
if !r.reference.HasDigest() {
if err := cli.tagTrusted(repoInfo, registry.DigestReference(r.digest), r.reference); err != nil {
tagged, err := reference.WithTag(repoInfo, r.reference.String())
if err != nil {
return err
}
trustedRef, err := reference.WithDigest(repoInfo, r.digest)
if err != nil {
return err
}
if err := cli.tagTrusted(trustedRef, tagged); err != nil {
return err
}
}
}
return nil
}
func selectKey(keys map[string]string) string {
if len(keys) == 0 {
return ""
}
keyIDs := []string{}
for k := range keys {
keyIDs = append(keyIDs, k)
}
// TODO(dmcgowan): let user choose if multiple keys, now pick consistently
sort.Strings(keyIDs)
return keyIDs[0]
}
func targetStream(in io.Writer) (io.WriteCloser, <-chan []target) {
r, w := io.Pipe()
out := io.MultiWriter(in, w)
targetChan := make(chan []target)
go func() {
targets := []target{}
scanner := bufio.NewScanner(r)
scanner.Split(ansiescape.ScanANSILines)
for scanner.Scan() {
line := scanner.Bytes()
if matches := targetRegexp.FindSubmatch(line); len(matches) == 4 {
dgst, err := digest.ParseDigest(string(matches[2]))
if err != nil {
// Line does match what is expected, continue looking for valid lines
logrus.Debugf("Bad digest value %q in matched line, ignoring\n", string(matches[2]))
continue
}
s, err := strconv.ParseInt(string(matches[3]), 10, 64)
if err != nil {
// Line does match what is expected, continue looking for valid lines
logrus.Debugf("Bad size value %q in matched line, ignoring\n", string(matches[3]))
continue
}
targets = append(targets, target{
reference: registry.ParseReference(string(matches[1])),
digest: dgst,
size: s,
})
}
}
targetChan <- targets
}()
return ioutils.NewWriteCloserWrapper(out, w.Close), targetChan
}
func (cli *DockerCli) trustedPush(repoInfo *registry.RepositoryInfo, tag string, authConfig cliconfig.AuthConfig) error {
streamOut, targetChan := targetStream(cli.out)
v := url.Values{}
v.Set("tag", tag)
_, _, err := cli.clientRequestAttemptLogin("POST", "/images/"+repoInfo.LocalName+"/push?"+v.Encode(), nil, streamOut, repoInfo.Index, "push")
// Close stream channel to finish target parsing
if err := streamOut.Close(); err != nil {
return err
}
// Check error from request
func (cli *DockerCli) trustedPush(repoInfo *registry.RepositoryInfo, tag string, authConfig types.AuthConfig, requestPrivilege apiclient.RequestPrivilegeFunc) error {
responseBody, err := cli.imagePushPrivileged(authConfig, repoInfo.Name(), tag, requestPrivilege)
if err != nil {
return err
}
// Get target results
targets := <-targetChan
defer responseBody.Close()
// 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 {
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)
}
}
// We want trust signatures to always take an explicit tag,
// otherwise it will act as an untrusted push.
if tag == "" {
fmt.Fprintf(cli.out, "No tag specified, skipping trust metadata push\n")
return nil
}
if len(targets) == 0 {
fmt.Fprintf(cli.out, "No targets found, skipping trust metadata push\n")
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
}
fmt.Fprintf(cli.out, "Signing and pushing trust metadata\n")
if err = jsonmessage.DisplayJSONMessagesStream(responseBody, cli.out, cli.outFd, cli.isTerminalOut, handleTarget); err != nil {
return err
}
repo, err := cli.getNotaryRepository(repoInfo, authConfig)
if cnt > 1 {
return fmt.Errorf("internal error: only one call to handleTarget expected")
}
if target == nil {
fmt.Fprintln(cli.out, "No targets found, please provide a specific tag in order to sign it")
return nil
}
fmt.Fprintln(cli.out, "Signing and pushing trust metadata")
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
// get the latest repository metadata so we can figure out which roles to sign
_, err = repo.Update(false)
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()
}
t := &client.Target{
Name: target.reference.String(),
Hashes: data.Hashes{
string(target.digest.Algorithm()): h,
},
Length: int64(target.size),
}
if err := repo.AddTarget(t); err != nil {
return err
// 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)
}
err = repo.Publish()
if _, ok := err.(*client.ErrRepoNotInitialized); !ok {
return notaryError(err)
if err == nil {
err = repo.Publish()
}
ks := repo.KeyStoreManager
keys := ks.RootKeyStore().ListKeys()
rootKey := selectKey(keys)
if rootKey == "" {
rootKey, err = ks.GenRootKey("ecdsa")
if err != nil {
return err
}
if err != nil {
fmt.Fprintf(cli.out, "Failed to sign %q:%s - %s\n", repoInfo.FullName(), tag, err.Error())
return notaryError(repoInfo.FullName(), err)
}
cryptoService, err := ks.GetRootCryptoService(rootKey)
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 err := repo.Initialize(cryptoService); err != nil {
return notaryError(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)
}
fmt.Fprintf(cli.out, "Finished initializing %q\n", repoInfo.CanonicalName)
return notaryError(repo.Publish())
// 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

@@ -5,6 +5,7 @@ import (
"testing"
"github.com/docker/docker/registry"
registrytypes "github.com/docker/engine-api/types/registry"
)
func unsetENV() {
@@ -14,7 +15,7 @@ func unsetENV() {
func TestENVTrustServer(t *testing.T) {
defer unsetENV()
indexInfo := &registry.IndexInfo{Name: "testserver"}
indexInfo := &registrytypes.IndexInfo{Name: "testserver"}
if err := os.Setenv("DOCKER_CONTENT_TRUST_SERVER", "https://notary-test.com:5000"); err != nil {
t.Fatal("Failed to set ENV variable")
}
@@ -27,7 +28,7 @@ func TestENVTrustServer(t *testing.T) {
func TestHTTPENVTrustServer(t *testing.T) {
defer unsetENV()
indexInfo := &registry.IndexInfo{Name: "testserver"}
indexInfo := &registrytypes.IndexInfo{Name: "testserver"}
if err := os.Setenv("DOCKER_CONTENT_TRUST_SERVER", "http://notary-test.com:5000"); err != nil {
t.Fatal("Failed to set ENV variable")
}
@@ -38,7 +39,7 @@ func TestHTTPENVTrustServer(t *testing.T) {
}
func TestOfficialTrustServer(t *testing.T) {
indexInfo := &registry.IndexInfo{Name: "testserver", Official: true}
indexInfo := &registrytypes.IndexInfo{Name: "testserver", Official: true}
output, err := trustServer(indexInfo)
if err != nil || output != registry.NotaryServer {
t.Fatalf("Expected server to be %s, got %s", registry.NotaryServer, output)
@@ -46,7 +47,7 @@ func TestOfficialTrustServer(t *testing.T) {
}
func TestNonOfficialTrustServer(t *testing.T) {
indexInfo := &registry.IndexInfo{Name: "testserver", Official: false}
indexInfo := &registrytypes.IndexInfo{Name: "testserver", Official: false}
output, err := trustServer(indexInfo)
expectedStr := "https://" + indexInfo.Name
if err != nil || output != expectedStr {

View File

@@ -2,6 +2,9 @@ package client
import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -16,17 +19,16 @@ func (cli *DockerCli) CmdUnpause(args ...string) error {
cmd.ParseFlags(args, true)
var errNames []string
var errs []string
for _, name := range cmd.Args() {
if _, _, err := readBody(cli.call("POST", fmt.Sprintf("/containers/%s/unpause", name), nil, nil)); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
if err := cli.client.ContainerUnpause(context.Background(), name); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}
}
if len(errNames) > 0 {
return fmt.Errorf("Error: failed to unpause containers: %v", errNames)
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
return nil
}

117
api/client/update.go Normal file
View File

@@ -0,0 +1,117 @@
package client
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"
)
// CmdUpdate updates resources of one or more containers.
//
// Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]
func (cli *DockerCli) CmdUpdate(args ...string) error {
cmd := Cli.Subcmd("update", []string{"CONTAINER [CONTAINER...]"}, Cli.DockerCommands["update"].Description, true)
flBlkioWeight := cmd.Uint16([]string{"-blkio-weight"}, 0, "Block IO (relative weight), between 10 and 1000")
flCPUPeriod := cmd.Int64([]string{"-cpu-period"}, 0, "Limit CPU CFS (Completely Fair Scheduler) period")
flCPUQuota := cmd.Int64([]string{"-cpu-quota"}, 0, "Limit CPU CFS (Completely Fair Scheduler) quota")
flCpusetCpus := cmd.String([]string{"-cpuset-cpus"}, "", "CPUs in which to allow execution (0-3, 0,1)")
flCpusetMems := cmd.String([]string{"-cpuset-mems"}, "", "MEMs in which to allow execution (0-3, 0,1)")
flCPUShares := cmd.Int64([]string{"#c", "-cpu-shares"}, 0, "CPU shares (relative weight)")
flMemoryString := cmd.String([]string{"m", "-memory"}, "", "Memory limit")
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)
if cmd.NFlag() == 0 {
return fmt.Errorf("You must provide one or more flags when using this command.")
}
var err error
var flMemory int64
if *flMemoryString != "" {
flMemory, err = units.RAMInBytes(*flMemoryString)
if err != nil {
return err
}
}
var memoryReservation int64
if *flMemoryReservation != "" {
memoryReservation, err = units.RAMInBytes(*flMemoryReservation)
if err != nil {
return err
}
}
var memorySwap int64
if *flMemorySwap != "" {
if *flMemorySwap == "-1" {
memorySwap = -1
} else {
memorySwap, err = units.RAMInBytes(*flMemorySwap)
if err != nil {
return err
}
}
}
var kernelMemory int64
if *flKernelMemory != "" {
kernelMemory, err = units.RAMInBytes(*flKernelMemory)
if err != nil {
return err
}
}
var restartPolicy container.RestartPolicy
if *flRestartPolicy != "" {
restartPolicy, err = opts.ParseRestartPolicy(*flRestartPolicy)
if err != nil {
return err
}
}
resources := container.Resources{
BlkioWeight: *flBlkioWeight,
CpusetCpus: *flCpusetCpus,
CpusetMems: *flCpusetMems,
CPUShares: *flCPUShares,
Memory: flMemory,
MemoryReservation: memoryReservation,
MemorySwap: memorySwap,
KernelMemory: kernelMemory,
CPUPeriod: *flCPUPeriod,
CPUQuota: *flCPUQuota,
}
updateConfig := container.UpdateConfig{
Resources: resources,
RestartPolicy: restartPolicy,
}
names := cmd.Args()
var errs []string
for _, name := range names {
if err := cli.client.ContainerUpdate(context.Background(), name, updateConfig); err != nil {
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%s\n", name)
}
}
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
return nil
}

View File

@@ -1,329 +1,119 @@
package client
import (
"bytes"
"encoding/base64"
"encoding/json"
"errors"
"fmt"
"io"
"io/ioutil"
"net/http"
"net/url"
"os"
gosignal "os/signal"
"path/filepath"
"runtime"
"strconv"
"strings"
"time"
"golang.org/x/net/context"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/cliconfig"
"github.com/docker/docker/pkg/jsonmessage"
"github.com/docker/docker/pkg/signal"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
"github.com/docker/engine-api/client"
"github.com/docker/engine-api/types"
registrytypes "github.com/docker/engine-api/types/registry"
)
var (
errConnectionFailed = errors.New("Cannot connect to the Docker daemon. Is the docker daemon running on this host?")
)
type serverResponse struct {
body io.ReadCloser
header http.Header
statusCode int
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
}
// HTTPClient creates a new HTTP client with the cli's client transport instance.
func (cli *DockerCli) HTTPClient() *http.Client {
return &http.Client{Transport: cli.transport}
}
func (cli *DockerCli) encodeData(data interface{}) (*bytes.Buffer, error) {
params := bytes.NewBuffer(nil)
if data != nil {
if err := json.NewEncoder(params).Encode(data); err != nil {
return nil, err
}
}
return params, nil
}
func (cli *DockerCli) clientRequest(method, path string, in io.Reader, headers map[string][]string) (*serverResponse, error) {
serverResp := &serverResponse{
body: nil,
statusCode: -1,
}
expectedPayload := (method == "POST" || method == "PUT")
if expectedPayload && in == nil {
in = bytes.NewReader([]byte{})
}
req, err := http.NewRequest(method, fmt.Sprintf("%s/v%s%s", cli.basePath, api.Version, path), in)
if err != nil {
return serverResp, err
}
// Add CLI Config's HTTP Headers BEFORE we set the Docker headers
// then the user can't change OUR headers
for k, v := range cli.configFile.HTTPHeaders {
req.Header.Set(k, v)
}
req.Header.Set("User-Agent", "Docker-Client/"+dockerversion.VERSION+" ("+runtime.GOOS+")")
req.URL.Host = cli.addr
req.URL.Scheme = cli.scheme
if headers != nil {
for k, v := range headers {
req.Header[k] = v
}
}
if expectedPayload && req.Header.Get("Content-Type") == "" {
req.Header.Set("Content-Type", "text/plain")
}
resp, err := cli.HTTPClient().Do(req)
if resp != nil {
serverResp.statusCode = resp.StatusCode
}
if err != nil {
if utils.IsTimeout(err) || strings.Contains(err.Error(), "connection refused") || strings.Contains(err.Error(), "dial unix") {
return serverResp, errConnectionFailed
}
if cli.tlsConfig == nil && strings.Contains(err.Error(), "malformed HTTP response") {
return serverResp, fmt.Errorf("%v.\n* Are you trying to connect to a TLS-enabled daemon without TLS?", err)
}
if cli.tlsConfig != nil && strings.Contains(err.Error(), "remote error: bad certificate") {
return serverResp, fmt.Errorf("The server probably has client authentication (--tlsverify) enabled. Please check your TLS client certification settings: %v", err)
}
return serverResp, fmt.Errorf("An error occurred trying to connect: %v", err)
}
if serverResp.statusCode < 200 || serverResp.statusCode >= 400 {
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return serverResp, err
}
if len(body) == 0 {
return serverResp, fmt.Errorf("Error: request returned %s for API route and version %s, check if the server supports the requested API version", http.StatusText(serverResp.statusCode), req.URL)
}
return serverResp, fmt.Errorf("Error response from daemon: %s", bytes.TrimSpace(body))
}
serverResp.body = resp.Body
serverResp.header = resp.Header
return serverResp, nil
}
// cmdAttempt builds the corresponding registry Auth Header from the given
// authConfig. It returns the servers body, status, error response
func (cli *DockerCli) cmdAttempt(authConfig cliconfig.AuthConfig, method, path string, in io.Reader, out io.Writer) (io.ReadCloser, int, error) {
// encodeAuthToBase64 serializes the auth configuration as JSON base64 payload
func encodeAuthToBase64(authConfig types.AuthConfig) (string, error) {
buf, err := json.Marshal(authConfig)
if err != nil {
return nil, -1, err
return "", err
}
registryAuthHeader := []string{
base64.URLEncoding.EncodeToString(buf),
}
// begin the request
serverResp, err := cli.clientRequest(method, path, in, map[string][]string{
"X-Registry-Auth": registryAuthHeader,
})
if err == nil && out != nil {
// If we are streaming output, complete the stream since
// errors may not appear until later.
err = cli.streamBody(serverResp.body, serverResp.header.Get("Content-Type"), true, out, nil)
}
if err != nil {
// Since errors in a stream appear after status 200 has been written,
// we may need to change the status code.
if strings.Contains(err.Error(), "Authentication is required") ||
strings.Contains(err.Error(), "Status 401") ||
strings.Contains(err.Error(), "401 Unauthorized") ||
strings.Contains(err.Error(), "status code 401") {
serverResp.statusCode = http.StatusUnauthorized
}
}
return serverResp.body, serverResp.statusCode, err
return base64.URLEncoding.EncodeToString(buf), nil
}
func (cli *DockerCli) clientRequestAttemptLogin(method, path string, in io.Reader, out io.Writer, index *registry.IndexInfo, cmdName string) (io.ReadCloser, int, error) {
// Resolve the Auth config relevant for this server
authConfig := registry.ResolveAuthConfig(cli.configFile, index)
body, statusCode, err := cli.cmdAttempt(authConfig, method, path, in, out)
if statusCode == http.StatusUnauthorized {
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)
if err = cli.CmdLogin(index.GetAuthConfigKey()); err != nil {
return nil, -1, err
indexServer := registry.GetAuthConfigKey(index)
authConfig, err := cli.configureAuth("", "", indexServer, false)
if err != nil {
return "", err
}
authConfig = registry.ResolveAuthConfig(cli.configFile, index)
return cli.cmdAttempt(authConfig, method, path, in, out)
return encodeAuthToBase64(authConfig)
}
return body, statusCode, err
}
func (cli *DockerCli) callWrapper(method, path string, data interface{}, headers map[string][]string) (io.ReadCloser, http.Header, int, error) {
sr, err := cli.call(method, path, data, headers)
return sr.body, sr.header, sr.statusCode, err
}
func (cli *DockerCli) call(method, path string, data interface{}, headers map[string][]string) (*serverResponse, error) {
params, err := cli.encodeData(data)
if err != nil {
sr := &serverResponse{
body: nil,
header: nil,
statusCode: -1,
}
return sr, nil
}
if data != nil {
if headers == nil {
headers = make(map[string][]string)
}
headers["Content-Type"] = []string{"application/json"}
}
serverResp, err := cli.clientRequest(method, path, params, headers)
return serverResp, err
}
type streamOpts struct {
rawTerminal bool
in io.Reader
out io.Writer
err io.Writer
headers map[string][]string
}
func (cli *DockerCli) stream(method, path string, opts *streamOpts) (*serverResponse, error) {
serverResp, err := cli.clientRequest(method, path, opts.in, opts.headers)
if err != nil {
return serverResp, err
}
return serverResp, cli.streamBody(serverResp.body, serverResp.header.Get("Content-Type"), opts.rawTerminal, opts.out, opts.err)
}
func (cli *DockerCli) streamBody(body io.ReadCloser, contentType string, rawTerminal bool, stdout, stderr io.Writer) error {
defer body.Close()
if api.MatchesContentType(contentType, "application/json") {
return jsonmessage.DisplayJSONMessagesStream(body, stdout, cli.outFd, cli.isTerminalOut)
}
if stdout != nil || stderr != nil {
// When TTY is ON, use regular copy
var err error
if rawTerminal {
_, err = io.Copy(stdout, body)
} else {
_, err = stdcopy.StdCopy(stdout, stderr, body)
}
logrus.Debugf("[stream] End of stdout")
return err
}
return nil
}
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
}
v := url.Values{}
v.Set("h", strconv.Itoa(height))
v.Set("w", strconv.Itoa(width))
path := ""
if !isExec {
path = "/containers/" + id + "/resize?"
} else {
path = "/exec/" + id + "/resize?"
options := types.ResizeOptions{
ID: id,
Height: height,
Width: width,
}
if _, _, err := readBody(cli.call("POST", path+v.Encode(), nil, nil)); err != nil {
var err error
if isExec {
err = cli.client.ContainerExecResize(context.Background(), options)
} else {
err = cli.client.ContainerResize(context.Background(), options)
}
if err != nil {
logrus.Debugf("Error resize: %s", err)
}
}
func waitForExit(cli *DockerCli, containerID string) (int, error) {
serverResp, err := cli.call("POST", "/containers/"+containerID+"/wait", nil, nil)
if err != nil {
return -1, err
}
defer serverResp.body.Close()
var res types.ContainerWaitResponse
if err := json.NewDecoder(serverResp.body).Decode(&res); err != nil {
return -1, err
}
return res.StatusCode, nil
}
// 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) {
serverResp, err := cli.call("GET", "/containers/"+containerID+"/json", nil, nil)
c, err := cli.client.ContainerInspect(context.Background(), containerID)
if err != nil {
// If we can't connect, then the daemon probably died.
if err != errConnectionFailed {
if err != client.ErrConnectionFailed {
return false, -1, err
}
return false, -1, nil
}
defer serverResp.body.Close()
var c types.ContainerJSON
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return false, -1, err
}
return c.State.Running, c.State.ExitCode, nil
}
// 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) {
serverResp, err := cli.call("GET", "/exec/"+execID+"/json", nil, nil)
resp, err := cli.client.ContainerExecInspect(context.Background(), execID)
if err != nil {
// If we can't connect, then the daemon probably died.
if err != errConnectionFailed {
if err != client.ErrConnectionFailed {
return false, -1, err
}
return false, -1, nil
}
defer serverResp.body.Close()
//TODO: Should we reconsider having a type in api/types?
//this is a response to exex/id/json not container
var c struct {
Running bool
ExitCode int
}
if err := json.NewDecoder(serverResp.body).Decode(&c); err != nil {
return false, -1, err
}
return c.Running, c.ExitCode, nil
return resp.Running, resp.ExitCode, nil
}
func (cli *DockerCli) monitorTtySize(id string, isExec bool) error {
@@ -369,16 +159,44 @@ func (cli *DockerCli) getTtySize() (int, int) {
return int(ws.Height), int(ws.Width)
}
func readBody(serverResp *serverResponse, err error) ([]byte, int, error) {
if serverResp.body != nil {
defer serverResp.body.Close()
}
func copyToFile(outfile string, r io.Reader) error {
tmpFile, err := ioutil.TempFile(filepath.Dir(outfile), ".docker_temp_")
if err != nil {
return nil, serverResp.statusCode, err
return err
}
body, err := ioutil.ReadAll(serverResp.body)
tmpPath := tmpFile.Name()
_, err = io.Copy(tmpFile, r)
tmpFile.Close()
if err != nil {
return nil, -1, err
os.Remove(tmpPath)
return err
}
return body, serverResp.statusCode, nil
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

@@ -1,16 +1,18 @@
package client
import (
"encoding/json"
"runtime"
"text/template"
"time"
"golang.org/x/net/context"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types"
"github.com/docker/docker/autogen/dockerversion"
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"
)
var versionTemplate = `Client:
@@ -31,12 +33,6 @@ Server:
OS/Arch: {{.Server.Os}}/{{.Server.Arch}}{{if .Server.Experimental}}
Experimental: {{.Server.Experimental}}{{end}}{{end}}`
type versionData struct {
Client types.Version
ServerOK bool
Server types.Version
}
// CmdVersion shows Docker version information.
//
// Available version information is shown for: client Docker version, client API version, client Go version, client Git commit, client OS/Arch, server Docker version, server API version, server Go version, server Git commit, and server OS/Arch.
@@ -48,49 +44,52 @@ func (cli *DockerCli) CmdVersion(args ...string) (err error) {
cmd.Require(flag.Exact, 0)
cmd.ParseFlags(args, true)
if *tmplStr == "" {
*tmplStr = versionTemplate
templateFormat := versionTemplate
if *tmplStr != "" {
templateFormat = *tmplStr
}
var tmpl *template.Template
if tmpl, err = template.New("").Funcs(funcMap).Parse(*tmplStr); err != nil {
if tmpl, err = templates.Parse(templateFormat); err != nil {
return Cli.StatusError{StatusCode: 64,
Status: "Template parsing error: " + err.Error()}
}
vd := versionData{
Client: types.Version{
Version: dockerversion.VERSION,
APIVersion: api.Version,
vd := types.VersionResponse{
Client: &types.Version{
Version: dockerversion.Version,
APIVersion: cli.client.ClientVersion(),
GoVersion: runtime.Version(),
GitCommit: dockerversion.GITCOMMIT,
BuildTime: dockerversion.BUILDTIME,
GitCommit: dockerversion.GitCommit,
BuildTime: dockerversion.BuildTime,
Os: runtime.GOOS,
Arch: runtime.GOARCH,
Experimental: utils.ExperimentalBuild(),
},
}
defer func() {
if err2 := tmpl.Execute(cli.out, vd); err2 != nil && err == nil {
err = err2
serverVersion, err := cli.client.ServerVersion(context.Background())
if err == nil {
vd.Server = &serverVersion
}
// first we need to make BuildTime more human friendly
t, errTime := time.Parse(time.RFC3339Nano, vd.Client.BuildTime)
if errTime == nil {
vd.Client.BuildTime = t.Format(time.ANSIC)
}
if vd.ServerOK() {
t, errTime = time.Parse(time.RFC3339Nano, vd.Server.BuildTime)
if errTime == nil {
vd.Server.BuildTime = t.Format(time.ANSIC)
}
cli.out.Write([]byte{'\n'})
}()
serverResp, err := cli.call("GET", "/version", nil, nil)
if err != nil {
return err
}
defer serverResp.body.Close()
if err = json.NewDecoder(serverResp.body).Decode(&vd.Server); err != nil {
return Cli.StatusError{StatusCode: 1,
Status: "Error reading remote version: " + err.Error()}
if err2 := tmpl.Execute(cli.out, vd); err2 != nil && err == nil {
err = err2
}
vd.ServerOK = true
return
cli.out.Write([]byte{'\n'})
return err
}

View File

@@ -1,19 +1,18 @@
package client
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/url"
"sort"
"text/tabwriter"
"text/template"
"github.com/docker/docker/api/types"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
"github.com/docker/docker/opts"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/parsers/filters"
runconfigopts "github.com/docker/docker/runconfig/opts"
"github.com/docker/engine-api/types"
"github.com/docker/engine-api/types/filters"
)
// CmdVolume is the parent subcommand for all volume commands
@@ -54,7 +53,7 @@ func (cli *DockerCli) CmdVolumeLs(args ...string) error {
cmd.Require(flag.Exact, 0)
cmd.ParseFlags(args, true)
volFilterArgs := filters.Args{}
volFilterArgs := filters.NewArgs()
for _, f := range flFilter.GetAll() {
var err error
volFilterArgs, err = filters.ParseFlag(f, volFilterArgs)
@@ -63,31 +62,21 @@ func (cli *DockerCli) CmdVolumeLs(args ...string) error {
}
}
v := url.Values{}
if len(volFilterArgs) > 0 {
filterJSON, err := filters.ToParam(volFilterArgs)
if err != nil {
return err
}
v.Set("filters", filterJSON)
}
resp, err := cli.call("GET", "/volumes?"+v.Encode(), nil, nil)
volumes, err := cli.client.VolumeList(context.Background(), volFilterArgs)
if err != nil {
return err
}
var volumes types.VolumesListResponse
if err := json.NewDecoder(resp.body).Decode(&volumes); err != nil {
return err
}
w := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0)
if !*quiet {
for _, warn := range volumes.Warnings {
fmt.Fprintln(cli.err, warn)
}
fmt.Fprintf(w, "DRIVER \tVOLUME NAME")
fmt.Fprintf(w, "\n")
}
sort.Sort(byVolumeName(volumes.Volumes))
for _, vol := range volumes.Volumes {
if *quiet {
fmt.Fprintln(w, vol.Name)
@@ -99,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...]
@@ -113,66 +110,15 @@ func (cli *DockerCli) CmdVolumeInspect(args ...string) error {
return nil
}
var tmpl *template.Template
if *tmplStr != "" {
var err error
tmpl, err = template.New("").Funcs(funcMap).Parse(*tmplStr)
if err != nil {
return err
}
inspectSearcher := func(name string) (interface{}, []byte, error) {
i, err := cli.client.VolumeInspect(context.Background(), name)
return i, nil, err
}
var status = 0
var volumes []*types.Volume
for _, name := range cmd.Args() {
resp, err := cli.call("GET", "/volumes/"+name, nil, nil)
if err != nil {
return err
}
var volume types.Volume
if err := json.NewDecoder(resp.body).Decode(&volume); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
}
if tmpl == nil {
volumes = append(volumes, &volume)
continue
}
if err := tmpl.Execute(cli.out, &volume); err != nil {
if err := tmpl.Execute(cli.out, &volume); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue
}
}
io.WriteString(cli.out, "\n")
}
if tmpl != nil {
return nil
}
b, err := json.MarshalIndent(volumes, "", " ")
if err != nil {
return err
}
_, err = io.Copy(cli.out, bytes.NewReader(b))
if err != nil {
return err
}
io.WriteString(cli.out, "\n")
if status != 0 {
return Cli.StatusError{StatusCode: status}
}
return nil
return cli.inspectElements(*tmplStr, cmd.Args(), inspectSearcher)
}
// CmdVolumeCreate creates a new container from a given image.
// CmdVolumeCreate creates a new volume.
//
// Usage: docker volume create [OPTIONS]
func (cli *DockerCli) CmdVolumeCreate(args ...string) error {
@@ -183,32 +129,29 @@ 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)
volReq := &types.VolumeCreateRequest{
volReq := types.VolumeCreateRequest{
Driver: *flDriver,
DriverOpts: flDriverOpts.GetAll(),
Name: *flName,
Labels: runconfigopts.ConvertKVStringsToMap(flLabels.GetAll()),
}
if *flName != "" {
volReq.Name = *flName
}
resp, err := cli.call("POST", "/volumes/create", volReq, nil)
vol, err := cli.client.VolumeCreate(context.Background(), volReq)
if err != nil {
return err
}
var vol types.Volume
if err := json.NewDecoder(resp.body).Decode(&vol); err != nil {
return err
}
fmt.Fprintf(cli.out, "%s\n", vol.Name)
return nil
}
// CmdVolumeRm removes one or more containers.
// CmdVolumeRm removes one or more volumes.
//
// Usage: docker volume rm VOLUME [VOLUME...]
func (cli *DockerCli) CmdVolumeRm(args ...string) error {
@@ -217,9 +160,9 @@ func (cli *DockerCli) CmdVolumeRm(args ...string) error {
cmd.ParseFlags(args, true)
var status = 0
for _, name := range cmd.Args() {
_, err := cli.call("DELETE", "/volumes/"+name, nil, nil)
if err != nil {
if err := cli.client.VolumeRemove(context.Background(), name); err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
status = 1
continue

View File

@@ -2,6 +2,9 @@ package client
import (
"fmt"
"strings"
"golang.org/x/net/context"
Cli "github.com/docker/docker/cli"
flag "github.com/docker/docker/pkg/mflag"
@@ -18,18 +21,17 @@ func (cli *DockerCli) CmdWait(args ...string) error {
cmd.ParseFlags(args, true)
var errNames []string
var errs []string
for _, name := range cmd.Args() {
status, err := waitForExit(cli, name)
status, err := cli.client.ContainerWait(context.Background(), name)
if err != nil {
fmt.Fprintf(cli.err, "%s\n", err)
errNames = append(errNames, name)
errs = append(errs, err.Error())
} else {
fmt.Fprintf(cli.out, "%d\n", status)
}
}
if len(errNames) > 0 {
return fmt.Errorf("Error: failed to wait containers: %v", errNames)
if len(errs) > 0 {
return fmt.Errorf("%s", strings.Join(errs, "\n"))
}
return nil
}

View File

@@ -9,30 +9,45 @@ import (
"strings"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/system"
"github.com/docker/docker/pkg/version"
"github.com/docker/engine-api/types"
"github.com/docker/libtrust"
)
// Common constants for daemon and client.
const (
// Version of Current REST API
Version version.Version = "1.21"
DefaultVersion version.Version = "1.23"
// MinVersion represents Minimun REST API version supported
// 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"
)
// byPrivatePort is temporary type used to sort types.Port by PrivatePort
type byPrivatePort []types.Port
// byPortInfo is a temporary type used to sort types.Port by its fields
type byPortInfo []types.Port
func (r byPrivatePort) Len() int { return len(r) }
func (r byPrivatePort) Swap(i, j int) { r[i], r[j] = r[j], r[i] }
func (r byPrivatePort) Less(i, j int) bool { return r[i].PrivatePort < r[j].PrivatePort }
func (r byPortInfo) Len() int { return len(r) }
func (r byPortInfo) Swap(i, j int) { r[i], r[j] = r[j], r[i] }
func (r byPortInfo) Less(i, j int) bool {
if r[i].PrivatePort != r[j].PrivatePort {
return r[i].PrivatePort < r[j].PrivatePort
}
if r[i].IP != r[j].IP {
return r[i].IP < r[j].IP
}
if r[i].PublicPort != r[j].PublicPort {
return r[i].PublicPort < r[j].PublicPort
}
return r[i].Type < r[j].Type
}
// DisplayablePorts returns formatted string representing open ports of container
// e.g. "0.0.0.0:80->9090/tcp, 9988/tcp"
@@ -45,7 +60,8 @@ func DisplayablePorts(ports []types.Port) string {
groupMap := make(map[string]*portGroup)
var result []string
var hostMappings []string
sort.Sort(byPrivatePort(ports))
var groupMapKeys []string
sort.Sort(byPortInfo(ports))
for _, port := range ports {
current := port.PrivatePort
portKey := port.Type
@@ -60,6 +76,8 @@ func DisplayablePorts(ports []types.Port) string {
if group == nil {
groupMap[portKey] = &portGroup{first: current, last: current}
// record order that groupMap keys are created
groupMapKeys = append(groupMapKeys, portKey)
continue
}
if current == (group.last + 1) {
@@ -70,7 +88,8 @@ func DisplayablePorts(ports []types.Port) string {
result = append(result, formGroup(portKey, group.first, group.last))
groupMap[portKey] = &portGroup{first: current, last: current}
}
for portKey, g := range groupMap {
for _, portKey := range groupMapKeys {
g := groupMap[portKey]
result = append(result, formGroup(portKey, g.first, g.last))
}
result = append(result, hostMappings...)

View File

@@ -5,8 +5,9 @@ import (
"path/filepath"
"testing"
"github.com/docker/docker/api/types"
"os"
"github.com/docker/engine-api/types"
)
type ports struct {
@@ -166,7 +167,7 @@ func TestDisplayablePorts(t *testing.T) {
Type: "tcp",
},
},
"4.3.2.1:3322->2233/tcp, 1.2.3.4:8899->9988/udp, 1.2.3.4:8899->9988/tcp",
"4.3.2.1:3322->2233/tcp, 1.2.3.4:8899->9988/tcp, 1.2.3.4:8899->9988/udp",
},
{
[]types.Port{
@@ -188,6 +189,64 @@ func TestDisplayablePorts(t *testing.T) {
},
"9988/udp, 4.3.2.1:3322->2233/tcp, 1.2.3.4:7766->6677/tcp",
},
{
[]types.Port{
{
PrivatePort: 80,
Type: "tcp",
}, {
PrivatePort: 1024,
Type: "tcp",
}, {
PrivatePort: 80,
Type: "udp",
}, {
PrivatePort: 1024,
Type: "udp",
}, {
IP: "1.1.1.1",
PublicPort: 80,
PrivatePort: 1024,
Type: "tcp",
}, {
IP: "1.1.1.1",
PublicPort: 80,
PrivatePort: 1024,
Type: "udp",
}, {
IP: "1.1.1.1",
PublicPort: 1024,
PrivatePort: 80,
Type: "tcp",
}, {
IP: "1.1.1.1",
PublicPort: 1024,
PrivatePort: 80,
Type: "udp",
}, {
IP: "2.1.1.1",
PublicPort: 80,
PrivatePort: 1024,
Type: "tcp",
}, {
IP: "2.1.1.1",
PublicPort: 80,
PrivatePort: 1024,
Type: "udp",
}, {
IP: "2.1.1.1",
PublicPort: 1024,
PrivatePort: 80,
Type: "tcp",
}, {
IP: "2.1.1.1",
PublicPort: 1024,
PrivatePort: 80,
Type: "udp",
},
},
"80/tcp, 80/udp, 1024/tcp, 1024/udp, 1.1.1.1:1024->80/tcp, 1.1.1.1:1024->80/udp, 2.1.1.1:1024->80/tcp, 2.1.1.1:1024->80/udp, 1.1.1.1:80->1024/tcp, 1.1.1.1:80->1024/udp, 2.1.1.1:80->1024/tcp, 2.1.1.1:80->1024/udp",
},
}
for _, port := range cases {
@@ -251,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

@@ -55,9 +55,6 @@ type ArchiveOptions struct {
// ArchiveFormValues parses form values and turns them into ArchiveOptions.
// It fails if the archive name and path are not in the request.
func ArchiveFormValues(r *http.Request, vars map[string]string) (ArchiveOptions, error) {
if vars == nil {
return ArchiveOptions{}, fmt.Errorf("Missing parameter")
}
if err := ParseForm(r); err != nil {
return ArchiveOptions{}, err
}

View File

@@ -9,18 +9,18 @@ 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"
"github.com/docker/docker/utils"
)
// 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
@@ -78,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
@@ -86,79 +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
}
logrus.WithFields(logrus.Fields{"statusCode": statusCode, "err": utils.GetErrorMessage(err)}).Error("HTTP Error")
http.Error(w, errMsg, statusCode)
}
// WriteJSON writes the value v to the http response stream as json with standard json encoding.
func WriteJSON(w http.ResponseWriter, code int, v interface{}) error {
w.Header().Set("Content-Type", "application/json")

View File

@@ -1,118 +1,41 @@
package server
import (
"net/http"
"runtime"
"strings"
"github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/api/server/httputils"
"github.com/docker/docker/autogen/dockerversion"
"github.com/docker/docker/errors"
"github.com/docker/docker/pkg/version"
"golang.org/x/net/context"
"github.com/docker/docker/api/server/middleware"
"github.com/docker/docker/dockerversion"
"github.com/docker/docker/pkg/authorization"
)
// middleware is an adapter to allow the use of ordinary functions as Docker API filters.
// Any function that has the appropriate signature can be register as a middleware.
type middleware func(handler httputils.APIFunc) httputils.APIFunc
// loggingMiddleware logs each request when logging is enabled.
func (s *Server) loggingMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if s.cfg.Logging {
logrus.Infof("%s %s", r.Method, r.RequestURI)
}
return handler(ctx, w, r, vars)
}
}
// userAgentMiddleware checks the User-Agent header looking for a valid docker client spec.
func (s *Server) userAgentMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if strings.Contains(r.Header.Get("User-Agent"), "Docker-Client/") {
dockerVersion := version.Version(s.cfg.Version)
userAgent := strings.Split(r.Header.Get("User-Agent"), "/")
// v1.20 onwards includes the GOOS of the client after the version
// such as Docker/1.7.0 (linux)
if len(userAgent) == 2 && strings.Contains(userAgent[1], " ") {
userAgent[1] = strings.Split(userAgent[1], " ")[0]
}
if len(userAgent) == 2 && !dockerVersion.Equal(version.Version(userAgent[1])) {
logrus.Debugf("Warning: client and server don't have the same version (client: %s, server: %s)", userAgent[1], dockerVersion)
}
}
return handler(ctx, w, r, vars)
}
}
// corsMiddleware sets the CORS header expectations in the server.
func (s *Server) corsMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
// If "api-cors-header" is not given, but "api-enable-cors" is true, we set cors to "*"
// otherwise, all head values will be passed to HTTP handler
corsHeaders := s.cfg.CorsHeaders
if corsHeaders == "" && s.cfg.EnableCors {
corsHeaders = "*"
}
if corsHeaders != "" {
writeCorsHeaders(w, r, corsHeaders)
}
return handler(ctx, w, r, vars)
}
}
// versionMiddleware checks the api version requirements before passing the request to the server handler.
func versionMiddleware(handler httputils.APIFunc) httputils.APIFunc {
return func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
apiVersion := version.Version(vars["version"])
if apiVersion == "" {
apiVersion = api.Version
}
if apiVersion.GreaterThan(api.Version) {
return errors.ErrorCodeNewerClientVersion.WithArgs(apiVersion, api.Version)
}
if apiVersion.LessThan(api.MinVersion) {
return errors.ErrorCodeOldClientVersion.WithArgs(apiVersion, api.Version)
}
w.Header().Set("Server", "Docker/"+dockerversion.VERSION+" ("+runtime.GOOS+")")
ctx = context.WithValue(ctx, httputils.APIVersionKey, apiVersion)
return handler(ctx, w, r, vars)
}
}
// handleWithGlobalMiddlwares wraps the handler function for a request with
// the server's global middlewares. The order of the middlewares is backwards,
// meaning that the first in the list will be evaludated last.
//
// Example: handleWithGlobalMiddlewares(s.getContainersName)
//
// s.loggingMiddleware(
// s.userAgentMiddleware(
// s.corsMiddleware(
// versionMiddleware(s.getContainersName)
// )
// )
// )
// )
// meaning that the first in the list will be evaluated last.
func (s *Server) handleWithGlobalMiddlewares(handler httputils.APIFunc) httputils.APIFunc {
middlewares := []middleware{
versionMiddleware,
s.corsMiddleware,
s.userAgentMiddleware,
s.loggingMiddleware,
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)
}
h := handler
for _, m := range middlewares {
h = m(h)
handleUserAgent := middleware.NewUserAgentMiddleware(s.cfg.Version)
next = handleUserAgent(next)
// Only want this on debug level
if s.cfg.Logging && logrus.GetLevel() == logrus.DebugLevel {
next = middleware.DebugRequestMiddleware(next)
}
return h
if len(s.cfg.AuthorizationPluginNames) > 0 {
s.authZPlugins = authorization.NewPlugins(s.cfg.AuthorizationPluginNames)
handleAuthorization := middleware.NewAuthorizationMiddleware(s.authZPlugins)
next = handleAuthorization(next)
}
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

@@ -0,0 +1,20 @@
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.
//
// Note: Tagging an image should not be done by a Builder, it should instead be done
// by the caller.
//
// TODO: make this return a reference instead of string
Build(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

@@ -0,0 +1,29 @@
package build
import "github.com/docker/docker/api/server/router"
// buildRouter is a router to talk with the build controller
type buildRouter struct {
backend Backend
routes []router.Route
}
// NewRouter initializes a new build router
func NewRouter(b Backend) router.Router {
r := &buildRouter{
backend: b,
}
r.initRoutes()
return r
}
// Routes returns the available routers to the build controller
func (r *buildRouter) Routes() []router.Route {
return r.routes
}
func (r *buildRouter) initRoutes() {
r.routes = []router.Route{
router.NewPostRoute("/build", r.postBuild),
}
}

Some files were not shown because too many files have changed in this diff Show More