arm64v8/geonetwork注意: 这是 geonetwork 官方镜像 的 arm64v8 架构专用仓库。更多信息请参见官方镜像文档中的 "除 amd64 外的架构?" 和官方镜像 FAQ 中的 "Git 中镜像源已更改,该怎么办?"。
维护者:
GeoNetwork 开源项目
获取帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
3.12.12, 3.12, 3
3.12.12-postgres, 3.12-postgres, 3-postgres
4.2.14, 4.2
4.4.9, 4.4, 4, latest
提交 issue 地址:
[***]
支持的架构:(更多信息)
amd64、arm32v7、arm64v8、ppc64le
镜像制品详情:
repo-info 仓库的 repos/geonetwork/ 目录(历史记录)
(包含镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/geonetwork 标签
official-images 仓库的 library/geonetwork 文件(历史记录)
本文档来源:
docs 仓库的 geonetwork/ 目录(历史记录)
GeoNetwork 是一个用于管理空间参考资源的目录应用。它提供强大的元数据编辑和搜索功能,以及交互式Web 地图查看器。
GeoNetwork 项目始于 2001 年,最初是联合国粮食及农业组织(FAO)、联合国世界粮食计划署(WFP)和联合国环境规划署(UNEP)的空间数据目录系统。目前,该项目被广泛用作全球空间数据基础设施(SDI) 的基础。
GeoNetwork 基于自由开源软件(FOSS)原则和国际开放标准(如 ISO/TC211、OGC)构建,采用现代化架构,兼具强大功能和低成本特性。该项目是开放地理空间基金会(OSGeo)的一部分,官方网站为 GeoNetwork opensource。
!logo
GeoNetwork 4 依赖 Elasticsearch 服务器存储文档索引,必须配置 Elasticsearch 服务器 URL 才能运行。
以下示例快速启动 GeoNetwork 4.4 最新版,适用于演示场景。此配置在容器删除后不会保留数据。
console# 拉取 Elasticsearch 和 GeoNetwork 镜像 docker pull elasticsearch:7.17.15 docker pull arm64v8/geonetwork:4 # 创建网络 docker network create gn-network # 启动 Elasticsearch(单节点模式) docker run -d --name my-es-host --network gn-network -e "discovery.type=single-node" elasticsearch:7.17.15 # 启动 GeoNetwork,连接 Elasticsearch docker run --name geonetwork-host --network gn-network -e GN_CONFIG_PROPERTIES="-Des.host=my-es-host -Des.protocol=http -Des.port=9200 -Des.url=[***]" -p 8080:8080 arm64v8/geonetwork:4
GeoNetwork 4.2 稳定版示例:
consoledocker pull elasticsearch:7.17.15 docker pull arm64v8/geonetwork:4.2 docker network create gn-network docker run -d --name my-es-host --network gn-network -e "discovery.type=single-node" elasticsearch:7.17.15 docker run --name geonetwork-host --network gn-network -e ES_HOST=my-es-host -e ES_PROTOCOL=http -e ES_PORT=9200 -p 8080:8080 arm64v8/geonetwork:4.2
注意:Elasticsearch 版本需与 GeoNetwork 兼容,具体版本可参考 GeoNetwork 官方文档 或对应版本的
pom.xml文件中的es.version属性。
初始安装后,默认登录凭据为:用户名 admin,密码 admin。建议安装后立即更新默认密码。
从 GeoNetwork 4.4.0 开始,通过 GN_CONFIG_PROPERTIES 环境变量传递 Java 属性配置 Elasticsearch 连接:
| 参数 | 可选性 | 默认值 | 说明 |
|---|---|---|---|
es.host | 可选 | localhost | Elasticsearch 服务器主机名 |
es.port | 可选 | 9200 | Elasticsearch 服务器端口 |
es.protocol | 可选 | http | 连接协议,可选 http 或 https |
es.url | 非默认时必填 | http://localhost:9200 | Elasticsearch 完整 URL(当主机、端口或协议非默认时必须指定) |
es.index.records | 可选 | gn_records | 索引名称(多实例共享 Elasticsearch 集群时需指定不同名称) |
es.username | 可选 | 空 | 连接 Elasticsearch 的用户名 |
es.password | 可选 | 空 | 连接 Elasticsearch 的密码 |
kb.url | 可选 | http://localhost:5601 | Kibana 服务器 URL |
Docker Compose 配置示例:
yamlservices: geonetwork: image: arm64v8/geonetwork:4.4 environment: GN_CONFIG_PROPERTIES: >- -Des.host=elasticsearch -Des.protocol=http -Des.port=9200 -Des.url=[***] -Des.username=my_es_username -Des.password=my_es_password -Dkb.url=[***]
4.4.0 之前的版本通过环境变量配置 Elasticsearch:
| 环境变量 | 可选性 | 默认值 | 说明 |
|---|---|---|---|
ES_HOST | 必填 | - | Elasticsearch 服务器主机名 |
ES_PORT | 可选 | 9200 | Elasticsearch 服务器端口 |
ES_PROTOCOL | 可选 | http | 连接协议,可选 http 或 https |
ES_INDEX_RECORDS | 可选 | gn_records | 索引名称(多实例共享集群时需指定不同名称) |
ES_USERNAME | 可选 | 空 | 连接用户名 |
ES_PASSWORD | 可选 | 空 | 连接密码 |
KB_URL | 可选 | http://localhost:5601 | Kibana 服务器 URL |
默认情况下,GeoNetwork 使用本地 H2 数据库(不推荐生产环境使用)。镜像包含 PostgreSQL 和 MySQL 的 JDBC 驱动,支持以下数据库配置:
| 环境变量 | 说明 |
|---|---|
GEONETWORK_DB_TYPE | 数据库类型,可选 postgres、postgres-postgis、mysql;扩展驱动可支持 db2、oracle、sqlserver 等 |
GEONETWORK_DB_HOST | 数据库主机名 |
GEONETWORK_DB_PORT | 数据库端口 |
GEONETWORK_DB_NAME | 数据库名称 |
GEONETWORK_DB_USERNAME | 数据库用户名 |
GEONETWORK_DB_PASSWORD | 数据库密码 |
GEONETWORK_DB_CONNECTION_PROPERTIES | 连接字符串附加属性,如 search_path=test,public&ssl=true |
以下命令启动基于 Debian 的容器,运行 Tomcat(GN 3)或 Jetty(GN 4)Web 服务器,部署 GeoNetwork WAR 包:
consoledocker run --name some-geonetwork -d arm64v8/geonetwork
GeoNetwork 监听容器内 8080 端口,需通过 -p 参数发布端口到主机:
console# 将容器 8080 端口映射到主机 8080 端口 docker run --name some-geonetwork -d -p 8080:8080 arm64v8/geonetwork
启动后,若主机为 Linux,可通过 http://localhost:8080/geonetwork 访问 GeoNetwork。
数据目录用于存储自定义配置、上传文件、空间索引和缩略图等。H2 数据库文件默认位置:
/var/lib/jetty/gn.h2.db(Jetty 目录)/usr/local/tomcat/gn.h2.db(Tomcat 目录)可通过环境变量自定义:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
DATA_DIR | /opt/geonetwork/WEB-INF/data | 数据目录路径(GN 4.4.0 之前版本) |
GEONETWORK_DB_NAME | gn | H2 数据库名称(3.10.3+ 支持,文件名为 {GEONETWORK_DB_NAME}.h2.db) |
GN 4.4.0+ 配置示例(通过 GN_CONFIG_PROPERTIES 设置数据目录):
consoledocker run --name some-geonetwork -d -p 8080:8080 \ -e GN_CONFIG_PROPERTIES="-Dgeonetwork.dir=/catalogue-data" \ -e GEONETWORK_DB_NAME=/catalogue-data/db/gn \ arm64v8/geonetwork
通过挂载主机目录到容器,实现数据持久化(以 GN 4.4.0+ 为例):
consoledocker run --name some-geonetwork -d -p 8080:8080 \ -e GN_CONFIG_PROPERTIES="-Dgeonetwork.dir=/catalogue-data" \ -e GEONETWORK_DB_NAME=/catalogue-data/db/gn \ -v /host/geonetwork-docker:/catalogue-data \ arm64v8/geonetwork
其中 /host/geonetwork-docker 是主机上的持久化目录。
yaml# GeoNetwork 完整部署配置 # 访问地址:http://localhost:8080/geonetwork # 默认用户:admin,密码:admin volumes: geonetwork: # GeoNetwork 数据卷 esdata: # Elasticsearch 数据卷 pgdata: # PostgreSQL 数据卷 pglog: # PostgreSQL 日志卷 services: geonetwork: image: arm64v8/geonetwork:4.4 healthcheck: test: curl http://localhost:8080/ interval: 5s timeout: 5s retries: 30 restart: always volumes: - geonetwork:/catalogue-data # 挂载数据卷 depends_on: database: condition: service_healthy # 等待数据库就绪 ports: - 8080:8080 # 端口映射 environment: WEBAPP_CONTEXT_PATH: /geonetwork # Web 应用上下文路径 DATA_DIR: /catalogue-data # 数据目录(兼容旧版本) TZ: Europe/Amsterdam # 时区设置 # JVM 参数配置 JAVA_OPTS: >- --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xms512M -Xss512M -Xmx2G -XX:+UseConcMarkSweepGC -Djetty.httpConfig.requestHeaderSize=32768 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=5

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务