Docker Hub access for servers in Iran

Docker Hub access for servers in Iran; without changing your pull commands

Direct Docker Hub access is effectively blocked from servers in Iran. FluxCDN removes that restriction from public image pulls. Keep the same image names, tags, docker pull commands, Compose files, and CI/CD jobs.

Image pull route availableregistry.fluxcdn.cloud
Docker HubCurrent public images
FluxCDNA secure, available route
Server in IranNormal docker pull commands
nginxlatestredis7alpine3.22docker pull

Normal pull commandsNo image renaming required

Public HTTPS registryregistry.fluxcdn.cloud

Works with docker pullExisting commands stay unchanged

Read-only accessPublic pushes are not accepted

Pull the original image with its content digest intact

Removing the Docker Hub access barrier does not mean trusting an unknown image. Docker receives the manifest and layers of the public image you requested.

  • Current tags and releasesNew public image versions remain available through the same registry route.
  • No image renaming or content changesThe repository name, tag, manifest, and layers stay aligned with Docker Hub.
  • HTTPS and digest verificationDocker verifies manifests and layers against their content-addressed digests.

Choose your current Docker configuration

Create the complete file when daemon.json does not exist. If it already contains settings, add only the registry mirror key so every existing option remains intact.

Create a new configuration

Use this command on a system without a custom daemon.json file.

sudo install -d -m 0755 /etc/docker
sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
{
  "registry-mirrors": [
    "https://registry.fluxcdn.cloud"
  ]
}
EOF

sudo systemctl restart docker
Verify the mirror connectionAfter restarting Docker, this command should list the Registry Mirror address.
docker info | sed -n '/Registry Mirrors/,+5p'

Keep using the same docker pull commands

For public Docker Hub images, you do not need to add a registry name to everyday commands. Docker reads the mirror from its configuration.

  • Existing CI/CD and Compose commands stay unchanged.
  • Official Docker Hub images use the library namespace.
  • The mirror is intended for public Docker Hub images.
Ready pull examples
docker pull busybox:latest
docker pull alpine:latest
docker pull nginx:latest
docker pull redis:latest
docker pull mysql:latest

You can also test the Registry Mirror with its full path:

docker pull registry.fluxcdn.cloud/library/alpine:latest

A familiar path from image name to running container

Keep image names, tags, Compose files, and deployment commands as they are. The mirror becomes part of Docker’s configuration rather than a new step in your workflow.

  1. Name the image

    Use the same repository name and tag your deployment already expects.

  2. Pull normally

    Run docker pull, Docker Compose, or your current deployment pipeline.

  3. Run the container

    The downloaded image behaves exactly like the Docker Hub image you requested.

After configuration, verify the listed mirror once and keep your existing deployment commands unchanged.

The service boundary is clear

This service pulls public Docker Hub images. It is not a public registry for publishing private or custom images.

IncludedPublic Docker Hub images and official library paths.Read-only behaviorPull is supported; public push requests return 403.

If Docker Engine is not installed, choose a distribution

Docker CE packages use a repository separate from the Registry Mirror. Choose Ubuntu or Debian to get the matching installation command.

Install Docker CE on Ubuntu

The official Docker signing key is retained; only the package base URL points to FluxCDN.

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirror.fluxcdn.cloud/docker/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

. /etc/os-release
CODENAME="${UBUNTU_CODENAME:-$VERSION_CODENAME}"
ARCH="$(dpkg --print-architecture)"
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: https://mirror.fluxcdn.cloud/docker/linux/ubuntu
Suites: ${CODENAME}
Components: stable
Architectures: ${ARCH}
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

Docker Mirror questions

Practical answers for configuration, verification, and safe rollback.

Do I need to change docker pull commands?

No. Keep using normal commands for public Docker Hub images. Docker reads the mirror address from daemon.json.

Can I push my own images?

No. The Registry Mirror is read-only. Pull is supported and public push requests return 403.

Are private Docker Hub images available?

The public service and this guide are intended for public images. Access to private images should not be assumed.

Do GHCR or Quay use this mirror?

No. registry.fluxcdn.cloud is for Docker Hub and does not cover GHCR, Quay, ECR, or GAR.

How do I confirm Docker is using the mirror?

Run docker info and inspect the Registry Mirrors section. It should list https://registry.fluxcdn.cloud.

How do I disable the mirror?

Remove registry-mirrors from daemon.json, leave every other setting intact, and restart Docker.

FluxCDN

One short configuration; everyday pull commands stay the same

Choose the state of daemon.json, copy the matching configuration, and verify the Registry Mirror connection.