
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像基于官方PostgreSQL镜像构建,预集成了pgvector和PostGIS两个扩展。pgvector是PostgreSQL的向量数据库扩展,支持向量存储与相似度搜索;PostGIS是地理空间数据库扩展,提供空间数据类型、索引及分析功能。该镜像旨在为需要同时处理地理空间数据和向量检索的应用提供开箱即用的数据库环境。
直接运行容器
bashdocker run -d \ --name postgres-vector-gis \ -e POSTGRES_USER=myuser \ -e POSTGRES_PASSWORD=mypassword \ -e POSTGRES_DB=mydb \ -p 5432:5432 \ -v postgres-data:/var/lib/postgresql/data \ [镜像名称]
docker-compose配置示例
yamlversion: '3.8' services: postgres: image: docker.xuanyuan.run/[镜像名称] container_name: postgres-vector-gis environment: POSTGRES_USER: myuser POSTGRES_PASSWORD: mypassword POSTGRES_DB: mydb ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data restart: unless-stopped volumes: postgres-data:
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
| POSTGRES_USER | 数据库超级用户 | postgres |
| POSTGRES_PASSWORD | 超级用户密码 | 无(需手动设置) |
| POSTGRES_DB | 初始化数据库名称 | 与POSTGRES_USER相同 |
| PGDATA | 数据库数据存储路径 | /var/lib/postgresql/data |
| POSTGRES_INITDB_ARGS | 初始化数据库时的额外参数 | 无 |
镜像已预安装扩展,使用时需在数据库中创建扩展:
bashdocker exec -it postgres-vector-gis psql -U myuser -d mydb
sql-- 启用pgvector CREATE EXTENSION vector; -- 启用PostGIS CREATE EXTENSION postgis; -- 可选:启用PostGIS额外功能 CREATE EXTENSION postgis_topology; CREATE EXTENSION fuzzystrmatch; CREATE EXTENSION postgis_tiger_geocoder;
通过挂载卷(如上述示例中的postgres-data卷)实现数据持久化,避免容器删除后数据丢失。建议生产环境使用命名卷或绑定主机目录。
pgvector使用示例
sql-- 创建含向量字段的表 CREATE TABLE items ( id SERIAL PRIMARY KEY, embedding vector(3) -- 3维向量 ); -- 插入向量数据 INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]'); -- 计算向量相似度(欧氏距离) SELECT id, embedding <-> '[3,2,1]' AS distance FROM docker.xuanyuan.run/items ORDER BY distance;
PostGIS使用示例
sql-- 创建含地理字段的表 CREATE TABLE locations ( id SERIAL PRIMARY KEY, name VARCHAR(100), geom GEOMETRY(Point, 4326) -- WGS84坐标系点类型 ); -- 插入地理数据 INSERT INTO locations (name, geom) VALUES ('北京', ST_SetSRID(ST_MakePoint(116.4042, 39.9153), 4326)); -- 空间查询(查找距离给定点100公里内的位置) SELECT name, ST_Distance(geom, ST_SetSRID(ST_MakePoint(116.3, 39.9), 4326))/1000 AS distance_km FROM docker.xuanyuan.run/locations WHERE ST_DWithin( geom, ST_SetSRID(ST_MakePoint(116.3, 39.9), 4326), 100000 -- 100000米 = 100公里 );
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务