All persistent data managed byDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/chaitu426/minibox/llms.txt
Use this file to discover all available pages before exploring further.
miniboxd lives under a single directory called DataRoot. By default this is /var/lib/minibox, but you can override it with the MINIBOX_DATA_ROOT environment variable before starting the daemon.
Annotated Directory Tree
File Reference
index.json
The OCI Image Index. Maps named images to their manifest blobs via content-addressed digests.
| Field | Type | Description |
|---|---|---|
schemaVersion | integer | Always 2 (OCI index schema version) |
manifests[].mediaType | string | MIME type of the referenced manifest blob |
manifests[].digest | string | sha256:<hex> content address of the manifest blob |
manifests[].size | integer | Size of the manifest blob in bytes |
manifests[].annotations["org.opencontainers.image.ref.name"] | string | Human-readable image name used by minibox run, ps, etc. |
blobs/sha256/<digest>
Content-addressed blob files. Three types of blob are stored here:
- Manifest blob
- Config blob
- Layer blob
JSON file describing the image: points to a config blob and a list of layer blobs.
layers/<hash>/
The DAG build cache. Each directory corresponds to one cached block output, identified by a content-addressed hash that includes:
- Parent block hash and dependency names
- Inherited working directory
- Full instruction stream (RUN, COPY, WORKDIR, ENV)
- Hash of COPY source file trees (so changing source files invalidates the cache)
- Whether
AUTO-DEPSis enabled
DataRoot/layers/<hash> exists when a block is about to run, the builder reports CACHED and skips execution. This directory is not affected by minibox rmi — only minibox system prune --build-cache removes it.
base_layers/<image_tag>/
Cached base image rootfs extracted from Docker Hub (or another OCI registry). Used as the bottom-most overlay layer for all containers built from that base. Pulled once and reused across builds.
containers/<id>/
One directory per container, named by the 8-character hex container ID.
| File/Directory | Description |
|---|---|
config.json | Serialized RunRequest: image, command, ports, env, memory, CPU, volumes, etc. Used by containers/start to restart a stopped container. |
upper/ | OverlayFS upper layer. All filesystem changes made by the running container land here. |
work/ | OverlayFS work directory required by the kernel. Not user-accessible. |
rootfs/ | The merged overlay mount point. This is the container’s root filesystem during execution. |
container.log | stdout and stderr of the container process. Served by GET /containers/logs. |
volumes/<name>/
Named volumes created via the named_volumes field in the RunRequest (or via data in minibox-compose.yaml). The daemon creates and owns these directories under DataRoot/volumes/<name> and bind-mounts them into the container at the specified path. They persist across container restarts and compose down / up cycles.
state.json
Persisted map of all container ContainerInfo records. Updated on every state transition (create, start, stop, exit, health change, remove). Read on daemon startup to restore knowledge of previously running containers.
ContainerInfo fields
8-character hex container ID generated at creation time.
Name of the image the container was started from.
The full command running inside the container (after Entrypoint + CMD resolution).
Host PID of the container’s parent process (the one that spawned the child namespaces). Used for signal delivery and process existence checks.
Current lifecycle status:
running, exited, or created.Health check status:
starting, healthy, unhealthy, or none. Set to none when the container exits.RFC3339 timestamp when the container was first registered.
Exit code recorded when the container exits.
137 indicates SIGKILL.Map of host port strings to container port strings (e.g.
{"8080": "80"}). Reflects the iptables DNAT rules programmed at container start.Optional human-readable name. Used for service discovery in compose projects.
Optional compose project name. Used to scope compose operations to a set of containers.
Container IP address on the
minibox0 bridge network (e.g. 172.19.0.2). Used for service-name resolution in compose /etc/hosts injection.state.json:
On daemon startup, all containers listed as
running in state.json are live-checked by sending signal 0 to their PID. Containers whose process no longer exists are automatically transitioned to exited status.