docker 搭建單機PostgreSQL操作詳解
一、前言
在實際項目中,PostgreSQL具有很多使用場景,為了方便應(yīng)用開發(fā)時快速接入和調(diào)試,需要有PostgreSQL環(huán)境,本文演示如何基于linux環(huán)境搭建單節(jié)點postgresql完整操作過程。
二、前置準(zhǔn)備
2.1 服務(wù)器環(huán)境
基于centos7以上版本的系統(tǒng),虛擬機或云服務(wù)一臺,配置不低于2C4G。
2.2 docker環(huán)境
提前在服務(wù)器安裝docker環(huán)境,后面需要基于docker安裝PostgreSQL。
三、docker安裝PostgreSQL過程
3.1 獲取PostgreSQL鏡像
使用下面的命令獲取鏡像
docker pull postgres

3.2 啟動容器
3.2.1 創(chuàng)建數(shù)據(jù)卷目錄
為了后續(xù)pg數(shù)據(jù)的持久化,需要提前創(chuàng)建一個數(shù)據(jù)卷映射目錄
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
參數(shù)說明:
- -d ,以后臺進程啟動;
- --name ,指定容器的名字為 :root;
- POSTGRES_USER=postgres ,指定初始化的連接賬戶;
- POSTGRES_PASSWORD=123456 ,指定初始化的連接密碼;
- ALLOW_IP_RANGE=0.0.0.0/0 ,指定允許所有的客戶端可以連接;
- POSTGRES_DB=postgres ,指定默認的數(shù)據(jù)庫名稱;
- -v /usr/local/soft/pg/data:/var/lib/postgresql/data ,指定pg數(shù)據(jù)庫的數(shù)據(jù)卷;
- -p 5432:5432 ,容器與宿主機的映射端口,默認為5432 ;
容器運行成功,可以看到啟動了一個pg的容器;

3.3 客戶端測試連接數(shù)據(jù)庫
本地使用navicat連接pg數(shù)據(jù)庫,使用上述初始化的連接信息

四、創(chuàng)建數(shù)據(jù)庫與授權(quán)
和mysql在使用的時候類似,為了保證操作pg數(shù)據(jù)庫的安全性,需要進行相關(guān)的授權(quán)操作,pg的授權(quán)與mysql數(shù)據(jù)庫的授權(quán)有所不同,接下來看具體的操作演示過程。
4.1 進入PG容器
找到容器ID,使用下面的命令進入容器
docker exec -it 容器ID /bin/bash
4.2 PG常用操作命令
4.2.1 進入命令行
進入容器之后,使用下面的命令進入PG的操作命令行,類似于mysql的命令行工具
psql -U postgres -h 服務(wù)器IP -p 54132 postgres
輸入密碼,驗證成功后,就來到下面的命令行操作界面:

4.2.2 常用操作命令
1)列出當(dāng)前所有數(shù)據(jù)庫
\l

2)列出當(dāng)前數(shù)據(jù)庫的所有表
默認情況下,登錄進來使用的是postges這個數(shù)據(jù)庫,使用下面的命令可以查看所有表

3)切換數(shù)據(jù)庫
使用下面的命令切換到另一個數(shù)據(jù)庫
\c 數(shù)據(jù)庫名稱
4)創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 數(shù)據(jù)庫名稱;
5)創(chuàng)建賬戶
CREATE USER 用戶名 WITH PASSWORD '密碼';
6)賬戶授權(quán)
pg數(shù)據(jù)庫中對于連接的賬戶需要進行授權(quán),有數(shù)據(jù)庫授權(quán),表授權(quán)等,下面分別是數(shù)據(jù)庫授權(quán),表授權(quán)的命令
一般下面這兩個命令是連起來用的,即先對數(shù)據(jù)庫的連接賬戶授權(quán),僅僅授權(quán)數(shù)據(jù)庫還不夠,還需要對數(shù)據(jù)庫下面的所有表授權(quán)才可正常使用;
GRANT CONNECT, CREATE, TEMPORARY ON DATABASE "數(shù)據(jù)庫名稱" TO 用戶名; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 用戶名;
補充說明
設(shè)置默認權(quán)限,使某個用戶對未來在 public 模式下創(chuàng)建的表也擁有全部權(quán)限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO 用戶名;
四、寫在文末
本文通過實際案例操作演示了如何基于Docker搭建pg的完整過程,并補充了pg數(shù)據(jù)庫操作的常用命令和授權(quán)命令,希望對看到的同學(xué)有用,本篇到此結(jié)束,感謝觀看。
到此這篇關(guān)于docker 搭建單機PostgreSQL操作詳解的文章就介紹到這了,更多相關(guān)docker 單機PostgreSQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker Redis本地能Ping通但6379端口連不上的排查與解決方法
在 Linux 服務(wù)器上部署 Redis Docker 容器,本地連接正常,但遠程主機 telnet 端口不通,經(jīng)過層層排查,最終發(fā)現(xiàn)是 Linux 內(nèi)核參數(shù) net.ipv4.ip_forward 被關(guān)閉導(dǎo)致的,本文記錄了完整的排查思路與解決方案,需要的朋友可以參考下2026-05-05
docker容器增加或者修改容器映射端口的實現(xiàn)方法
在只有使用docker安裝的容器,沒有使用docker-compose或者其他客戶端工具,如果要增加或者修改容器端口,也是可以增加或者修改容器端口映射,本文給大家介紹了docker容器增加或者修改容器映射端口的實現(xiàn)方法,需要的朋友可以參考下2025-01-01
zabbix監(jiān)控docker應(yīng)用配置
今天通過本文給大家分享zabbix監(jiān)控docker容器的原理及部署的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-07-07

