
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像由Geographica构建,基于PostgreSQL 12.2开发版本,集成PostGIS 3.0.1空间扩展及GEOS 3.8.0、PROJ 6.3.1依赖库,提供完整的空间数据库功能。主要用于地理信息系统(GIS)开发、空间数据存储与管理,支持数据持久化、配置自定义及安全密码管理,适合快速部署包含空间数据处理能力的数据库环境。
psql-docker脚本简化数据库交互操作pg_hba.conf和postgresql.conf配置文件使用Docker Compose
创建docker-compose.yml文件:
ymlversion: "3" services: postgis: image: docker.xuanyuan.run/geographica/postgis:unbiased_uakari ports: - "5432:5432" volumes: - db-data:/data environment: - POSTGRES_PASSWD=postgres volumes: db-data:
启动服务:
bashdocker-compose up
不使用Compose
直接运行容器:
bashdocker run --name postgis -p 5432:5432 docker.xuanyuan.run/geographica/postgis:unbiased_uakari
容器可通过以下环境变量配置:
postgresUTF-8en_USpg_hba.conf访问控制文件,详见配置数据存储postgresql.conf,详见配置数据存储本镜像编译包含以下软件版本:
镜像提供psql-docker脚本,用于在独立容器中打开psql控制台连接其他数据库。查看帮助:
bashpsql-docker -h
可运行任意命令,适用于数据库备份、交互式操作等场景:
交互式pg_dump(需输入密码)
bashdocker run --rm -ti -v /whatever/:/d --link the_container_running_the_database:pg \ docker.xuanyuan.run/geographica/postgis: \ pg_dump -b -E UTF8 -f /d/dump -F c -v -Z 9 -h pg -p 5432 -U postgres project
自动pg_dump(密码通过环境变量传递)
bashdocker run --rm -v /home/malkab/Desktop/:/d --link test_07:pg \ docker.xuanyuan.run/geographica/postgis: \ PGPASSWORD="new_password_here" pg_dump -b -E UTF8 -f /d/dump33 -F c \ -v -Z 9 -h pg -p 5432 -U postgres postgres
交互式psql
bashdocker run --rm -ti -v /home/malkab/Desktop/:/d --link test_07:pg \ docker.xuanyuan.run/geographica/postgis: \ PGPASSWORD="new_password_here" psql -h pg -p 5432 -U postgres postgres
数据库数据可通过数据卷或主机挂载目录持久化,供其他容器使用。容器会检查/data/目录是否为空:若为空则创建新数据存储,否则使用现有数据。
POSTGRES_PASSWD支持明文或PostgreSQL加密格式:
docker inspect可查看,安全性较低md5前缀+md5(password+username)哈希值)生成加密密码示例:
bashexport USER="projectuser" && \ export USERPASSWD="md5"$(printf '%s' "userpass" ${USER} | md5sum | cut -d ' ' -f 1) && \ export PGPASSWD="md5"$(printf '%s' "password_here" "postgres" | md5sum | cut -d ' ' -f 1) && \ docker run -d -P --name ageworkshoptestpg -e "POSTGRES_PASSWD=${PGPASSWD}" \ -e "CREATE_USER=${USER}" -e "CREATE_USER_PASSWD=${USERPASSWD}" \ docker.xuanyuan.run/geographica/postgis:
支持通过脚本和环境变量配置pg_hba.conf和postgresql.conf。
pg_hba.conf配置
通过pg_hba_conf脚本操作,支持三种模式:
pg_hba_conf l:查看当前配置内容pg_hba_conf a "line 1#line 2#...#line n":添加配置行pg_hba_conf d "line 1#line 2#...#line n":删除配置行示例(通过exec执行):
bashdocker exec -ti whatevercontainer pg_hba_conf a \ "host all all 23.123.22.1/32 trust#host all all 93.32.12.3/32 md5"
环境变量PG_HBA默认值:
txtlocal all all trust#host all all 127.0.0.1/32 trust#host all all 0.0.0.0/0 md5#host all all ::1/128 trust
postgresql.conf配置
通过postgresql_conf脚本操作,语法与pg_hba_conf相同。环境变量PG_CONF默认值:
txtmax_connections=100#listen_addresses='*'#shared_buffers=128MB#dynamic_shared_memory_type=posix#log_timezone='UTC'#datestyle='iso, mdy'#timezone='UTC'#lc_messages='en_US.UTF-8'#lc_monetary='en_US.UTF-8'#lc_numeric='en_US.UTF-8'#lc_time='en_US.UTF-8'#log_statement='all'#log_directory='pg_log'#log_filename='postgresql-%Y-%m-%d_%H%M%S.log'#logging_collector=on#client_min_messages=notice#log_min_messages=notice#log_line_prefix='%a %u %d %r %h %m %i %e'#log_destination='stderr,csvlog'#log_rotation_size=500MB
日志存储路径:$POSTGRES_DATA_FOLDER/pg_log
容器支持通过信号优雅关闭数据库:
bashdocker kill -s SIGTERM containername
bashdocker kill -s SIGINT containername
bashdocker kill -s SIGQUIT containername
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 geographica/postgis 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: