Configure offline container development environment


Red Hat build of Podman Desktop 1.0

Explore how to configure a secure, offline container development environment to work with Red Hat build of Podman Desktop.

Red Hat Customer Content Services

Abstract

Understand the concepts and implications of an air-gapped environment. You can set up core development components for Red Hat build of Podman Desktop and ensure they operate correctly without internet access.

Preface

An air-gapped environment denotes a network security measure where machines are completely isolated from external networks. While this isolation provides maximum security against cyber threats to sensitive assets, it forces a fundamental shift in operations. The automated, network-dependent workflow is replaced by manual, multi-step processes relying on secured physical media for data transfer.

To set up Red Hat build of Podman Desktop offline, pre-fetch the required binaries from the identified sources and install them manually into the specified locations. These steps ensure the core components operate correctly without internet access.

An air-gapped environment is a computer system or network that is physically or logically disconnected from all external networks, specifically the internet. Its primary purpose is to provide the highest possible security for highly sensitive data and critical infrastructure. This offline, secure environment eliminates digital entry points for hackers, malware, or other cyber threats.

1.1. Impact on workflow

Red Hat build of Podman Desktop simplifies local container development, which relies heavily on pulling resources from the internet. In an air-gapped environment, the entire workflow shifts from an online, automated process to a manual, pre-fetched, and controlled one. The isolation from external networks makes the air-gapped environment much less convenient to operate. The following table highlights the impact of such an environment on the workflow of Red Hat build of Podman Desktop:

Expand
Table 1.1. Workflow comparison: Automated versus Air-gapped
Core workflow areaOnline or automated (Default)Air-gapped (Manual process)

Installation and dependencies (For example, Kind or Docker Compose binaries for Windows or macOS)

Automatic downloading of all required components and binaries.

Manual pre-fetching: You must download all the executable files externally, transfer them through secured removable media, and install them manually.

Container image management (For example, pulling images)

Direct pulling of images from internet registries, such as Docker Hub or Quay.

Manual load or import: Use an internet-connected machine to fetch the required images and save them as .tar files. Then, transfer and load these files to your air-gapped machine or an internal registry.

Updates and security patches (For example, Red Hat build of Podman Desktop, Kind, or Docker Compose upgrade)

Automatic checks and seamless updates.

Manual patching: You must fetch, transfer, and install application-related updates manually.

In an air-gapped environment, you can implement high-level security at the cost of speed and convenience, turning instant network actions into secure, multistep manual procedures.

Chapter 2. Set up an air-gapped environment

You can set up the components of Red Hat build of Podman Desktop in a secure, air-gapped environment. The core challenge is mitigating the application’s reliance on automatic online downloads. You must manually download required components, such as Kind or Docker Compose binaries, from official GitHub release pages by using an internet-connected machine. You must securely transfer the downloaded components to the air-gapped environment and install them by running each component installer. You must place supporting binaries in directories that the system’s Path variable recognizes, such as /usr/local/bin/ or a custom Windows directory, so that Red Hat build of Podman Desktop can find and run the components. This manual approach ensures the container development environment is fully operational despite the lack of external network connectivity.

Expand
Table 2.1. Set up an air-gapped environment for the following components
ComponentPlatformDownload Source (URL to fetch binary)Installation location on air-gapped machine

Kind

Linux (AMD64)

Kind GitHub releases: Download the kind-linux-amd64 file for the desired version.

Location: /usr/local/bin/kind

Make the file executable with this command: chmod +x /usr/local/bin/kind

 

macOS (Intel/ARM64)

Kind GitHub releases: Download the appropriate kind-darwin-amd64 or kind-darwin-arm64 file.

Location: /usr/local/bin/kind

Make the file executable with this command: chmod +x /usr/local/bin/kind

 

Windows (AMD64)

Kind GitHub releases: Download the kind-windows-amd64.exe file.

Location: Any directory in your system’s Path, for example, C:\Users\<UserName>\AppData\Local\Microsoft\WindowsApps\kind\.

