Docker Image Loading Instructions for Offline Machines
This document provides detailed instructions on downloading and loading Docker images when the target machine does not have internet access. It covers network and firewall requirements, downloading and transferring images, verifying their compatibility, and setting up Docker Compose.
Overview
When a machine does not have internet access, Docker images cannot be pulled automatically by Docker Compose. Instead, follow these steps:
-
Download the images on a machine with internet access and transfer them to the target machine.
-
Load the images into Docker on the target machine.
-
Verify that the loaded images match the versions required by your Docker Compose configuration.
-
Run the application using Docker Compose.
These instructions cover both demo and production setups.
Firewall Configuration
Ensure your network allows access to the required domain for downloading images. Whitelist the following domain in your firewall configuration:
governor-static.synthesized.io
To verify connectivity, use the following commands:
# Test connectivity to the domain
curl -I https://governor-static.synthesized.io
# Check DNS resolution
nslookup governor-static.synthesized.io
If connectivity issues arise, ensure outbound HTTPS traffic to the domain is allowed in your firewall rules.
Step 1: Download and Transfer Docker Images
On a machine with internet access, download all required Docker images using the following commands:
# Download all required Docker images
wget \
https://governor-static.synthesized.io/docker-images/synthesized-api/synthesized-api_v1.78.0_linux_amd64.tar \
https://governor-static.synthesized.io/docker-images/synthesized-front/synthesized-front_v1.78.0_linux_amd64.tar \
https://governor-static.synthesized.io/docker-images/synthesized-agent/synthesized-agent_v1.78.0_linux_amd64.tar \
https://governor-static.synthesized.io/docker-images/synthesized-pagila/synthesized-pagila_v1.8_linux_amd64.tar \
https://governor-static.synthesized.io/docker-images/postgres/postgres_v17.0-alpine_linux_amd64.tar \
https://governor-static.synthesized.io/docker-images/opentelemetry-collector-contrib/opentelemetry-collector-contrib_v0.103.0_linux_amd64.tar \
https://governor-static.synthesized.io/docker-images/prometheus/prometheus_v3.0.0_linux_amd64.tar
After downloading, transfer these files to the target machine using a USB drive, SCP, or another file transfer method.
Step 2: Load Images into Docker
On the target machine (without internet access), load the downloaded images into Docker:
# Load all Docker images
for tarfile in *.tar; do
docker load -i "$tarfile"
done
Step 3: Verify Loaded Images
Once the images are loaded, verify their presence in Docker and ensure their versions match the ones required by your Docker Compose configuration.
# List loaded images and versions
docker images | grep synthesized
# Example output:
# synthesized-api latest <IMAGE_ID> 2 days ago 428MB
# synthesized-front v1.5.0 <IMAGE_ID> 2 days ago 100MB
# ...
Compare the listed versions against those specified in your docker-compose.yml
file.
If a version mismatch is detected, download the required version on a machine with internet access using the following command:
# Download a specific version of an image
wget https://governor-static.synthesized.io/docker-images/<image-name>/<image-name>_<specific-version>_linux_amd64.tar
Example:
wget https://governor-static.synthesized.io/docker-images/synthesized-api/synthesized-api_v1.5.0_linux_amd64.tar
After downloading, transfer the correct version to the target machine and load it using docker load
.
Step 4: Running Docker Compose
After loading and verifying the images, use Docker Compose to run the application. Refer to the following documentation for setup details:
-
Demo Setup: demo setup
-
Production Setup: prod setup