You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何启动Nominatim Docker容器?已部署容器意外停机后免重新加载数据的重启方法问询

无需重新加载数据重启Nominatim Docker容器的方法

当然可以不用重新执行耗时的数据加载步骤!你的容器只是因为主机意外关机而停止运行,只要容器本身没有被删除,核心的地理数据和PostgreSQL数据库文件就还保存在容器的关联存储卷中,直接重启即可。

具体操作步骤:

  1. 检查容器状态
    先确认容器的当前状态,执行以下命令:

    docker ps -a
    

    你应该能看到名为nominatim的容器,状态显示为Exited。

  2. 重启容器
    直接使用docker start命令重启容器:

    docker start nominatim
    

    如果需要查看容器启动后的实时日志(确认服务正常运行),可以执行:

    docker logs -f nominatim
    

    等待日志显示Nominatim服务正常启动后,就可以通过http://localhost:8080访问服务了,数据和之前完全一致,不需要重新导入。

后续优化建议(避免类似问题)

这次主机关机没有丢失数据是因为容器还存在,但如果未来不小心删除了容器,未挂载到宿主机的数据会丢失。建议下次启动容器时,添加PostgreSQL数据目录的挂载,把核心数据持久化到宿主机:

docker run -it --shm-size=4g \
 -e PBF_URL=https://download.geofabrik.de/north-america/us-latest.osm.pbf \
 -e REPLICATION_URL=https://download.geofabrik.de/north-america/us-updates/ \
 -e IMPORT_US_POSTCODES=true \
 -e IMPORT_TIGER_ADDRESSES=true \
 -e IMPORT_WIKIPEDIA=/nominatim/extras/wikimedia-importance.sql.gz \
 -p 8080:8080 \
 -v /osm-maps/extras:/nominatim/extras \
 # 添加这一行,将PostgreSQL数据目录挂载到宿主机
 -v /osm-maps/postgres-data:/var/lib/postgresql/14/main \
 --name nominatim \
 mediagis/nominatim:4.0

这样所有的地理数据都会保存在宿主机的/osm-maps/postgres-data目录下,无论容器重启、删除重建,都不需要重新加载数据,直接挂载该目录即可恢复服务。

异常排查

如果重启后服务无法正常运行,可以通过以下命令查看详细日志定位问题:

docker logs nominatim

意外关机可能导致PostgreSQL数据库出现轻微损坏,但通常PostgreSQL会在启动时自动修复这类问题。如果遇到无法自动修复的情况,可以进入容器执行数据库修复命令:

docker exec -it nominatim bash
# 切换到postgres用户
su postgres
# 执行修复命令
pg_resetwal -f /var/lib/postgresql/14/main

完成后重启容器即可。

内容的提问来源于stack exchange,提问作者Dennis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 18:07:35