Docker 部署 PostgreSQL數(shù)據(jù)庫的兩種方式
1. 使用 docker命令部署
部署命令:
docker run --name dbname-postgres \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=postgrespwd \ -e POSTGRES_DB=db-default \ -p 5432:5432 \ -v /path/to/data:/var/lib/postgresql/data \ --restart always \ -d postgres:latest
參數(shù)說明:
POSTGRES_USER: 設(shè)置數(shù)據(jù)庫用戶名(默認(rèn)為 postgres)POSTGRES_PASSWORD: 設(shè)置數(shù)據(jù)庫密碼POSTGRES_DB: 設(shè)置默認(rèn)數(shù)據(jù)庫(默認(rèn)為 POSTGRES_USER 的值)-p 5432:5432: 將容器端口映射到主機(jī)端口,如果將主機(jī)端口改為5000,則為5000:5432-v /path/to/data:/var/lib/postgresql/data: 數(shù)據(jù)持久化到主機(jī)目錄postgres:latest: 指定 PostgreSQL 版本為最新版本postgres:13: 指定 PostgreSQL 版本為 13
2. 使用 Docker Compose 部署
創(chuàng)建 docker-compose.yml 文件:
# 指定 Docker Compose 文件格式版本
version: '3.8'
# 定義服務(wù)列表
services:
# 定義 PostgreSQL 服務(wù)
postgres:
# 使用 PostgreSQL 官方鏡像,版本13
image: postgres:latest
# 指定容器名稱(如果不指定,Docker 會(huì)自動(dòng)生成)
container_name: db-postgres
# 環(huán)境變量配置
environment:
# 設(shè)置 PostgreSQL 超級(jí)用戶(默認(rèn)為 postgres)
POSTGRES_USER: postgres
# 設(shè)置 PostgreSQL 超級(jí)用戶密碼(必須設(shè)置)
POSTGRES_PASSWORD: postgrespwd
# 設(shè)置默認(rèn)創(chuàng)建的數(shù)據(jù)庫名稱(默認(rèn)為 POSTGRES_USER 的值)
POSTGRES_DB: db-default
# 端口映射配置(主機(jī)端口:容器端口)
ports:
- "5432:5432" # 將容器內(nèi)部的5432端口映射到主機(jī)的5432端口
# 數(shù)據(jù)卷配置(持久化數(shù)據(jù))
volumes:
# 使用命名卷 postgres_data 掛載到容器中的數(shù)據(jù)庫數(shù)據(jù)目錄
- postgres_data:/var/lib/postgresql/data
# 容器重啟策略
restart: always # 總是自動(dòng)重啟容器,無論退出狀態(tài)如何
# 定義卷列表(用于數(shù)據(jù)持久化)
volumes:
# 定義一個(gè)名為 postgres_data 的命名卷
# Docker 會(huì)自動(dòng)管理這個(gè)卷,確保數(shù)據(jù)庫數(shù)據(jù)持久化
# 即使容器被刪除,數(shù)據(jù)也不會(huì)丟失
postgres_data:然后運(yùn)行:
docker-compose up -d
3. 連接 PostgreSQL
容器運(yùn)行后,可以通過以下方式連接:
- 從主機(jī)連接:
psql -h localhost -U myuser -d mydatabase
- 進(jìn)入容器內(nèi)部連接:
docker exec -it my-postgres psql -U myuser -d mydatabase
4. 常用管理命令
- 查看運(yùn)行中的容器:
docker ps - 查看日志:
docker logs my-postgres - 停止容器:
docker stop my-postgres - 啟動(dòng)容器:
docker start my-postgres - 刪除容器:
docker rm my-postgres(需要先停止)
5. 高級(jí)配置
如果需要自定義 PostgreSQL 配置,可以:
- 創(chuàng)建自定義配置文件
postgresql.conf - 掛載到容器中:
-v /path/to/postgresql.conf:/etc/postgresql/postgresql.conf
- 啟動(dòng)時(shí)指定配置文件:
-e POSTGRES_CONFIG_FILE=/etc/postgresql/postgresql.conf
注意事項(xiàng)
- 數(shù)據(jù)持久化:務(wù)必使用卷或綁定掛載來持久化數(shù)據(jù),否則容器刪除后數(shù)據(jù)會(huì)丟失
- 安全性:不要使用弱密碼,生產(chǎn)環(huán)境應(yīng)考慮更復(fù)雜的安全配置
- 性能:對(duì)于生產(chǎn)環(huán)境,可能需要調(diào)整共享緩沖區(qū)等參數(shù)
- 備份:定期備份數(shù)據(jù)庫數(shù)據(jù)
到此這篇關(guān)于Docker 部署 PostgreSQL 指南的文章就介紹到這了,更多相關(guān)Docker 部署 PostgreSQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker快速部署postgresql的完整步驟記錄
- Docker部署PostgreSQL數(shù)據(jù)庫及操作方法詳解
- Docker PostgreSQL容器化部署方式
- Docker Compose安裝部署PostgreSQL數(shù)據(jù)庫的實(shí)現(xiàn)步驟
- 在docker上部署postgreSQL主從的超詳細(xì)步驟
- PostgreSQL部署邏輯復(fù)制過程詳解
- 一步步教你用docker部署postgreSQL數(shù)據(jù)庫
- PostgreSQL數(shù)據(jù)庫遷移部署實(shí)戰(zhàn)教程
- postgresql 12版本搭建及主備部署操作
- postgresql數(shù)據(jù)庫安裝部署搭建主從節(jié)點(diǎn)的詳細(xì)過程(業(yè)務(wù)庫)
- RockyLinux9.5部署PostgreSQL的實(shí)現(xiàn)步驟
相關(guān)文章
使用Docker+jenkins+python3環(huán)境搭建超詳細(xì)教程
這篇文章主要介紹了使用Docker+jenkins+python3環(huán)境搭建超詳細(xì)教程,本文通過多種方法結(jié)合示例代碼給大家詳細(xì)介紹,需要的朋友可以參考下2021-07-07
Docker學(xué)習(xí)筆記之Docker部署Java web系統(tǒng)
這篇文章主要介紹了Docker學(xué)習(xí)筆記之Docker部署Java web系統(tǒng),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
教你用100?行shell實(shí)現(xiàn)Docker詳解
這篇文章主要為大家介紹了教你用100?行shell實(shí)現(xiàn)Docker詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例
這篇文章主要介紹了Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例,本文通過場景分析實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
Docker容器中查看Python版本的四種方法對(duì)比
在當(dāng)今云原生和微服務(wù)架構(gòu)盛行的時(shí)代,Docker 已成為應(yīng)用部署和開發(fā)的標(biāo)準(zhǔn)工具,確保容器內(nèi) Python 環(huán)境的正確性至關(guān)重要,本文整理了四個(gè)Docker容器中查看Python版本的方法,希望對(duì)大家有所幫助2025-08-08
Docker本地鏡像推送到阿里云的實(shí)現(xiàn)
本文介紹了在阿里云上創(chuàng)建容器鏡像服務(wù)實(shí)例,并將本地鏡像推送到阿里云的鏡像倉庫,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12

