腾讯云 Ubuntu 24.04上通过 Docker 部署 PostgreSQL

一、 前言

PostgreSQL 是一款功能强大的开源关系型数据库。

随着容器化技术的普及,使用 Docker 部署 PostgreSQL 不仅环境干净、易于维护,而且可以快速实现版本切换。

本文将手把手教你如何在腾讯云服务器 (操作系统为 Ubuntu Server 24.04 LTS)上,利用 Docker 快速部署 PostgreSQL 数据库,并通过本地电脑上的 DBeaver 数据库管理工具进行远程访问。

二、 准备工作

在开始之前,请确保你已经完成以下准备:

  1. 腾讯云服务器 :已购买并处于运行状态,镜像为 Ubuntu Server 24.04 LTS
  2. SSH 连接工具:如 Xshell、FinalShell 或系统自带的终端,用于连接你的云服务器
  3. 本地电脑 :已安装 DBeaver Community(免费开源)

三、 安装前验证

登录服务器并更新系统

使用 SSH 工具登录到你的腾讯云服务器。

Plain 复制代码
ssh ubuntu@你的服务器公网IP

登录成功后,首先更新系统软件包以确保安全性:

Plain 复制代码
sudo apt update && sudo apt upgrade -y

验证Docker

Plain 复制代码
docker --version

如果看到类似 Docker version 24.0.x 的输出,说明安装成功,

四、 使用 Docker 部署 PostgreSQL

使用 docker run 命令直接拉取并启动 PostgreSQL 容器,

这里以 PostgreSQL 16 为例(也可以替换为 postgres:15 等版本),

创建并运行容器

在终端中执行以下命令:

Plain 复制代码
docker run -d \
  --name my-postgres \
  -e POSTGRES_USER=admin \
  -e POSTGRES_PASSWORD=Pw@123456 \
  -e POSTGRES_DB=mydatabase \
  -p 5432:5432 \
  -v /data/postgres:/var/lib/postgresql/data \
  postgres:16

参数说明:

  • -d:后台运行容器。
  • --name my-postgres:为容器指定一个名称。
  • -e POSTGRES_USER:设置数据库超级用户名称(默认是 postgres)。
  • -e POSTGRES_PASSWORD:设置超级用户密码(请务必替换为强密码)。
  • -e POSTGRES_DB:初始化时自动创建一个数据库。
  • -p 5432:5432:将宿主机的 5432 端口映射到容器的 5432 端口。
  • -v /data/postgres:/var/lib/postgresql/data:将数据库数据持久化到宿主机,防止容器删除后数据丢失。

检查容器状态

Plain 复制代码
docker ps

看到 my-postgres 容器状态为 Up 即表示启动成功。

使用psql终端查看连接

五、 配置腾讯云安全组(关键步骤)

为了让本地电脑的 DBeaver 能够访问云服务器上的 PostgreSQL,需要在腾讯云控制台开放 5432 端口。

  1. 登录 腾讯云控制台 ,进入 云服务器 CVM 管理页面。
  2. 点击你的实例,找到 安全组 选项卡。
  3. 点击 编辑规则 或 配置安全组。
  4. 在"入站规则"中,点击 添加规则 :
    1. 协议类型:PostgreSQL (或自定义 TCP)
    2. 端口:5432
    3. 来源 :为了安全,建议填写你本地电脑的公网 IP(格式如 123.123.123.123/32)。如果是临时测试,可以填 0.0.0.0/0(允许所有 IP 访问,生产环境不推荐)
    4. 策略:允许,
  5. 点击 完成 保存,

六、 配置 DBeaver 连接 PostgreSQL

现在回到你的本地电脑,打开 DBeaver。

新建连接

  • 点击菜单栏的 数据库 -> 新建数据库连接(或点击工具栏的"插头"图标)。
  • 在弹出的窗口中,选择 PostgreSQL ,然后点击 下一步。

填写连接信息

在"主设置"页面填写以下信息:

  • 主机 :你的腾讯云服务器 公网 IP 地址。
  • 端口 :5432(默认已填)。
  • 数据库 :mydatabase(在 Docker 命令中设置的 POSTGRES_DB)
  • 用户名 :myuser(你在 Docker 命令中设置的 POSTGRES_USER)
  • 密码 :Pw@123456(点击"保存密码"旁边的输入框,填入你设置的密码)

测试连接

点击 测试连接 按钮。如果是第一次连接,DBeaver 可能会提示下载 PostgreSQL 驱动,点击 下载 即可。

如果一切正常,你会看到一个提示框显示 "已连接"。

完成并访问

点击 完成。现在你可以在 DBeaver 的左侧导航栏看到你的 PostgreSQL 数据库,可以开始创建表、执行 SQL 查询等操作了。

七、 常见问题排查

  1. 连接超时 :
    1. 检查腾讯云安全组是否已正确放行 5432 端口。
    2. 检查服务器本地防火墙(如果开启了 UFW)是否放行:sudo ufw allow 5432。
  2. 密码认证失败 :
    1. 检查 Docker 容器是否正常运行:docker logs my-postgres。
    2. 确认 DBeaver 中填写的用户名和密码与启动容器时设置的 -e 环境变量一致。
  3. 容器启动失败 :
    1. 检查宿主机 /data/postgres 目录权限,或尝试更换挂载目录。

八、 总结

通过本文,我们完成了以下工作:

  1. 在腾讯云 Ubuntu 24.04 LTS 服务器上安装了 Docker。
  2. 使用 Docker 快速部署了 PostgreSQL 数据库,并实现了数据持久化。
  3. 配置了腾讯云安全组,放通了数据库端口。
  4. 使用 DBeaver 成功远程连接并管理了云端的 PostgreSQL 数据库。

这种部署方式不仅轻量快捷,而且非常适合开发、测试环境,甚至可以通过 Docker Compose 轻松扩展为高可用集群。

希望这篇教程对你有所帮助!欢迎点赞收藏!!!

相关推荐
small_wh1te_coder几秒前
字节技术总监30讲 AI课:3概率、信息论与损失函数|从Logits到Cross-Entropy带你吃透大模型训练
人工智能
云表无代码开发2 分钟前
日本开发者彻底破防:中文太强了!换成英文直接裂开
大数据·服务器·人工智能·microsoft·信息可视化
致Great14 分钟前
不止自动写论文!谷歌 ScientistTwo 让 AI 自己做实验、补消融、回审稿
人工智能·深度学习·机器学习
XMAIPC_Robot14 分钟前
CODESYS 实时控制 + RK182X 大模型算力扩展|RK3576 工业边缘控制器设计
人工智能·fpga开发·机器人·rk3588+fpga
迪飞特科技17 分钟前
【无标题】
android·人工智能·本地化大模型
anda010925 分钟前
A2UI 协议: AI 直接画界面,而不是只会打字
人工智能·ai编程
IT_陈寒26 分钟前
JavaScript闭包的这个坑,我居然今天才爬出来
前端·人工智能·后端
张3蜂27 分钟前
Laya、Kev、NanoJev调用体验
人工智能
皮皮学姐分享-ppx28 分钟前
地级市、省级人才政策强度测算(2000-2025)
大数据·数据库·人工智能·百度·高考
m0_5873830029 分钟前
西安同城拼车软件开发实战指南:从零搭建高效系统
人工智能·小程序·数据挖掘·系统架构·需求分析