Update README.md
This commit is contained in:
parent
39a9930af1
commit
da299b3e60
1 changed files with 176 additions and 2 deletions
178
README.md
178
README.md
|
@ -1,3 +1,177 @@
|
|||
# docker-manager
|
||||
# Docker Composer
|
||||
|
||||
this is a simple program to manage docker containers.
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
|
||||
A lightweight and flexible Docker container management solution that simplifies the orchestration and automation of container deployments. While similar to Umbrel's container management approach, Docker Composer provides a more versatile solution that can be integrated into any Docker environment.
|
||||
|
||||
## Features
|
||||
|
||||
- Automated container management and orchestration
|
||||
- Boot-time container recomposition
|
||||
- On-demand container reconstruction
|
||||
- Interactive container management interface
|
||||
- Selective container exclusion
|
||||
- Compatible with any Docker environment
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Python 3.6 or higher
|
||||
- Docker Engine
|
||||
- Docker Compose
|
||||
- Appropriate Docker permissions for the executing user
|
||||
|
||||
## Installation
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone https://git.hhf.technology/hhf/maestro.git
|
||||
cd maestro
|
||||
```
|
||||
|
||||
2. Configure your environment by editing `docker-composer.conf` (see Configuration section below)
|
||||
|
||||
3. Ensure scripts have executable permissions:
|
||||
```bash
|
||||
chmod +x *.py
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### docker-composer.conf
|
||||
|
||||
The `docker-composer.conf` file contains essential configuration 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:
|
||||
```yaml
|
||||
compose-path: /opt/docker/containers
|
||||
exclude-containers:
|
||||
- monitoring
|
||||
- internal-proxy
|
||||
```
|
||||
|
||||
### Directory Structure
|
||||
|
||||
Your container directory structure should follow this format:
|
||||
```
|
||||
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`.
|
||||
|
||||
1. **Automated Boot Management**
|
||||
```bash
|
||||
./composer.py
|
||||
```
|
||||
|
||||
2. **Manual Container Reconstruction**
|
||||
```bash
|
||||
./re_compose.py
|
||||
```
|
||||
|
||||
3. **Interactive Container Management**
|
||||
```bash
|
||||
./basic-management.py
|
||||
```
|
||||
|
||||
### Adding to System Startup
|
||||
|
||||
To enable automatic container management on system boot:
|
||||
|
||||
#### Using systemd
|
||||
|
||||
1. Create a service file:
|
||||
```bash
|
||||
sudo nano /etc/systemd/system/docker-composer.service
|
||||
```
|
||||
|
||||
2. Add the following content:
|
||||
```ini
|
||||
[Unit]
|
||||
Description=Docker Composer Container Management
|
||||
After=docker.service
|
||||
Requires=docker.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/path/to/composer.py
|
||||
WorkingDirectory=/path/to/docker-composer
|
||||
User=your-user
|
||||
Group=docker
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
3. Enable and start the service:
|
||||
```bash
|
||||
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:
|
||||
|
||||
1. **Permission Denied**
|
||||
- Ensure the executing user is in the docker group
|
||||
- Check file permissions on scripts and configuration
|
||||
|
||||
2. **Configuration Not Found**
|
||||
- Verify script execution from correct directory
|
||||
- Check `docker-composer.conf` exists and is readable
|
||||
|
||||
3. **Container Exclusion Issues**
|
||||
- Verify container names match exactly
|
||||
- Check for whitespace in configuration
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork the repository
|
||||
2. Create your feature branch
|
||||
3. Commit your changes
|
||||
4. Push to the branch
|
||||
5. Create a new Pull Request
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](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 [GitHub Issues](https://github.com/yourusername/docker-composer/issues) page.
|
Loading…
Reference in a new issue