
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Docker化的GeoServer,包含多种扩展:Charts、Control Flow、CSS、MongoDB、Monitor、Query Layer、Vector Tiles、Authkey、GWC-S3、JDBC-Metrics、JDBCConfig、JDBCStore、Importer及Importer BDB。主要变更包括使用GeoServer 2.15.2版本和优化的JAVA_OPTS配置。
sh# Tomcat环境变量 ENV GEOSERVER_OPTS "-server -Djava.awt.headless=true \ -Xms128M -Xmx756M \ -XX:SoftRefLRUPolicyMSPerMB=36000 -XX:+UseParallelGC \ -XX:PerfDataSamplingInterval=500 -XX:NewRatio=2 \ -XX:-UseContainerSupport -XX:InitialRAMPercentage=50 -XX:MaxRAMPercentage=70 \ -Dorg.geotools.referencing.forceXY=true -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -Duser.timezone=GMT -Dorg.geotools.shapefile.datetime=true \ -DGEOSERVER_DATA_DIR=${GEOSERVER_DATA_DIR}"
sh# Tomcat环境变量 ENV GEOSERVER_OPTS "-server -Djava.awt.headless=true \ -Xms128M -Xmx756M -DGEOSERVER_CONSOLE_DISABLED=true \ -XX:SoftRefLRUPolicyMSPerMB=36000 -XX:+UseParallelGC \ -XX:PerfDataSamplingInterval=500 -XX:NewRatio=2 \ -XX:-UseContainerSupport -XX:InitialRAMPercentage=50 -XX:MaxRAMPercentage=70 \ -Dorg.geotools.referencing.forceXY=true -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -Duser.timezone=GMT -Dorg.geotools.shapefile.datetime=true \ -DGEOSERVER_DATA_DIR=${GEOSERVER_DATA_DIR}"
sh# Tomcat环境变量 ENV GEOSERVER_OPTS "-server -Djava.awt.headless=true \ -Xms768M -Xmx2048M \ -XX:SoftRefLRUPolicyMSPerMB=36000 -XX:+UseParallelGC \ -XX:PerfDataSamplingInterval=500 -XX:NewRatio=2 \ -XX:-UseContainerSupport -XX:InitialRAMPercentage=50 -XX:MaxRAMPercentage=70 \ -Dorg.geotools.referencing.forceXY=true -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -Duser.timezone=GMT -Dorg.geotools.shapefile.datetime=true \ -DGEOSERVER_DATA_DIR=${GEOSERVER_DATA_DIR}"
sh# Tomcat环境变量 ENV GEOSERVER_OPTS "-server -Djava.awt.headless=true \ -Xms2G -Xmx3G -DGEOSERVER_CONSOLE_DISABLED=true \ -XX:SoftRefLRUPolicyMSPerMB=36000 -XX:+UseParallelGC \ -XX:PerfDataSamplingInterval=500 -XX:NewRatio=2 \ -XX:-UseContainerSupport -XX:InitialRAMPercentage=50 -XX:MaxRAMPercentage=70 \ -Dorg.geotools.referencing.forceXY=true -Dfile.encoding=UTF8 -Duser.timezone=GMT -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -Duser.timezone=GMT -Dorg.geotools.shapefile.datetime=true \ -DGEOSERVER_DATA_DIR=${GEOSERVER_DATA_DIR}"
以下版本提供https://hub.docker.com/r/heitorcarneiro/geoserver/%EF%BC%8C%E5%8F%AF%E5%9C%A8https://registry.hub.docker.com/%E8%8E%B7%E5%8F%96%EF%BC%9A
其他实验性版本(非自动化构建):
bashdocker pull heitorcarneiro/geoserver
作为服务运行,暴露8080端口并使用本地GEOSERVER_DATA_DIR:
bashdocker run -d -p 8080:8080 -v /path/to/local/data_dir:/var/local/geoserver --name=MyGeoServerInstance heitorcarneiro/geoserver
yamlversion: "3" services: db: image: mdillon/postgis:11 restart: always environment: - POSTGRES_USER=geoserver - POSTGRES_PASSWORD=geoserver ports: - "5432:5432" volumes: - "$PWD/postgres-data:/var/lib/postgresql/data" - "$PWD/postgres-backup:/var/lib/postgresql/backup" geoserver: image: heitorcarneiro/geoserver:2.15.2.2-java11-hotspot restart: always environment: - CATALINA_OPTS="-Djava.awt.headless=true -server -Xms512M -Xmx512M -DGEOSERVER_DATA_DIR=/var/local/geoserver" ports: - "8080:8080" volumes: - "$PWD/geoserver-data:/var/local/geoserver" - "$PWD/geoservermaster-logs:/usr/local/tomcat/logs" links: - "db:postgis" depends_on: - "db"
创建所需目录:
bashmkdir postgres-data && mkdir postgres-backup && mkdir geoserver-data && mkdir geoservermaster-logs
启动服务:
bashdocker-compose up
bashdocker run --name "geoserver" --link "mydb:postgis" --network proxy -p "8080:8080" -v "$PWD/geoserver-data:/var/local/geoserver" -e CATALINA_OPTS="-Djava.awt.headless=true -server -Xms512M -Xmx512M -DGEOSERVER_DATA_DIR=${GEOSERVER_DATA_DIR}" -d geoserver:2.15.2-java11-hotspot
要添加扩展,提供包含未压缩扩展的目录(每个扩展一个子目录):
bashdocker run -d -p 8080:8080 -v /path/to/local/exts_dir:/var/local/geoserver-exts/ --name=MyGeoServerInstance heitorcarneiro/geoserver
可使用build_exts_dir.sh脚本配合https://github.com/hguerra/docker-geoserver/tree/master/extensions%E8%BD%BB%E6%9D%BE%E5%88%9B%E5%BB%BA%E6%89%A9%E5%B1%95%E7%9B%AE%E5%BD%95%E3%80%82
警告:扩展目录中的.jar文件将被复制到GeoServer安装的
WEB-INF/lib目录。确保仅包含可信扩展的.jar文件,以避免安全风险。
通过提供Catalina配置目录可配置上下文路径:
bashdocker run -d -p 8080:8080 -v /path/to/local/data_dir:/var/local/geoserver -v /path/to/local/conf_dir:/usr/local/tomcat/conf/Catalina/localhost --name=MyGeoServerInstance heitorcarneiro/geoserver
配置示例见https://github.com/hguerra/docker-geoserver/tree/master/2.15.2/conf%E3%80%82
实时查看Tomcat日志:
bashdocker logs -f MyGeoServerInstance
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务