# 串口-MQTT 转发网关 Docker部署指南 本文档提供了使用Docker和Docker Compose部署串口-MQTT转发网关应用程序的详细指南。 ## 前提条件 在开始之前,请确保您已安装以下软件并处于运行状态: - [Docker](https://www.docker.com/get-started) - 请确保Docker守护进程已启动 - [Docker Compose](https://docs.docker.com/compose/install/) ### 启动Docker守护进程 如果遇到`Cannot connect to the Docker daemon at unix:///Users/xxx/.docker/run/docker.sock`错误,请确保Docker守护进程已启动: **在macOS上**: - 打开Docker Desktop应用 - 等待Docker图标在菜单栏中变为绿色,表示守护进程已启动 **在Linux上**: ```bash sudo systemctl start docker ``` **在Windows上**: - 打开Docker Desktop应用 - 或通过命令行启动Docker服务: ```bash net start docker ``` ## 快速开始 ### 方法1:使用Docker Compose(推荐) 1. 确保您在项目根目录下(包含`docker-compose.yml`文件的目录) 2. 运行以下命令构建并启动服务: ```bash docker-compose up -d --build ``` 这将: - 构建Docker镜像(包括前端和后端) - 创建并启动容器 - 将容器的5000端口映射到主机的5000端口 3. 访问应用程序 打开浏览器并访问:`http://localhost:5000` ### 方法2:仅使用Docker 如果您不想使用Docker Compose,可以直接使用Docker命令: 1. 构建镜像: ```bash docker build -t serial-mqtt-gateway . ``` 2. 运行容器: ```bash docker run -d -p 5000:5000 --name serial-mqtt-gateway serial-mqtt-gateway ``` ## 配置串口访问 如果您需要在Docker容器中访问主机的串口设备,请按照以下步骤操作: 1. 编辑`docker-compose.yml`文件,取消相关设备映射的注释并根据实际情况修改: ```yaml devices: - /dev/ttyUSB0:/dev/ttyUSB0 # 修改为您实际的串口设备路径 ``` 2. 重启服务: ```bash docker-compose down docker-compose up -d ``` ## 连接到外部MQTT代理 如果您需要连接到外部MQTT代理,可以通过以下方式配置: 1. 在应用程序的Web界面中配置MQTT连接参数 2. 或者修改`docker-compose.yml`文件,添加网络配置(如果MQTT代理也在Docker中运行) ## 查看日志 要查看应用程序的日志,可以使用以下命令: ```bash docker-compose logs -f ``` ## 停止和重启服务 ### 停止服务 ```bash docker-compose down ``` ### 重启服务 ```bash docker-compose restart ``` ## 常见问题排查 1. **端口冲突**:如果端口5000已被占用,可以修改`docker-compose.yml`文件中的端口映射: ```yaml ports: - "8080:5000" # 将容器的5000端口映射到主机的8080端口 ``` 2. **串口访问权限**:确保您有足够的权限访问主机上的串口设备 3. **构建失败**:如果构建过程中遇到问题,请检查是否有网络连接问题或依赖项安装失败 ## 注意事项 - 生产环境中建议配置适当的环境变量来增强安全性 - 对于高可用性部署,可以考虑使用Docker Swarm或Kubernetes - 定期更新Docker镜像以获取最新的安全补丁 ## 许可证 [在此添加许可证信息]