Larger images are pulled at normal speed and then hang towards the end

Whenever I pull an image, all the layers beyond a certain size download almost to the end, before getting stuck for multiple minutes, then eventually finishing. Here’s a video demonstrating the issue:

I don’t think this is a rate-limiting issue, because it also occurs when pulling images from GitHub’s GHCR repository, and it doesn’t affect all images, only large ones. I don’t think it’s a networking issue, as the machine is connected directly to the router via Ethernet, and I’ve successfully pulled images to other devices on the network (namely my MacBook). I also don’t think it’s running out of resources, as it’s an old workstation PC and the overhead of running Debian shouldn’t be enough to cripple it.

The machine is a Lenovo workstation with an Intel Xeon E31230 and 8GB of RAM. It’s running Debian 11, Docker Engine 20.10.21, containerd 1.6.12, runc 1.1.4 and docker-init 0.19.0.

The issue turned out to be my router. It must be some weird difference between how it treats ethernet and wireless devices, but plugging it into a different router solved the problem.

This is an ongoing problem. Docker pull fails with no error, just a hang and no diagnostics. And it does so because of some low level networking configurations that do not effect any other kinds of applications that routinely pull large files and data sets. The Docker pull command will pull several layers and then just hang. But I can’t tell you how to repeat it because I can’t tell you how to reproduce the routing and gateways that I use. That should not matter because application data transfer should not be so dependent on low level networking.