Maestro
Docker Container Orchestration Made Simple
Maestro is an elegant and lightweight solution for Docker container orchestration that simplifies the complex symphony of container deployments. Like a conductor leading an orchestra, Maestro harmoniously manages your Docker containers with precision and grace.
Features
Automated container orchestration and lifecycle management
Boot-time container initialization
On-demand container reconstruction
Interactive container management interface
Selective container exclusion
Universal Docker environment compatibility
Prerequisites
- Python 3.6 or higher
- Docker Engine
- Docker Compose
- Appropriate Docker permissions for the executing user
Installation
- Clone the repository:
git clone https://git.hhf.technology/hhf/maestro.git
cd maestro
-
Configure your environment by editing
maestro.conf(see Configuration section below) -
Ensure scripts have executable permissions:
chmod +x *.py
Configuration
maestro.conf
The docker-composer.conf file conducts your container orchestra with these essential parameters:
| Parameter | Description | Example |
|---|---|---|
compose-path |
Directory containing Docker container folders | /opt/docker/containers |
exclude-containers |
List of containers to exclude from management | ["container1", "container2"] |
Example configuration:
compose-path: /opt/docker/containers
exclude-containers:
- monitoring
- internal-proxy
Directory Structure
Your container directory should be organized as follows:
compose-path/
โโโ container1/
โ โโโ docker-compose.yml
โโโ container2/
โ โโโ docker-compose.yml
โโโ container3/
โโโ docker-compose.yml
Usage
Available Scripts
| Script | Description | Use Case |
|---|---|---|
composer.py |
Main orchestration script | Automated container management on system boot |
re_compose.py |
Manual reconstruction tool | On-demand container rebuild and reconfiguration |
basic_management.py |
Interactive management interface | Basic container operations (start, stop, remove) |
Running the Scripts
All scripts must be executed from the same directory as docker-composer.conf.
- Automated Boot Management
./composer.py
- Manual Container Reconstruction
./re_compose.py
- Interactive Container Management
./basic_management.py
System Integration
To enable automatic container management on system boot:
Using systemd
- Create a service file:
sudo nano /etc/systemd/system/docker-composer.service
- Add the following content:
[Unit]
Description=Maestro Docker Container Orchestration
After=docker.service
Requires=docker.service
[Service]
Type=simple
ExecStart=/path/to/docker-composer.py
WorkingDirectory=/path/to/maestro
User=your-user
Group=docker
[Install]
WantedBy=multi-user.target
- Enable and start the service:
sudo systemctl enable docker-composer
sudo systemctl start docker-composer
Security Considerations
- Ensure proper file permissions on configuration files
- Run scripts with minimal required privileges
- Regularly audit excluded containers list
- Monitor container logs for unexpected behavior
Troubleshooting
Common issues and solutions:
-
Permission Denied
- Ensure the executing user is in the docker group
- Check file permissions on scripts and configuration
-
Configuration Not Found
- Verify script execution from correct directory
- Check
docker-composer.confexists and is readable
-
Container Exclusion Issues
- Verify container names match exactly
- Check for whitespace in configuration
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
- Inspired by Umbrelโs container management approach
- Built with Python and Docker
- Community contributions and feedback
For bug reports and feature requests, please use the comments below for bugs and other requests.
Why Maestro?
Like a masterful conductor, Maestro brings harmony to your Docker container orchestra. It simplifies complex container management tasks into elegant, automated solutions. Whether youโre managing a small ensemble of containers or a full symphony of services, Maestro ensures everything plays together perfectly.







