geoip-api Docker 镜像下载 - 轩辕镜像
geoip-api 镜像详细信息和使用指南
geoip-api 镜像标签列表和版本信息
geoip-api 镜像拉取命令和加速下载
geoip-api 镜像使用说明和配置指南
Docker 镜像加速服务 - 轩辕镜像平台
国内开发者首选的 Docker 镜像加速平台
极速拉取 Docker 镜像服务
相关 Docker 镜像推荐
热门 Docker 镜像下载
geoip-api 镜像详细信息
geoip-api 镜像标签列表
geoip-api 镜像使用说明
geoip-api 镜像拉取命令
Docker 镜像加速服务
轩辕镜像平台优势
镜像下载指南
相关 Docker 镜像推荐
geoip-api 镜像详细说明
geoip-api 使用指南
geoip-api 配置说明
geoip-api 官方文档
IP地理位置REST API
或GeoIP2 City(商业)数据库加载位置信息。
您可以在微服务架构中使用此项目,当多个服务需要请求地理位置数据时尤为适用。该服务可与Logstash http过滤器插件配合使用,以丰富日志数据。
- 运行容器
- 使用API
- Kubernetes与Docker-Compose示例
💨 运行容器
Docker Hub上提供的Docker镜像捆绑了最新的GeoLite2城市数据库。容器每周构建一次,包含最新版本的数据库。
$ docker run -p 8080:8080 ghcr.io/observabilitystack/geoip-api:latest
$ docker run -p 8080:8080 observabilitystack/geoip-api:latest
可用标签与仓库
💡 尽管在生产环境中不推荐使用
latest标签运行容器,但对于geoip-api,我们强烈建议使用latest以获取最新的地理位置数据。
- 镜像同时在Docker Hub和GitHub Container Registry提供。
- 镜像标签格式为
yyyy-VV(年份和周数)。 - 最新容器标记为
latest。 - 支持
amd64和arm64架构。 - 数据和代码每周更新。
使用自定义(商业)数据库
☝️ 在生产环境中,强烈建议使用商业版Maxmind GeoIP2 City数据库,因其具有更高的精度和数据质量。
您可以将mmdb格式的数据库挂载到容器中。数据库位置可通过以下变量自定义:
| 变量名 | 描述 | 默认值 |
|---|---|---|
| CITY_DB_FILE | GeoIP2 City或GeoLite2数据库文件路径 | /srv/GeoLite2-City.mmdb |
| ASN_DB_FILE | GeoIP2 ASN数据库文件路径 | /srv/GeoLite2-ASN.mmdb |
| ISP_DB_FILE | GeoIP2 ISP数据库文件路径 | (无) |
示例
examples文件夹包含在Docker-Compose或Kubernetes中运行geoip-api的示例。
🤓 使用API
查询API的推荐方式是通过简单的HTTP GET请求。将待解析的IP地址作为路径参数提供。
bash$ curl -s http://localhost:8080/8.8.8.8 { "country": "US", "latitude": "37.751", "longitude": "-97.822", "continent": "NA", "timezone": "America/Chicago", "accuracyRadius": 1000, "asn": ***, "asnOrganization": "GOOGLE", "asnNetwork": "8.8.8.0/24" } $ curl -s "http://localhost:8080/$(curl -s [***]" { "country": "DE", "stateprov": "Free and Hanseatic City of Hamburg", "stateprovCode": "HH", "city": "Hamburg", "latitude": "53.5742", "longitude": "10.0497", "continent": "EU", "timezone": "Europe/Berlin", "asn": ***, "asnOrganization": "wilhelm.tel GmbH" }
附加数据链接
Geoip-API在Link头中返回指向详细滥用和RIPE信息的链接。ripe-asn信息可直接获取。abuse链接需要注册并获取API密钥才能访问。
bashcurl "http://localhost:8080/$(curl -s [***]" HTTP/1.1 200 Link: <[***]>; rel="abuse", <[***]>; rel="ripe-asn" { "country": "DE", "stateprov": "Land Berlin", "stateprovCode": "BE", "city": "Berlin", "latitude": "52.5196", "longitude": "13.4069", "continent": "EU", "timezone": "Europe/Berlin", "accuracyRadius": 200, "asn": 8881, "asnOrganization": "1&1 Versatel Deutschland GmbH", "asnNetwork": "104.151.0.0/17" }
通过HTTP头查询
X-Geoip-Address头是查询API的另一种方式(如Nginx-Geoip示例中使用)。在此方式中,待解析的地址作为头值提供,地理位置信息也通过头值返回,返回码始终为204。
bash$ curl -sI -H "X-Geoip-Address: $(curl -s [***]" "http://localhost:8080/" HTTP/1.1 204 X-Geoip-Country: DE X-Geoip-StateProv: Free and Hanseatic City of Hamburg X-Geoip-City: Hamburg X-Geoip-Latitude: 53.6042 X-Geoip-Longitude: 10.0596 X-Geoip-Continent: EU X-Geoip-Timezone: Europe/Berlin
通过POST查询多个IP
bashcurl --location 'http://localhost:8080/' \ --header 'Content-Type: application/json' \ --data '[ "8.8.8.8", "8.8.4.4" ]' { "8.8.4.4": { "country":"US", "latitude":"37.751", "longitude":"-97.822", "continent":"NA", "timezone":"America/Chicago", "accuracyRadius":1000, "asn":***, "asnOrganization":"GOOGLE", "asnNetwork":"8.8.4.0/24" }, "8.8.8.8": { "country":"US", "latitude":"37.751", "longitude":"-97.822", "continent":"NA", "timezone":"America/Chicago", "accuracyRadius":1000, "asn":***, "asnOrganization":"GOOGLE", "asnNetwork":"8.8.8.0/24" } }
一次最多支持100个地址。
结果为JSON对象,按请求的IP地址索引。
若请求的地址无法解析,响应中将缺少该条目。
📦 构建项目
项目通过多阶段Docker构建。需要有效的Maxmind许可证密钥以下载Geoip2数据库。
shell$ export MAXMIND_LICENSE_KEY=... $ docker build \ --build-arg MAXMIND_LICENSE_KEY=${MAXMIND_LICENSE_KEY} \ --build-arg VERSION=$(date +%Y-%V) \ -t geoip-api:latest .
若要构建(或测试)多平台镜像,使用Docker Buildx扩展:
shell$ docker buildx create --use --name multi-platform $ docker buildx build \ --platform linux/amd64,linux/arm64 \ --build-arg MAXMIND_LICENSE_KEY=${MAXMIND_LICENSE_KEY} \ -t geoip-api:latest-native -f Dockerfile.native .
👋 贡献
我们期待您的评论、问题和拉取请求!
⚖️ 许可证
本项目采用Apache License, Version 2许可证。
本产品包含MaxMind创建的GeoLite2数据,可从[***]
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务
常见问题
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
轩辕镜像下载加速使用手册
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
登录仓库拉取
通过 Docker 登录认证访问私有仓库
Linux
在 Linux 系统配置镜像加速服务
Windows/Mac
在 Docker Desktop 配置镜像加速
Docker Compose
Docker Compose 项目配置加速
K8s Containerd
Kubernetes 集群配置 Containerd
宝塔面板
在宝塔面板一键配置镜像加速
群晖
Synology 群晖 NAS 配置加速
飞牛
飞牛 fnOS 系统配置镜像加速
极空间
极空间 NAS 系统配置加速服务
爱快路由
爱快 iKuai 路由系统配置加速
绿联
绿联 NAS 系统配置镜像加速
威联通
QNAP 威联通 NAS 配置加速
Podman
Podman 容器引擎配置加速
Singularity/Apptainer
HPC 科学计算容器配置加速
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
专属域名拉取
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429