如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个用于http://www.postgresql.org/的Docker镜像。
master分支当前包含PostgreSQL 9.6。不同版本的PostgreSQL可在GitHub仓库的https://github.com/frodenas/docker-postgresql/branches中找到。
要创建frodenas/postgresql镜像,请在docker-postgresql文件夹中执行以下命令:
docker build -t frodenas/postgresql . docker build -t frodenas/postgresql:9.6 .
要运行镜像并绑定到主机端口5432:
docker run -d --name postgresql -p 5432:5432 docker.xuanyuan.run/frodenas/postgresql
首次运行容器时,会创建一个具有所有权限的pgadmin用户,密码随机生成。要获取密码,请运行以下命令查看容器日志:
docker logs postgresql
您将看到类似以下的输出:
======================================================================== PostgreSQL用户: "pgadmin" PostgreSQL密码: "WH7fwqY7bJCEMYKC" ========================================================================
凭据
如果要预设凭据而非随机生成,可以设置以下环境变量:
POSTGRES_USERNAME:设置特定用户名POSTGRES_PASSWORD:设置特定密码示例:预设自定义用户名和密码
$ docker run -d \ --name postgresql \ -p 5432:5432 \ -e POSTGRES_USERNAME=myuser \ -e POSTGRES_PASSWORD=mypassword \ frodenas/postgresql
数据库
如果要在容器启动时创建数据库,可以设置以下环境变量:
POSTGRES_DBNAME:创建数据库POSTGRES_EXTENSIONS:为上述数据库创建扩展(仅在指定数据库时生效)示例:预设凭据并创建带扩展的数据库
$ docker run -d \ --name postgresql \ -p 5432:5432 \ -e POSTGRES_USERNAME=myuser \ -e POSTGRES_PASSWORD=mypassword \ -e POSTGRES_DBNAME=mydb \ -e POSTGRES_EXTENSIONS=citext \ frodenas/postgresql
持久化数据库数据
PostgreSQL服务器配置为将数据存储在容器内的/data目录。您可以将容器的/data卷映射到主机卷,使数据独立于运行中的容器:
$ mkdir -p /tmp/postgresql $ docker run -d \ --name postgresql \ -p 5432:5432 \ -v /tmp/postgresql:/data \ frodenas/postgresql
此镜像包含sanity-test命令,可与PostgreSQL服务交互(例如,此镜像的另一个运行中容器)。
$ docker run --entrypoint '' \ -e credentials='{"uri":"postgres://user:pass@host:port/dbname"}' \ frodenas/postgresql sanity-test
您也可以使用sanity-test命令对运行中的容器进行自测试(需指定POSTGRES_DBNAME=name):
docker run -d --name postgresql -p 5432:5432 -e POSTGRES_DBNAME=postgres docker.xuanyuan.run/frodenas/postgresql:9.6 && \ docker exec -ti postgresql sanity-test
输出将以以下内容结束:
未提供$credentials,进入自测试模式。 使用{"hosthame":"localhost","host":"localhost","port":5432,"username":"pgadmin","password":"vD4RhsyRKq9GfAhJ","dbname":"postgres","uri":"postgres://pgadmin:vD4RhsyRKq9GfAhJ@localhost:5432/postgres"}进行PostgreSQL完整性测试 等待postgres://pgadmin:vD4RhsyRKq9GfAhJ@localhost:5432/postgres准备就绪(最多60秒) localhost:5432 - 接受连接 Postgres已就绪 localhost:5432 - 接受连接 + psql postgres://pgadmin:vD4RhsyRKq9GfAhJ@localhost:5432/postgres -c 'DROP TABLE IF EXISTS sanitytest;' 注意:表"sanitytest"不存在,跳过 DROP TABLE + psql postgres://pgadmin:vD4RhsyRKq9GfAhJ@localhost:5432/postgres -c 'CREATE TABLE sanitytest(value text);' CREATE TABLE + psql postgres://pgadmin:vD4RhsyRKq9GfAhJ@localhost:5432/postgres -c 'INSERT INTO sanitytest VALUES ('\''storage-test'\'');' INSERT 0 1 + psql postgres://pgadmin:vD4RhsyRKq9GfAhJ@localhost:5432/postgres -c 'SELECT value FROM sanitytest;' + grep storage-test storage-test
如果您使用BOSH并配置了云配置,可以部署由BOSH管理的持久磁盘卷支持的镜像:
export BOSH_DEPLOYMENT=postgresql bosh2 deploy bosh-postgresql.yml --vars-store creds.yml
要获取随机生成的PostgreSQL用户名、密码和数据库名:
bosh2 int creds.yml --path /postgresql-username bosh2 int creds.yml --path /postgresql-password bosh2 int creds.yml --path /postgresql-dbname
版权所有 (c) 2014 Ferran Rodenas。详情参见https://github.com/frodenas/docker-postgresql/blob/master/LICENSE。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 frodenas/postgresql 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: