PostgreSQL數據庫部署linux服務器完整教程
PostgreSQL數據庫部署linux服務器流程
一、配置需求
1. 系統(tǒng)要求
一臺裝了 Docker 的服務器
該服務器能與本地win電腦ping通
操作系統(tǒng):Ubuntu 22.04(推薦)
2. 資源需求
PostgreSQL 15.4 鏡像(Docker官方倉庫)
國內的能用來拉取鏡像的docker鏡像源
- 預備配置參數
參數 | 值 |
端口 | 5432 |
用戶名 | postgres |
密碼 | postgres |
默認數據庫 | postgres |
二、大概流程簡述
拉取官方 PostgreSQL 鏡像
創(chuàng)建并啟動容器
配置數據持久化存儲
設置數據庫用戶憑證
驗證數據庫連接
三、驗證環(huán)節(jié)
1. 驗證 Docker 環(huán)境
# 檢查 Docker 是否安裝 sudo docker --version
(如圖所示結果)

顯示類似 Docker version 24.03.1, build xxxx 就說明已安裝。
# 檢查 Docker 服務是否運行 sudo systemctl status docker
(如圖所示結果)

看到 active (running) 就正常。
退出查看:ctrl+c
2. 驗證鏡像源是否能進行拉取鏡像
# 拉取測試鏡像 sudo docker pull hello-world
(失敗結果如圖所示)

(成功結果如圖所示)

能正常運行就說明鏡像源沒問題。
如果拉取失敗,配置國內 Docker 鏡像加速器
創(chuàng)建文件
sudo mkdir -p /etc/docker sudo vim /etc/docker/daemon.json
配置加速鏡 清空文件內容,寫入以下 JSON(注意格式)
開始編寫按:i
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.anyhub.us.kg"
],
"dns": ["223.5.5.5", "114.114.114.114"]
}退出編寫+保存+退出:esc+:wq
應用配置
sudo systemctl daemon-reload
重啟docker
sudo systemctl restart docker
配置成功后,重新執(zhí)行上面的拉取命令測試即可。
四、具體流程
1. 拉取 PostgreSQL 鏡像
# 拉取官方 PostgreSQL 15.4 鏡像 sudo docker pull postgres:15.4
(如圖所示結果)拉取時間實測需要12分鐘

# 驗證鏡像是否下載成功 sudo docker images postgres:15.4
(成功結果如圖所示)

2. 創(chuàng)建數據持久化目錄
# 創(chuàng)建存儲目錄 sudo mkdir -p /opt/postgresql/data # 設置權限(必須) sudo chown -R 999:999 /opt/postgresql/data
3. 創(chuàng)建并啟動 PostgreSQL 容器
# 一鍵創(chuàng)建并啟動容器 sudo docker run -d \ --name postgres_db \ --restart unless-stopped \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_DB=postgres \ -p 5432:5432 \ -v /opt/postgresql/data:/var/lib/postgresql/data \ postgres:15.4
(成功結果如圖所示)

# 查看容器是否啟動成功 sudo docker ps | grep postgres_db
(成功結果如圖所示)
![]()
看到輸出就說明啟動成功了。
4. 驗證數據庫連接
# 進入容器內部 sudo docker exec -it postgres_db psql -U postgres
(成功結果如圖所示)

# 進入后執(zhí)行以下命令驗證
#版本顯示 SELECT version();
(成功結果如圖所示)

退出查看:ctrl+c
數據庫列表
\l
(成功結果如圖所示)

退出查看:ctrl+c
退出數據庫
\q
5. 配置遠程訪問
如果需要從容器外連接數據庫:
# 修改配置允許遠程連接 sudo docker exec -it postgres_db bash -c "echo \"host all all 0.0.0.0/0 md5\" >> /var/lib/postgresql/data/pg_hba.conf" # 重啟容器生效 sudo docker restart postgres_db
五、常用管理命令
# 啟動容器 sudo docker start postgres_db # 停止容器 sudo docker stop postgres_db # 查看容器日志 sudo docker logs -f postgres_db # 進入容器 bash sudo docker exec -it postgres_db bash
六、驗證連接
1. 服務器本地驗證
# 進入容器內部連接數據庫 sudo docker exec -it postgres_db psql -U postgres
(成功結果如圖所示)

2. Windows 本地連接
使用 Python 測試連接
進入虛擬環(huán)境,安裝 psycopg2 庫:
pip install psycopg2-binary
(成功結果如圖所示)

創(chuàng)建測試腳本:
#text01.py
import psycopg2
try:
conn = psycopg2.connect(
host="192.168.1.128",
port="5432",
database="postgres",
user="postgres",
password="postgres"
)
print("連接成功!")
cursor = conn.cursor()
cursor.execute("SELECT version();")
print("PostgreSQL 版本:", cursor.fetchone())
cursor.close()
conn.close()
except Exception as e:
print("連接失敗:", e)?? 注意:請將代碼中的 192.168.1.128 替換為您自己的服務器 IP 地址。
(成功結果如圖所示)
運行腳本:
python test01.py
(成功結果如圖所示)

看到"連接成功!"就說明連接正常。
到此這篇關于PostgreSQL數據庫部署linux服務器流程的文章就介紹到這了,更多相關PostgreSQL部署linux服務器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PostgreSQL將數據加載到buffer cache中操作方法
這篇文章主要介紹了PostgreSQL將數據加載到buffer cache中,我們可以使用pg_prewarm插件來將指定的表加載到OS Buffer或者pg shared buffer中,具體操作方法跟隨小編一起看看吧2021-04-04
自定義函數實現(xiàn)單詞排序并運用于PostgreSQL(實現(xiàn)代碼)
這篇文章主要介紹了自定義函數實現(xiàn)單詞排序并運用于PostgreSQL,本文給大家分享實現(xiàn)代碼,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
PostgreSQL通過mysql_fdw連通MySQL實戰(zhàn)
mysql_fdw就像是PostgreSQL和MySQL數據庫之間的一座雙向橋梁,本文就來詳細的介紹一下PostgreSQL通過mysql_fdw連通MySQL實戰(zhàn),感興趣的可以了解一下2026-03-03
PostgreSQL 實現(xiàn)給查詢列表增加序號操作
這篇文章主要介紹了PostgreSQL 實現(xiàn)給查詢列表增加序號操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL的generate_series()函數的用法說明
這篇文章主要介紹了PostgreSQL的generate_series()函數的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSQL中insert_username的擴展使用
insert_username?是 PostgreSQL 的一個實用擴展,用于自動記錄數據行的創(chuàng)建者和最后修改者信息,本文就來詳細的介紹一下insert_username擴展,感興趣的可以了解一下2025-06-06

