A modern desktop GUI application for Apple's container CLI tool, built with Tauri (Rust) and React. This application provides a user-friendly interface for managing Apple containers on macOS, designed specifically for Apple Silicon.
Container GUI supports all major Apple container CLI features through an intuitive graphical interface:
- Run Containers with comprehensive options:
- Memory and CPU resource limits (
--memory
,--cpus
) - Architecture selection (ARM64, AMD64 with Rosetta)
- Volume mounts (
--volume
and--mount
syntax) - Environment variables
- Interactive/TTY modes
- Background execution with dedicated IP addresses
- DNS domain configuration
- Memory and CPU resource limits (
- Builder Management:
- Start/stop/delete builder containers
- Configure builder resources (memory, CPUs)
- Status monitoring
- Multi-Platform Builds:
- Build for ARM64 and AMD64 architectures simultaneously
- Dockerfile editor with syntax highlighting
- Build context selection
- Registry push integration
- Container Logs:
- Real-time log streaming with follow mode
- Boot logs viewing (
--boot
option) - Log filtering (tail, since, until)
- System logs access
- Download logs to file
- Resource Inspection:
- Detailed JSON inspection of containers and images
- Formatted JSON output with copy-to-clipboard
- Container and image metadata viewing
- System Overview:
- Container and image statistics
- System status monitoring
- Resource usage insights
- Advanced Features:
- System information display
- Container/image inspection tools
- Quick navigation to all features
- Dedicated IP Addresses: Each container gets its own IP address
- No Port Mapping Required: Direct access via container IP
- DNS Domain Support: Access containers via hostname.domain
- Network Isolation: Secure container-to-container communication
This GUI interfaces with Apple's native container CLI, supporting all major commands:
# Container operations
container run --memory 4g --cpus 8 --arch arm64 nginx:latest
container ls --format json --all
container logs --follow --boot my-container
container stop my-container
# Image operations
container build --arch arm64 --arch amd64 --tag my-app:latest .
container images list --format json
container images push my-app:latest
# Builder management
container builder start --memory 32g --cpus 8
container builder stop
container builder delete
# System operations
container system info
container system logs
container inspect my-container
- macOS 15+ (recommended macOS 26 beta for best compatibility)
- Apple Silicon Mac (required)
- Apple Container CLI installed from GitHub releases
- Xcode 26 Beta (for development)
-
Install Apple Container CLI:
# Download from GitHub releases # https://github.com/apple/container/releases # Install and start the system container system start
-
Install Container GUI:
# Clone the repository git clone https://github.com/your-repo/container-gui.git cd container-gui # Install dependencies npm install # Run in development mode npm run tauri dev # Build for production npm run tauri build
- Navigate to Run Container
- Configure your container:
- Set image name (e.g.,
nginx:latest
) - Adjust memory/CPU limits as needed
- Add volume mounts for file sharing
- Set environment variables
- Choose architecture (ARM64/AMD64)
- Set image name (e.g.,
- Click Run Container
- Access your container via its dedicated IP address (shown in container list)
- Navigate to Build Image
- Manage builder resources:
- Start builder with custom memory/CPU allocation
- Monitor builder status
- Configure build:
- Enter image tag
- Select target architectures
- Edit Dockerfile in integrated editor
- Click Build Image
- Optionally push to registry after build
- Navigate to Logs
- Select a container from the dropdown
- Configure log options:
- Enable follow mode for live streaming
- Show boot logs for VM startup information
- Set tail, since, until filters
- View real-time logs or download to file
- Navigate to System Control
- View system statistics and container overview
- Inspect containers and images:
- Select resource type (container/image)
- Choose item to inspect
- View detailed JSON metadata
- Access system logs and information
Unlike Docker, Apple containers use a different networking approach:
- No Port Mapping: Instead of
-p 8080:80
, each container gets a dedicated IP - Direct Access: Access containers directly via their IP address
- DNS Support: Use
--dns-domain test
to access via hostname (e.g.,my-app.test
) - Container Discovery: Use
container ls
to find container IP addresses
# Run a web server
container run -d --name my-web --dns-domain test nginx:latest
# Check container IP
container ls
# Shows: my-web running at 192.168.64.3
# Access directly
curl http://192.168.64.3
# Or via DNS: curl http://my-web.test
- Frontend: React 18 + Tailwind CSS
- Backend: Tauri 2.x (Rust)
- Container Runtime: Apple Container CLI
- Platform: macOS (Apple Silicon optimized)
- Fork the repository
- Create a feature branch
- Make your changes
- Test with Apple Container CLI
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Apple for the open-source Container project
- Tauri team for the excellent desktop app framework
- React and Tailwind CSS communities
Note: This GUI is designed specifically for Apple's container CLI and requires Apple Silicon hardware. It provides a modern alternative to command-line container management on macOS.