本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
或GeoIP2 City(商业)数据库加载位置信息。
您可以在微服务架构中使用此项目,当多个服务需要请求地理位置数据时尤为适用。该服务可与Logstash http过滤器插件配合使用,以丰富日志数据。
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以获取最新的地理位置数据。
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的推荐方式是通过简单的HTTP GET请求。将待解析的IP地址作为路径参数提供。
$ 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": 15169, "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": 15943, "asnOrganization": "wilhelm.tel GmbH" }
Geoip-API在Link头中返回指向详细滥用和RIPE信息的链接。ripe-asn信息可直接获取。abuse链接需要注册并获取API密钥才能访问。
curl "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" }
X-Geoip-Address头是查询API的另一种方式(如Nginx-Geoip示例中使用)。在此方式中,待解析的地址作为头值提供,地理位置信息也通过头值返回,返回码始终为204。
$ 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
curl --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":15169, "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":15169, "asnOrganization":"GOOGLE", "asnNetwork":"8.8.8.0/24" } }
一次最多支持100个地址。
结果为JSON对象,按请求的IP地址索引。
若请求的地址无法解析,响应中将缺少该条目。
项目通过多阶段Docker构建。需要有效的Maxmind许可证密钥以下载Geoip2数据库。
$ 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扩展:
$ 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429