Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for changes to internal Docker networking. #188

Merged
merged 2 commits into from
Dec 8, 2021

Conversation

WadeBarnes
Copy link
Member

  • Networking changes introduced in Docker 4.1.x and forward on Windows and MAC stop the direct use of the internal docker host IP returned by the docker run --rm --net=host eclipse/che-ip process. On Windows and MAC host.docker.internal needs to be used for internal connections between containers.

Signed-off-by: Wade Barnes wade@neoterictech.ca

- Networking changes introduced in Docker 4.1.x and forward on Windows and MAC stop the direct use of the internal docker host IP returned by the `docker run --rm --net=host eclipse/che-ip` process.  On Windows and MAC `host.docker.internal` needs to be used for internal connections between containers.

Signed-off-by: Wade Barnes <wade@neoterictech.ca>
@swcurran
Copy link
Contributor

swcurran commented Dec 7, 2021

Does this approach work on Docker previous to 4.1? E.g. how long has host.docker.internal worked on Windows and Mac?

@WadeBarnes
Copy link
Member Author

WadeBarnes commented Dec 7, 2021

Yes this works on Docker previous to 4.1. host.docker.internal has been available on Windows and Mac for a very long time now.

host.docker.internal has been available on Windows and Mac since Docker Engine version 18.03 (March 2018). Support for host.docker.internal on Linux was introduced in version 20.10.0 (2020-12-08), but it does not run out of the box yet (from what I can tell). You need to add --add-host=host.docker.internal:host-gateway to the docker run command in order to use it. Though it would be nice if someone could test using host.docker.internal without the --add-host with a newer version of Docker for Linux to see if that's been fixed. The current version of Docker Engine is 20.10.11 (2021-11-17).

@WadeBarnes
Copy link
Member Author

I did a bunch of testing and troubleshooting with Docker Engine 20.10.11 on Ubuntu and have confirmed host.docker.internal still does not work out of the box on Linux, so the docker run --rm --net=host eclipse/che-ip process is still required to get the internal address.

Copy link
Contributor

@swcurran swcurran left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@swcurran swcurran merged commit 3e81ef6 into bcgov:main Dec 8, 2021
WadeBarnes pushed a commit to WadeBarnes/von-network that referenced this pull request Aug 28, 2024
Add support for changes to internal Docker networking.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants