Save Image
How It Works
Captures the container layer of a running instance and pushes it to the E2E Container Registry.
→Step-by-Step Process
Open Actions, configure the image name and tag, confirm, and verify in the registry.
→Managing Images
View, use, and delete saved images from your Container Registry namespace.
→The Save Image feature captures the current state of a running TIR instance as a Docker image and pushes it to the E2E Container Registry. This enables you to preserve, reproduce, and share your environment without reconfiguring it from scratch.
Saved images can be used to launch new instances with identical environments, or pulled locally via Docker for further development and testing.
When to Use Save Image
Save Image is recommended in the following situations:
- Preserve a configured environment before making significant changes to it
- Standardize a runtime environment across project members
- Create a versioned checkpoint before upgrading frameworks or dependencies
- Eliminate repeated environment setup when launching new instances
- Maintain a consistent base environment for recurring workloads
How Save Image Works
When you trigger Save Image, TIR commits the writable container layer of the running instance into a new Docker image and pushes it to your configured Container Registry under Platform Services. The operation runs against the live container filesystem and does not require the instance to be stopped.
Save Image captures the container layer only. Mounted volumes, workspace directories, and dataset paths are not part of the resulting image.
What Is Captured
| Included in Image | Not Included |
|---|---|
| Installed Python packages (pip, conda) | Workspace volume (/home/jovyan) |
| System packages (apt/yum installs) | Datasets mounted to /data |
| Custom binaries in system paths | Local NVMe data (/mnt/local) |
| Environment variables (baked into the layer) | Shared File System mounts |
| Modified configuration files (.bashrc, Jupyter) | Jupyter notebooks and project files |
Scripts placed in /usr/local/bin | Model checkpoints in workspace |
Files in /home/jovyan, /data, and /mnt/local are not included in the saved image. Back up important data to E2E Object Storage (EOS) or a Git repository before running Save Image.
Prerequisites
Before using Save Image, confirm the following are available in your project:
A Container Registry must exist in your project before Save Image can be used. Navigate to Platform Services > Container Registry to create one if you have not done so.
Step-by-Step Process
Once your Container Registry is configured, follow these steps to save your instance environment.
Do not stop, restart, or delete the instance while a save is in progress. Doing so may result in a corrupt or incomplete image.
Save time varies based on environment size. Instances with large ML stacks such as PyTorch, TensorFlow, or JAX may take several minutes to complete.
Using a Saved Image
Launch a New TIR Instance
- Navigate to Instances and click Create Instance.
- In the container image section, select Use Custom Image.
- Set Image Type to Private and select your Registry Namespace from the dropdown.
- Select the saved image from the list and click Launch.
Pull the Image via Docker
Authenticate and pull the image using the Docker CLI:
# Authenticate to the E2E Container Registry
docker login registry.e2enetworks.net -u <your_username> -p <your_password>
# Pull the saved image
docker pull registry.e2enetworks.net/<namespace>/<image-name>:<tag>
# Example
docker pull registry.e2enetworks.net/my-project-images/pytorch-env-v1:latest
Your Docker login credentials are available in the Container Registry. Navigate to Platform Services > Container Registry, select your registry namespace, and click Commands to retrieve a pre-filled login command.
Managing Saved Images
View Saved Images
Navigate to Platform Services > Container Registry and select your registry namespace. All images are listed with their tags, sizes, push dates, and scan status.
Delete an Image
- In the registry namespace view, click the image name.
- Click Delete Image.
- Confirm the deletion in the dialog.
Image and tag deletions are permanent. Verify that no running instances or active workloads reference the image before proceeding. There is no recovery option.
Important Considerations
Troubleshooting
| Issue | Resolution |
|---|---|
| Save Image option is unavailable | Save Image is only available for running instances. Ensure the instance is in a running state before initiating the operation. |
| Image save fails or exceeds expected duration | Save duration depends on the installed environment size. Large environments may require additional time to complete. |
| Cannot pull image via Docker | Verify your credentials. Navigate to Platform Services > Container Registry and click Commands for an updated login command. |
| New instance does not reflect expected changes | Confirm the correct image tag was selected. Workspace data in /home/jovyan is not part of the image. |
| Authentication errors during image push | Validate the base64 token in config.json and confirm the registry URL exactly matches your namespace at registry.e2enetworks.net/<ns>. |
| Image not visible in registry after save | Wait a few minutes and refresh the page. If the image remains missing, check the instance Events tab for push-related error logs. |
Best Practices
Use descriptive, versioned image names. A name like llm-finetune-pytorch21-v2 is more useful than myimage when managing multiple environment versions over time.
Save after every significant environment change. Treat saved images as environment checkpoints. Saving regularly gives you reliable rollback points before major modifications.
Keep workspace data separate from images. Datasets, model checkpoints, and notebooks belong in /home/jovyan, EOS buckets, or a Git repository. They should not be stored in the container layer.
Use semantic version tags. Tagging images with v1.0, v1.1, and so on is preferable to overwriting latest on every save. This preserves rollback capability across versions.
Prune unused images periodically. Remove images that have not been referenced in 90 or more days to keep registry storage under control.
Validate images before production use. Launch a small instance from a newly saved image and verify the environment behaves as expected before integrating it into shared workflows.
To share a saved image, provide teammates with the Docker pull command for the relevant namespace and tag. Ensure your Container Registry namespace permissions allow access for the intended users.