Docker Hub have been incrementally increasing rate limits for “Docker image pulls” over recent years, starting in 2020, and further changes are being applied from April 1st, 2025.
You can read more about Docker Rate limits here: Usage and limits
The way these rate limits are implemented are that “anonymous” or unauthenticated image pulls are subject to rate limits on a per source IP basis.
As you may be aware, Bitbucket Pipelines operates on a pool of shared IP ranges, and is therefore subject to rate limits from Docker Hub.
We recommend to our customers who wish to continue to reliably use Docker Hub services to authenticate their traffic with an appropriate service tier based on your usage, as this shifts the rate limit from source IP, to source user.
See examples below of authenticating with Docker Hub, you can read more in our documentation:Use Docker images as build environments | Bitbucket Cloud | Atlassian Support
definitions:
services: ## authenticated service container
my-service-name:
image:
name: alpine:latest
username: $DOCKER_USERNAME
password: $DOCKER_PASSWORD
pipelines:
default:
- step:
image:
name: customers_image_name # for build image
username: $DOCKER_USERNAME
password: $DOCKER_PASSWORD
script:
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD # for pipes or dind
- step:
name: Using a Service Container
services:
- my-service-name
script:
- echo "Hello, World"
We’d like to remind our users that your choice of Docker Package repository is not restricted to Docker Hub, and that there are a variety of commercial and self-hosted alternatives.
Pipelines will continue to review it’s choice of image hosting provider going forward; Consider voting on this issue if you’re interested in a Bitbucket native solution:
Liam Nunns
Bitbucket Pipelines - Senior Engineering Manager
0 comments