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

建表结果如下

相关推荐
冰封之寂6 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
小柯南敲键盘7 小时前
图片翻译API接入与自动化实现指南
运维·python·自动化
952368 小时前
Docker - 基础
运维·后端·docker·容器
Promise微笑8 小时前
智能激光清障仪选型指南:高效运维与安全保障的关键考量
运维·安全
Code_Ignis8 小时前
docker国内可用源(持续维护)
运维·docker·容器
一叶龙洲9 小时前
向日葵远程Ubuntu,支持隐私屏
linux·运维·ubuntu
酷可达拉斯9 小时前
Linux操作系统-shell编程之Grep与正则表达式
linux·运维·服务器·正则表达式·centos
我星期八休息12 小时前
网络编程—UDP与TCP
linux·运维·网络·数据库·网络协议·tcp/ip·udp
Jerry小杰15 小时前
运维神器|单端口搞定多台内网SSH!frp端口复用终极教程
运维·ssh
水中加点糖15 小时前
Java中使用远程PlayWright进行网页接口测试(附Docker部署方式)
java·docker·web测试·devtools·playwright·ai自动化测试