Skip to main content
Redhat Developers  Logo
  • Products

    Platforms

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat AI
      Red Hat AI
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • View All Red Hat Products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat Developer Hub
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat OpenShift Local
    • Red Hat Developer Sandbox

      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Secure Development & Architectures

      • Security
      • Secure coding
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • Product Documentation
    • API Catalog
    • Legacy Documentation
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

How to use Red Hat Quay as a proxy cache

Pull images on demand from remote locations

August 4, 2025
Ahmed Bashir
Related topics:
CI/CDContainersKubernetes
Related products:
Red Hat Quay

Share:

    Red Hat Quay provides an enterprise grade container registry for organizations and allows administrators to host and distribute images across different environments. In some scenarios, the required images may not be hosted on premise and additional steps need to be taken in order to make them available in the environment. This blog post demonstrates how to use Red Hat Quay's proxy cache for upstream registries to pull images on demand from remote locations.

    Environment setup

    I set up a Red Hat OpenShift cluster v4.18.1 running on AWS with Red Hat Quay 3.13 deployed and installed via the Red Hat Quay Operator. I also used OpenShift Data Foundation to provide the necessary storage requirements for Red Hat Quay.

    Enable the proxy cache flag

    To enable the proxy cache, set FEATURE_PROXY_CACHE to true in the Red Hat Quay config.yaml. You can do this through the OpenShift web console by navigating to Workloads → Secrets in the project hosting the Quay registry deployment.

    Search for "config" to retrieve and edit the config bundle used by your Red Hat Quay deployment to enable the proxy cache, as shown in Figure 1. If the operator generated the secret name, it typically follows this format: <registry-name>-config-bundle-<uid>.

    A configuration file for a Red Hat Quay deployment with the line FEATURE_PROXY_CACHE: true highlighted, indicating that the proxy cache is enabled.
    Figure 1: Adding the FEATURE_PROXY_CACHE flag in the config bundle.

    After updating and saving the secret, the Red Hat Quay operator triggers a rollout of the registry pods and deploys new pods based on the updated configuration.

    Creating an organization

    With the proxy cache enabled, create a new organization in Red Hat Quay to proxy images from remote sources. Navigate the Red Hat Quay console to create an organization.

    After logging in, create a new organization for the purpose of proxy caching. In this example, we named it proxy.

    After creating the organization, click on it and navigate to the organization settings. Provide the remote registry information in the proxy cache section of the settings. In this example, I used docker.io as my remote registry for proxy caching. See Figure 2.

    The settings page for the proxy organization in Red Hat Quay. In the Proxy cache section, a remote registry URL docker.io has been entered and is shown in the text field.
    Figure 2: Adding the proxy cache in the organization settings.

    Command-line proxy pull testing

    With the new organization set up with proxy caching, test remote pulling using Podman. First, log in to your Red Hat Quay registry using the following command and the registry's credentials. Replace <registry-url> with your Red Hat Quay registry URL.

    abashir@abashir-thinkpad:~/podman login <registry-url>
    Username: admin
    Password: 
    Login Succeeded!

    Now you can test the proxy cache by pulling an image that exists in Docker Hub, but not your Red Hat Quay registry. I used the hello-openshift image for this example.

    abashir@abashir-thinkpad:~/podman pull <registry-url>/proxy/openshift/hello-openshift:latest
    
    Trying to pull <registry-url>/proxy/openshift/hello-openshift:latest...
    
    Getting image source signatures
    
    Copying blob 8b32988996c5 done   | 
    
    Copying blob 4f4fb700ef54 done   | 
    
    Copying config 7af3297a3f done   | 
    
    Writing manifest to image destination

    As you can see, you can successfully pull the image even though it does not exist in your registry. In the background, Red Hat Quay pulls the required image on demand and saves it to the registry based on the remote proxy cache settings you specified. If you navigate to the proxy organization you created in the Red Hat Quay console, you can see the hello-openshift image after the podman pull command requests it (Figure 3).

    The proxy organization page in the Red Hat Quay console. The page shows that the hello-openshift repository has been added and contains a single tag latest that was last modified within the past minute.
    Figure 3: Viewing the hello-openshift image in the proxy organization.

    Application deployment proxy pull testing

    With the proxy cache configuration in place, we can test a common use case: deploying an application that uses a container image proxied from the remote source via Red Hat Quay. First, create a new project called my-apps to host your application by navigating to Home → Projects in the OpenShift web console and clicking the Create Project button.

    From there, navigate to the Developer view in the OpenShift console (marked in Figure 4) to switch the context to Developer. You can proceed to create the application.

    The OpenShift console with the Developer perspective highlighted in the left navigation panel.
    Figure 4: Switching to the Developer view.

    From the navigation menu, click +Add and then Container images (Figure 5) to create a new application based on a container image.

    A view of the OpenShift Developer perspective. The left navigation panel shows the +Add menu with Container Images highlighted.
    Figure 5: Adding a new application based on a container image.

    In the Image name from external registry field, specify the Red Hat Quay registry and image name. After you specify the image name, OpenShift will detect that Red Hat Quay's authentication protection prevents image access. To allow OpenShift to pull the image, create a new image pull secret that specifies the Red Hat Quay registry credentials. You can do this by clicking the create an Image pull secret link shown below the validation message in Figure 6.

    A view of the OpenShift Developer perspective. The Container Images page has a validation message below the text entry field stating that the image pull failed and a create an Image pull secret link is available to create a new secret.
    Figure 6: Specifying the image name and external registry.

    Once you click on the link to create an Image pull secret, you can input the Red Hat Quay details, including the name of the secret to be created, your Red Hat Quay registry server address, and the username and password for authentication. See Figure 7.

    A form in the OpenShift console for creating a new image pull secret. Fields for the secret name, registry server address, username, and password for Red Hat Quay are visible and ready for user input.
    Figure 7: Creating the pull secret for authentication.

    After providing the registry information, you can see that the image is now accessible and the validation error is gone (Figure 8). You can now create your application.

    A view of the OpenShift Developer perspective. The Container Images page now shows a green checkmark indicating the image is valid and the validation error message is no longer present.
    Figure 8: Image validated after creating the pull secret.

    Now with the application created, the application container image has been proxied through our Red Hat Quay registry, and the application container is up and running. You can also view the application resources such as the pods, service and route that have been created.

    Now that you have created the application, the Red Hat Quay registry proxies the application container image, and the application container is running. You can also view the application resources that have been created, such as the pods, service, and route. See Figure 9.

    A view of the OpenShift Developer perspective. The hello-openshift application is displayed with a pod, service, and route, indicating it is successfully deployed and running.
    Figure 9: Application resources created.

    By navigating your browser to the application route, you can validate that the application is operational. Figure 10 shows the webpage response in the browser.

    A web browser displaying the "Hello OpenShift!" page. The text confirms the application is running successfully.
    Figure 10: Validating the application is running and reachable.

    Conclusion

    This post demonstrated how to configure your Red Hat Quay registry to proxy cache container images from remote sources and how to configure remote command-line clients to pull proxied images. It also detailed how to create an OpenShift application based on a proxy cached image from a remote source and validated the connectivity and reachability to your application.

    To learn more, visit:

    • Deploying the Red Hat Quay Operator on OpenShift Container Platform
    • Red Hat Quay as a proxy cache for upstream registries
    • Creating applications by deploying container image

    Recent Posts

    • Cloud bursting with confidential containers on OpenShift

    • Reach native speed with MacOS llama.cpp container inference

    • A deep dive into Apache Kafka's KRaft protocol

    • Staying ahead of artificial intelligence threats

    • Strengthen privacy and security with encrypted DNS in RHEL

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Products

    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue