Skip to content

Every container starts with an image. Choose from Ubuntu, Debian, Alpine, Fedora, and more. Free community images or premium pre-configured environments.

After creating containers, you need to understand which operating system and software foundation to build on.


Quick reference of supported Linux distributions:

OSLatest VersionImage NameSizeBest For
Debian13 (Trixie)debian/13~500 MBProduction stability
Debian12 (Bookworm)debian/12~500 MBLong-term support
Ubuntu24.04 LTSubuntu/24.04~1-2 GBGeneral development
Ubuntu22.04 LTSubuntu/22.04~1-2 GBWider compatibility
Alpine3.19alpine/3.19~50-200 MBMicroservices
Alpine3.18alpine/3.18~50-200 MBResource optimization
Fedorafedora/<release>~1-2 GBCutting-edge packages (pick a release from GET /api/v1/images/public)
CentOS9 Streamcentos/9~1-2 GBEnterprise compatibility
Rocky Linux9rockylinux/9~1-2 GBRHEL-compatible

Official Technical Reference:

This Foundation page explains image concepts and selection. For complete endpoint documentation:

Public Marketplace:

Your Images:


A container image is the starting point: The operating system, pre-installed software, and default configuration that your container boots from.

Container Image (Ubuntu 22.04)
Container Creation
Running Container (Ubuntu 22.04 + your work)

The image provides:

  • ✅ Base operating system (Linux distribution)
  • ✅ System libraries and tools
  • ✅ Default package manager (apt, apk, dnf, yum)
  • ✅ Initial filesystem structure
  • ✅ Sometimes: Pre-installed software (databases, web servers, dev tools)

Your work builds on top: Install applications, configure services, add data, customize environment.


Hoody provides a marketplace of container images:

GET Browse available images
/api/v1/images/public
Click "Run" to execute the request

Filter by criteria:

You can filter images using query parameters:

  • os - Filter by operating system (ubuntu, debian, alpine, fedora, centos)
  • architecture - Filter by CPU architecture (amd64, arm64)
  • min_price / max_price - Filter by price range
  • min_rating - Filter by minimum rating
  • search - Search by keyword
  • sort_by / sort_order - Sort results

Each image has:

PropertyDescriptionExample Values
OSOperating systemubuntu, debian, alpine, fedora, centos
ReleaseVersion/release22.04, 12, 3.18, 38
ArchitectureCPU architectureamd64, arm64, armhf
SizeDisk space required500 MB - 5 GB
PriceCost in USD0 (free), 5, 10, 25
RatingCommunity rating0.0 - 5.0 stars
PrespawnFast-start optimizedtrue/false
VariantSpecial configurationcloud, minimal, standard

Choose based on your needs:

Recommended: ubuntu/24.04 or ubuntu/22.04 (LTS releases)

Best for:

  • ✅ General purpose development
  • ✅ Web servers (nginx, Apache)
  • ✅ Application deployments (Node.js, Python, Go)
  • ✅ Most tutorials and documentation assume Ubuntu
  • ✅ Large package repository (apt)

Characteristics:

  • Larger size (~1-2 GB)
  • More pre-installed tools
  • Familiar to most developers
  • Long-term support releases

Recommended: debian/13 (Trixie, latest) or debian/12 (Bookworm, stable)

Best for:

  • ✅ Production servers (rock-solid stability)
  • ✅ Security-conscious deployments
  • ✅ Minimal but complete environment

Characteristics:

  • Similar to Ubuntu (Ubuntu is Debian-based)
  • More conservative updates
  • Excellent stability
  • Smaller size than Ubuntu

Recommended: alpine/3.19 or alpine/3.18

Best for:

  • ✅ Microservices (minimal footprint)
  • ✅ Container optimization (fast startup)
  • ✅ Resource-constrained scenarios
  • ✅ Security-focused deployments

Characteristics:

  • Very small size (~5-50 MB)
  • Uses musl libc (not glibc)
  • apk package manager
  • Fast bootup

Recommended: any Fedora release available in GET /api/v1/images/public?os=fedora

Best for:

  • ✅ Cutting-edge software versions
  • ✅ RedHat ecosystem development
  • ✅ Testing new kernel features

Characteristics:

  • Latest packages (sometimes too bleeding-edge)
  • dnf package manager
  • RedHat-like environment
  • Shorter support cycle than Ubuntu LTS

Recommended: centos/9 or rockylinux/9

Best for:

  • ✅ Enterprise applications
  • ✅ Long-term stability requirements
  • ✅ RedHat compatibility

Characteristics:

  • Enterprise-focused
  • Long support cycles
  • Conservative package versions
  • yum/dnf package manager

Match image architecture to your server:

Most common. Standard Intel/AMD processors. Nearly all deployments use amd64 unless you specifically have ARM servers.

ARM processors. Apple Silicon, AWS Graviton, Raspberry Pi 4+. Used for ARM-based servers and cost-optimized cloud instances.

Older ARM devices. Raspberry Pi 3 and earlier. Rarely needed in modern deployments.


Running Docker, Kubernetes, and Container Orchestration

Section titled “Running Docker, Kubernetes, and Container Orchestration”

Hoody containers fully support Docker, Kubernetes, and any container orchestration platform.

You can run Docker inside Hoody containers - this is a supported and common use case:

Terminal window
# After container creation with debian/13
# Install Docker inside container via terminal
apt-get update
apt-get install -y docker.io
systemctl start docker
# Now use Docker normally
docker run hello-world
docker-compose up

Full Docker capabilities:

  • ✅ Docker daemon runs inside container
  • ✅ Docker Compose works perfectly
  • ✅ Build and run any Docker images
  • ✅ Docker networking and volumes
  • ✅ Multi-container applications via Docker Compose

Run Kubernetes clusters inside containers:

  • K3s (lightweight Kubernetes)
  • Minikube for development
  • Kind (Kubernetes in Docker)
  • Any container orchestration platform

Freedom of choice: Use Docker, Podman, containerd, or any container runtime. Hoody containers are general-purpose Linux environments - you control the stack.

Use debian/13 as base image when running Docker:

Terminal window
POST /api/v1/projects/{id}/containers
{
"name": "docker-host",
"server_id": "{server_id}",
"container_image": "debian/13",
"hoody_kit": true
}

Why Debian:

  • Rock-solid stability for long-running Docker daemons
  • Excellent Docker package support
  • Minimal conflicts with container runtimes
  • Well-tested in production environments

Then install Docker via terminal/SSH and use it however you need - single containers, Docker Compose stacks, or full orchestration platforms.


Most OS images are free:

First, find images in the marketplace:

GET Find free Ubuntu images
/api/v1/images/public
Click "Run" to execute the request

Then import to your library:

POST Import image to your library
/api/v1/images/import/{image_id}
Click "Run" to execute the request

Response:

{
"statusCode": 200,
"message": "Free image imported successfully",
"data": {}
}

Now available for container creation using the image name format ubuntu/22.04.

Some images include pre-installed commercial software:

First, check image details (including price):

GET Get image details
/api/v1/images/public/{image_id}
Click "Run" to execute the request

Then purchase the image:

POST Purchase premium image
/api/v1/images/purchase/{image_id}
Click "Run" to execute the request

Response:

{
"statusCode": 200,
"message": "Image purchased successfully",
"data": {
"price_paid": 15,
"remaining_balance": 485
}
}

Deducted from wallet balance. One-time payment, permanent access.

GET List your imported/purchased images
/api/v1/images/user
Click "Run" to execute the request

Shows only images you can use when creating containers.


Help the community by rating images:

POST Rate an image
/api/v1/images/rate/{image_id}
Click "Run" to execute the request

Rating scale (0-5):

  • 5 stars: Excellent (works perfectly, well-configured)
  • 4 stars: Good (minor issues or missing documentation)
  • 3 stars: Average (works but needs tweaking)
  • 2 stars: Poor (significant issues)
  • 1 star: Broken (doesn’t work as advertised)
  • 0 stars: Lowest possible rating (also accepted by the API)

Your ratings help others choose images and improve marketplace quality.


Recommended: ubuntu/24.04 or ubuntu/22.04 LTS

Why:

  • Most documentation assumes Ubuntu
  • Large package repository (apt)
  • Good balance of features vs size
  • Long-term support releases
ImageTypical SizeBoot TimeBest For
Alpine50-200 MB3-5 secondsMicroservices, utilities
Debian500 MB - 1 GB5-10 secondsProduction servers
Ubuntu1-2 GB8-15 secondsDevelopment, general use
Fedora1-2 GB8-15 secondsCutting-edge packages

Smaller images:

  • ✅ Faster container creation
  • ✅ Less storage cost
  • ✅ Faster snapshots
  • ❌ Fewer pre-installed tools

Larger images:

  • ✅ More tools included
  • ✅ Batteries-included experience
  • ❌ Slower creation/snapshots
  • ❌ Higher storage cost

Some images are marked prespawn: true:

GET Browse the public catalog; look for images with `prespawn: true` in the response
/api/v1/images/public
Click "Run" to execute the request

What this means:

  • Image optimized for instant container creation
  • Used in prespawn templates
  • Pre-cached on servers
  • Sub-5-second container startup

Use prespawn images when:

  • You need instant container availability
  • Auto-scaling scenarios
  • On-demand environments
  • Interactive demos

See: Prespawn templates allow pre-created container pools that are claimed in milliseconds.


POST Create container with specific image
/api/v1/projects/{project_id}/containers
Click "Run" to execute the request

The container_image parameter:

  • Format: {os}/{release} (e.g., debian/13, ubuntu/24.04)
  • Must match an image in your library
  • If omitted or null: Uses project/system default

If you don’t specify container_image:

The system default image is used (currently debian/13). Specify container_image explicitly on every POST /api/v1/projects/{project_id}/containers call to pin the OS you want.


Node.js application with Ubuntu - create container with ubuntu/24.04, then install Node.js via terminal URL or SSH.

Python FastAPI on Alpine using alpine/3.19 for minimal footprint and cost-optimized microservice deployment.

PostgreSQL on Debian using debian/13 for stability-focused production database, then install PostgreSQL via package manager.

Same application deployed on both AMD64 servers (Intel/AMD) and ARM64 servers (Graviton/Apple Silicon). Use ubuntu/24.04 on both - architecture determined by target server automatically.


Some images come in specialized variants:

VariantDescriptionWhen to Use
standardDefault full-featuredGeneral use
minimalStripped-down versionSize-constrained scenarios
cloudOptimized for cloud deploymentProduction servers
desktopIncludes GUI componentsWhen using displays

Format: ubuntu/24.04 (standard), ubuntu/24.04-minimal (minimal variant), ubuntu/24.04-cloud (cloud-optimized)

Check marketplace for available variants of each OS.


Use images + snapshots for instant environment provisioning:

Start with clean Ubuntu container using ubuntu/24.04 image with Hoody Kit enabled.

One perfect setup → infinite instantiations.


Terminal window
# Find Docker-related images
hoody images list --search docker
# Find database images
hoody images list --search database
# Find Node.js images
hoody images list --search nodejs

Searches: Image name, description, and tags.

Terminal window
# Highest rated images
hoody images list --sort-by rating --sort-order desc --limit 10
Terminal window
# Free images only
hoody images list --min-price 0 --max-price 0
# Budget images ($0-$10)
hoody images list --min-price 0 --max-price 10
# Premium images ($25+)
hoody images list --min-price 25

Get detailed information:

GET Get detailed image information
/api/v1/images/public/{image_id}
Click "Run" to execute the request

Response:

{
"statusCode": 200,
"data": {
"id": "63a3e4b5c6d7e8f9a0b1c2d3",
"alias": "ubuntu/22.04",
"description": "Ubuntu 22.04 LTS (Jammy Jellyfish) - Long-term support until 2027",
"image_name": "ubuntu-22.04-amd64",
"architecture": "amd64",
"os": "ubuntu",
"release": "22.04",
"serial": "20231109",
"variant": "default",
"size": 1572864000,
"price": 0,
"added_date": "2023-11-09T00:00:00.000Z",
"average_rating": 4.8,
"rating_count": 1247,
"icon_url": "/api/v1/images/63a3e4b5c6d7e8f9a0b1c2d3/icon",
"prespawn": true
}
}

Use to:

  • Verify architecture matches server
  • Check size for storage planning
  • Read description for pre-installed software
  • See community ratings for quality

Always verify server architecture before selecting images. Query GET /api/v1/servers/{server_id} and filter images by that architecture. Mismatched architecture = container won’t start.

If creating many containers with the same image, import it once first. Then all subsequent creations skip the import wait - faster, more reliable.

3. Use Specific Versions, Not “latest”

Section titled “3. Use Specific Versions, Not “latest””

Specify exact versions like debian/13 or ubuntu/24.04. Avoid “latest” tags - they change over time and break reproducibility.

Try new images (especially Alpine with musl) in development environments before production. Verify your application’s dependencies are compatible with that distribution.

When running Docker/Kubernetes inside containers, start with debian/13. Excellent Docker package support, minimal conflicts with container runtimes.

