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文件并执行即可

建表结果如下

相关推荐
草莓熊Lotso2 小时前
Qt 控件核心入门:从基础认知到核心属性实战(含资源管理)
运维·开发语言·c++·人工智能·后端·qt·架构
张太行_11 小时前
Linux静态库:多模块高效管理
linux·运维·服务器
wgl66652012 小时前
Linux---基础IO!
linux·运维·服务器
Ancelin安心12 小时前
kali-dirsearch的使用
linux·运维·服务器·python·计算机网络·web安全·网络安全
jun_bai13 小时前
python+Java的网盘程序升级版。无感知备份文档,保护数据资产利器。
运维·服务器
suzhou_speeder13 小时前
PoE 延长器:突破 PoE 距离限制,优化网络灵活部署方案
运维·网络·poe·poe交换机·poe延长器
—Qeyser14 小时前
Flutter GestureDetector 完全指南:让任何组件都能响应手势
flutter·云原生·容器·kubernetes
月光下的麦克14 小时前
如何查案动态库版本
linux·运维·c++
EndingCoder14 小时前
索引类型和 keyof 操作符
linux·运维·前端·javascript·ubuntu·typescript