注意:本镜像为geonetwork镜像的arm32v7架构专用构建版本。有关多架构镜像的更多信息,参见镜像文档中的“非amd64架构”说明及***镜像FAQ中的“镜像源码变更后如何处理”。
GeoNetwork是一个自由开源(FOSS)的空间参考资源目录系统,用于管理空间数据资源。它提供强大的元数据编辑、高级搜索功能及交互式Web地图查看器,基于开放标准(如ISO/TC211、OGC)构建,适用于构建空间数据基础设施(SDI)。该项目最初为联合国粮农组织(FAO)、世界粮食计划署(WFP)和环境规划署(UNEP)开发,目前已在全球范围内广泛应用。
3.12.12, 3.12, 33.12.12-postgres, 3.12-postgres, 3-postgresamd64:amd64/geonetworkarm32v7:arm32v7/geonetwork(本镜像)arm64v8:arm64v8/geonetworkppc64le:ppc64le/geonetwork初始安装后,默认管理员账号:
adminadminbash# 拉取Elasticsearch和GeoNetwork镜像 docker pull elasticsearch:7.17.15 docker pull arm32v7/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 \ arm32v7/geonetwork:4
bash# 拉取镜像 docker pull elasticsearch:7.17.15 docker pull arm32v7/geonetwork:4.2 # 创建网络 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 ES_HOST=my-es-host -e ES_PROTOCOL=http -e ES_PORT=9200 \ -p 8080:8080 \ arm32v7/geonetwork:4.2
Elasticsearch版本说明:需根据GeoNetwork版本选择兼容的Elasticsearch。可参考GeoNetwork***文档或对应版本的
pom.xml中es.version属性。
GeoNetwork默认监听容器内8080端口,需通过-p参数映射到主机端口:
bashdocker run --name some-geonetwork -d -p 8080:8080 arm32v7/geonetwork
启动后可通过 http://localhost:8080/geonetwork 访问(Linux环境)。
通过GN_CONFIG_PROPERTIES环境变量传递Java属性,配置Elasticsearch连接:
| 参数 | 说明 | 默认值 |
|---|---|---|
-Des.host | Elasticsearch主机名 | localhost |
-Des.port | Elasticsearch端口 | 9200 |
-Des.protocol | 协议(http或https) | http |
-Des.url | Elasticsearch完整URL(当主机/端口/协议非默认时必填) | http://localhost:9200 |
-Des.index.records | 索引名称(多实例共享ES集群时需唯一) | gn_records |
-Des.username | ES认证用户名(如启用安全认证) | 空 |
-Des.password | ES认证密码 | 空 |
-Dkb.url | Kibana URL | http://localhost:5601 |
示例(Docker Compose片段):
yamlservices: geonetwork: image: arm32v7/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=[***]
通过环境变量直接配置Elasticsearch:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
ES_HOST | Elasticsearch主机名(必填) | - |
ES_PORT | Elasticsearch端口 | 9200 |
ES_PROTOCOL | 协议(http或https) | http |
ES_INDEX_RECORDS | 索引名称 | gn_records |
ES_USERNAME | ES认证用户名 | 空 |
ES_PASSWORD | ES认证密码 | 空 |
KB_URL | Kibana URL | http://localhost:5601 |
默认使用H2数据库(仅适用于演示,不建议生产环境)。支持PostgreSQL/PostGIS、MySQL等,需通过以下环境变量配置:
| 环境变量 | 说明 |
|---|---|
GEONETWORK_DB_TYPE | 数据库类型:postgres、postgres-postgis、mysql(其他类型需扩展镜像添加驱动) |
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) |
GeoNetwork的数据目录(存储配置、上传文件等)和H2数据库文件默认位于容器内,需挂载到主机目录以持久化数据。
通过GN_CONFIG_PROPERTIES配置数据目录,GEONETWORK_DB_NAME配置H2数据库路径:
bashdocker 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-data:/catalogue-data \ # 主机目录挂载 arm32v7/geonetwork:4
通过环境变量DATA_DIR和GEONETWORK_DB_NAME配置:
bashdocker run --name some-geonetwork -d \ -p 8080:8080 \ -e DATA_DIR=/catalogue-data/data \ -e GEONETWORK_DB_NAME=/catalogue-data/db/gn \ -v /host/geonetwork-data:/catalogue-data \ arm32v7/geonetwork:4.2
以下配置包含GeoNetwork、PostgreSQL/PostGIS、Elasticsearch和Kibana,适用于生产环境:
yaml# 访问地址:http://localhost:8080/geonetwork # 默认账号:admin/admin volumes: geonetwork: # GeoNetwork数据卷 esdata: # Elasticsearch数据卷 pgdata: # PostgreSQL数据卷 pglog: # PostgreSQL日志卷 services: geonetwork: image: arm32v7/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 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=500000 -Dorg.eclipse.jetty.server.Request.maxFormKeys=4000 # GeoNetwork配置(Java属性) GN_CONFIG_PROPERTIES: >- -Dgeonetwork.dir=/catalogue-data -Dgeonetwork.formatter.dir=/catalogue-data/data/formatter -Dgeonetwork.schema.dir=/opt/geonetwork/WEB-INF/data/config/schema_plugins -Dgeonetwork.indexConfig.dir=/opt/geonetwork/WEB-INF/data/config/index -Dgeonetwork.schemapublication.dir=/opt/geonetwork/WEB-INF/data/resources/schemapublication -Dgeonetwork.htmlcache.dir=/opt/geonetwork/WEB-INF/data/resources/htmlcache -Des.host=elasticsearch -Des.protocol=http -Des.port=9200 -Des.url=[***] -Des.username= -Des.password= -Dgeonetwork.ESFeaturesProxy.targetUri=[***]{_} -Dgeonetwork.HttpDashboardProxy.targetUri=[***] # PostgreSQL数据库配置 GEONETWORK_DB_TYPE: postgres-postgis GEONETWORK_DB_HOST: database GEONETWORK_DB_PORT: 5432 GEONETWORK_DB_NAME: geonetwork GEONETWORK_DB_USERNAME: geonetwork GEONETWORK_DB_PASSWORD: geonetwork database: image: postgis/postgis:16-3.4 environment: POSTGRES_USER: geonetwork POSTGRES_PASSWORD: geonetwork POSTGRES_DB: geonetwork command: [postgres, -c, log_statement=all, -c, logging_collector=true, -c, log_file_mode=0644, -c, log_directory=/var/log/postgresql, -c, log_filename=postgresql.log] healthcheck: test: [CMD-SHELL, pg_isready -U postgres] interval: 5s timeout: 5s retries: 5 volumes: - pgdata:/var/lib/postgresql/data - pglog:/var/log/postgresql elasticsearch: image: elasticsearch:7.17.15 ports: - 9200:9200 ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 healthcheck: test: curl -s http://localhost:9200 >/dev/null || exit 1 interval: 10s timeout: 2s retries: 10 start_period: 2m environment: ES_JAVA_OPTS: -Xms1G -Xmx1G discovery.type: single-node volumes: - esdata:/usr/share/elasticsearch/data kibana: image
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429