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>
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>
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>
Using container-vm image alias instead of specific name with version.

Signed-off-by: Dawn Chen <dawnchen@google.com>
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>
Add container list filtering to API docs.

Signed-off-by: Kamil Domański <kamil@domanski.co> (github: kdomanski)
Add available filters for containers, images and events to API docs.

Signed-off-by: Kamil Domański <kamil@domanski.co> (github: kdomanski)
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>
Fix missing logDone for TestRunMutableNetworkFiles

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Merge pull request #9674 from LK4D4/log_done

Fix missing logDone for TestRunMutableNetworkFiles
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>