轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
geoserver

sonoilmagopancione/geoserver

sonoilmagopancione

一个简单的Docker容器,用于运行GeoServer,支持自定义构建、插件激活、SSL配置和集群部署,适用于地理空间数据服务的快速部署和管理。

下载次数: 0状态:社区镜像维护者:sonoilmagopancione仓库类型:镜像最近更新:5 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 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

一个运行GeoServer的简单Docker容器,受此Docker配置启发:https://github.com/eliotjordan/docker-geoserver/blob/master/Dockerfile

获取镜像

有多种方式将镜像获取到您的系统中:

首选方式(但初始镜像会占用较多带宽)是获取我们的Docker可信构建,命令如下:

shell
docker pull docker.xuanyuan.run/kartoza/geoserver

构建镜像

使用本地检出和docker-compose.build.yaml构建

编辑.env文件修改构建参数:

IMAGE_VERSION=tomcat镜像标签
JAVA_HOME=与tomcat版本对应的Java主路径
WAR_URL=获取geoserver war或zip文件的默认URL
STABLE_PLUGIN_URL=获取geoserver稳定版插件的URL
ACTIVATE_ALL_STABLE_EXTENTIONS=指定是否构建所有稳定版插件或单个插件
ACTIVATE_ALL_COMMUNITY_EXTENTIONS=指定是否构建所有社区版插件或单个插件
shell
git clone git://github.com/kartoza/docker-geoserver
cd docker-geoserver
docker-compose -f docker-compose-build.yml up -d --build

使用URL中的war文件构建

如果需要使用从服务器下载的自定义GeoServer war文件构建镜像,可以通过构建参数传递war文件URL,示例:

shell
docker build --build-arg WAR_URL=http://download2.nust.na/pub4/sourceforge/g/project/ge/geoserver/GeoServer/2.13.0/geoserver-2.13.0-war.zip --build-arg GS_VERSION=2.13.0

注意:war文件版本必须与GS_VERSION参数提供的版本号匹配,否则插件和已安装的GeoServer会出现版本不匹配。

使用特定版本的Tomcat构建

要使用特定标签的Tomcat镜像构建,将IMAGE_VERSION构建参数设置为8-jre8:查看https://hub.docker.com/_/tomcat/%E9%80%89%E6%8B%A9%E9%9C%80%E8%A6%81%E6%9E%84%E5%BB%BA%E7%9A%84%E6%A0%87%E7%AD%BE%E3%80%82

例如 VERSION=2.17.0
docker build --build-arg IMAGE_VERSION=8-jre8 --build-arg GS_VERSION=2.17.0 -t kartoza/geoserver:${VERSION} .

对于一些较新的构建,可能还需要设置JAVA_PATH(例如Apache Tomcat/9.0.36):

docker build --build-arg IMAGE_VERSION=9-jdk11-openjdk-slim --build-arg JAVA_HOME=/usr/local/openjdk-11/bin/java --build-arg GS_VERSION=2.17.0 -t kartoza/geoserver:2.17.0 .

使用文件系统覆盖构建(高级)

构建过程中,resources/overlays目录的内容会被复制到镜像文件系统。例如,要包含静态Tomcat setenv.sh,在resources/overlays/usr/local/tomcat/bin/setenv.sh创建该文件。

可使用此功能将静态GeoServer目录写入/opt/geoserver/data_dir、包含额外jar文件等。

如果已有来自其他Geoserver的带有安全设置的data_dir:设置EXISTING_DATA_DIR=true。这将防止Docker修改密码。

覆盖文件会覆盖现有目标文件,请注意!

构建CORS支持

构建过程中,resources/overlays目录的内容会被复制到镜像文件系统。例如,要包含支持CORS的静态web xml web.xml,在resources/overlays/usr/local/tomcat/conf/web.xml创建该文件。

环境变量

完整的环境变量列表在.env文件中指定。

运行时激活插件

镜像预装了以下稳定版插件:

  • vectortiles-plugin
  • wps-plugin
  • printing-plugin
  • libjpeg-turbo-plugin
  • control-flow-plugin
  • pyramid-plugin
  • gdal-plugin

如需使用其他插件,可在启动时传递环境变量激活,例如:

例如 VERSION=2.16.2
docker run -d -p 8600:8080 --name geoserver -e STABLE_EXTENSIONS=charts-plugin,db2-plugin docker.xuanyuan.run/kartoza/geoserver:${VERSION}

可传递stable_plugins.txt文件中定义的多个逗号分隔的插件。

也可激活community_plugins.txt中定义的社区插件:

例如 VERSION=2.16.2
docker run -d -p 8600:8080 --name geoserver -e COMMUNITY_EXTENSIONS=gwc-sqlite-plugin,ogr-datastore-plugin docker.xuanyuan.run/kartoza/geoserver:${VERSION}

