
如果你使用 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(常简称为"Postgres")是一个对象关系型数据库管理系统(ORDBMS),强调可扩展性和标准合规性。作为数据库服务器,其主要功能是安全存储数据并支持最佳实践,随后根据其他软件应用的请求(无论是同一计算机上的应用还是网络中另一台计算机上的应用,包括互联网)检索数据。它能处理从小型单机应用到具有大量并发用户的大型互联网应用的工作负载。最新版本还提供数据库本身的复制功能,以增强安全性和可扩展性。
本镜像基于 https://github.com/docker-library/postgres 的发布版本打包。
镜像源码:https://github.com/boxcutter/oci/tree/main/postgres
适用于需要可靠数据存储和管理的各类应用场景,包括但不限于:
启动实例
bashdocker container run \ --detach \ # 后台运行容器 --name db \ # 容器名称为db --publish 5432:5432 \ # 将容器的5432端口映射到主机的5432端口 --env POSTGRES_USER=postgres \ # 设置数据库用户名 --env POSTGRES_PASSWORD=superseekret \ # 设置数据库密码 docker.io/boxcutter/postgres:15-noble
创建示例数据库
bashdocker container run \ --interactive --tty \ # 交互式终端 --env PGPASSWORD=superseekret \ # 设置psql连接密码 docker.io/boxcutter/postgres:15-noble psql -h host.docker.internal -p 5432 -U postgres
连接成功后,在psql终端中执行以下SQL:
sqlCREATE TABLE employees ( id SERIAL PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), email VARCHAR(100), hire_date DATE ); INSERT INTO employees (first_name, last_name, email, hire_date) VALUES ('John', 'Doe', 'john.doe@example.com', '2023-01-15'), ('Jane', 'Smith', 'jane.smith@example.com', '2023-02-20'), ('Alice', 'Johnson', 'alice.johnson@example.com', '2023-03-10'), ('Bob', 'Brown', 'bob.brown@example.com', '2023-04-05'); select * from employees;
查询结果应显示:
id | first_name | last_name | email | hire_date ----+------------+-----------+---------------------------+------------ 1 | John | Doe | john.doe@example.com | 2023-01-15 2 | Jane | Smith | jane.smith@example.com | 2023-02-20 3 | Alice | Johnson | alice.johnson@example.com | 2023-03-10 4 | Bob | Brown | bob.brown@example.com | 2023-04-05 (4 rows)
输入\q退出psql终端。
停止容器
bashdocker container stop db # 停止容器 docker container rm db # 删除容器(此操作会丢失数据)
创建用户定义桥接网络
bashdocker network create database-network # 创建名为database-network的网络 docker network ls # 查看网络列表
网络列表应显示:
NETWORK ID NAME DRIVER SCOPE 52101a1b9849 bridge bridge local 05d8de6c671c database-network bridge local 6a3c6e764f31 host host local b343fc5c797c none null local
在网络上启动实例
bashdocker container run \ --detach \ --name db \ --network database-network \ # 将容器加入database-network网络 --publish 5432:5432 \ --env POSTGRES_USER=postgres \ --env POSTGRES_PASSWORD=superseekret \ docker.io/boxcutter/postgres:15-noble
可通过docker network inspect database-network查看容器是否已加入网络,在"Containers"部分会显示:
json"Containers": { "3ac279eeed5eac25df31113171d6944d67c81a6e871bdc3e7aa0cba1069f70ba": { "Name": "db", .... } }
创建示例数据库
在同一网络中,可通过容器名称访问数据库:
bashdocker container run \ --interactive --tty \ --network database-network \ # 加入同一网络 --env PGPASSWORD=superseekret \ docker.io/boxcutter/postgres:15-noble psql -h db -p 5432 -U postgres # 使用容器名称db作为主机名
连接成功后输入\q退出psql终端。
Dockerfile中已声明数据卷:
dockerfileVOLUME /var/lib/postgresql/data
使用数据卷持久化数据
bashdocker volume create pgdata # 创建名为pgdata的数据卷 docker container run \ --detach \ --name db \ --publish 5432:5432 \ --env POSTGRES_USER=postgres \ --env POSTGRES_PASSWORD=superseekret \ --mount source=pgdata,target=/var/lib/postgresql/data \ # 挂载数据卷 docker.io/boxcutter/postgres:15-noble
验证数据卷挂载
使用docker inspect db查看挂载情况,在"Mounts"部分应显示:
json"Mounts": [ { "Type": "volume", "Name": "pgdata", "Source": "/var/lib/docker/volumes/pgdata/_data", "Destination": "/var/lib/postgresql/data", "Driver": "local", "Mode": "z", "RW": true, "Propagation": "" } ]
查看数据卷内容
可通过Ubuntu容器挂载数据卷查看内容:
bashdocker run -it --rm \ --mount source=pgdata,target=/var/lib/postgresql/data \ docker.io/ubuntu ls /var/lib/postgresql/data
清理资源
bashdocker container stop db # 停止容器 docker container rm db # 删除容器 docker volume rm pgdata # 删除数据卷
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 boxcutter/postgres 相关的常用 Docker 镜像,适用于 关系型数据库、复杂查询、数据完整性 等不同场景: