groonga/pgroongaPgroonga 是 PostgreSQL 的一款高性能全文搜索扩展,支持中文、日文等多语言分词,查询速度快且功能丰富。这个 Docker 镜像封装了 PostgreSQL 和 Pgroonga,帮你省去手动编译安装的麻烦,快速搭建带全文搜索能力的数据库环境。
使用前需确保已安装 Docker。可通过以下命令检查 Docker 是否安装:
bashdocker --version # 输出 Docker 版本信息即表示安装成功
默认拉取最新版本(包含最新 PostgreSQL 和 Pgroonga):
bashdocker pull groonga/pgroonga
如需指定版本(如 PostgreSQL 16 + Pgroonga 3.2.0),可带标签拉取:
bashdocker pull groonga/pgroonga:16-3.2.0 # 格式:{PostgreSQL版本}-{Pgroonga版本}
启动容器时,需配置端口映射(访问数据库)、数据持久化(避免容器删除后数据丢失)和必要的环境变量(如数据库密码)。
基础命令示例(适合测试,数据不持久化):
bashdocker run -d \ --name my-pgroonga \ -p 5432:5432 \ # 本地端口:容器内端口(PostgreSQL默认端口5432) -e POSTGRES_PASSWORD=mysecretpassword \ # 设置数据库密码(必填) groonga/pgroonga
生产环境建议(数据持久化,指定用户和数据库名):
bashdocker run -d \ --name my-pgroonga \ -p 5432:5432 \ -v /path/on/host:/var/lib/postgresql/data \ # 本地目录挂载到容器数据目录(持久化数据) -e POSTGRES_USER=myuser \ # 自定义数据库用户(默认postgres) -e POSTGRES_DB=mydb \ # 自定义数据库名(默认与用户名相同) -e POSTGRES_PASSWORD=StrongPassword123! \ # 强密码(生产环境必须) groonga/pgroonga:16-3.2.0 # 指定稳定版本
容器启动后,用 psql 工具连接(需先安装 PostgreSQL 客户端,或用容器内的 psql):
bashpsql -h localhost -p 5432 -U myuser -d mydb
输入密码后即可进入 PostgreSQL 命令行。
bashdocker exec -it my-pgroonga psql -U myuser -d mydb
启动容器时可通过 -e 设置以下常用环境变量:
POSTGRES_USER:数据库用户名(默认 postgres)POSTGRES_PASSWORD:用户密码(必填,无默认值)POSTGRES_DB:默认数据库名(默认与 POSTGRES_USER 相同)PGROONGA_VERSION:指定 Pgroonga 版本(镜像标签已包含时无需设置)POSTGRES_INITDB_ARGS:初始化数据库时的额外参数(如 --encoding=UTF8)如需自定义 PostgreSQL 配置(如修改 shared_buffers),可挂载本地 postgresql.conf 到容器:
bashdocker run -d \ --name my-pgroonga \ -v /path/on/host/postgresql.conf:/var/lib/postgresql/data/postgresql.conf \ # 挂载配置文件 -e POSTGRES_PASSWORD=mysecretpassword \ groonga/pgroonga
以下是一个简单的全文搜索测试流程,在 PostgreSQL 命令行中执行:
sqlCREATE TABLE articles ( id SERIAL PRIMARY KEY, title text, content text ); -- 添加 Pgroonga 索引(支持全文搜索) CREATE INDEX pgroonga_articles_index ON articles USING pgroonga (title, content);
sqlINSERT INTO articles (title, content) VALUES ('PostgreSQL 全文搜索', 'Pgroonga 让 PostgreSQL 支持高效中文分词'), ('Docker 部署技巧', '用 Docker 快速搭建 Pgroonga 环境,省去编译步骤');
sqlSELECT * FROM articles WHERE pgroonga_match_text(content, '中文');
结果会返回第一条数据,验证全文搜索功能正常。
-v 挂载数据卷,否则容器删除后数据会丢失。16-3.2.0),避免自动更新到不兼容版本。5432 端口)。docker logs my-pgroonga 查看容器运行日志,排查启动或连接问题。通过以上步骤,你可以快速上手 Pgroonga Docker 镜像,搭建支持全文搜索的 PostgreSQL 环境。更多细节可参考 GitHub 仓库。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务