Docker Compose安裝部署PostgreSQL數(shù)據(jù)庫的實現(xiàn)步驟
以下是一個完整的 PostgreSQL Docker Compose 部署教程,包括配置和部署詳細步驟。本文將指導您如何在 Linux 服務器上使用 Docker Compose 來部署 PostgreSQL,并將數(shù)據(jù)持久化到指定路徑。
1. 環(huán)境準備
確保您的系統(tǒng)上已經(jīng)安裝了以下軟件:
- Docker:用于容器化應用程序。參考 Docker 官方文檔 進行安裝。
- Docker Compose:用于定義和運行多容器 Docker 應用程序。參考 Docker Compose 官方文檔 進行安裝。
驗證安裝是否成功:
docker --version docker-compose --version
2. 創(chuàng)建所需的目錄
為了確保數(shù)據(jù)持久化存儲,先創(chuàng)建工作目錄和持久化數(shù)據(jù)目錄。
執(zhí)行以下命令:
# 創(chuàng)建工作目錄 mkdir -p /opt/postgresql # 創(chuàng)建持久化目錄 mkdir -p /opt/docker-data/postgresql && chmod 777 /opt/docker-data/postgresql
說明:
/opt/postgresql是用于存放項目文件的工作目錄。/opt/docker-data/postgresql是持久化 PostgreSQL 數(shù)據(jù)的目錄,設置權限為777確保容器可以讀寫。
3. 創(chuàng)建 docker-compose.yml 文件
進入工作目錄 /opt/postgresql,然后創(chuàng)建 docker-compose.yml 文件:
cd /opt/postgresql touch docker-compose.yml
編輯 docker-compose.yml 文件,內容如下:
version: '3.8'
services:
postgres:
image: postgres:15 # 使用 PostgreSQL 15 鏡像
container_name: postgres_db # 容器名稱
environment:
POSTGRES_USER: root # 設置用戶名為 'root'
POSTGRES_PASSWORD: 123456 # 設置密碼為 '123456'
POSTGRES_DB: demo # 設置數(shù)據(jù)庫名為 'demo'
ports:
- "5433:5432" # 將容器的 5432 端口映射到主機的 5433 端口
volumes:
- /opt/docker-data/postgresql:/var/lib/postgresql/data # 數(shù)據(jù)映射到主機指定路徑
volumes:
postgres_data:
文件解釋:
- services: 定義了 PostgreSQL 服務。
- image: 使用官方 PostgreSQL 15 鏡像。
- container_name: 給容器命名為
postgres_db。 - environment: 設置數(shù)據(jù)庫的環(huán)境變量,包括用戶名、密碼和默認數(shù)據(jù)庫名稱。
- ports: 將容器的默認 PostgreSQL 端口
5432映射到主機的5433端口。 - volumes: 將容器的數(shù)據(jù)目錄
/var/lib/postgresql/data映射到主機的/opt/docker-data/postgresql,實現(xiàn)數(shù)據(jù)持久化。
4. 啟動 PostgreSQL 服務
在 docker-compose.yml 文件所在的目錄中,執(zhí)行以下命令來啟動服務:
docker-compose up -d
說明:
-d選項表示以“后臺模式”運行容器。- 此時,PostgreSQL 容器將啟動,數(shù)據(jù)將持久化到
/opt/docker-data/postgresql目錄。
5. 驗證 PostgreSQL 部署
檢查容器狀態(tài):
docker-compose ps
您應該會看到類似如下的輸出,表示 PostgreSQL 容器正在運行:
Name Command State Ports ------------------------------------------------------------------------- postgres_db docker-entrypoint.sh postgres Up 0.0.0.0:5433->5432/tcp
登錄到 PostgreSQL 容器進行驗證:
docker exec -it postgres_db psql -U root -d demo
命令解釋:
docker exec -it postgres_db:進入名為postgres_db的容器。psql -U root -d demo:使用root用戶登錄到demo數(shù)據(jù)庫。
6. 連接 PostgreSQL 數(shù)據(jù)庫
您可以使用任意數(shù)據(jù)庫客戶端連接 PostgreSQL。連接參數(shù)如下:
- 主機:
localhost或 Docker 主機 IP - 端口:
5433 - 用戶名:
root - 密碼:
123456 - 數(shù)據(jù)庫:
demo
示例命令行連接:
psql -h localhost -p 5433 -U root -d demo
7. 停止和刪除 PostgreSQL 容器
如需停止和刪除容器,可以執(zhí)行以下命令:
docker-compose down
該命令將停止容器并刪除網(wǎng)絡配置,但不會刪除持久化的數(shù)據(jù)(數(shù)據(jù)保存在 /opt/docker-data/postgresql 目錄下)。
8. 備份與恢復數(shù)據(jù)
備份數(shù)據(jù)庫
您可以使用以下命令來備份數(shù)據(jù)庫:
docker exec -t postgres_db pg_dump -U root demo > /opt/docker-data/postgresql/backup.sql
恢復數(shù)據(jù)庫
如果您需要從備份中恢復數(shù)據(jù),可以執(zhí)行以下命令:
docker exec -i postgres_db psql -U root -d demo < /opt/docker-data/postgresql/backup.sql
結束語
通過以上步驟,您已經(jīng)成功使用 Docker Compose 部署了 PostgreSQL,并且數(shù)據(jù)已經(jīng)持久化到指定的路徑 /opt/docker-data/postgresql。這個部署方案方便了數(shù)據(jù)庫的管理和備份,適合在開發(fā)和生產(chǎn)環(huán)境中使用。
到此這篇關于Docker Compose安裝部署PostgreSQL數(shù)據(jù)庫的實現(xiàn)步驟的文章就介紹到這了,更多相關Docker Compose安裝部署PostgreSQL內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- docker快速部署postgresql的完整步驟記錄
- Docker 部署 PostgreSQL數(shù)據(jù)庫的兩種方式
- Docker部署PostgreSQL數(shù)據(jù)庫及操作方法詳解
- Docker PostgreSQL容器化部署方式
- 在docker上部署postgreSQL主從的超詳細步驟
- PostgreSQL部署邏輯復制過程詳解
- 一步步教你用docker部署postgreSQL數(shù)據(jù)庫
- PostgreSQL數(shù)據(jù)庫遷移部署實戰(zhàn)教程
- postgresql 12版本搭建及主備部署操作
- postgresql數(shù)據(jù)庫安裝部署搭建主從節(jié)點的詳細過程(業(yè)務庫)
- RockyLinux9.5部署PostgreSQL的實現(xiàn)步驟
相關文章
Docker安裝Elasticsearch的實現(xiàn)示例
本文主要介紹了在Docker環(huán)境下安裝和ockerSearch、Kibana及IK分詞器的步驟,并并包括配置項設置D以及常用命令使用方法,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2026-04-04
Docker中"exec format error"錯誤架構不匹配的原因分析和解
本文詳細介紹了Docker中“execformaterror”錯誤的成因,并提供了兩種解決方案:使用匹配架構的鏡像和啟用QEMU模擬器,推薦用戶使用匹配架構的鏡像以解決架構不匹配的問題,感興趣的朋友跟隨小編一起看看吧2026-01-01
解決Docker中的error during connect異常情況
這篇文章主要介紹了解決Docker中的error during connect異常情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
聊聊kubernetes1.20用containerd替換docker(shim)的問題
這篇文章主要介紹了kubernetes1.20用containerd替換docker(shim),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
基于Docker與Jenkins實現(xiàn)自動化部署的原理解析
這篇文章主要介紹了基于Docker與Jenkins實現(xiàn)自動化部署,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04