使用示例数据

如需使用默认数据目录进行测试,可通过环境变量SAMPLE_DATA=true激活:

例如 VERSION=2.16.2
docker run -d -p 8600:8080 --name geoserver -e SAMPLE_DATA=true docker.xuanyuan.run/kartoza/geoserver:${VERSION}

启用PostgreSQL后端的磁盘配额存储

默认情况下,GeoServer使用H2数据存储配置磁盘配额。可使用PostgreSQL后端作为磁盘配额存储。

需要运行PostgreSQL数据库并链接到GeoServer实例:

docker run -d -p 5432:5432 --name db docker.xuanyuan.run/kartoza/postgis:13.0
docker run -d -p 8600:8080 --name geoserver --link db:db -e DB_BACKEND=POSTGRES -e HOST=db -e POSTGRES_PORT=5432 -e POSTGRES_DB=gis -e POSTGRES_USER=docker -e POSTGRES_PASS=docker docker.xuanyuan.run/kartoza/geoserver:2.18.0

运行在SSL下

可使用环境变量指定是否在SSL下运行GeoServer。 感谢https://github.com/AtomGraph/letsencrypt-tomcat%E6%8F%90%E4%BE%9BSSL%E8%BF%90%E8%A1%8C%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E3%80%82

如果设置环境变量SSL=true但未提供pem文件(fullchain.pem和privkey.pem),容器将生成自签名SSL证书:

例如 VERSION=2.16.2
docker run -it --name geoserver -e PKCS12_PASSWORD=geoserver -e JKS_KEY_PASSWORD=geoserver -e JKS_STORE_PASSWORD=geoserver -e SSL=true -p 8443:8443 -p 8600:8080 docker.xuanyuan.run/kartoza/geoserver:${VERSION}

如果已有自己的perm文件(fullchain.pem和privkey.pem),可挂载包含密钥的目录:

例如 VERSION=2.16.2
docker run -it --name geo -v /etc/letsencrpt:/etc/letsencrypt -e PKCS12_PASSWORD=geoserver -e JKS_KEY_PASSWORD=geoserver -e JKS_STORE_PASSWORD=geoserver -e SSL=true -p 8443:8443 -p 8600:8080 docker.xuanyuan.run/kartoza/geoserver:${VERSION}

也可使用PFX文件。将PFX文件重命名为certificate.pfx并挂载包含该文件的文件夹,会转换为perm文件。

注意 使用PFX文件时,确保指定的环境变量ALIAS_KEY与生成PFX密钥时使用的ALIAS_KEY匹配。

完整的SSL变量列表:

  • HTTP_PORT
  • HTTP_PROXY_NAME
  • HTTP_PROXY_PORT
  • HTTP_REDIRECT_PORT
  • HTTP_CONNECTION_TIMEOUT
  • HTTP_COMPRESSION
  • HTTPS_PORT
  • HTTPS_MAX_THREADS
  • HTTPS_CLIENT_AUTH
  • HTTPS_PROXY_NAME
  • HTTPS_PROXY_PORT
  • HTTPS_COMPRESSION
  • JKS_FILE
  • JKS_KEY_PASSWORD
  • KEY_ALIAS
  • JKS_STORE_PASSWORD
  • P12_FILE

移除Tomcat额外组件

要包含Tomcat额外组件(包括文档、示例和管理器webapp),将环境变量TOMCAT_EXTRAS设置为true: 注意 应配置环境变量TOMCAT_PASSWORD使用强密码,否则会设置默认密码。

例如 VERSION=2.16.2
docker run -it --name geoserver -e TOMCAT_EXTRAS=true -p 8600:8080 docker.xuanyuan.run/kartoza/geoserver:${VERSION}

升级镜像到特定版本

初始化期间,镜像会运行更新密码的脚本。首次运行GeoServer时建议更改密码,但后续升级时应使用环境变量EXISTING_DATA_DIR=true,告知GeoServer使用已存在的数据目录,不更改密码。

安装额外字体

如已下载额外字体,可将文件夹挂载到/opt/fonts路径,初始化时所有.ttf文件会复制到正确路径:

例如 VERSION=2.16.2
docker run -v fonts:/opt/fonts -p 8080:8080 -t docker.xuanyuan.run/kartoza/geoserver:${VERSION} .

支持的其他环境变量

还可使用以下环境变量向GeoServer传递参数:

  • GEOSERVER_DATA_DIR=<路径>
  • ENABLE_JSONP=<true或false>
  • MAX_FILTER_RULES=<整数>
  • OPTIMIZE_LINE_WIDTH=<false或true>
  • FOOTPRINTS_DATA_DIR=<路径>
  • GEOWEBCACHE_CACHE_DIR=<路径>
  • GEOSERVER_ADMIN_PASSWORD=<密码>
  • GEOSERVER_ADMIN_USER=<用户名>
  • GEOSERVER_FILEBROWSER_HIDEFS=<false或true>

