RocketMap项目Docker部署完全指南
前言
RocketMap是一款功能强大的地图工具,而Docker作为轻量级的容器化技术,能够帮助用户快速部署RocketMap服务。本文将全面介绍如何使用Docker部署RocketMap,从基础配置到高级应用场景。
Docker基础概念
Docker是一种容器化技术,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中。相比传统虚拟机,Docker容器启动更快、资源占用更少,非常适合部署像RocketMap这样的服务。
基础部署方案
环境准备
在开始前,请确保已安装:
- Docker引擎
- 有效的Google Maps API密钥
启动RocketMap容器
最简单的启动方式如下:
docker run -d --name pogomap -p 5000:5000 \
frostthefox/rocketmap \
-a ptc -u username -p password \
-k 'your-google-maps-key' \
-l 'lat, lon' \
-st 5
参数说明:
-d
:后台运行容器--name
:指定容器名称-p
:端口映射(主机端口:容器端口)-a
:认证服务类型(ptc或google)-u/-p
:账号密码-k
:Google Maps API密钥-l
:扫描中心坐标-st
:扫描步数
容器管理
查看日志:
docker logs -f pogomap
停止服务:
docker stop pogomap
删除容器:
docker rm pogomap
访问服务
本地访问:http://localhost:5000
高级部署方案
持久化数据存储
基础方案中数据会随容器删除而丢失。要实现数据持久化,需要使用MySQL数据库。
创建Docker网络
docker network create pogonw
部署MySQL容器
docker run --name db --net=pogonw \
-v /path/to/mysql/:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-d mysql:5.6.32
创建数据库:
docker exec -i db mysql -pyourpassword -e 'CREATE DATABASE pogodb'
部署RocketMap并连接数据库
docker run -d --name pogomap --net=pogonw -p 5000:5000 \
frostthefox/rocketmap \
-a ptc -u username -p password \
-k 'your-google-maps-key' \
-l 'lat, lon' \
-st 5 \
--db-host db \
--db-port 3306 \
--db-name pogodb \
--db-user root \
--db-pass yourpassword
多工作节点部署
可以部署多个扫描节点共享同一数据库:
docker run -d --name pogomap2 --net=pogonw \
frostthefox/rocketmap \
-a ptc -u username2 -p password2 \
-k 'your-google-maps-key' \
-l 'newlat, newlon' \
-st 5 \
--db-host db \
--db-port 3306 \
--db-name pogodb \
--db-user root \
--db-pass yourpassword \
-ns
-ns
参数表示不启动Web服务,仅作为扫描节点。
外部访问配置
使用ngrok提供外部访问:
docker run -d --name ngrok --net=pogonw \
wernight/ngrok \
ngrok http pogomap:5000
获取访问地址:
docker run --rm --net=pogonw \
appropriate/curl \
sh -c "curl -s http://ngrok:4040/api/tunnels | grep -o 'https\?:\/\/[a-zA-Z0-9\.]\+'"
通知系统集成
如需集成通知系统(如PokeAlarm),可在启动参数中添加:
-wh 'http://hook:4000' \
--wh-threads 3 \
--webhook-updates-only
版本更新
更新RocketMap镜像:
docker pull frostthefox/rocketmap
然后重新创建容器即可。
容器监控
查看运行中的容器:
docker ps -a
检查网络详情:
docker network inspect pogonw
最佳实践建议
- 定期备份MySQL数据目录
- 为不同功能使用不同容器(Web服务、扫描节点分离)
- 监控容器资源使用情况
- 使用环境变量管理敏感信息
- 考虑使用Docker Compose管理多容器部署
通过本文介绍的方法,您可以灵活部署RocketMap服务,根据实际需求调整配置,实现稳定可靠的地图服务。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考