After successfully using an image, rate it honestly (0-5 stars). Help the community make better choices and improve marketplace quality.

Production services: debian/13 (stability). General development: ubuntu/24.04 (familiarity). Microservices: alpine/3.19 (minimal footprint). Match image to workload characteristics.


Can I change a container’s image after creation?

Section titled “Can I change a container’s image after creation?”

No. The image is permanent once container is created. To use a different OS:

  1. Snapshot your data
  2. Create new container with desired image
  3. Transfer data manually or via storage shares
  4. Delete old container

What happens if I import an image I already have?

Section titled “What happens if I import an image I already have?”

The API returns success (idempotent operation). Image isn’t duplicated—you just re-confirm it’s in your library.

Do purchased images work on all my servers?

Section titled “Do purchased images work on all my servers?”

Yes. Once purchased, an image is available for ANY container creation across ALL your servers (of matching architecture).

Not directly via the API currently. Template workflow (base image → configure → snapshot → copy from snapshot) achieves similar result. The snapshot becomes your reusable template.

What’s the difference between image variants?

Section titled “What’s the difference between image variants?”

Variants are different configurations of the same OS version. “minimal” has fewer pre-installed packages (smaller size), “cloud” is optimized for cloud deployment, “desktop” includes GUI components for display service.

No. Images are base operating systems only. The Hoody Kit (18 HTTP services) is installed when you create the container if you set hoody_kit: true in the creation request.

Can I roll back to a previous image version?

Section titled “Can I roll back to a previous image version?”

Images don’t version like software. If a new image release has issues, create containers from older release explicitly: ubuntu/22.04 instead of ubuntu/24.04.

How do I know which image to use for my application?

Section titled “How do I know which image to use for my application?”

Check your application’s system requirements (documentation, Docker images, deployment guides). Match OS, architecture, and ensure required packages are available in that distribution’s repository.

Indirectly: Larger images require more storage (higher storage cost). Some premium images have purchase cost. But image choice doesn’t affect compute pricing (CPU/RAM charges are based on allocation, not OS).


Problem: Container creation fails with “image not found”

Solutions:

  1. Import the image first:

    Terminal window
    # Find image in marketplace
    GET /api/v1/images/public?search=ubuntu
    # Import it
    POST /api/v1/images/import/{image_id}
  2. Check image name format:

    Terminal window
    # ✅ Correct: "ubuntu/24.04"
    # ❌ Wrong: "ubuntu:24.04"
    # ❌ Wrong: "ubuntu-24.04"
    # ❌ Wrong: "ubuntu"
  3. Verify image in your library:

    Terminal window
    GET /api/v1/images/user
    # Ensure image appears in list

Problem: Container creation fails or crashes immediately

Cause: Image architecture doesn’t match server

Solution:

  1. Check server architecture:

    Terminal window
    GET /api/v1/servers/{server_id}
    # Note: architecture field
  2. Filter images by architecture:

    Terminal window
    GET /api/v1/images/public?architecture=amd64
    # Or: ?architecture=arm64
  3. Import matching image:

    Terminal window
    POST /api/v1/images/import/{correct_architecture_image_id}

Problem: Image purchase fails with insufficient funds

Solution:

Terminal window
# Check wallet balance
GET /api/v1/wallet/balances
# Add funds if needed
# (via platform billing system)
# Then purchase
POST /api/v1/images/purchase/{image_id}

Problem: Container takes longer than expected to create

Possible cause: Large image size

Solutions:

  1. Choose smaller image:

    • Alpine instead of Ubuntu
    • Minimal variant instead of standard
  2. First creation on server is slower:

    • Image must be pulled to server
    • Subsequent containers with same image are faster
    • This is normal, not an issue

Build on your image foundation:

  1. Create, Edit, Delete → - Use images in container creation
  2. Managing → - Operate containers regardless of image
  3. Snapshots → - Snapshot configured containers as templates
  4. Copy & Sync → - Duplicate configured environments

Explore the Hoody Kit:

Understanding gained:

  • ✅ Images are OS templates for containers
  • ✅ Choose based on size, stability, package ecosystem
  • ✅ Import free images or purchase premium
  • ✅ Images are immutable (can’t change after creation)
  • ✅ Prespawn images enable instant creation
  • ✅ Architecture must match server
  • ✅ Rate images to help community

Start with the right foundation. Debian for production. Ubuntu for general use. Alpine for microservices. Import once, use forever. One perfect setup, infinite containers.