Support hairpin NAT

This re-applies commit b39d02b with additional iptables rules to solve the issue with containers routing back into themselves.

The previous issue with this attempt was that the DNAT rule would send traffic back into the container it came from. When this happens you have 2 issues.
1) reverse path filtering. The container is going to see the traffic coming in from the outside and it's going to have a source address of itself. So reverse path filtering will kick in and drop the packet.
2) direct return mismatch. Assuming you turned reverse path filtering off, when the packet comes back in, it's goign to have a source address of itself, thus when the reply traffic is sent, it's going to have a source address of itself. But the original packet was sent to the host IP address, so the traffic will be dropped because it's coming from an address which the original traffic was not sent to (and likely with an incorrect port as well).

The solution to this is to masquerade the traffic when it gets routed back into the origin container. However for this to work you need to enable hairpin mode on the bridge port, otherwise the kernel will just drop the traffic.
The hairpin mode set is part of libcontainer, while the MASQ change is part of docker.

This reverts commit 63c303eecdbaf4dc7967fd51b82cd447c778cecc.

Docker-DCO-1.1-Signed-off-by: Patrick Hemmer <patrick.hemmer@gmail.com> (github: phemmer)
Not fail on updating parent links

Fixes #8796

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
Revise Docs Maintainers list

Removing Sonat from docs maintainers because he no longer has time to complete all the responsibilities. Many thanks to Sonat for his help.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
Use the HTTP Last-Modified http header as the mtime value for ADD cmd when present

Closes #8331

Signed-off-by: Doug Davis <dug@us.ibm.com>
pkg/namesgenerator: add Yeong-Sil Jang

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Remove the redundant stripComment.

Signed-off-by: xuzhaokui <cynicholas@gmail.com>
Additional info for docker binary
Signed-off-by: Prasanna Gautam <prasannagautam@gmail.com>

I found that certain docker installations do not handle binding to the source directory quite right. Just writing it based on help from backjlack and tibor in IRC.
limiting to 80 chars

Signed-off-by: Prasanna Gautam < prasannagautam@gmail.com >
Remove the redundant include_search in mkdocs.yml
Fix: Failed Start breaks VolumesFrom

Running parseVolumesFromSpec on all VolumesFrom specs before initialize
any mounts endures that we don't leave container.Volumes in an
inconsistent (partially initialized) if one of out mount groups is not
available (e.g. the container we're trying to mount from does not
exist).

Keeping container.Volumes in a consistent state ensures that next time
we Start() the container, it'll run prepareVolumes() again.

The attached test demonstrates that when a container fails to start due
to a missing container specified in VolumesFrom, it "remembers" a Volume
that worked.

Fixes: #8726

Signed-off-by: Thomas Orozco <thomas@orozco.fr>
Merge pull request #6810 from phemmer/4442-hairpin-nat

Support hairpin NAT
Add missing docs for #8509

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Merge pull request #9028 from unclejack/add_yeong-sil_jang

pkg/namesgenerator: add Yeong-Sil Jang
Add link to Docs README.

Linking to the docs readme to help would-be contributors discover the style guide and docs contribution guidelines.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
Merge pull request #8716 from duglin/Issue8331

Use the HTTP Last-Modified http header as the mtime value for ADD cmd when present
Merge pull request #9014 from LK4D4/fix_parent_failing

Not fail on updating parent links
fixing punctuation and grammar

Signed-off-by: Prasanna Gautam <prasannagautam@gmail.com>
Merge pull request #9069 from cpuguy83/docs_for_pr8509

Add missing docs for #8509
properly line wrapping

Signed-off-by: Prasanna Gautam <prasannagautam@gmail.com>
Merge pull request #9032 from fredlf/revise-docs-maintainers

Revise Docs Maintainers list