PostgreSQL数据库部署linux服务器流程

PostgreSQL数据库部署linux服务器流程

一、配置需求

1. 系统要求

一台装了 Docker 的服务器

该服务器能与本地win电脑ping通

操作系统:Ubuntu 22.04(推荐)

2. 资源需求

PostgreSQL 15.4 镜像(Docker官方仓库)

国内的能用来拉取镜像的docker镜像源

  1. 预备配置参数

|------------|-----------|
| 参数 | 值 |
| 端口 | 5432 |
| 用户名 | postgres |
| 密码 | postgres |
| 默认数据库 | postgres |

二、大概流程简述

拉取官方 PostgreSQL 镜像

创建并启动容器

配置数据持久化存储

设置数据库用户凭证

验证数据库连接

三、验证环节

1. 验证 Docker 环境

复制代码
# 检查 Docker 是否安装

sudo docker --version

(如图所示结果)

显示类似 Docker version 24.03.1, build xxxx 就说明已安装。

复制代码
# 检查 Docker 服务是否运行

sudo systemctl status docker

(如图所示结果)

看到 active (running) 就正常。

退出查看:ctrl+c

2. 验证镜像源是否能进行拉取镜像

复制代码
# 拉取测试镜像

sudo docker pull hello-world

(失败结果如图所示)

(成功结果如图所示)

能正常运行就说明镜像源没问题。

如果拉取失败,配置国内 Docker 镜像加速器

创建文件

复制代码
sudo mkdir -p /etc/docker

sudo vim /etc/docker/daemon.json

配置加速镜 清空文件内容,写入以下 JSON(注意格式)

开始编写按:i

复制代码
{

"registry-mirrors": [

"https://docker.m.daocloud.io",

"https://docker.1ms.run",

"https://docker.anyhub.us.kg"

],

"dns": ["223.5.5.5", "114.114.114.114"]

}

退出编写+保存+退出:esc+:wq

应用配置

复制代码
sudo systemctl daemon-reload

重启docker

复制代码
sudo systemctl restart docker

配置成功后,重新执行上面的拉取命令测试即可。

四、具体流程

1. 拉取 PostgreSQL 镜像

复制代码
# 拉取官方 PostgreSQL 15.4 镜像

sudo docker pull postgres:15.4

(如图所示结果)拉取时间实测需要12分钟

复制代码
# 验证镜像是否下载成功

sudo docker images postgres:15.4

(成功结果如图所示)

2. 创建数据持久化目录

复制代码
# 创建存储目录

sudo mkdir -p /opt/postgresql/data

# 设置权限(必须)

sudo chown -R 999:999 /opt/postgresql/data

3. 创建并启动 PostgreSQL 容器

复制代码
# 一键创建并启动容器

sudo docker run -d \

--name postgres_db \

--restart unless-stopped \

-e POSTGRES_USER=postgres \

-e POSTGRES_PASSWORD=postgres \

-e POSTGRES_DB=postgres \

-p 5432:5432 \

-v /opt/postgresql/data:/var/lib/postgresql/data \

postgres:15.4

(成功结果如图所示)

复制代码
# 查看容器是否启动成功

sudo docker ps | grep postgres_db

(成功结果如图所示)

看到输出就说明启动成功了。

4. 验证数据库连接

复制代码
# 进入容器内部

sudo docker exec -it postgres_db psql -U postgres

(成功结果如图所示)

进入后执行以下命令验证

复制代码
#版本显示

SELECT version();

(成功结果如图所示)

退出查看:ctrl+c

数据库列表

复制代码
\l

(成功结果如图所示)

退出查看:ctrl+c

退出数据库

复制代码
\q

5. 配置远程访问

如果需要从容器外连接数据库:

复制代码
# 修改配置允许远程连接

sudo docker exec -it postgres_db bash -c "echo \"host all all 0.0.0.0/0 md5\" >> /var/lib/postgresql/data/pg_hba.conf"

# 重启容器生效

sudo docker restart postgres_db

五、常用管理命令

复制代码
# 启动容器

sudo docker start postgres_db

# 停止容器

sudo docker stop postgres_db

# 查看容器日志

sudo docker logs -f postgres_db

# 进入容器 bash

sudo docker exec -it postgres_db bash

六、验证连接

1. 服务器本地验证

复制代码
# 进入容器内部连接数据库

sudo docker exec -it postgres_db psql -U postgres

(成功结果如图所示)

2. Windows 本地连接

使用 Python 测试连接

进入虚拟环境,安装 psycopg2 库:

复制代码
pip install psycopg2-binary

(成功结果如图所示)

创建测试脚本:

复制代码
#text01.py

import psycopg2

try:

conn = psycopg2.connect(

host="192.168.1.128",

port="5432",

database="postgres",

user="postgres",

password="postgres"

)

print("连接成功!")

cursor = conn.cursor()

cursor.execute("SELECT version();")

print("PostgreSQL 版本:", cursor.fetchone())

cursor.close()

conn.close()

except Exception as e:

print("连接失败:", e)

⚠️ 注意:请将代码中的 192.168.1.128 替换为您自己的服务器 IP 地址。

(成功结果如图所示)

运行脚本:

复制代码
python test01.py

(成功结果如图所示)

看到"连接成功!"就说明连接正常。

相关推荐
Time_Memory_cici18 分钟前
在Windows系统安装Pycharm以及PyTorch方法
pytorch·windows·pycharm
梦想的初衷~19 分钟前
CESM2 完整实操学习大纲:环境搭建、案例运行、耦合模拟与代码开发
linux·地球系统模式·cesm2·气候模式模拟·clm 陆面模型·cam 大气模式·模式移植编译
肖永威21 分钟前
python版微电网仿真工具的前端托管选型:从http.server到FastAPI StaticFiles
前端·python·http·fastapi
梦影_23 分钟前
MySQL进阶教程(二)—— 储存过程与触发器(下)
开发语言·数据库·后端·sql·mysql·oracle·数据库开发
a59865224 分钟前
原生ARM云手机实测|ARM服务器底座,主流手游兼容性、闪退、帧率专项测试
服务器·arm开发·智能手机·云手机
a59865226 分钟前
工作室批量多开云手机|ARM 服务器方案成本解析、架构选型与踩坑总结
服务器·arm开发·智能手机·云手机
工业涂料百问28 分钟前
陶瓷涂料的光泽度怎么检测?20°、60°、85° 三个角度怎么选
数据库
lg_cool_29 分钟前
Python 代码打包
开发语言·python
叼烟扛炮31 分钟前
Linux 学习笔记(三):文件管理与文本查看
linux·笔记·学习
木雷坞33 分钟前
PHP两项9.2分漏洞:Docker容器更新与版本核验教程
开发语言·docker·php