Docker push hangs

Client list:

1] Ubuntu 16.04.6 LTS
- Docker version 17.05.0-ce, build 89658be

2] Ubuntu 18.04.2 LTS
- Docker version 18.09.6, build 481bc77

Server list:

1] Amazon Linux release 2 (Karoo)
- Docker version 18.06.1-ce, build e68fc7a215d7133c34aa18e3b72b4a21fd0c6136
- registry 2 f32a97de94e1 4 months ago 25.8MB

2] https://hub.docker.com/
- OS and versions unknown

I am having consistent issues pushing images from both clients to both servers. The vast majority of the time the push will stall during the actual push:

53a9378fdf6e: Pushing [=======================================> ] 51.78MB/64.84MB

Restarting docker on the clients and the hosted registry does not fix the issue. I’ve combed through the logs and the only thing I can find is a reference to the stream being unexpectedly closed in the client docker log. I have tried this from multiple machines, multiple locations, over the internet, over a VPN, and nothing seems to help. Occasionally things will just work for a day ( well maybe 12 hours or so) but that doesn’t last long.

Initially I assumed it was a hosted registry issue, maybe something in the AWS network. But, alas the problem shows up when trying to push the same images to hub.docker.com.

I can find little commonality between hangs. Sometimes things will hang after having sent only a few kilobytes. Other times the push will hang after having sent the majority of the image.

I’ve noticed in my research a lot of folks seeming to have this very same issue. For some of them the restart seems to cure the issue. But for the rest of us there doesn’t seem to be a solution.