1 unstable release
0.0.1 | Aug 20, 2024 |
---|
#9 in #ext4
36KB
712 lines
WhaleDrive
A simple cli utility to download docker images and create ext4 .img files from them.
This utility outputs human readable JSON to stdout. This allows the user to easily pipe the output to other tools like jq.
Installation
You can install the utility with cargo:
cargo install whaledrive
Usage
The whaledrive utility helps you manage container images efficiently with various commands and global options.
Global Options
-b, --base-path <path>
Specify the folder where this utility will store data. The default is the data folder in the current working directory.
Commands
- info: Get info about an image
cargo whaledrive info <image> [--os <os>] [--architecture <arch>]
- image: The name and optional tag of the image (e.g., ubuntu:20.04).
- --os: The operating system the image is for (default: linux).
- --architecture: The architecture the image is for (default: amd64).
- build: Create an image from a registry
cargo whaledrive build <image> [--os <os>] [--architecture <arch>]
- image: The name and optional tag of the image.
- --os: The operating system the image is for (default: linux).
- --architecture: The architecture the image is for (default: amd64).
- images: List all images currently stored
cargo whaledrive images [--os <os>] [--platform <platform>]
- --os: Filter by operating system.
- --platform: Filter by platform.
- rm: Remove an image
cargo whaledrive rm <image> [--prune] [--os <os>] [--architecture <arch>]
- image: The name and optional tag of the image.
- --prune: Also remove unreferenced layers associated with the image.
- --os: Specify the operating system the image is for.
- --architecture: Specify the architecture the image is for.
- prune: Remove unreferenced images and layers
cargo whaledrive prune
Examples
Get info about an Ubuntu image:
cargo whaledrive info ubuntu:20.04
Build an image for arm64:
cargo whaledrive build myimage --architecture arm64
List images for a specific OS:
cargo whaledrive images --os linux
Remove an image and clean up unused layers:
cargo whaledrive rm myimage --prune
Dependencies
~23–37MB
~679K SLoC