Running into an issue, where we have some Raspberry Pi 1 devices, running Docker 17.03. Recently they started having issues pulling from Docker Hub. The issue seems to only happen when there are multiple layers in the image, and manifest itself in a
net/http: TLS handshake timeout in ~10s:
HypriotOS/armv6: pirate@black-pearl in ~ $ docker pull resin/rpi-supervisor:v6.1.2 v6.1.2: Pulling from resin/rpi-supervisor e68248c7f72c: Pulling fs layer 0c4000169923: Pulling fs layer 7df9349c9ba7: Pulling fs layer 29c5739307d5: Waiting 2831f22ab9ef: Waiting f16e318612a5: Waiting error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/7e/7ed5c4b78cbc94f313b3b2cc467ef14e5d0ae925f3397e5300be21c6adc2b65d/data?verify=1530810800-XldS9vFl%2Bm8NAw5Y%2Bdz%2B%2FTvUMWo%3D: net/http: TLS handshake timeout
Tested it on Hypriot v1.4.0 and on resinOS 2.2.0 for the RPi1, both coming with docker
- Pulling multilayer image from Docker Hub (eg.
docker pull resin/rpi-supervisor:v6.1.2): does not work
- Pulling single layer image from Docker Hub (eg
docker pull armv6l/hello-world): does work fine
- Pulling the same multilayer image pushed to an alternate registry (e.g.
docker pull registry.gitlab.com/imrehg/testing/resin/rpi-supervisor:v6.1.2): does work fine
- Running on Raspberry Pi 3 or any X86 devices: seems to work fine
- The devices can
curlthat failing URL: works fine
- Running the docker daemon with
--max-concurrent-downloads 1: seems to work around the problem
- Running docker
17.06or newer: works fine
This used to work before for sure, and seems to be related to the
Cloudflare resolution of the registry.
$ docker version Client: Version: 17.03.0-ce API version: 1.26 Go version: go1.7.5 Git commit: 60ccb22 Built: Thu Feb 23 11:32:23 2017 OS/Arch: linux/arm Server: Version: 17.03.0-ce API version: 1.26 (minimum version 1.12) Go version: go1.7.5 Git commit: 60ccb22 Built: Thu Feb 23 11:32:23 2017 OS/Arch: linux/arm Experimental: false
Unfortunately these devices / the docker on these devices cannot immediately be updated to a newer version.
Any idea why it might affect
armv6 devices only? What in Docker Hub’s setup is that might cause an issue (since other registry works)?