
geonode/geoserverGeoServer 是一款开源的地理空间数据服务器,用于共享地理空间数据。本镜像是为 GeoNode 专门构建的 Docker 镜像,简化了 GeoServer 的部署流程,包含独立的数据目录,基于官方 Tomcat 9 镜像构建。
/geoserver_data/data 作为卷暴露,便于配置持久化本镜像已发布至 Docker Hub 可信构建,直接拉取即可:
bashdocker pull geonode/geoserver
如需自定义构建,可通过源码构建:
bashgit clone [***] cd geoserver-docker docker build -t "geonode/geoserver" .
data-2.xx.x.zip 数据文件(如 data-2.18.2.zip)bashsudo mkdir -p /opt/geoserver/ sudo unzip ~/Download/data-2.18.2.zip -d /opt/geoserver/
bashdocker run --name "geoserver" \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /opt/geoserver/data/:/geoserver_data/data \ -d -p 8080:8080 \ geonode/geoserver
http://localhost:8080/geoserveradmingeoserver本镜像提供多个标签版本,适配 GeoNode 的不同认证机制:
geonode/geoserver:2.9.xgeonode/geoserver:2.9.x-oauth2geonode/geoserver:2.10.xgeonode/geoserver:2.12.xgeonode/geoserver:2.13.xgeonode/geoserver:2.14.xgeonode/geoserver:2.18.2注意:使用时需确保 GeoServer 镜像标签与数据目录版本一一对应。
容器的数据目录 /geoserver_data/data 已作为卷暴露,用于持久化 GeoServer 配置和数据。建议将其挂载到主机目录,便于数据管理和升级:
bash-v /your/host/data/path:/geoserver_data/data # 将主机目录映射到容器数据卷
在使用 Docker Compose 部署时,可通过数据卷容器预加载 GeoNode 专用的 GEOSERVER_DATA_DIR。需先确保 geonode/geoserver_data 镜像可用(从 Docker Hub 拉取或本地构建):
bashgit clone [***] cd data-docker docker build -t geonode/geoserver_data .
bashdocker-compose stop # 停止容器,数据保留在 GEOSERVER_DATA_DIR 中 docker-compose up # 重启后可继续使用原数据
bashdocker-compose down # 删除容器,数据将丢失,需重新加载基础数据目录
GeoServer 镜像标签与数据目录版本需严格对应,以下为可用组合:
| GeoServer 镜像标签 | 数据目录镜像版本 |
|---|---|
2.9.x | geonode/geoserver_data:2.9.x |
2.9.x-oauth2 | geonode/geoserver_data:2.9.x-oauth2 |
2.10.x | geonode/geoserver_data:2.10.x |
2.12.x | geonode/geoserver_data:2.12.x |
2.13.x | geonode/geoserver_data:2.13.x |
2.14.x | geonode/geoserver_data:2.14.x |
2.18.2 | geonode/geoserver_data:2.18.2 |
GeoServer 推荐使用空间数据库存储数据,以下为与 PostGIS 容器集成示例:
bashdocker run -d --name="postgis" kartoza/postgis # 使用 kartoza/postgis 镜像
启动 GeoServer 容器时添加 --link 参数:
bashdocker run --name "geoserver" \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /opt/geoserver/data/:/geoserver_data/data \ --link postgis:postgis # 链接 PostGIS 容器,别名 postgis -d -p 8080:8080 \ geonode/geoserver
创建 docker-compose.yml 文件:
yamlversion: '3' services: geoserver: image: geonode/geoserver:2.18.2 ports: - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock - geoserver_data:/geoserver_data/data depends_on: - postgis links: - postgis:postgis postgis: image: kartoza/postgis environment: - POSTGRES_USER=geonode - POSTGRES_PASSWORD=geonode - POSTGRES_DB=geonode volumes: geoserver_data: driver: local driver_opts: type: none device: /opt/geoserver/data # 主机数据目录 o: bind
启动服务:
bashdocker-compose up -d


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