为防止点击劫持***,GeoServer默认将X-Frame-Options HTTP头设置为SAMEORIGIN。控制是否设置X-Frame-Options过滤器,默认值为true:

  • XFRAME_OPTIONS="true"

  • Tomcat属性:

    • 可基于http://docs.geoserver.org/stable/en/user/production/container.html%E6%9B%B4%E6%94%B9%E5%8F%98%E9%87%8F%E3%80%82%E8%BF%99%E4%BA%9B%E5%8F%82%E6%95%B0%E4%BD%9C%E7%94%A8%E4%BA%8EJava%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%9A%84%60-Xms%60%E5%92%8C%60-Xmx%60%E9%80%89%E9%A1%B9
    • INITIAL_MEMORY=<大小>:Java初始分配内存,默认2G
    • MAXIMUM_MEMORY=<大小>:Java最大分配内存,默认4G

控制流属性

控制流模块默认安装,用于管理GeoServer请求。如需根据资源和用例自定义,参考http://docs.geoserver.org/latest/en/user/extensions/controlflow/index.html%E3%80%82%E8%BF%99%E4%BA%9B%E9%80%89%E9%A1%B9%E5%8F%AF%E9%80%9A%E8%BF%87%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E6%8E%A7%E5%88%B6%EF%BC%9A

  • 控制流属性环境变量

    如果请求在队列中等待超过60秒,则不值得执行,客户端可能已放弃:

    • REQUEST_TIMEOUT=60 不允许并行执行超过100个请求:
    • PARARELL_REQUEST=100 不允许并行超过10个GetMap请求:
    • GETMAP=10 不允许超过4个Excel输出,因为它受内存限制:
    • REQUEST_EXCEL=4 不允许单个用户并行执行超过6个请求(6是编写时Firefox的默认并发级别):
    • SINGLE_USER=6 不允许并行执行超过16个瓦片请求(假设服务器有4个核心,GWC经验测试显示吞吐量在核心数的4倍时达到峰值。根据系统调整):
    • GWC_REQUEST=16
    • WPS_REQUEST=1000/d;30s

运行时更改GeoServer密码和用户名

默认GeoServer用户为'admin',密码为'geoserver'。可通过环境变量GEOSERVER_ADMIN_PASSWORD和GEOSERVER_ADMIN_USER在运行时更改:

docker run --name "geoserver" -e GEOSERVER_ADMIN_USER=kartoza -e GEOSERVER_ADMIN_PASSWORD=myawesomegeoserver -p 8080:8080 -d -t docker.xuanyuan.run/kartoza/geoserver

Docker secrets

为避免在环境变量中传递敏感信息,可在部分变量后附加_FILE从容器内文件读取。这与Docker secrets结合特别有用,密码可从/run/secrets/<secret_name>加载,例如:

  • -e GEOSERVER_ADMIN_PASSWORD_FILE=/run/secrets/<geoserver_pass_secret>

更多信息见https://docs.docker.com/engine/swarm/secrets/%E3%80%82

目前支持GEOSERVER_ADMIN_USER和GEOSERVER_ADMIN_PASSWORD。

使用JMS插件集群

GeoServer支持使用JMS集群插件或ActiveMQ-broker进行集群。

本设置使用JMS集群插件,该插件使用嵌入式代理。clustering文件夹中提供了docker-compose.yml,通过共享数据目录模拟复制。

与复制相关的环境变量如下:

  • CLUSTERING=True - 指定是否激活集群
  • BROKER_URL=tcp://0.0.0.0:61661 - 链接到JMS集群插件提供的内部代理,(主节点)的值不同
  • READONLY=disabled - 确定GeoServer实例是否为只读
  • RANDOMSTRING=87ee2a9b6802b6da_master - 用于为每个实例创建唯一的CLUSTER_CONFIG_DIR
  • INSTANCE_STRING=d8a167a4e61b5415ec263 - 用于区分集群实例名称
  • CLUSTER_DURABILITY=false
  • TOGGLE_MASTER=true - 区分实例是否为主节点
  • TOGGLE_SLAVE=true - 区分实例是否为节点
  • EMBEDDED_BROKER=disabled - 节点应禁用

运行镜像

使用docker-compose运行(自动化)

注意: 可能希望使用docker-compose运行,因为它提供可重复的编排部署系统。

我们提供示例docker-compose.yml文件,说明如何建立GeoServer + PostGIS。

如果对备份感兴趣,按照https://github.com/kartoza/docker-pg-backup/blob/master/docker-compose.yml#L23%E7%9A%84%E8%AF%B4%E6%98%8E%E5%9C%A8%60docker-compose.yml%60%E4%B8%AD%E6%B7%BB%E5%8A%A0%E9%83%A8%E5%88%86%E3%80%82

