All services

Is Docker Hub down?

Docker Hub is up.

OperationalChecked 5 minutes ago from N. Virginia · responded in 38 ms

Our last check reached hub.docker.com and got a healthy response.

Last 30 days

The numbers

Availability and response time for Docker Hub over the last 24 hours.

Availability

100%

46 checks, none failed

Avg response

108 ms

Mean of every check

Slowest

413 ms

Worst single check

Incidents

0

Runs of failing checks

Downtime

None

Estimated from samples

Downtime is estimated from 10-minute samples, so figures are accurate to within one check interval.

Over time

Every check we ran, and how long each one took.

Availability

03:20Each bar is 10 minutesnow
  • All checks passed
  • Some checks failed
  • All checks failed

Response time

Where the time goes

"Is it down?" is usually really "it feels broken — what's wrong with it?" This is the answer: every millisecond of a request to hub.docker.com, broken into the four phases it actually spends time in.

DNS

Resolving the hostname to an IP address.

14 ms13%
TCP + TLS

Opening the connection and completing the TLS handshake.

7 ms7%
Time to first byte

Waiting for the server to start responding. Usually the server thinking.

88 ms80%
Download

Transferring the response body.

0 ms0%

Averaged over the last 24 hours. The four phases add up to the total response time of 109 ms.

Incidents

Every time a check against hub.docker.com failed in the last 30 days, grouped into incidents.

No incidents recorded for Docker Hub.

Every check we’ve run against Docker Hub has passed.

This page is a Checkly monitor.

Not a mockup of one. Everything above is produced by the monitor below, running every 10 minutes from N. Virginia and Frankfurt. It lives in a repo, gets code-reviewed, and deploys from CI — the same way you would monitor your own service.

That’s the whole product. Monitoring you can read, diff, and version.

availability-docker-hub.check.ts
1import {
2 UrlMonitor,
3 UrlAssertionBuilder,
4 Frequency,
5} from 'checkly/constructs'
6 
7new UrlMonitor('availability-docker-hub', {
8 name: 'Docker Hub (hub.docker.com)',
9 activated: true,
10 frequency: Frequency.EVERY_10M,
11 locations: ['us-east-1', 'eu-central-1'],
12 degradedResponseTime: 3000,
13 maxResponseTime: 10000,
14 request: {
15 url: 'https://auth.docker.io/token?service=registry.docker.io',
16 followRedirects: true,
17 skipSSL: false,
18 assertions: [
19 UrlAssertionBuilder.statusCode().lessThan(400),
20 ],
21 },
22})

How we check Docker Hub

A real request to the endpoint that matters, every 10 minutes — measured, not crowd-sourced.

What we actually do

  • We send a real HTTP GET to https://auth.docker.io/token?service=registry.docker.io every 10 minutes.
  • We run it from two datacenters: N. Virginia and Frankfurt.
  • It passes if the endpoint answers with a status below 400 within 10 seconds. Slower than 3 seconds is “degraded”, not down.
  • We probe the token endpoint that every single `docker pull` hits before it fetches a layer. It is the first hop of a real pull, so if this is failing your deploys are failing. The registry itself answers 401 to an unauthenticated probe, which Checkly scores as a hard error, so it cannot be used directly.

What a green check means

  • Docker Hub answered a real request from both N. Virginia and Frankfurt — an actual measurement, not complaints counted from a crowd.
  • We probe the endpoint that fails when Docker Hub fails, so a green check tracks the part you depend on, not a marketing page that stays up regardless.
  • Checks run around the clock, every 10 minutes, on the same infrastructure Checkly customers monitor production with.

Frequently asked

No. Our most recent check reached https://auth.docker.io/token?service=registry.docker.io and got a healthy response. We check every 10 minutes from N. Virginia and Frankfurt.

We run a real HTTP request against https://auth.docker.io/token?service=registry.docker.io every 10 minutes from N. Virginia and Frankfurt, using Checkly's synthetic monitoring. A check passes when the endpoint returns a status below 400 within 10 seconds. We are not counting user reports — we are measuring the actual response.

We probe the token endpoint that every single `docker pull` hits before it fetches a layer. It is the first hop of a real pull, so if this is failing your deploys are failing. The registry itself answers 401 to an unauthenticated probe, which Checkly scores as a hard error, so it cannot be used directly.

We check Docker Hub from N. Virginia and Frankfurt. If it answers us but not you, the problem is usually specific to your network, ISP, region, or account rather than Docker Hub itself.

Downdetector counts user reports — how many people are complaining. We run an actual synthetic check against the service and report what the wire says. Reports lag the outage and can be noisy; a probe either gets a response or it doesn't.