💜 想真正擅长编程? 从一门课程开始,100% 免费

《笔记》第三十三篇 Docker安装PostgreSQL数据库

第34讲 Docker安装PostgreSQL数据库

本讲基于视频实际讲解内容整理


一、本讲概述

从本讲开始,项目要接入真正的数据库(PostgreSQL)。直接用安装包装数据库比较麻烦,我们用 Docker 来跑 PostgreSQL:一条命令拉起数据库,自带环境隔离,删掉容器也不影响本机。本讲讲解用 Docker 安装并启动 PostgreSQL。


二、为什么用 Docker 装数据库

方式 缺点 Docker 方式
本机直接安装 配置繁琐、易污染系统环境 一条命令,隔离运行
多版本共存 端口/配置冲突 容器互不干扰
重装系统 数据丢失 数据用卷(volume)持久化

老师说明:Docker 把数据库打包成"容器",开箱即用。开发、测试、生产用同一套镜像,环境一致,最省心。


三、拉取并启动 PostgreSQL

3.1 拉取镜像

Shell
docker pull postgres:15

指定版本(如 15)更稳妥,避免默认 latest 带来的版本漂移。

3.2 启动容器

Shell
docker run -d \
  --name my-postgres \
  -e POSTGRES_USER=admin \
  -e POSTGRES_PASSWORD=123456 \
  -e POSTGRES_DB=bbs \
  -p 5432:5432 \
  -v pgdata:/var/lib/postgresql/data \
  postgres:15
参数 含义
-d 后台运行(detached)
--name 给容器起名,方便管理
-e POSTGRES_USER 超级用户名
-e POSTGRES_PASSWORD 超级用户密码
-e POSTGRES_DB 初始化时创建的数据库名
-p 5432:5432 把容器 5432 端口映射到本机 5432
-v pgdata:... 用数据卷持久化数据,容器删了数据还在

老师强调:-v 数据卷非常重要。如果不挂载卷,容器一删,里面的数据全没了。挂载后数据存在宿主机,可持久保存。


四、验证与管理

4.1 查看运行中的容器

Shell
docker ps

看到 my-postgres 状态为 Up 即启动成功。

4.2 进入容器执行 psql

Shell
docker exec -it my-postgres psql -U admin -d bbs

进入后可用 SQL 操作:

SQL
-- 查看所有表
\d

-- 创建表
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50)
);

-- 退出
\q

4.3 用图形化工具连接

也可以用 Navicat / DBeaver / pgAdmin 连接:

  • 主机:localhost
  • 端口:5432
  • 用户:admin
  • 密码:123456
  • 数据库:bbs

五、停止与重启

Shell
docker stop my-postgres     # 停止
docker start my-postgres    # 启动
docker rm -f my-postgres    # 强制删除容器(数据卷 pgdata 仍在)

六、本讲小结

知识点 要点
拉镜像 docker pull postgres:15
启动 docker run -d --name ... -e ... -p 5432:5432 -v 卷:路径
关键环境变量 USER / PASSWORD / DB
数据持久化 -v 挂载数据卷,删容器不丢数据
进入操作 docker exec -it 容器 psql -U 用户 -d 库
连接信息 localhost:5432 + 用户密码库名

七、课后练习

  1. 用 docker pull postgres:15 拉取镜像
  2. 用 docker run 启动一个名为 my-postgres 的容器,设置用户名/密码/库名并映射 5432 端口
  3. 用 -v 挂载数据卷,确保数据持久化
  4. 用 docker ps 确认容器在运行
  5. docker exec -it 进入容器,创建一个测试表并 \d 查看
  6. 尝试用图形化工具连接你的 PostgreSQL,验证能连上