speed up creation of args and msg for huge cmds

Whenever a command arguments is formed by a large linked list, repeatedly
appending to arguments and displayed messages took a long time because go will
have to allocate/copy a lot of times.

This speeds up the allocation by preallocate arrays of correct size for args
and msg

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
use cached images instead of fetching the same image again

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
add a test case for EXPOSE ports order

changing order of EXPOSE ports should not invalidate the cache as the content
doesnt change

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
expose sorts its ports before saving as comment

Saving ports as `map[nat.Port]struct{}` directly has ordering issue which is
more replicatable where we expose a huge number of ports at the same time. As a
result, the cache will be burst whenever the map order is different from the
previous build.
This sorts the ports first and save them as a whitespace-separated list instead
of the map representation, so the order will always be consistent if the port
list isnt changed.

NOTICE: this will burst the old expose caches

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
add test for exposing large number of ports

this test checks if exposing a large number of ports in Dockerfile properly
saves the port in configs. We dont actually expose a VERY large number of ports
here because the result is the same and it increases the test time by a few
seconds

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
CONTRIBUTING: provide a template for new issues

_maybe_ we could even automate this to populate and complain in some
situations.

I see https://github.com/isaacs/github/issues/99 that is old and needs
some love from @github ...

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

Add a script that will facilitate standard issue reports.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
Allocate daemon listening ports

Mark the daemon listening ports as allocated in the portallocator in
order to prevent containers from exposing this port themselves.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Fix vet errors about unkeyed fields

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Fix vet errors in aufs.go about Lock by value

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Fix vet errors about formatting directives

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Fix vet errors about json tags for unexported fields

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Using container-vm image alias instead of specific name with version.

Signed-off-by: Dawn Chen <dawnchen@google.com>
Set HTTP upgrade headers when hijacking connection

Signed-off-by: Jean-Tiare Le Bigot <jt@yadutaf.fr>
Wrap strings that could look like ints in quotes

When we use the engine/env object we can run into a situation where
a string is passed in as the value but later on when we json serialize
the name/value pairs, because the string is made up of just numbers
it appears as an integer and not a string - meaning no quotes.  This
can cause parsing issues for clients.

I tried to find all spots where we call env.Set() and the type of the
name being set might end up having a value that could look like an int
(like author). In those cases I switched it to use env.SetJson() instead
because that will wrap it in quotes.

One interesting thing to note about the testcase that I modified is that
the escaped quotes should have been there all along and we were incorrectly
letting it thru. If you look at the metadata stored for that resource you
can see the quotes were escaped and we lost them during the serialization
steps because of the env.Set() stuff.  The use of env is probably not the
best way to do all of this.

Closes: #9602

Signed-off-by: Doug Davis <dug@us.ibm.com>
Set HTTP upgrade header only when requested by client

Signed-off-by: Jean-Tiare Le Bigot <jt@yadutaf.fr>
Refactor completion for docker run and docker create

_docker_run and _docker_create had only one differing line.

This refactoring features:

- direct completion for both commands to the same function
- factor out the common arguments, sort & format them nicely
- compute the argument for _docker_pos_first_nonflag.

Signed-off-by: Harald Albers <github@albersweb.de>
Fixed two misspellings.

Fixed two misspellings of the word "beginning".

Signed-off-by: JacobEdelman <edelman.jd@gmail.com>
Add test to enforce volume build content

This tests ensures that the content from a dir within a build is carried
over even if VOLUME for that dir is specified in the Dockerfile.  This
test ensures this long standing functionality.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Fix volumes-from/bind-mounts passed in on start

Fixes #9628
Slightly reverts #8683, HostConfig on start is _not_ deprecated.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>