
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
维护者:
https://github.com/geonetwork/docker-geonetwork
获取帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接https://github.com/geonetwork/docker-geonetwork/blob/***beab34080c90454c0b7059bd6b49701f979/3.12.12/Dockerfile
https://github.com/geonetwork/docker-geonetwork/blob/***beab34080c90454c0b7059bd6b49701f979/3.12.12/postgres/Dockerfile
https://github.com/geonetwork/docker-geonetwork/blob/6848a28591a23af0e326b56cd9dde0bf34bc1fe9/4.2.14/Dockerfile
https://github.com/geonetwork/docker-geonetwork/blob/8ad0acd56ed97a67ae07f8099b7ee255465946e4/4.4.9/Dockerfile
提交 issues:
https://github.com/geonetwork/docker-geonetwork/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/geonetwork/%E3%80%81https://hub.docker.com/r/arm32v7/geonetwork/%E3%80%81https://hub.docker.com/r/arm64v8/geonetwork/%E3%80%81https://hub.docker.com/r/ppc64le/geonetwork/
已发布镜像 artifact 详情:
https://github.com/docker-library/repo-info/blob/master/repos/geonetwork%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/geonetwork%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fgeonetwork
https://github.com/docker-library/official-images/blob/master/library/geonetwork%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/geonetwork%EF%BC%89
本描述来源:
https://github.com/docker-library/docs/tree/master/geonetwork%EF%BC%88https://github.com/docker-library/docs/commits/master/geonetwork%EF%BC%89
GeoNetwork 是一款用于管理空间参考资源的目录应用。它提供强大的元数据编辑和搜索功能,以及交互式Web 地图查看器。
GeoNetwork 项目始于 2001 年,最初是联合国粮食及农业组织(FAO)、联合国世界粮食计划署(WFP)和联合国环境规划署(UNEP)的空间数据目录系统。
目前,该项目被广泛用作全球空间数据基础设施的基础。
GeoNetwork 旨在通过现代架构连接空间信息社区及其数据,该架构功能强大且成本低廉,基于自由开源软件(FOSS)原则以及服务和协议的国际开放标准(如:ISO/TC211、OGC)。
该项目是开放地理空间基金会(OSGeo)的一部分,可在 GeoNetwork opensource 获取。
!https://raw.githubusercontent.com/docker-library/docs/6a537ddd2def65eaaa31cbadbaa5303f2dc82fe3/geonetwork/logo.png
GeoNetwork 4 使用 Elasticsearch 服务器存储其管理的文档索引,因此必须配置 Elasticsearch 服务器的 URL 才能运行。
以下是快速示例,用于演示目的启动 GeoNetwork 4.4 最新版。此配置在容器被移除后不会保留数据。
consoledocker pull elasticsearch:7.17.15 docker pull geonetwork:4 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 GN_CONFIG_PROPERTIES="-Des.host=my-es-host -Des.protocol=http -Des.port=9200 -Des.url=http://my-es-host:9200" -p 8080:8080 geonetwork:4
对于 GeoNetwork 4.2 稳定版:
consoledocker pull elasticsearch:7.17.15 docker pull 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 geonetwork:4.2
要确定使用哪个 Elasticsearch 版本,可查看对应 GN 版本的 GeoNetwork 文档,或所用 GeoNetwork 版本的 https://github.com/geonetwork/core-geonetwork/blob/main/pom.xml#L1528C17-L1528C24 文件中的 es.version 属性。
安装后,使用默认凭据:admin(用户名)和 admin(密码)。建议安装后更新默认密码。
Java 属性(4.4.0 及更新版本)
从 GeoNetwork 4.4.0 开始,使用 GN_CONFIG_PROPERTIES 环境变量传递 Java 属性来配置 Elasticsearch 连接:
es.host:可选(默认 localhost):Elasticsearch 服务器主机名。es.port:可选(默认 9200):Elasticsearch 服务器监听端口。es.protocol:可选(默认 http):与 Elasticsearch 通信的协议,可选 http 或 https。es.url:若主机、端口或协议非默认值则为必填(默认 http://localhost:9200):Elasticsearch 服务器完整 URL。es.index.records:可选(默认 gn_records):若多个 GeoNetwork 实例使用同一 Elasticsearch 集群,需为每个实例指定不同的索引名,通过此变量定义。es.username:可选(默认空):连接 Elasticsearch 的用户名。es.password:可选(默认空):连接 Elasticsearch 的密码。kb.url:可选(默认 http://localhost:5601):Kibana 监听 URL。Docker Compose YAML 示例片段:
yamlservices: geonetwork: image: geonetwork:4.4 environment: GN_CONFIG_PROPERTIES: >- -Des.host=elasticsearch -Des.protocol=http -Des.port=9200 -Des.url=http://elasticsearch:9200 -Des.username=my_es_username -Des.password=my_es_password -Dkb.url=http://kibana:5601
环境变量(4.2 及更早版本)
对于 4.4.0 之前的版本,通过环境变量配置 Elasticsearch:
ES_HOST:必填:Elasticsearch 服务器主机名。ES_PORT:可选(默认 9200):Elasticsearch 服务器监听端口。ES_PROTOCOL:可选(默认 http):与 Elasticsearch 通信的协议,可选 http 或 https。ES_INDEX_RECORDS:可选(默认 gn_records):若多个 GeoNetwork 实例使用同一 Elasticsearch 集群,需为每个实例指定不同的索引名,通过此变量定义。ES_USERNAME:可选(默认空):连接 Elasticsearch 的用户名。ES_PASSWORD:可选(默认空):连接 Elasticsearch 的密码。KB_URL:可选(默认 http://localhost:5601):Kibana 监听 URL。默认情况下,GeoNetwork 使用本地 H2 数据库用于演示(不推荐生产环境使用)。该镜像包含 PostgreSQL 和 MySQL 的 JDBC 驱动。配置数据库连接需使用以下环境变量:
GEONETWORK_DB_TYPE:数据库类型,有效值为 postgres、postgres-postgis、mysql。可扩展镜像包含其他驱动,支持更多类型:db2、h2、oracle、sqlserver。这些其他数据库的 JAR 驱动需通过挂载或扩展官方镜像添加到 /opt/geonetwork/WEB-INF/lib。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 将生成 JDBC 连接字符串 jdbc:postgresql://localhost:5432/postgres?search_path=test,public&ssl=true。以下命令启动基于 Debian 的容器,运行 Tomcat(GN 3)或 Jetty(GN 4)Web 服务器,并部署 GeoNetwork WAR:
consoledocker run --name some-geonetwork -d geonetwork
GeoNetwork 监听 8080 端口。若要从主机访问容器,必须发布此端口。例如,将容器的 8080 端口映射到主机的同一端口:
consoledocker run --name some-geonetwork -d -p 8080:8080 geonetwork
若在 Linux 上运行 Docker,可通过 http://localhost:8080/geonetwork 访问 GeoNetwork。
数据目录是目录存储其大部分自定义配置和上传文件的文件系统位置,也存储多种支持文件(如空间索引、缩略图)。默认变体还使用本地 H2 数据库存储元数据目录本身。
默认情况下,GeoNetwork 将数据目录设置为 /opt/geonetwork/WEB-INF/data,H2 数据库文件在 Jetty 目录 /var/lib/jetty/gn.h2.db(GN 4.0.0 及更新)或 Tomcat 目录 /usr/local/tomcat/gn.h2.db(GN 3)。可通过注入环境变量覆盖这些值:-e DATA_DIR=...(默认 /opt/geonetwork/WEB-INF/data)和 -e GEONETWORK_DB_NAME=...(默认 gn,在 Tomcat bin 目录 /usr/local/tomcat 中创建数据库 gn.h2.db)。注意,通过 GEONETWORK_DB_NAME 设置数据库位置仅从 3.10.3 版本开始支持。
从 4.4.0 版本开始,数据目录需通过 GN_CONFIG_PROPERTIES 环境变量传递 Java 属性配置。例如:
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 geonetwork
要将数据目录设置为 /catalogue-data/data 并将 H2 数据库文件设置为 /catalogue-data/db/gn.h2.db,以在重启后保留数据:
consoledocker run --name some-geonetwork -d -p 8080:8080 -e DATA_DIR=/catalogue-data/data -e GEONETWORK_DB_NAME=/catalogue-data/db/gn geonetwork:3
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 geonetwork
若要数据目录在容器重启甚至销毁后仍存在,可将 Docker 引擎主机的目录挂载到容器中:-v /host/path:/path/to/data/directory。例如,将主机目录 /host/geonetwork-docker 挂载到容器的 /catalogue-data:
consoledocker 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-docker:/catalogue-data geonetwork:3
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 geonetwork
geonetwork 的 compose.yaml 示例:
yaml# GeoNetwork # # 通过 "http://localhost:8080/geonetwork" 访问 # # 默认用户:admin # 默认密码:admin volumes: geonetwork: esdata: pgdata: pglog: services: geonetwork: image: 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 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 # 远程调试 # -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 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/
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务