
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
这是一个运行PostGIS(PostgreSQL空间扩展)的Docker容器,区别于其他镜像的特点包括:开箱即用的SSL支持、默认仅允许Docker子网连接、预创建'gis'数据库便于QGIS等工具直接使用、支持数据复制、可创建多个数据库及启用多种扩展,目标是提供轻负载生产环境可用的PostGIS服务。
镜像标签格式:kartoza/postgis:[postgres版本]-[postgis版本],例如9.6-2.4(PostgreSQL 9.6 + PostGIS 2.4)。建议使用标签版本避免数据库存储目录不一致问题。
从Docker Hub拉取(推荐)
bashdocker pull kartoza/postgis
本地构建
bashgit clone git://github.com/kartoza/docker-postgis docker build -t kartoza/postgis .
基本运行
bashsudo docker run --name "postgis" -p 25432:5432 -d -t kartoza/postgis
环境变量配置
自定义用户、密码、数据库等:
POSTGRES_USER: 超级用户名(默认'docker')POSTGRES_PASS: 密码(默认'docker')POSTGRES_DBNAME: 数据库名(可多个,逗号分隔)POSTGRES_MULTIPLE_EXTENSIONS: 启用扩展(如postgis,hstore)ALLOW_IP_RANGE: 允许连接的IP范围(默认Docker子网)SSL_CERT_FILE: 自定义SSL证书路径示例:
bashdocker run --name postgis -e POSTGRES_USER=myuser -e POSTGRES_PASS=mypass -e POSTGRES_DBNAME=mygis -p 25432:5432 -d kartoza/postgis
Docker Compose示例
包含数据库备份服务的配置:
yamlservices: postgis: image: kartoza/postgis ports: - "25432:5432" environment: - POSTGRES_USER=docker - POSTGRES_PASS=docker - POSTGRES_DBNAME=gis volumes: - postgres_data:/var/lib/postgresql backup: image: kartoza/pg-backup links: - postgis:db environment: - DATABASE_HOST=db - DATABASE_USER=docker - DATABASE_PASS=docker - DATABASE_NAME=gis - BACKUP_INTERVAL=1440 volumes: postgres_data:
运行:docker-compose up -d
使用psql客户端连接:
bashpsql -h localhost -U docker -p 25432 -l
(Ubuntu安装客户端:sudo apt-get install postgresql-client-9.6)
挂载本地目录保存数据:
bashmkdir -p ~/postgres_data docker run -d -v $HOME/postgres_data:/var/lib/postgresql kartoza/postgis
ALLOW_IP_RANGE允许从节点连接,配置POSTGRES_USER/POSTGRES_PASS作为复制凭据。REPLICATE_FROM(主节点IP/域名)、REPLICATE_PORT(默认5432)。示例参考sample/replication/docker-compose.yml,运行:make up
替换为自定义证书:
dockerfileFROM kartoza/postgis:11.0-2.5 ADD ssl_cert.pem /etc/ssl/certs/ssl_cert.pem ADD localhost_ssl_key.pem /etc/ssl/private/ssl_key.pem RUN chmod 400 /etc/ssl/private/ssl_key.pem
yamlservices: postgres: build: dockerfile: Dockerfile context: ssl_secured_docker environment: - SSL_CERT_FILE=/etc/ssl/certs/ssl_cert.pem - SSL_KEY_FILE=/etc/ssl/private/ssl_key.pem
挂载脚本到/docker-entrypoint-initdb.d/:
bashdocker run -d -v ./setup-db.sql:/docker-entrypoint-initdb.d/setup-db.sql kartoza/postgis
Tim Sutton ()、Gavin Fleming ()、Risky Maulana ()、Admire Nyakudya () December 2018
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 dailynuts/postgis 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: