Edits and fixes to Dockerfile Best Practices based on review feedback.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
Edits and fixes to Dockerfile Best Practices based on review feedback.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
add test and move one from rm to rmi

Signed-off-by: Victor Vieux <vieux@docker.com>
docs: Update `docker exec` examples

Signed-off-by: Fabio Rehm <fgrehm@gmail.com>
Add note to docs about lack of shell processing in JSON form

Closes #5509

Signed-off-by: Doug Davis <dug@us.ibm.com>
Fix #6231 - Accept chunked encoding on start

Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
Merge pull request #8324 from cpuguy83/6231_fix_chunked_encoding

Fix #6231 - Accept chunked encoding on start
Merge pull request #8375 from fgrehm/patch-2

docs: Update `docker exec` examples
Fixed a typo in "Installing Docker on Mac OS X"

evironment -> environment
Support for consistent MAC address.

Right now, MAC addresses are randomly generated by the kernel when
creating the veth interfaces.

This causes different issues related to ARP, such as #4581, #5737 and #8269.

This change adds support for consistent MAC addresses, guaranteeing that
an IP address will always end up with the same MAC address, no matter
what.

Since IP addresses are already guaranteed to be unique by the
IPAllocator, MAC addresses will inherit this property as well for free.

Consistent mac addresses is also a requirement for stable networking (#8297)
since re-using the same IP address on a different MAC address triggers the ARP
issue.

Finally, this change makes the MAC address accessible through docker
inspect, which fixes #4033.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Merge pull request #8371 from aluzzardi/f-consistent-mac

Support for consistent MAC address.
Network Allocation: Proper rollback in case of failure allocation.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Container: Make allocateNetwork and releaseNetwork public.

Since we are moving network allocation outside of container scope (it
will be managed by create/destroy), those functions need to be
accessible from the outside.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Container: Add restore network functionality.

RestoreNetwork() allows the container to restore its NetworkSettings (IP
and public ports).

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Stable Networking: Keep the same network settings across container restarts.

This change will allocate network settings (IP and public ports) at
container creation rather than start and keep them throughout the
lifetime of the container (i.e. until it gets destroyed) instead of
discarding them when the container is stopped.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Daemon: Restore network settings at startup.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Stable MAC addresses: Add support for MAC address restoring.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Fixes bad validMountMode check

Needed to check if the mode was invalid and return error, not valid and
return error.

This didn't get picked up because the existing integration-cli tests
were all either expecting errors when a valid mode was passed in (e.g.
"ro" passed in, we expected an error because it was testing write).  So
modified a test which was testing for "rw" to actually pass in "rw"
instead of assuming the "rw"

Docker-DCO-1.1-Signed-off-by: Brian Goff <bgoff@cpuguy83-mbp.home> (github: cpuguy83)
Merge pull request #8297 from aluzzardi/f-stable-ip

Stable Networking: Keep the same network settings during the entire container lifecycle.
Remove registry v2 code path

As this feature requires more testing it is much safter to get the
underlying changes into the codebase first then enable the feature in
another release after proper testing and verification can be done.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>