# docker-deploy **Repository Path**: techzhi/docker-deploy ## Basic Information - **Project Name**: docker-deploy - **Description**: 常见简单的中间件docker部署 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-26 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Docker服务管理脚本 这是一个用于管理Docker Compose服务的便捷脚本,支持批量或单独管理MySQL、Nacos、Redis等服务。 ## 功能特性 - ✅ 批量管理所有服务 - ✅ 单独管理特定服务 - ✅ 支持启动、停止、重启、状态查看操作 - ✅ 彩色日志输出 - ✅ 错误处理和状态检查 - ✅ 可扩展架构,方便添加新服务 ## 当前支持的服务 - **MySQL** - 数据库服务 (端口: 33306) - **Nacos** - 服务注册与配置管理 (端口: 8848, 9848, 9849) - **Redis** - 缓存服务 (端口: 6379) ## 使用方法 ### 基本语法 ```bash ./services.sh [service_name] ``` ### 参数说明 - `action`: 操作类型 - `start` - 启动服务 - `stop` - 停止服务 - `restart` - 重启服务 - `status` - 查看状态 - `help` - 显示帮助信息 - `service_name`: 服务名称 (可选,默认为`all`) - `all` - 所有服务 - `mysql` - MySQL服务 - `nacos` - Nacos服务 - `redis` - Redis服务 ### 使用示例 #### 批量操作所有服务 ```bash # 启动所有服务 ./services.sh start # 停止所有服务 ./services.sh stop # 重启所有服务 ./services.sh restart # 查看所有服务状态 ./services.sh status ``` #### 单独操作特定服务 ```bash # 启动MySQL服务 ./services.sh start mysql # 停止Nacos服务 ./services.sh stop nacos # 重启Redis服务 ./services.sh restart redis # 查看MySQL服务状态 ./services.sh status mysql ``` #### 显示帮助信息 ```bash ./services.sh help # 或 ./services.sh --help # 或 ./services.sh -h ``` ## 服务配置说明 ### MySQL - **镜像**: `mysql/mysql-server:5.7` - **端口**: `33306:3306` - **密码**: `123456` - **数据目录**: `./mysql/data` - **配置文件**: `./mysql/my.cnf` ### Nacos - **镜像**: `nacos/nacos-server:v2.3.0` - **端口**: `8848` (HTTP), `9848` (gRPC), `9849` (gRPC Server) - **运行模式**: `standalone` - **数据目录**: `./nacos/data` - **日志目录**: `./nacos/logs` ### Redis - **镜像**: `redis:7.2` - **端口**: `6379:6379` - **配置文件**: `./redis/app/redis/redis.conf` - **数据目录**: `./redis/app/redis/data` ## 目录结构 ``` docker-deploy/ ├── services.sh # 服务管理脚本 ├── README.md # 说明文档 ├── mysql/ │ ├── docker-compose.yml # MySQL配置 │ ├── my.cnf # MySQL配置文件 │ ├── data/ # MySQL数据目录 │ └── log/ # MySQL日志目录 ├── nacos/ │ ├── docker-compose.yml # Nacos配置 │ ├── data/ # Nacos数据目录 │ └── logs/ # Nacos日志目录 └── redis/ ├── docker-compose.yml # Redis配置 └── app/redis/ # Redis应用目录 ├── redis.conf # Redis配置文件 └── data/ # Redis数据目录 ``` ## 依赖要求 - Docker - Docker Compose (或 Docker Compose V2) ## 添加新服务 要添加新的服务,只需要: 1. 在项目根目录创建新的服务目录,包含`docker-compose.yml`文件 2. 编辑`services.sh`脚本,在`SERVICES`数组中添加新服务的映射关系: ```bash declare -A SERVICES=( ["mysql"]="mysql" ["nacos"]="nacos" ["redis"]="redis" ["your-new-service"]="your-service-directory" # 添加这行 ) ``` 3. 新服务将自动支持所有操作命令 ## 故障排除 ### 常见问题 1. **权限错误**: 确保脚本有执行权限 ```bash chmod +x services.sh ``` 2. **Docker未启动**: 确保Docker守护进程正在运行 ```bash sudo systemctl start docker ``` 3. **端口冲突**: 检查相关端口是否被其他进程占用 ```bash lsof -i :3306 # 检查MySQL端口 lsof -i :8848 # 检查Nacos端口 lsof -i :6379 # 检查Redis端口 ``` ### 日志查看 查看特定服务的日志: ```bash # 进入服务目录查看日志 cd mysql && docker-compose logs -f cd nacos && docker-compose logs -f cd redis && docker-compose logs -f ``` ## 注意事项 - 首次启动服务可能需要一些时间来下载镜像 - 停止服务会移除容器,但数据会保留在挂载的卷中 - 重启操作会先停止服务再启动,确保完全重新加载配置 - 服务之间可能存在依赖关系,请注意启动顺序 ## 许可证 MIT License