【云原生】docker 搭建单机PostgreSQL操作详解

发布于:2025-04-03 ⋅ 阅读:(42) ⋅ 点赞:(0)

目录

一、前言

二、前置准备

2.1 服务器环境

2.2 docker环境

三、docker安装PostgreSQL过程

3.1 获取PostgreSQL镜像

3.2 启动容器

3.2.1 创建数据卷目录

3.2.2 启动pg容器

3.3 客户端测试连接数据库

四、创建数据库与授权

4.1 进入PG容器

4.2 PG常用操作命令

4.2.1 进入命令行

4.2.2 常用操作命令

四、写在文末


一、前言

在实际项目中,PostgreSQL具有很多使用场景,为了方便应用开发时快速接入和调试,需要有PostgreSQL环境,本文演示如何基于linux环境搭建单节点postgresql完整操作过程。

二、前置准备

2.1 服务器环境

基于centos7以上版本的系统,虚拟机或云服务一台,配置不低于2C4G。

2.2 docker环境

提前在服务器安装docker环境,后面需要基于docker安装PostgreSQL。

三、docker安装PostgreSQL过程

3.1 获取PostgreSQL镜像

使用下面的命令获取镜像

docker pull postgres

3.2 启动容器

3.2.1 创建数据卷目录

为了后续pg数据的持久化,需要提前创建一个数据卷映射目录

mkdir /usr/local/soft/pg/data

3.2.2 启动pg容器

使用下面的命令启动postgresql的容器

docker run -d \
  --name postgres \
  -e POSTGRES_USER=root\
  -e POSTGRES_PASSWORD=123456 \
  -e ALLOW_IP_RANGE=0.0.0.0/0 \
  -e POSTGRES_DB=postgres \
  -v /usr/local/soft/pg/data:/var/lib/postgresql/data \
  -p 54132:5432 \
  postgres:latest

参数说明:

  • -d ,以后台进程启动;

  • --name ,指定容器的名字为 :root;

  • POSTGRES_USER=postgres ,指定初始化的连接账户;

  • POSTGRES_PASSWORD=123456 ,指定初始化的连接密码;

  • ALLOW_IP_RANGE=0.0.0.0/0 ,指定允许所有的客户端可以连接;

  • POSTGRES_DB=postgres ,指定默认的数据库名称;

  • -v /usr/local/soft/pg/data:/var/lib/postgresql/data ,指定pg数据库的数据卷;

  • -p 5432:5432 ,容器与宿主机的映射端口,默认为5432 ;

容器运行成功,可以看到启动了一个pg的容器;

3.3 客户端测试连接数据库

本地使用navicat连接pg数据库,使用上述初始化的连接信息

四、创建数据库与授权

和mysql在使用的时候类似,为了保证操作pg数据库的安全性,需要进行相关的授权操作,pg的授权与mysql数据库的授权有所不同,接下来看具体的操作演示过程。

4.1 进入PG容器

找到容器ID,使用下面的命令进入容器

docker exec -it 容器ID /bin/bash

4.2 PG常用操作命令

4.2.1 进入命令行

进入容器之后,使用下面的命令进入PG的操作命令行,类似于mysql的命令行工具

psql -U postgres -h 服务器IP -p 54132 postgres

输入密码,验证成功后,就来到下面的命令行操作界面:

4.2.2 常用操作命令

1)列出当前所有数据库

\l

2)列出当前数据库的所有表

默认情况下,登录进来使用的是postges这个数据库,使用下面的命令可以查看所有表

3)切换数据库

使用下面的命令切换到另一个数据库

\c 数据库名称

4)创建数据库

CREATE DATABASE 数据库名称;

5)创建账户

CREATE USER 用户名 WITH PASSWORD '密码';

6)账户授权

pg数据库中对于连接的账户需要进行授权,有数据库授权,表授权等,下面分别是数据库授权,表授权的命令

  • 一般下面这两个命令是连起来用的,即先对数据库的连接账户授权,仅仅授权数据库还不够,还需要对数据库下面的所有表授权才可正常使用;

GRANT CONNECT, CREATE, TEMPORARY ON DATABASE "数据库名称" TO 用户名;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 用户名;

补充说明

  • 设置默认权限,使某个用户对未来在 public 模式下创建的表也拥有全部权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO 用户名;

四、写在文末

本文通过实际案例操作演示了如何基于Docker搭建pg的完整过程,并补充了pg数据库操作的常用命令和授权命令,希望对看到的同学有用,本篇到此结束,感谢观看。