Skip to content
/ Conti Public

A Go-based container and virtual machine management platform that provides utilities for running, managing, and orchestrating containerized applications and virtual machines with enhanced isolation and control.

Notifications You must be signed in to change notification settings

a-ZINC/Conti

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Conti - Container Runtime

A Go-based container and virtual machine management platform that provides utilities for running, managing, and orchestrating containerized applications and virtual machines with enhanced isolation and control.

Features

🐳 Container Management

  • Create and Deploy: Spin up containers with custom configurations and isolated environments
  • Lifecycle Management: Start, stop, restart, and monitor container states
  • Custom Namespaces: Advanced namespace isolation for enhanced security and resource separation
  • Resource Control: Manage CPU, memory, and storage allocations for containers

πŸ–₯️ Virtual Machine Support

  • VM Provisioning: Launch and control virtual machines with flexible configurations
  • Shell Access: Interactive shell access to VMs for debugging and administration
  • Resource Management: Dynamic allocation and monitoring of VM resources
  • State Management: Save, restore, and migrate VM states

πŸ’» Client Interface

  • Unified CLI: Single command-line interface for managing both containers and VMs
  • Interactive Commands: Streamlined operations with intuitive command structure
  • Real-time Monitoring: Live status updates and resource monitoring
  • Batch Operations: Execute multiple operations efficiently

πŸ—‚οΈ Filesystem Management

  • Root Filesystem Control: Manage and customize root filesystems for containers and VMs
  • Mount Point Management: Dynamic mounting and unmounting of storage volumes
  • Overlay Networks: Support for complex filesystem overlays and unions
  • Storage Backends: Multiple storage driver support for flexibility

πŸ”’ Security & Isolation

  • Namespace Runner: Execute processes in completely isolated namespaces
  • Security Policies: Configurable security contexts and access controls
  • Network Isolation: Separate network namespaces for enhanced security
  • User Namespace Support: Run containers with unprivileged user mappings

🎨 Developer Experience

  • Colorful CLI Output: Enhanced terminal output with color-coded messages for better readability
  • Extensible Architecture: Modular design allowing easy addition of plugins and extensions
  • Rich Logging: Comprehensive logging with multiple verbosity levels
  • Error Handling: Detailed error messages and recovery suggestions

Quick Start

Prerequisites

  • Go 1.19 or higher
  • Linux operating system (for namespace support)
  • Root privileges (for container/VM management)

Installation

# Clone the repository
git clone https://github.com/a-ZINC/conti.git
cd conti

# Build the project
make build

# Run the application
make run

Basic Usage

# Start a container
./conti container create --image ubuntu:latest --name my-container

# Launch a VM
./conti vm create --memory 2G --cpu 2 --name my-vm

# List running containers and VMs
./conti list

# Access container shell
./conti container shell my-container

# Access VM shell
./conti vm shell my-vm

Project Structure

conti/
β”œβ”€β”€ host/                    # Main application code
β”‚   β”œβ”€β”€ main.go             # Host application entry point
β”‚   β”œβ”€β”€ client/             # Client interface logic
β”‚   β”œβ”€β”€ container/          # Container management modules
β”‚   β”œβ”€β”€ utils/              # Utility functions and helpers
β”‚   β”œβ”€β”€ vm/                 # VM management and shell utilities
β”‚   β”œβ”€β”€ conti               # Compiled binary
β”‚   β”œβ”€β”€ Makefile           # Build and run commands
β”‚   └── go.mod             # Module dependencies
β”œβ”€β”€ runtime/                # Runtime execution environment
β”‚   β”œβ”€β”€ main.go            # Runtime entry point
β”‚   β”œβ”€β”€ pkg/filesystem/    # Filesystem management
β”‚   β”œβ”€β”€ pkg/runner/        # Namespace and process runner
β”‚   └── go.mod            # Runtime dependencies
└── README.md             # This file

Building from Source

# Development build
make build

# Production build with optimizations
make build-prod

# Clean build artifacts
make clean

# Run tests
make test

# Install dependencies
go mod tidy

Note: Conti is under active development. APIs and features may change between versions. Please check the CHANGELOG for breaking changes and updates.

About

A Go-based container and virtual machine management platform that provides utilities for running, managing, and orchestrating containerized applications and virtual machines with enhanced isolation and control.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages