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數(shù)據(jù)管理(數(shù)據(jù)卷&數(shù)據(jù)卷容器)
容器中管理數(shù)據(jù)主要有兩種方式,這篇文章主要介紹了詳解Docker數(shù)據(jù)管理(數(shù)據(jù)卷&數(shù)據(jù)卷容器) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
docker拉取鏡像報(bào)錯(cuò):Error?response?from?daemon:?Get?“https://r
今天做完一個(gè)新項(xiàng)目,搭建了一個(gè)新的虛擬機(jī),打算使用docker來搭建各種環(huán)境,發(fā)現(xiàn)拉取鏡像報(bào)錯(cuò)Error?response?from?daemon:?Get?"https://registry-1.docker.io/v2/":?dial?tcp,所以接下來給大家介紹了docker拉取鏡像報(bào)錯(cuò)的解決過程,需要的朋友可以參考下2024-08-08
在Docker構(gòu)建的容器中實(shí)現(xiàn)安裝ping工具
這篇文章主要介紹了在Docker構(gòu)建的容器中實(shí)現(xiàn)安裝ping工具,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
docker部署nginx并且實(shí)現(xiàn)https的方法步驟
啟用HTTPS可以提高網(wǎng)站的安全性、可信度,同時(shí)符合法規(guī)要求,本文主要介紹了docker部署nginx并且實(shí)現(xiàn)https的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07
Windows10系統(tǒng)下Docker默認(rèn)存儲(chǔ)位置更改方案
這篇文章主要給大家介紹了關(guān)于Windows10系統(tǒng)下Docker默認(rèn)存儲(chǔ)位置更改方案的相關(guān)資料,在Docker中存儲(chǔ)路徑是一個(gè)重要的話題,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08
docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟(基礎(chǔ)示例篇)
這篇文章主要給大家介紹了docker部署nodejs開發(fā)環(huán)境詳細(xì)步驟,docker是一個(gè)開源的應(yīng)用容器引擎,可以為我們提供安全、可移植、可重復(fù)的自動(dòng)化部署的方式,需要的朋友可以參考下2023-10-10
Linux使用skopeo工具如何進(jìn)行docker鏡像同步
這篇文章主要介紹了Linux使用skopeo工具如何進(jìn)行docker鏡像同步問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05

