一、 前言

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 工具登录到你的腾讯云服务器。

ssh ubuntu@你的服务器公网IP

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

sudo apt update && sudo apt upgrade -y

在这里插入图片描述

验证Docker

docker --version

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

在这里插入图片描述

四、 使用 Docker 部署 PostgreSQL

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

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

4.1 创建并运行容器

在终端中执行以下命令:

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:将数据库数据持久化到宿主机,防止容器删除后数据丢失。

4.2 检查容器状态

docker ps

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

在这里插入图片描述

4.3 使用psql终端查看连接

在这里插入图片描述

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

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

  • 登录 腾讯云控制台,进入 云服务器 CVM 管理页面。

  • 点击你的实例,找到 安全组 选项卡。

  • 点击 编辑规则配置安全组

  • 在“入站规则”中,点击 添加规则

    • 协议类型:PostgreSQL (或自定义 TCP)
    • 端口:5432
    • 来源:为了安全,建议填写你本地电脑的公网 IP(格式如 123.123.123.123/32)。如果是临时测试,可以填 0.0.0.0/0(允许所有 IP 访问,生产环境不推荐)
    • 策略:允许,
  • 点击 完成 保存,

在这里插入图片描述

六、 配置 DBeaver 连接 PostgreSQL

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

6.1 新建连接

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

在这里插入图片描述

6.2 填写连接信息

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

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

6.3 测试连接

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

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

在这里插入图片描述

6.4 完成并访问

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

在这里插入图片描述

七、 常见问题排查

连接超时

  1. 检查腾讯云安全组是否已正确放行 5432 端口。
  2. 检查服务器本地防火墙(如果开启了 UFW)是否放行:sudo ufw allow 5432

密码认证失败

  1. 检查 Docker 容器是否正常运行:docker logs my-postgres
  2. 确认 DBeaver 中填写的用户名和密码与启动容器时设置的 -e 环境变量一致。

容器启动失败

  1. 检查宿主机 /data/postgres 目录权限,或尝试更换挂载目录。

八、 总结

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

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

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

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

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