Postgresql 在Windows10 docker上部署踩坑教程

背景:最近在学卡哥的java agent,在项目环境配置这里卡了好久,终于解决,故写一篇记录自己的踩坑过程。

一、前提准备:安装并配置 Docker Desktop

这里网上都有,就不赘述了,随便搜一个教程就行

安装完成后,打开 Windows 终端,输入,若能正常返回 Docker 版本信息,说明环境配置成功:

bash 复制代码
C:\Users\Harvey Zhou>docker --version
Docker version 29.1.3, build f52814d

最好把镜像源也给配置一下

二、拉取带有 pgvector 插件的 PostgreSQL 镜像

由于拉取国外的镜像比较慢,这里推荐一个镜像网站https://docker.aityp.com/

搜索带有pgvector的postgresql,复制国内镜像源拉取

使用docker pull 命令拉取,成功后在docker界面显示如下

三、创建并运行 PostgreSQL 容器

在这里博主就踩了许多坑,尤其是一直设置不了数据库密码,导致无法正常启动postgresql

使用docker run命令创建容器,同时配置端口映射、密码、数据持久化等关键参数,命令如下

bash 复制代码
docker run -it --name postgresql -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123456 -e POSTGRES_DB=vector_db -v postgres-data:/var/lib/postgresql/data -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.2.1
dff13f85c50bcfdcd793084d4237fdfad0c5879528c90aac205b7d48386bfc23

其中

bash 复制代码
--name postgres-pgvector \  # 容器名称,方便后续在Docker界面识别
  -p 5432:5432 \  # 端口映射:主机5432端口 → 容器5432端口(PostgreSQL默认端口)
  -e POSTGRES_USER=postgres \  # PostgreSQL超级用户名称
  -e POSTGRES_PASSWORD=123456 \  # PostgreSQL超级用户密码(可自定义,建议修改为强密码)
  -e POSTGRES_DB=vector_db \  # 初始化创建的数据库名称
  -v postgres-pgvector-data:/var/lib/postgresql/data \  # 数据卷挂载:持久化PostgreSQL数据(容器删除后数据不丢失)
  pgvector/pgvector:pg15  # 镜像名称(与步骤1拉取的镜像保持一致)

如果你不是和我选择一样的镜像的话,只需要改动-d后面的代码,把docker Image界面中的container和Tag拼在一起,用分号连接上。

运行完成后,在cmd中输入docker ps -a,如果有输出,则证明Postgresql容器建立完成

使用 PgAdmin连接数据库,配置如下,根据自己的配置自行修改

四、创建数据库及建表

Pgdmin中提供了可视化的数据库和建表方式,直接用

建jchatmind数据库后,点击Query Tool,导入卡哥的sql文件并执行即可

建表结果如下

相关推荐
天才奇男子9 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
小李独爱秋9 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
Dying.Light10 小时前
Linux部署问题
linux·运维·服务器
S190110 小时前
Linux的常用指令
linux·运维·服务器
萤丰信息10 小时前
AI 筑基・生态共荣:智慧园区的价值重构与未来新途
大数据·运维·人工智能·科技·智慧城市·智慧园区
小义_11 小时前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器
运维小欣11 小时前
Agentic AI 与 Agentic Ops 驱动,智能运维迈向新高度
运维·人工智能
_运维那些事儿12 小时前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
Trouvaille ~13 小时前
【Linux】UDP Socket编程实战(一):Echo Server从零到一
linux·运维·服务器·网络·c++·websocket·udp
嵌入小生00713 小时前
Shell | 命令、编程及Linux操作系统的基本概念
linux·运维·服务器