- Add check_containers_exist() method to DockerManager
- Detects if containers exist and if they're running
- Returns tuple (containers_exist, containers_running)
- Enhance start command with smart behavior:
- Already running: instant exit (no-op)
- Stopped: quick start without reconfiguration (~30 sec)
- Not exist: full setup with Detection Engine and Fleet (~5 min)
- Add --force-setup flag to force reconfiguration
- Enhance stop command:
- Already stopped: instant exit (no-op)
- Not exist: helpful error message
- Enhance restart command:
- Not exist: error with guidance to run start
- Stopped: starts containers instead of restarting
- Running: normal restart behavior
- Major improvement: subsequent starts are 10x faster
- Better user experience with clear status messages
- Idempotent operations - safe to run multiple times
- Create DockerManager class for all container operations
- Auto-detect docker compose vs docker-compose
- Implement stage, start, stop, destroy, restart, status
- Add clear_documents() for data stream clearing
- Extract CA fingerprint for Fleet configuration
- Comprehensive error handling and validation
- Create utility functions module
- get_host_ip() for Linux/macOS IP detection
- check_python_version() requiring 3.10+
- run_command() helper with verbose support
- show_docker_error() for formatted error messages
- check_prerequisites() for system validation