postgres在docker中使用

记录个人开发过程中postgres在docker中的使用,以便后续查看。

Dockerfile

个人是在M1电脑上开发,所以platform使用linux/amd64来兼容amd芯片。

shell 复制代码
FROM --platform=linux/amd64 postgres:16.1-alpine
COPY ./poetrydb.sql /docker-entrypoint-initdb.d/poetrydb.sql

初始化脚本

创建表时,数据使用jsonb的方式来存储数据,这样就可以少见很多列

poetrydb.sql:

sql 复制代码
DROP TABLE IF EXISTS "public"."tbl_poetry";
CREATE TABLE "public"."tbl_poetry" (
	"id" uuid NOT NULL,
	"data" jsonb NOT NULL
)
WITH (OIDS=FALSE);
ALTER TABLE "public"."tbl_poetry" OWNER TO "postgres";

-- ----------------------------
--  Primary key structure for table tbl_poetry
-- ----------------------------
ALTER TABLE "public"."tbl_poetry" ADD PRIMARY KEY ("id") NOT DEFERRABLE INITIALLY IMMEDIATE;

打包命令

docker.sh:

shell 复制代码
 #!/bin/bash
 docker build -t xxx/poetry_db:1.0.0 .
 docker push xxx/poetry_db:1.0.0

开发打包

执行sh docker.sh打包并push镜像。

图形化链接工具

使用navicat Premium

Navicat Premium 是一套数据库管理工具,让你以单一程序同时连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。 此外,它与 Drizzle、OurDelta 和 Percona Server 兼容,并支持 Amazon RDS、Amazon Aurora、Amazon Redshift、SQL Azure、Oracle Cloud、Google Cloud和 OceanBase 等云数据库。

点击链接,选择PostgreSQL

输入链接名、主机、端口、数据库,用户名和密码,点击测试链接,成功后点击保存

然后链接数据库就能看到数据啦

索引

如果数据量多找到查询变慢,可以对某些字段添加索引,比如:

sql 复制代码
CREATE INDEX index_createTime ON tbl_poetry  USING gin ((data->'createTime'));

总结

总体来说还是比较简单的。

相关推荐
不爱笑的良田6 分钟前
从零开始的云原生之旅(十二):从 Service 到 Ingress——K8s 服务暴露完全指南
云原生·容器·kubernetes
中电金信7 分钟前
云原生时代,应用运维模式如何破局?
运维·云原生
ringking12340 分钟前
docker源文件配置以及密钥文件
运维·docker·容器
编织幻境的妖43 分钟前
Docker和Kubernetes 常用命令
docker·容器·kubernetes
Code Warrior1 小时前
【Linux】传输层协议UDP
linux·运维·udp
Evan芙1 小时前
Bash 变量命名规则与类型使用
linux·运维·开发语言·chrome·bash
menge23332 小时前
Linux网站搭建
linux·运维·网络
Bruce_Liuxiaowei2 小时前
Kali Linux 加入 Windows 域实战指南:解决域发现与加入失败问题
linux·运维·windows
梁正雄3 小时前
linux服务-nginx原理与安装-1
linux·运维·nginx
❀͜͡傀儡师3 小时前
docker-compose一键部署Hadoop集群
hadoop·docker·容器