乐于分享
好东西不私藏

docker compose安装带时序插件的Postgresql

docker compose安装带时序插件的Postgresql
简介
PostgreSQL(通常简称为 Postgres)是一个功能强大的开源关系型数据库管理系统(RDBMS),以其可靠性、功能丰富性和对 SQL 标准的严格遵循而闻名。

核心特点

1. 开源与社区驱动

  • BSD 许可证:自由使用、修改、商用,无 Oracle/MySQL 那样的版权争议

  • 活跃的开源社区,持续迭代 30 多年(始于 1986 年加州大学伯克利分校)

2. 高度兼容 SQL 标准

  • 对 SQL 标准的支持最全面之一

  • 支持复杂查询、窗口函数、CTE(公用表表达式)、递归查询等现代 SQL 特性

3. 丰富的数据类型

4. 强大的扩展性

  • 扩展(Extensions):无需修改内核即可增加功能

    • PostGIS:地理空间数据(GIS)支持

    • pg_stat_statements:SQL 性能分析

    • pg_trgm:模糊搜索、相似度匹配

    • TimescaleDB:时序数据库扩展

    • Citus:分布式 PostgreSQL

  • 自定义函数/存储过程:支持 PL/pgSQL、PL/Python、PL/Perl、C 等多种语言

5. 高级特性

架构层次

PostgreSQL 服务器实例(Cluster)├── 数据库 myapp_prod          ← 连接时必须指定一个│   ├── Schema public│   │   ├── 表 users│   │   └── 索引 idx_users_email│   ├── Schema analytics│   │   └── 视图 monthly_report│   └── 存储过程、触发器、自定义类型...│├── 数据库 myapp_test│   └── Schema public│└── 共享资源:配置文件、WAL 日志、后台进程

与 MySQL 的核心对比

适用场景

版本与生态

  • 当前稳定版:17.x(每年发一个大版本,支持 5 年)

  • 流行工具:

    • pgAdmin:官方图形化管理工具

    • psql:命令行客户端(功能极强大)

    • DBeaver/Navicat:通用数据库管理工具

    • ORM:SQLAlchemy(Python)、Hibernate(Java)、Prisma(Node.js)等都对 PG 支持最好

一句话总结

PostgreSQL 是一个"全能型"数据库:既能像 MySQL 一样做 OLTP 事务处理,又能像 Oracle 一样做复杂分析,还能像 MongoDB 一样处理 JSON 文档,同时保持开源免费。

1、拉取镜像
这里使用的是国内加速源
docker.1ms.run/timescale/timescaledb-ha:pg16
2、创建volume映射路径
midir conf data init-scripts
3、创建docker-compose.yml
version: '3.8'services:  postgres:    # 使用指定的镜像(国内加速镜像)    image: docker.1ms.run/timescale/timescaledb-ha:pg16    container_name: postgresql    restart: always    # 端口映射:宿主机端口:容器端口    ports:      - "5432:5432"    # 环境变量    environment:      POSTGRES_PASSWORD: 123456   # 【必填】设置超级用户密码      POSTGRES_USER: postgres     # 可选,设置超级用名,默认为 postgres      POSTGRES_DB: postgres       # 可选,默认创建同名数据库      TZ: Asia/Shanghai           # 设置容器时区    # 挂载卷:数据持久化 + 自定义配置文件    volumes:      # 数据目录映射(将容器数据持久化到宿主机的 ./data 目录)      - ./data:/var/lib/postgresql/data      # 自定义配置文件挂载(只读),需要提前在宿主机准备 postgresql.conf      - ./conf/postgresql.conf:/etc/postgresql/postgresql.conf:ro      # 可选:初始化脚本目录(首次启动时自动执行 .sql/.sh 文件)      - ./init-scripts:/docker-entrypoint-initdb.d:ro    # 启动命令:指定使用自定义配置文件    command: >      postgres      -c config_file=/etc/postgresql/postgresql.conf    # 资源限制(CPU / 内存)    deploy:      resources:        limits:          cpus: '2'      # 最多使用 2 个 CPU 核心          memory: 4G     # 最多使用 4GB 内存        reservations:          cpus: '1'      # 预留 1 个 CPU 核心          memory: 2G     # 预留 2GB 内存    # 可选:设置共享内存大小(PostgreSQL 推荐至少 64MB,默认 64MB)    # shm_size: 256mb
4、启动
docker compose up -d
5、使用

相关学习资料