# docker-manager **Repository Path**: bigOrang/docker-manager ## Basic Information - **Project Name**: docker-manager - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-03 - **Last Updated**: 2026-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Docker Manager A complete Docker container management system built with Spring Boot 2.7.x and Java 8. ## Architecture ``` docker-manager/ ├── docker-manager-api/ # Common DTOs and enums ├── docker-manager-core/ # Business logic ├── docker-manager-web/ # Main web service (port 8080) └── docker-manager-agent/ # Agent service (port 8081) ``` ## Features - **Multi-host Management**: Manage Docker containers across multiple hosts - **Project-based Organization**: Organize containers by projects - **Container Lifecycle Management**: Start, stop, restart, update containers - **Real-time Log Streaming**: WebSocket-based log streaming - **Auto-refresh**: Configurable refresh intervals (1s, 5s, 10s, 60s) - **Image Management**: Pull and update container images ## Quick Start ### Build ```bash mvn clean package -DskipTests ``` ### Run Web Service ```bash java -jar docker-manager-web/target/docker-manager-web-1.0.0.jar ``` ### Run Agent Service (on target host) ```bash java -jar docker-manager-agent/target/docker-manager-agent-1.0.0.jar ``` ## API Endpoints ### Projects - `GET /api/projects` - List all projects - `POST /api/projects` - Create a project - `PUT /api/projects/{id}` - Update a project - `DELETE /api/projects/{id}` - Delete a project ### Hosts - `GET /api/hosts` - List all hosts - `POST /api/hosts` - Add a new host - `PUT /api/hosts/{id}` - Update a host - `DELETE /api/hosts/{id}` - Remove a host ### Containers - `GET /api/containers` - List containers - `GET /api/containers/{id}` - Get container details - `POST /api/containers/{id}/start` - Start container - `POST /api/containers/{id}/stop` - Stop container - `POST /api/containers/{id}/restart` - Restart container - `DELETE /api/containers/{id}` - Remove container - `PUT /api/containers/{id}` - Update container (pull new image) ### Logs - `GET /api/logs/{containerId}` - Get container logs - `POST /api/logs/{containerId}/subscribe` - Subscribe to real-time logs - `POST /api/logs/{containerId}/refresh-interval` - Set auto-refresh interval ## WebSocket Connect to `ws://localhost:8080/ws/logs` for real-time log streaming. ### Subscribe to Container Logs ```json { "type": "subscribe", "containerId": "container-id" } ``` ## Agent Service The agent service runs on each Docker host and exposes: - `GET /api/agent/health` - Health check - `GET /api/agent/containers` - List containers - `POST /api/agent/containers/{id}/start` - Start container - `POST /api/agent/containers/{id}/stop` - Stop container - `POST /api/agent/containers/{id}/restart` - Restart container - `GET /api/agent/containers/{id}/logs` - Get container logs ## Configuration ### Web Service (application.properties) ```properties server.port=8080 spring.datasource.url=jdbc:h2:mem:docker-manager ``` ### Agent Service (application.properties) ```properties server.port=8081 ``` ## Dependencies - Spring Boot 2.7.18 - Docker Java Client 3.3.0 - Java 8 - Maven 3.6+