-
Notifications
You must be signed in to change notification settings - Fork 287
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
Networking severely degraded on versions > 4.12 #13393
Comments
I think the networking in 4.18.0 is totally bonkers. I've had big troubles even contacting port that the container is listening.
Fails to ping ipc stuff and finding stuff. Reverted to 4.16.3 and the diagnose works much better. |
I figured out my problem. I have Windows 11, running Ubuntu in WSL2 where I run docker. Something has changed. |
Yes, there's something not working with docker networking on windows in 4.18.0
Changing it to
Or just
However that's of course not a generally good idea to expose stuff to the outside world, even if in theory the windows firewall would save you if it by chance is thought of and properly configured. |
Yes. That was what I was referring to with my comment.
I'm starting to think would the hosts file issue somehow explain this or be relevant for the cause. Eg, fails to find the host and something something. At least not seen issue that would better describe the listening issue itself. |
Hi, I've got an experimental build with lots of Windows networking fixes if you'd like to give it a go: In particular container outgoing bandwidth should be improved, for example I have a 1G network and I can now saturate that from a container: (with
I also found a long-standing bug in the port-forwarding code which could cause it to stop working (particularly if under load) until Docker was restarted. Regarding port forwarding, watch out for clashes between Docker Desktop's port-forwarding and WSL 2's port-forwarding. If you're still having trouble, perhaps try disabling the Thanks for all your patience on this. |
Hello @djs55, Thanks for the experimental build. My issues seem to be resolved with this build.
BONUS: If you remember, you worked with me to reproduce this issue #8861 a few years ago. I reran the curl testing that we did to reproduce the issue. The issue still persists, but it takes much longer for the connections to start hitting the timeout limit. |
Hello, for Windows, the experimental version 4.19.0 + localhostForwarding=false helped me, and now docker works, but now i have another problem Projects that use address like http://localhost:3000/ (react, vue, node) won't work For now, my solution is to remove localhostForwarding=false when working with react, vue, node, etc and put back that config when using docker. Is there any way to get both working? |
One thing to highlight with the experimental build is that the RAM usage seems incredibly high. I have 128GB RAM, with 48GB set as the limit for WSL. Docker Desktop is almost using that amount in addition to the RAM being reserved by WSL (idle since nothing is running in WSL except Docker). This is a separate issue to the networking one, but since it's related to the build you shared, not sure where else to post |
Closing this issue as the recently released 4.19 resolves the issues in the initial post. The timeouts to host are also greatly improved but still exist, so keeping that issue open. |
Closed issues are locked after 30 days of inactivity. If you have found a problem that seems similar to this, please open a new issue. /lifecycle locked |
Actual behavior
I created a very detailed ticket for paid support, but they told me to just come and create it here.
I am facing numerous degradations in networking performance from any version later than 4.12.0. I will list out the symptoms below, but after updating multiple times to each version after 4.12 as well as trying to update to 4.18 at least 5 times, these issues always get introduced. As soon as I revert to 4.12.0, they instantly go away. Something happened in 4.13 (maybe related to the proxy changes) which has resulted in significant network degradation.
My download speed on my Windows host is around 1gbps, usually hitting 900mbps. Because of Docker/WSL, I was only ever getting 200mbps in Docker containers on any version up to 4.12.0. On versions greater than 4.12, speedtest drops to an average of 40mbps which is only 20% of the original throughput.
I run Uptime-Kuma in my Docker Compose stack. I have it checking multiple container health statuses by pinging the container at a specific port. I use Docker DNS resolution, so I set the container name as the host and the relevant port in the monitors. I have 60 monitors for each container. This works perfectly in 4.12. As soon as I update, instantly there are intermittent Connection Refused hits on the monitors. To be clear, this does not happen for every single ping, but it starts happening enough that the monitors keep flipping between healthy/unhealthy all of a sudden.
I have a CIFS volume for a shared Windows folder in my compose which is attached to multiple containers. I notice multiple containers suddenly see the volume disappear. It reappears, but again, like point 2, it starts happening intermittently.
All of these are symptoms of what is probably dropped packets in the networking, and I am sure there are significant other issues occurring. I noticed a lot of other issues that might be related. For example, this reply seems to highlight the change happening on 4.13+ - #13092 (comment)
These are pretty significant downgrades in network performance which is basically making it impossible for me to use anything higher than 4.12 in production. I assumed these would have been fixed now after half a year, but seems they may not even be on the team's radar?
Expected behavior
Networking should work like in 4.12. Maybe there is demand for the proxy changes, but this level of network degradation is not an acceptable tradeoff for it.
Information
Output of
& "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" check
It seems the diagnostics might be broken in 4.18.0. I noticed someone else having all the nonsense about virtualization and stuff not being enabled here #13388 after running the self-diagnostics, which is the exact same issues my self-diagnostics are giving. These are clearly not correct as they do not occur on 4.12.0, and I wouldn't be able to run a compose stack with 60 containers on production with those basic steps missing. Apparently this is creating too much noise for them to dig into what is happening and makes this command unhelpful
Steps to reproduce the behavior
First Issue
Second Issue
Third Issue
The text was updated successfully, but these errors were encountered: