本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
仅包含少量可用的EPSG代码,即本组织使用的那些。如果需要使用其他EPSG投影,可以覆盖此文件。
Docker镜像包含两个阶段:
builder阶段编译Mapserver。Dockerfile中明确列出了所有可用的Mapserver构建选项,清晰显示哪些选项已启用和禁用。
service阶段将第一阶段构建的Mapserver应用复制到该阶段,并配置Lighttpd。
docker build -t pdok/mapserver .
对于特定的荷兰版本,包含特定(更小的)epsg文件和必要的网格校正文件:
docker build -t pdok/mapserver:nl -f Dockerfile.NL .
此镜像可直接从命令行运行。需要将卷挂载到容器目录/srv/data,挂载的卷需包含与MS_MAPFILE环境变量匹配的*.map文件。
docker run \ --rm -d \ -e MS_MAPFILE=/srv/data/example.map \ -p 80:80 \ --name mapserver-example \ -v `pwd`/example:/srv/data \ pdok/mapserver
运行上述示例将在http://localhost/?REQUEST=GetCapabilities&SERVICE=WMS创建服务,可接受类似GetMap请求。
可设置的环境变量如下:
DEBUG:调试模式开关MIN_PROCS:最小进程数MAX_PROCS:最大进程数MAX_LOAD_PER_PROC:每个进程的最大负载IDLE_TIMEOUT:空闲超时时间MS_MAPFILE:Mapfile路径(必需)PROJ_LIB:PROJ投影文件目录除MS_MAPFILE外,其他环境变量在Dockerfile中有默认值。
GDAL的PROJ_LIB环境变量默认值为/usr/share/proj。为提高性能,可设置包含最少可用EPSG代码的自定义PROJ_LIB,通过上述PROJ_LIB环境变量实现。
docker run \ --rm -d \ -p 80:80 \ --name mapserver-run-example \ -v `pwd`/example:/srv/data \ -e DEBUG=0 \ -e MIN_PROCS=1 \ -e MAX_PROCS=3 \ -e MAX_LOAD_PER_PROC=4 \ -e IDLE_TIMEOUT=20 \ -e MS_MAPFILE=/srv/data/example.map \ pdok/mapserver
修改proj文件的原因包括添加自定义投影或删除“未使用”的投影以提高性能。可通过以下几种方式实现:
最佳示例是本仓库中的Dockerfile.NL。该Dockerfile以主Dockerfile为基础镜像,复制特定的大地测量网格文件,并使用为荷兰优化的epsg文件覆盖默认文件。
大地测量文件的良好资源是PROJ.org Datumgrid CDN。
另一种方式是创建proj文件(如nl文件夹中的文件),将其挂载到容器,并通过以下参数设置PROJ_LIB环境变量指向该位置:
-e PROJ_LIB=/my-custom-proj-dir \ -v `pwd`/path/to/proj/dir:/my-custom-proj-dir \
启动容器后,将在访问点http://localhost创建WMS和WFS服务。
http://localhost/?SERVICE=WFS&REQUEST=GetCapabilitieshttp://localhost/?SERVICE=WMS&REQUEST=GetCapabilitieshttp://localhost/?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&TYPENAMES=example:example&COUNT=1http://localhost/?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=50,2,54,9&CRS=EPSG:4326&WIDTH=905&HEIGHT=517&LAYERS=example&STYLES=&FORMAT=image/png&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUEhttp://localhost/?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&BBOX=48.9306039592783506,0.48758765231731171,55.46504193821721884,12.33319204541738756&CRS=EPSG:4326&WIDTH=1530&HEIGHT=844&LAYERS=example&STYLES=&FORMAT=image/png&QUERY_LAYERS=example&INFO_FORMAT=text/html&I=389&J=537&FEATURE_COUNT=10在之前的配置中,我们使用NGINX,虽然它是一个优秀的Web服务且有很多配置选项,但它运行多个进程,因此需要supervisord进行管理,而lighttpd作为单个进程运行。此外,路由配置选项不是必需的,因为这由基础设施/平台(如Kubernetes)处理。如果需要配置简单路由,仍可在lighttpd.conf中完成。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429