rfswift image download
Save an image to a compressed archive, for example to move it to an offline machine.
rfswift image download saves an image as a compressed tar.gz file. Use it to carry images to an offline or air-gapped machine, to share them, or to keep an archive of a version you rely on.
The most common use fetches the latest image and saves it in one step:
rfswift image download -i penthertz/rfswift_resolute:sdr_full -o sdr_full.tar.gz --pullOn the destination machine, bring it back with rfswift image import image.
rfswift image download is the v4 spelling. The older rfswift download still works, takes the same flags and prints a notice with the new name. See the command tree.
Synopsis
rfswift image download -i IMAGE_NAME -o OUTPUT_FILE.tar.gz [--pull]The image can come from Docker Hub or a private registry.
Options
| Flag | What it does | Required | Example |
|---|---|---|---|
-i, --image STRING |
The image to save | Yes | -i penthertz/rfswift_resolute:sdr_full |
-o, --output STRING |
Where to write the archive | No | -o rfswift-sdr.tar.gz |
--pull |
Pull the image first if it is not on this computer | No | --pull |
Defaults
Without -i, a terminal shows a scrollable list of images to choose from. Without -o, the file is named {image_name}_converted.tar.gz, with / and : replaced by _.
Use --pull to get the latest version
Without --pull, RF Swift saves the copy already on this computer, which may be out of date.
Examples
Save an image to a file:
rfswift image download -i penthertz/rfswift_resolute:sdr_full -o rfswift-sdr-full.tar.gzPull the latest version first, then save it:
rfswift image download -i penthertz/rfswift_resolute:sdr_full -o sdr_full.tar.gz --pullChoose a descriptive file name:
rfswift image download -i penthertz/rfswift_resolute:bluetooth -o bluetooth-tools-v2025.tar.gzSave into a specific folder, with today’s date in the name:
rfswift image download -i penthertz/rfswift_resolute:wifi \
-o ~/offline-images/wifi-tools-$(date +%Y%m%d).tar.gzPrepare a USB drive for offline installs
Save the images you need onto the drive, and add a short README for whoever uses it:
rfswift image download -i penthertz/rfswift_resolute:sdr_full \
-o /media/usb/rfswift-sdr-full.tar.gz --pull
rfswift image download -i penthertz/rfswift_resolute:bluetooth \
-o /media/usb/rfswift-bluetooth.tar.gz --pull
rfswift image download -i penthertz/rfswift_resolute:wifi \
-o /media/usb/rfswift-wifi.tar.gz --pull
cat > /media/usb/README.txt << 'EOF'
RF Swift Offline Installation
To install:
1. Import images: rfswift image import image -i rfswift-*.tar.gz
2. Run container: rfswift container create -i penthertz/rfswift_resolute:sdr_full -n workspace
EOFPrepare an air-gapped system
On a connected machine, save the latest images into one folder and create a checksum file. Then copy the whole folder to the air-gapped system:
OFFLINE_DIR=~/offline-bundle
mkdir -p "$OFFLINE_DIR"
rfswift image download -i penthertz/rfswift_resolute:sdr_full \
-o "$OFFLINE_DIR/sdr_full_$(date +%Y%m%d).tar.gz" --pull
rfswift image download -i penthertz/rfswift_resolute:hardware \
-o "$OFFLINE_DIR/hardware_$(date +%Y%m%d).tar.gz" --pull
cd "$OFFLINE_DIR"
sha256sum *.tar.gz > checksums.sha256The full procedure is in Air-gapped installation.
Archive a version before upgrading
Save the current image before you upgrade, with a note describing it:
rfswift image download -i penthertz/rfswift_resolute:sdr_full \
-o archives/rfswift-sdr-full-v0.6.5.tar.gz
echo "RF Swift SDR Full v0.6.5 - Archived $(date)" \
> archives/rfswift-sdr-full-v0.6.5.txtDisk space
Saving and compressing an image needs about twice the size of the final file in free space. For example, a 1.5 GB file needs about 3 GB free.
Troubleshooting
“image not found”
The full error looks like Error: image not found: penthertz/rfswift_resolute:unknown_tag. Check the list of published images and the spelling:
rfswift image remote
rfswift image download -i penthertz/rfswift_resolute:sdr_full -o output.tar.gzConnection timeout or “network unreachable”
Check the connection to Docker Hub and that Docker is running:
ping registry.hub.docker.com
docker infoBehind a firewall, set your proxy before retrying. A longer timeout may need a change to Docker’s daemon configuration.
export HTTP_PROXY=http://proxy:port
export HTTPS_PROXY=http://proxy:port“permission denied” when writing the file
You cannot write to the output folder. Check its permissions, or write into a folder you own:
ls -ld $(dirname output.tar.gz)
mkdir -p ~/downloads
chmod 755 ~/downloads
rfswift image download -i image -o ~/downloads/image.tar.gzTo write to a system folder, use sudo:
sudo rfswift image download -i image -o /opt/images/image.tar.gzThe download stopped halfway
Delete the partial file and start again:
ls -lh output.tar.gz
rm output.tar.gz
rfswift image download -i penthertz/rfswift_resolute:sdr_full -o output.tar.gz --pullOn an unstable connection, run it inside screen or tmux so it survives a dropped session. Press Ctrl+A then D to detach from screen:
screen -S download
rfswift image download -i image -o output.tar.gz --pull“authentication required”
The image is in a private registry. Log in with the engine first, then download. For a private registry:
docker login registry.example.com
rfswift image download -i registry.example.com/image:tag -o output.tar.gzFor private repositories on Docker Hub:
docker login
rfswift image download -i myuser/private-image:tag -o output.tar.gz--pull does not seem to work
Write the flag on its own, without =true:
rfswift image download -i image -o output.tar.gz --pullIf it still fails, pull the image with Docker first, check it is there, then download:
docker pull penthertz/rfswift_resolute:sdr_full
docker images | grep rfswift
rfswift image download -i penthertz/rfswift_resolute:sdr_full -o output.tar.gz