
geonode/geoserver_datadata-docker镜像作为基础数据卷容器,主要用于为GeoServer和PostGIS提供持久化存储解决方案。它支持数据从零开始添加到GeoServer和PostGIS中,并确保在容器停止后数据仍能保持持久化。该镜像便于创建、共享和管理GeoNode相关的持久化数据资源,适用于需要稳定存储GeoServer配置、空间数据等持久化信息的场景。
警告:若要按照本文档执行docker命令,需确保Docker主机环境已正确设置,且Docker默认机器已启动。
注意:所有使用Docker-Machine运行容器的开发者需要进行以下环境检查。使用原生Linux系统或Docker for Mac、Docker for Windows的用户无需执行这些检查。
验证Docker-Machine基础环境,执行以下命令:
console$ docker-machine env
成功配置的环境会输出类似以下内容:
consoleexport DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://192.168.99.100:2376" export DOCKER_CERT_PATH="<用户主目录>/.docker/machine/machines/default" export DOCKER_MACHINE_NAME="default"
配置shell环境以应用Docker-Machine设置:
console$ eval $(docker-machine env)
使用-v选项可直接为容器创建数据卷,示例如下:
console$ docker run -d -P --name geonode-data-container -v /data geonode/geonode-data touch /data/test.txt
上述命令在新容器的/data目录创建数据卷,该卷可被共享并挂载到其他容器。数据卷会持久化存储其中的文件(如示例中的test.txt)。
主机数据卷(Host data volumes)
也可将Docker主机的本地目录挂载到容器中,适用于测试场景,但会受限于主机目录配置,可能影响容器可移植性:
console$ docker run -d -P --name geonode-data-container -v /geonode_data/data:/data geonode/geonode-data touch /data/test.txt
注意:对于GeoNode数据,此方式无法像开发环境中执行
(venv)$ paver reset_hard那样从零开始重置数据。
数据卷容器是定义存储空间的Docker镜像,本身不运行服务进程,创建后即处于停止状态,但会保留其数据存储。
创建数据卷容器
创建用于存储GeoNode持久化共享数据资源的专用容器:
console$ docker create -v /geonode-store --name geonode-data-container geonode/geonode-data /bin/true
注意:
/bin/true命令在执行成功时返回0且不执行任何操作,用于确保容器创建后正确退出并保持停止状态。
挂载数据卷容器到其他容器
通过--volumes-from选项将数据卷容器的/geonode-store目录挂载到其他容器:
console$ docker run -d --volumes-from geonode-data-container --name geoserver geonode/geoserver
提示:删除挂载了卷的容器后,卷存储及其数据不会被删除。若需完全从文件系统中删除卷,需运行:
console$ docker rm -v geoserver
在/geoserver_data/data目录中创建包含GEOSERVER_DATA_DIR的卷:
console$ docker-compose up
console# 需要先从Docker Hub拉取geonode/geoserver:2.10.x镜像 $ docker run -d --volumes-from geoserver_data_dir --name geoserver geonode/geoserver
验证预加载的GeoServer数据目录(适用于GeoServer 2.18.2)是否正确挂载:
console$ docker exec -it geoserver ls -lart /geoserver_data/data/
成功挂载后输出类似以下内容:
consoletotal 76 drwxr-xr-x 3 root root 4096 Aug 27 16:51 workspaces -rw-r--r-- 1 root root 1547 Aug 27 16:51 wms.xml -rw-r--r-- 1 root root 2013 Aug 27 16:51 wfs.xml -rw-r--r-- 1 root root 1285 Aug 27 16:51 wcs.xml drwxr-xr-x 2 root root 4096 Aug 27 16:51 styles drwxr-xr-x 8 root root 4096 Aug 27 16:51 security drwxr-xr-x 2 root root 4096 Aug 27 16:51 printing drwxr-xr-x 2 root root 4096 Aug 27 16:51 plugIns drwxr-xr-x 2 root root 4096 Aug 27 16:51 palettes drwxr-xr-x 2 root root 4096 Aug 27 16:51 logs -rw-r--r-- 1 root root 144 Aug 27 16:51 logging.xml drwxr-xr-x 2 root root 4096 Aug 27 16:51 images -rw-r--r-- 1 root root 1111 Aug 27 16:51 gwc-gs.xml -rw-r--r-- 1 root root 1374 Aug 27 16:51 global.xml drwxr-xr-x 2 root root 4096 Aug 27 16:51 geonode drwxr-xr-x 2 root root 4096 Aug 27 16:51 demo -rw-r--r-- 1 root root 184 Aug 27 16:51 README.rst drwxr-xr-x 12 root root 4096 Aug 27 16:51 . drwxr-xr-x 7 root root4096 Aug 27 17:08 ..
以下是使用data-docker镜像的docker-compose.yml示例,该配置从Docker Hub拉取指定版本(如GeoServer-GeoNode 2.18.2)的镜像,并挂载数据目录:
yamlversion: '2' services: geoserver: build: . ports: - "8888:8080" volumes_from: # 引用包含预加载geoserver_data_dir卷的服务 - data_dir_conf data_dir_conf: image: geonode/geoserver_data:2.18.2 container_name: geoserver_data_dir # 命名数据容器 command: /bin/true volumes: - /geoserver_data/data volumes: # 引用包含预加载GeoServer数据目录的命名数据容器 geoserver_data_dir:
Docker Hub提供多个版本标签的data-docker镜像,适用于不同版本的GeoServer和GeoNode:
geonode/geoserver_data:2.9.xgeonode/geoserver_data:2.9.x-oauth2geonode/geoserver_data:2.10.xgeonode/geoserver_data:2.12.xgeonode/geoserver_data:2.13.xgeonode/geoserver_data:2.14.xgeonode/geoserver_data:2.18.2(各标签详细信息可通过Docker Hub对应链接查看)






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