Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

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

    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

    • Protect data offloaded to GPU-accelerated environments with OpenShift sandboxed containers

    • Case study: Measuring energy efficiency on the x64 platform

    • How to prevent AI inference stack silent failures

    • Preventing GPU waste: A guide to JIT checkpointing with Kubeflow Trainer on OpenShift AI

    • How to manage TLS certificates used by OpenShift GitOps operator

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    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
    © 2026 Red Hat

    Red Hat legal and privacy links

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

    Chat Support

    Please log in with your Red Hat account to access chat support.