Docker Compose安裝部署PostgreSQL數(shù)據(jù)庫的實(shí)現(xiàn)步驟
以下是一個(gè)完整的 PostgreSQL Docker Compose 部署教程,包括配置和部署詳細(xì)步驟。本文將指導(dǎo)您如何在 Linux 服務(wù)器上使用 Docker Compose 來部署 PostgreSQL,并將數(shù)據(jù)持久化到指定路徑。
1. 環(huán)境準(zhǔn)備
確保您的系統(tǒng)上已經(jīng)安裝了以下軟件:
- Docker:用于容器化應(yīng)用程序。參考 Docker 官方文檔 進(jìn)行安裝。
- Docker Compose:用于定義和運(yùn)行多容器 Docker 應(yīng)用程序。參考 Docker Compose 官方文檔 進(jìn)行安裝。
驗(yàn)證安裝是否成功:
docker --version docker-compose --version
2. 創(chuàng)建所需的目錄
為了確保數(shù)據(jù)持久化存儲(chǔ),先創(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
是用于存放項(xiàng)目文件的工作目錄。/opt/docker-data/postgresql
是持久化 PostgreSQL 數(shù)據(jù)的目錄,設(shè)置權(quán)限為777
確保容器可以讀寫。
3. 創(chuàng)建 docker-compose.yml 文件
進(jìn)入工作目錄 /opt/postgresql
,然后創(chuàng)建 docker-compose.yml
文件:
cd /opt/postgresql touch docker-compose.yml
編輯 docker-compose.yml
文件,內(nèi)容如下:
version: '3.8' services: postgres: image: postgres:15 # 使用 PostgreSQL 15 鏡像 container_name: postgres_db # 容器名稱 environment: POSTGRES_USER: root # 設(shè)置用戶名為 'root' POSTGRES_PASSWORD: 123456 # 設(shè)置密碼為 '123456' POSTGRES_DB: demo # 設(shè)置數(shù)據(jù)庫名為 'demo' ports: - "5433:5432" # 將容器的 5432 端口映射到主機(jī)的 5433 端口 volumes: - /opt/docker-data/postgresql:/var/lib/postgresql/data # 數(shù)據(jù)映射到主機(jī)指定路徑 volumes: postgres_data:
文件解釋:
- services: 定義了 PostgreSQL 服務(wù)。
- image: 使用官方 PostgreSQL 15 鏡像。
- container_name: 給容器命名為
postgres_db
。 - environment: 設(shè)置數(shù)據(jù)庫的環(huán)境變量,包括用戶名、密碼和默認(rèn)數(shù)據(jù)庫名稱。
- ports: 將容器的默認(rèn) PostgreSQL 端口
5432
映射到主機(jī)的5433
端口。 - volumes: 將容器的數(shù)據(jù)目錄
/var/lib/postgresql/data
映射到主機(jī)的/opt/docker-data/postgresql
,實(shí)現(xiàn)數(shù)據(jù)持久化。
4. 啟動(dòng) PostgreSQL 服務(wù)
在 docker-compose.yml
文件所在的目錄中,執(zhí)行以下命令來啟動(dòng)服務(wù):
docker-compose up -d
說明:
-d
選項(xiàng)表示以“后臺(tái)模式”運(yùn)行容器。- 此時(shí),PostgreSQL 容器將啟動(dòng),數(shù)據(jù)將持久化到
/opt/docker-data/postgresql
目錄。
5. 驗(yàn)證 PostgreSQL 部署
檢查容器狀態(tài):
docker-compose ps
您應(yīng)該會(huì)看到類似如下的輸出,表示 PostgreSQL 容器正在運(yùn)行:
Name Command State Ports ------------------------------------------------------------------------- postgres_db docker-entrypoint.sh postgres Up 0.0.0.0:5433->5432/tcp
登錄到 PostgreSQL 容器進(jìn)行驗(yàn)證:
docker exec -it postgres_db psql -U root -d demo
命令解釋:
docker exec -it postgres_db
:進(jìn)入名為postgres_db
的容器。psql -U root -d demo
:使用root
用戶登錄到demo
數(shù)據(jù)庫。
6. 連接 PostgreSQL 數(shù)據(jù)庫
您可以使用任意數(shù)據(jù)庫客戶端連接 PostgreSQL。連接參數(shù)如下:
- 主機(jī):
localhost
或 Docker 主機(jī) IP - 端口:
5433
- 用戶名:
root
- 密碼:
123456
- 數(shù)據(jù)庫:
demo
示例命令行連接:
psql -h localhost -p 5433 -U root -d demo
7. 停止和刪除 PostgreSQL 容器
如需停止和刪除容器,可以執(zhí)行以下命令:
docker-compose down
該命令將停止容器并刪除網(wǎng)絡(luò)配置,但不會(huì)刪除持久化的數(shù)據(jù)(數(shù)據(jù)保存在 /opt/docker-data/postgresql
目錄下)。
8. 備份與恢復(fù)數(shù)據(jù)
備份數(shù)據(jù)庫
您可以使用以下命令來備份數(shù)據(jù)庫:
docker exec -t postgres_db pg_dump -U root demo > /opt/docker-data/postgresql/backup.sql
恢復(fù)數(shù)據(jù)庫
如果您需要從備份中恢復(fù)數(shù)據(jù),可以執(zhí)行以下命令:
docker exec -i postgres_db psql -U root -d demo < /opt/docker-data/postgresql/backup.sql
結(jié)束語
通過以上步驟,您已經(jīng)成功使用 Docker Compose 部署了 PostgreSQL,并且數(shù)據(jù)已經(jīng)持久化到指定的路徑 /opt/docker-data/postgresql
。這個(gè)部署方案方便了數(shù)據(jù)庫的管理和備份,適合在開發(fā)和生產(chǎn)環(huán)境中使用。
到此這篇關(guān)于Docker Compose安裝部署PostgreSQL數(shù)據(jù)庫的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker Compose安裝部署PostgreSQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker 復(fù)制容器的項(xiàng)目實(shí)踐
本文主要介紹了docker 復(fù)制容器的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11docker安裝Redis高可用實(shí)現(xiàn)一主二從三哨兵
redis提供了哨兵模式保證redis實(shí)現(xiàn)高可用,本文主要介紹了docker安裝Redis高可用實(shí)現(xiàn)一主二從三哨兵,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02Docker的鏡像制作與整套項(xiàng)目一鍵打包部署的實(shí)現(xiàn)
這篇文章主要介紹了Docker的鏡像制作與整套項(xiàng)目一鍵打包部署的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Docker之開啟遠(yuǎn)程訪問的實(shí)現(xiàn)
這篇文章主要介紹了Docker之開啟遠(yuǎn)程訪問的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05Docker啟動(dòng)PostgreSQL時(shí)創(chuàng)建多個(gè)數(shù)據(jù)庫的解決方案
這篇文章主要介紹了Docker啟動(dòng)PostgreSQL時(shí)創(chuàng)建多個(gè)數(shù)據(jù)庫的解決方案,重點(diǎn)給大家介紹如何把shell/sql腳本放入/docker-entrypoint-initdb.d/目錄中,讓容器啟動(dòng)的時(shí)候自動(dòng)執(zhí)行創(chuàng)建2021-06-06CentOS7使用docker部署Apollo配置中心的實(shí)現(xiàn)
這篇文章主要介紹了CentOS7使用docker部署Apollo配置中心的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Harbor搭建Docker私有倉庫的實(shí)現(xiàn)方法
Harbor是一個(gè)由CNCF托管的開源的Docker鏡像倉庫管理工具,我們可以通過它快速的建立起自己的私有倉庫,本文就詳細(xì)的介紹了Harbor搭建Docker私有倉庫的實(shí)現(xiàn)方法,感興趣的可以了解一下2021-06-06Docker Compose搭建Redis主從復(fù)制環(huán)境的實(shí)現(xiàn)步驟
在Docker中搭建Redis主從架構(gòu)非常方便,下面是一個(gè)示例,演示如何使用Docker Compose設(shè)置一個(gè)Redis主從復(fù)制環(huán)境,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-09-09解決docker重啟redis,mysql數(shù)據(jù)丟失的問題
這篇文章主要介紹了解決docker重啟redis,mysql數(shù)據(jù)丟失的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11