如果使用compose文件启动堆栈,确保使用用户名:admin和密码:myawesomegeoserver登录GeoServer。

注意: 用户名和密码在.env文件中指定,建议更改为更安全的值。

请阅读docker-composehttps://docs.docker.com/compose/%E4%BA%86%E8%A7%A3%60docker-compose%60%E7%9A%84%E4%BD%BF%E7%94%A8%E5%92%8C%E8%AF%AD%E6%B3%95%E7%BB%86%E8%8A%82%EF%BC%8C%E6%AD%A4%E5%A4%84%E4%B8%8D%E8%B5%98%E8%BF%B0%E3%80%82

所有服务启动后,在浏览器中访问GeoServer登录页面测试:http://localhost:8600/geoserver%E3%80%82

要在后台运行,按ctrl-c停止容器,然后在后台重新运行:

shell
docker-compose up -d

注意: docker-compose.yml使用基于主机的卷,因此删除容器时,所有数据将保留。使用基于主机的卷确保数据在compose文件调用之间持久化。如需删除容器数据,需运行docker-compose down -v。

使用rancher运行(自动化)

运行所提供示例的更好方式是使用我们的Rancher目录GeoServer堆栈。有关如何设置和配置Rancher环境的更多详细信息,请参见[***] -> Settings菜单添加我们的Rancher目录,URL:

https://github.com/kartoza/kartoza-rancher-catalogue

保存设置后,打开Rancher环境,从目录的“Kartoza”部分设置堆栈 - 您将看到列出的GeoServer。

如果要同步GeoServer设置和数据库备份(由堆栈中的夜间备份工具创建),使用Resilio sync创建两个读写密钥:

  • 一个用于数据库备份
  • 一个用于GeoServer媒体备份

注意: Resilio sync不是自由软件。个人免费使用。企业用户需要付费 - 详见其网站。

可尝试使用Syncthing或Seafile(免费选项)或Dropbox、Google Drive(其他商业产品)的类似方法。但这些产品都有一个限制:需要交互来注册应用程序或密钥。使用Resilio Sync可完全自动化该过程,无需用户干预。

镜像贡献

欢迎用户为丰富此服务做出贡献。我们遵循git原则,所有拉取请求应针对develop分支,以便测试,满意后推送到master分支。

支持

如果需要kartoza提供更多实质性帮助(因为我们在docker-geoserver上的工作和互动是无偿的),请考虑签订支持级别协议

credits

  • Tim Sutton (***)
  • Shane St Clair (***)
  • Alex Leith (***)
  • Admire Nyakudya (***)
  • Gavin Fleming (***)

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 geoserver 镜像标签

docker pull docker.xuanyuan.run/sonoilmagopancione/geoserver:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull sonoilmagopancione/geoserver:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
sonoilmagopancione/geoserver
教程轩辕镜像功能与使用教程
定价查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱

更多 geoserver 镜像推荐

georchestra/geoserver logo

georchestra/geoserver

georchestra
geOrchestra SDI的GeoServer模块
2 次收藏1万+ 次下载
10 天前更新
geonode/geoserver logo

geonode/geoserver

geonode
用于GeoNode的GeoServer镜像,提供地理空间数据发布与管理服务,支持在GeoNode环境中集成地图服务功能。
43 次收藏100万+ 次下载
13 天前更新
thinkwhere/geoserver logo

thinkwhere/geoserver

thinkwhere
GeoServer地理信息服务器Docker镜像,用于发布地图数据和提供空间服务,支持多种地理信息标准,实现便捷部署与地理空间服务快速搭建。
15 次收藏50万+ 次下载
11 个月前更新
ndscprm/geoserver logo

ndscprm/geoserver

ndscprm
CPRM定制的GeoServer地理空间数据服务器镜像,用于发布、管理和共享地理空间数据,支持OGC标准服务。
10万+ 次下载
2 个月前更新
geosolutionsit/geoserver logo

geosolutionsit/geoserver

geosolutionsit
在Docker中运行GeoServer的镜像,基于Tomcat 9、JDK 11(Eclipse Temurin)和Ubuntu Jammy(22.04 LTS),支持数据目录持久化、环境变量配置、CORS、自定义字体及插件管理,提供灵活部署和运维能力。
16 次收藏10万+ 次下载
8 天前更新
oscarfonts/geoserver logo

oscarfonts/geoserver

oscarfonts
基于官方Tomcat镜像部署GeoServer的Docker镜像,用于提供地理信息数据发布和空间服务功能。
34 次收藏10万+ 次下载
1 个月前更新

查看更多 geoserver 相关镜像