Ensure the directory is added to your Windows Path environment variable for Red Hat build of Podman Desktop to find it. Rename the file to kind.exe.

Docker Compose (V2 plugin)

Linux (AMD64)

Docker Compose GitHub releases: Download the appropriate docker-compose-linux-x86_64 file.

Location (recommended plugin path): /usr/local/bin/compose

Create the cli-plugins folder if it doesn’t exist. Rename the downloaded binary to docker-compose and ensure it has executable permissions (chmod +x).

 

macOS (Intel/ARM64)

Docker Compose GitHub releases: Download the appropriate docker-compose-darwin-amd64 or docker-compose-darwin-aarch64 file.

Location (recommended plugin path): /usr/local/bin/compose

Create the cli-plugins folder if it doesn’t exist. Rename the downloaded binary to docker-compose and ensure it has executable permissions (chmod +x).

 

Windows (AMD64)

Docker Compose GitHub releases: Download the appropriate docker-compose-windows-x86_64.exe file.

Location: Any directory in your system’s Path, for example, C:\Program Files\Docker\cli-plugins\docker-compose.exe

Rename the downloaded file to docker-compose.exe and ensure its directory is in the Windows Path environment variable.

Bootable Containers (bootc)

Linux (AMD64)

bootc CLI is not required.

Requires pre-loading a builder container image, such as bootc-image-builder, into Podman. For more details, refer to Download the bootc image builder.

 

macOS and Windows

The Bootable Containers extension provides the functionality to package an operating system into a single container image. Red Hat registry: Synchronize the bootc OCI image from the registry. Then, on the Extensions page, click the Install custom…​ button to install the bootc image.

No host binary is required for macOS and Windows. The tooling runs inside the Podman machine VM. Ensure the Podman machine is in rootful mode.

Red Hat OpenShift Local

All platforms

Red Hat Customer Portal: Download the Red Hat OpenShift Local bundle.

Location: Extract the downloaded bundle to a working directory, for example, $HOME/crc-bundle/. Move the extracted crc binary to the /usr/local/bin directory for easy command-line access.

The installation procedure requires the oc and openshift-install binaries. You must download and place them in your system’s PATH.

2.1. Download the bootc image builder on Linux

The Bootable Containers extension supports offline workflows by leveraging pre-cached container images. To build disk images offline, you must first pull the required images and build the bootc container while online. Once these local artifacts are prepared, you can use the extension to generate disk images entirely offline. Supported formats include .qcow2, .raw, .vmdk, and others.

Prerequisites

Procedure

  1. Use an internet-connected machine to pull the appropriate bootc-image-builder image:

    podman pull registry.redhat.io/<rhel_version>/bootc-image-builder:<version_tag>

    where:

    <rhel_version>
    Specifies the version of Red Hat Enterprise Linux (RHEL) that the image builder tool is based on. Replace this with a value, such as rhel9 or rhel10.
    <version_tag>
    Refers to the specific release version or lifecycle tag of the image builder tool. Replace this with a value, such as 10.1 or 9.7.
  2. Pull the base bootc image you plan to use in your Containerfile:

    podman pull registry.redhat.io/<rhel_version>/rhel-bootc:latest

    Where:

    <rhel_version>
    Specifies the version of RHEL you want to use as your base operating system. Replace this with a value, such as rhel9 or rhel10.
  3. Build your bootc container image from your Containerfile.
  4. Connect to your air-gapped machine.
  5. Use the bootc extension to build disk images in the required format.

Legal Notice

Copyright © Red Hat.
Except as otherwise noted below, the text of and illustrations in this documentation are licensed by Red Hat under the Creative Commons Attribution–Share Alike 3.0 Unported license . If you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, the Red Hat logo, JBoss, Hibernate, and RHCE are trademarks or registered trademarks of Red Hat, LLC. or its subsidiaries in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS is a trademark or registered trademark of Hewlett Packard Enterprise Development LP or its subsidiaries in the United States and other countries.
The OpenStack® Word Mark and OpenStack logo are trademarks or registered trademarks of the Linux Foundation, used under license.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat
Back to top