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

news2025/4/1 14:19:09

目录

一、前言

二、前置准备

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数据库操作的常用命令和授权命令,希望对看到的同学有用,本篇到此结束,感谢观看。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2324542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费使用!OpenAI 全量开放 GPT-4o 图像生成能力!

2025年3月26日,OpenAI正式推出GPT-4o原生图像生成功能,这一更新不仅标志着多模态AI技术的重大突破,更引发了全球AI厂商的激烈竞争。从免费用户到企业开发者,从创意设计到科学可视化,GPT-4o正在重塑图像生成的边界。本文…

jetson orin nano super AI模型部署之路(三)stable diffusion部署

先看一下部署后的界面和生成的图片。 在jetson orin nano super上部署stable diffusion比较简单,有现成的docker image和代码可用。 docker image拉取 使用的docker image是dustynv/stable-diffusion-webui,对于jetson orin nano super的jetpack6.2来说…

WebRTC的ICE之TURN协议的交互流程中继转发Relay媒体数据的turnserver的测试

WebRTC的ICE之TURN协议的交互流程和中继转发Relay媒体数据的turnserver的测试 WebRTC的ICE之TURN协议的交互流程中继转发Relay媒体数据的turnserver的测试 WebRTC的ICE之TURN协议的交互流程和中继转发Relay媒体数据的turnserver的测试前言一、TURN协议1、连接Turn Server 流程①…

HTTP---基础知识

天天开心!!! 文章目录 一、HTTP基本概念1. 什么是HTTP,又有什么用?2. 一次HTTP请求的过程3.HTTP的协议头4.POST和GET的区别5. HTTP状态码6.HTTP的优缺点 二、HTTP的版本演进1.各个版本的应用场景2、注意要点 三、HTTP与…

DeepSeek接入飞书多维表格,效率起飞!

今天教大家把DeepSeek接入飞书表格使用。 准备工作:安装并登录飞书;可以准备一些要处理的数据,确保数据格式正确,如 Excel、CSV 等,也可直接存储到飞书多维表格。 创建飞书多维表格:打开飞书,点…

[FGPA基础学习]分秒计数器的制作

分秒计数器设计 ​ 本次实验内容为:DE2-115板子上用 Verilog编程实现一个 分秒计数器,并具备按键暂停、按键消抖功能 一、系统架构设计 顶层模块划分 顶层模块(top) ├── 按键消抖模块(key_debounce) ├…

每日算法-250329

记录今天学习的三道算法题:两道滑动窗口和一道栈的应用。 2904. 最短且字典序最小的美丽子字符串 题目描述 思路 滑动窗口 解题过程 题目要求找到包含 k 个 ‘1’ 的子字符串,并且需要满足两个条件: 最短长度:在所有包含 k 个 …

向量数据库学习笔记(2) —— pgvector 用法 与 最佳实践

关于向量的基础概念,可以参考:向量数据库学习笔记(1) —— 基础概念-CSDN博客 一、 pgvector简介 pgvector 是一款开源的、基于pg的、向量相似性搜索 插件,将您的向量数据与其他数据统一存储在pg中。支持功能包括&…

蓝桥杯 之 二分

文章目录 习题肖恩的n次根分巧克力2.卡牌 二分是十分重要的一个算法,常常用于求解一定范围内,找到满足条件的边界值的情况主要分为浮点数二分和整数二分二分问题,最主要是写出这个check函数,这个check函数最主要就是使用模拟的方法…

从零开始研发GPS接收机连载——18、北斗B1的捕获和跟踪

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 从零开始研发GPS接收机连载——18、北斗B1的捕获和跟踪 B1信号的捕获B1信号的跟踪 前面已经验证了射频能够接收到B1的信号,通过FPGA采集了IQ信号之后能够通过matl…

memtest86检测内存

上次在R730安装万兆网卡的时候,使用过memtest64进行测试。这个操作肯定是有用的,我就用这个方法查出有问题的内存条,及时找商家进行了更换。 但是该方案有个问题,只能锁定部分内存,如下图,只测试到了23G左…

验证linux多进程时间片切换的程序

一、软件需求 在同时运行一个或多个一味消耗 CPU 时间执行处理的进程时,采集以下统计信息。 ・在某一时间点运行在逻辑 CPU 上的进程是哪一个 ・每个进程的运行进度 通过分析这些信息,来确认本章开头对调度器的描述是否正确。实验程序的…

【Basys3】外设-灯和数码管

灯 约束文件 set_property PACKAGE_PIN W5 [get_ports CLK] set_property PACKAGE_PIN U18 [get_ports rst] set_property PACKAGE_PIN U16 [get_ports {led[0]}] set_property PACKAGE_PIN E19 [get_ports {led[1]}] set_property PACKAGE_PIN U19 [get_ports {led[2]}] set…

axios文件下载使用后端传递的名称

java后端通过HttpServletResponse 返回文件流 在Content-Disposition中插入文件名 一定要设置Access-Control-Expose-Headers,代表跨域该Content-Disposition返回Header可读,如果没有,前端是取不到Content-Disposition的,可以在统…

从零开始搭建Anaconda环境

Anaconda是一个流行的Python数据科学平台,包含conda包管理器、Python解释器和大量预装的数据科学工具包。以下是详细的安装和配置步骤: 1. 下载Anaconda 访问Anaconda官方网站 根据你的操作系统(Windows/macOS/Linux)选择相应版本 推荐下载Python 3.x版…

基于ssm的课程辅助教学平台(全套)

互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对《离散结构》课程教学信息管理混乱,出错率高,信息安…

[创业之路-344]:战略的本质是选择、聚焦, 是成本/效率/低毛利优先,还是差易化/效益/高毛利优先?无论是成本优先,还是差易化战略,产品聚焦是前提。

前言: 一、战略的本质是选择、聚焦 关于战略的本质,触及了商业竞争的核心矛盾:选择成本优先(效率/低毛利)还是差异化(效益/高毛利),本质上是对企业战略方向的终极拷问。 1、战略选…

Typora 小乌龟 git 上传到gitee仓库教程

首先进行资源分享 通过网盘分享的文件:TortoiseGit-LanguagePack-2.17.0.0-64bit-zh_CN.msi等4个文件 链接: https://pan.baidu.com/s/1NC8CKLifCEH_YixDU3HG_Q?pwdqacu 提取码: qacu --来自百度网盘超级会员v3的分享 首先将软件进行解压 看自己电脑的版本进行…

【新人系列】Golang 入门(八):defer 详解 - 上

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12898955.html 📣 专栏定位:为 0 基础刚入门 Golang 的小伙伴提供详细的讲解,也欢迎大佬们…

RAG - 五大文档切分策略深度解析

文章目录 切分策略1. 固定大小分割(Fixed-Size Chunking)2. 滑动窗口分割(Sliding Window Chunking)3. 自然语言单元分割(Sentence/Paragraph Segmentation)4. 语义感知分割(Semantic-Aware Seg…