← Back

Migrating from DockerHub to FastPanel Registry

2026-01-06

If you're on DockerHub and hitting rate limits or privacy concerns, migrating is straightforward. Here's a script that retaggs and repushes your images.

$ fastpanel registry migrate --from dockerhub --repo myorg/myapp
Authenticating with DockerHub...
Found 23 tags to migrate
Migrating latest ... done (1.2s)
Migrating v2.1.0 ... done (0.9s)
Migrating v2.0.3 ... done (1.1s)
... 20 more tags
Migration complete. Update your CI_REGISTRY to registry.fastpanel.app

One-time migration script

#!/bin/bash
DOCKERHUB_TEAM="myteam"
FP_TEAM="myteam"
IMAGES=("app" "worker" "nginx-proxy")

docker login
docker login registry.fastpanel.app

for IMAGE in "${IMAGES[@]}"; do
  # Get all tags
  TAGS=$(curl -s "https://registry.hub.docker.com/v2/repositories/${DOCKERHUB_TEAM}/${IMAGE}/tags/"     | jq -r '.results[].name')
  
  for TAG in $TAGS; do
    docker pull "${DOCKERHUB_TEAM}/${IMAGE}:${TAG}"
    docker tag "${DOCKERHUB_TEAM}/${IMAGE}:${TAG}"       "registry.fastpanel.app/${FP_TEAM}/${IMAGE}:${TAG}"
    docker push "registry.fastpanel.app/${FP_TEAM}/${IMAGE}:${TAG}"
  done
done

Update your CI/CD

Replace references to docker.io/myteam/ with registry.fastpanel.app/myteam/ in your pipeline configs. If you're using Kubernetes, update your Deployments and image pull secrets.