Named Volumes by realrajaryan · Pull Request #362 · apple/container

Closes #339.

This change adds named volume support to container, providing volume management CLI commands - create, delete, list and inspect. The implementation uses EXT4 block-based persistent storage with a new VolumesService actor for thread-safe operations, integrates seamlessly with the existing container mount system through a new .volume filesystem type, and provides atomic volume operations with XPC-based API communication. Volumes are stored in isolated directories with configurable sizes (default 512GB) and include proper cleanup and container usage tracking for safe deletion.

Example Usage:

# Create a volume
container volume create mydata

# Use volume in container
container run -v mydata:/data alpine

# List volumes
container volume list

# Inspect volume details
container volume inspect mydata

# Clean up
container volume rm mydata