欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker27.3.1中安裝 PostgreSQL16的實現(xiàn)步驟

 更新時間:2025年07月28日 09:00:13   作者:吳啟維  
本文主要介紹了Docker27.3.1中安裝 PostgreSQL16的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言:為什么在 Docker 中部署 PostgreSQL?

在云原生時代,容器化部署已成為生產(chǎn)環(huán)境的首選方案。通過 Docker 部署 PostgreSQL 具有以下顯著優(yōu)勢:

  • 環(huán)境一致性:消除“在我機器上能運行”的問題
  • 快速部署:秒級啟動數(shù)據(jù)庫實例
  • 資源隔離:精確控制 CPU、內(nèi)存等資源
  • 簡化運維:版本升級、備份恢復更便捷
  • 高可移植性:輕松遷移到任何支持 Docker 的環(huán)境

本文將以 Docker 27.3.1PostgreSQL 16 為例,手把手教你完成部署。

一、環(huán)境準備

1. 確認 Docker 版本

docker --version
# Docker version 27.3.1, build a224086

?? 提示:如版本低于27.0,請先升級:官方升級指南

2. 創(chuàng)建專用網(wǎng)絡(luò)(生產(chǎn)環(huán)境必備)

docker network create pg-network

作用

  • 隔離數(shù)據(jù)庫流量
  • 避免端口沖突
  • 方便后續(xù)擴展(如連接應用容器)

二、PostgreSQL 16 容器化部署

1. 拉取官方鏡像(指定版本)

docker pull postgres:16

為什么指定版本?

  • 避免自動升級導致兼容性問題
  • 確保生產(chǎn)環(huán)境穩(wěn)定性
  • PostgreSQL 16 是最新LTS版本(支持至2031年)

2. 創(chuàng)建持久化數(shù)據(jù)卷

docker volume create pgdata

生產(chǎn)環(huán)境重要性

  • 容器重啟/刪除時數(shù)據(jù)不丟失
  • 獨立于容器生命周期管理
  • 方便備份遷移

3. 啟動 PostgreSQL 容器(生產(chǎn)優(yōu)化版)

docker run -d \
  --name prod-postgres \
  --network pg-network \
  -p 5432:5432 \
  -e POSTGRES_PASSWORD=Str0ngP@ss!2025 \
  -e POSTGRES_USER=prod_admin \
  -e POSTGRES_DB=production_db \
  -e TZ=Asia/Shanghai \
  -e POSTGRES_INITDB_ARGS="--data-checksums" \
  -v pgdata:/var/lib/postgresql/data \
  -v /etc/localtime:/etc/localtime:ro \
  --restart=unless-stopped \
  --memory=4g \
  --cpus=2 \
  --health-cmd="pg_isready -U prod_admin" \
  --health-interval=30s \
  --health-timeout=5s \
  --health-retries=3 \
  postgres:16 \
  -c max_connections=200 \
  -c shared_buffers=1GB

參數(shù)詳解

參數(shù)說明生產(chǎn)環(huán)境重要性
--network pg-network加入專用網(wǎng)絡(luò)????? 網(wǎng)絡(luò)安全隔離
-e POSTGRES_PASSWORD管理員密碼????? 必須使用強密碼
-e TZ=Asia/Shanghai設(shè)置時區(qū)???? 避免時間相關(guān)錯誤
-v pgdata:/var/...掛載數(shù)據(jù)卷????? 數(shù)據(jù)持久化
--restart=unless-stopped自動重啟策略???? 高可用保障
--memory=4g --cpus=2資源限制???? 防止單容器耗盡資源
--health-cmd健康檢查??? 自動故障檢測
-c max_connections=200最大連接數(shù)??? 根據(jù)業(yè)務(wù)需求調(diào)整
-c shared_buffers=1GB共享內(nèi)存大小??? 性能優(yōu)化關(guān)鍵參數(shù)

三、驗證與連接

1. 檢查容器狀態(tài)

docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"

預期輸出

CONTAINER ID  NAMES          STATUS                    PORTS
a1b2c3d4e5f6  prod-postgres  Up 2 minutes (healthy)   0.0.0.0:5432->5432/tcp

2. 查看實時日志

docker logs -f prod-postgres

關(guān)鍵日志確認

PostgreSQL init process complete; ready for start up
database system is ready to accept connections

3. 命令行連接測試

docker exec -it prod-postgres \
  psql -U prod_admin -d production_db -c "SELECT version();"

預期輸出

PostgreSQL 16.3 on x86_64-pc-linux-gnu, compiled by gcc...

4. 客戶端工具連接

使用 DBeaver/pgAdmin 連接:

  • Host: 服務(wù)器IP
  • Port: 5432
  • Database: production_db
  • Username: prod_admin
  • Password: Str0ngP@ss!2025

四、生產(chǎn)環(huán)境高級配置

1. 配置文件自定義

# 創(chuàng)建配置目錄
mkdir -p /docker/pg-config

# 生成默認配置
docker run --rm postgres:16 \
  cat /usr/share/postgresql/postgresql.conf.sample > /docker/pg-config/postgresql.conf

# 編輯配置文件(優(yōu)化關(guān)鍵參數(shù))
nano /docker/pg-config/postgresql.conf

關(guān)鍵參數(shù)建議

listen_addresses = '*'  # 允許所有網(wǎng)絡(luò)接口
max_connections = 250   # 根據(jù)實際負載調(diào)整
shared_buffers = 1GB    # 建議分配內(nèi)存的25%
work_mem = 16MB         # 每個操作的內(nèi)存
maintenance_work_mem = 512MB  # 維護操作內(nèi)存
synchronous_commit = off  # 異步提交提升性能

重新啟動容器

docker run ... \
  -v /docker/pg-config/postgresql.conf:/etc/postgresql/postgresql.conf \
  postgres:16 -c 'config_file=/etc/postgresql/postgresql.conf'

2. 定期備份方案

創(chuàng)建備份腳本 (pg-backup.sh):

#!/bin/bash
BACKUP_DIR=/backups/pg
DATE=$(date +%Y%m%d_%H%M%S)

docker exec prod-postgres \
  pg_dump -U prod_admin -Fc production_db > $BACKUP_DIR/prod_db_$DATE.dump

# 保留最近7天備份
find $BACKUP_DIR -mtime +7 -delete

設(shè)置定時任務(wù)

crontab -e
# 每天凌晨2點備份
0 2 * * * /path/to/pg-backup.sh

3. 監(jiān)控配置

使用內(nèi)置統(tǒng)計收集器:

ALTER SYSTEM SET track_activities = on;
ALTER SYSTEM SET track_counts = on;
ALTER SYSTEM SET track_io_timing = on;
SELECT pg_reload_conf();

推薦監(jiān)控工具:

  • Prometheus + Grafana(配合 postgres_exporter)
  • pgAdmin 4 監(jiān)控面板
  • Datadog / New Relic

五、故障排查與維護

1. 常見問題解決

問題1:端口沖突

# 檢查占用5432端口的進程
sudo lsof -i :5432

# 解決方案:改用其他端口
docker run ... -p 5433:5432 ...

問題2:忘記管理員密碼

# 進入容器bash
docker exec -it prod-postgres bash

# 以postgres用戶連接
psql -U postgres

# 重置密碼
ALTER USER prod_admin WITH PASSWORD 'NewStrongP@ss!2025';

問題3:磁盤空間不足

# 查看容器磁盤使用
docker system df

# 清理無用容器/鏡像
docker system prune -f

# 擴展數(shù)據(jù)卷
docker volume inspect pgdata # 找到實際路徑
# 然后擴展對應磁盤分區(qū)

2. 關(guān)鍵維護命令

查看資源使用

docker stats prod-postgres

進入維護模式

docker exec -it prod-postgres bash
psql -U prod_admin -d production_db

日志分析

docker logs --tail 100 prod-postgres | grep -i error

六、安全加固建議

網(wǎng)絡(luò)層安全

# 限制訪問IP(僅允許應用服務(wù)器)
docker network create --subnet=10.1.0.0/16 pg-secure-network

SSL加密連接

# 啟動容器時添加SSL參數(shù)
-e POSTGRES_SSL=on \
-e POSTGRES_SSL_CERT_FILE=/etc/ssl/certs/server.crt \
-e POSTGRES_SSL_KEY_FILE=/etc/ssl/private/server.key

定期輪換憑證

# 每月更新密碼
ALTER USER prod_admin WITH PASSWORD 'NewP@ssw0rd_$(date +%Y%m)';

審計日志

ALTER SYSTEM SET log_statement = 'all';
SELECT pg_reload_conf();

結(jié)語:容器化數(shù)據(jù)庫的未來

通過 Docker 部署 PostgreSQL 不僅簡化了運維流程,還為現(xiàn)代化應用架構(gòu)提供了堅實基礎(chǔ)。

到此這篇關(guān)于Docker27.3.1中安裝 PostgreSQL16的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker 安裝 PostgreSQL16內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker 搭建單機PostgreSQL操作詳解

    docker 搭建單機PostgreSQL操作詳解

    本文通過實際案例操作演示了如何基于Docker搭建pg的完整過程,并補充了pg數(shù)據(jù)庫操作的常用命令和授權(quán)命令,感興趣的朋友一起看看吧
    2025-04-04
  • ES和Kibana如何設(shè)置賬號密碼

    ES和Kibana如何設(shè)置賬號密碼

    設(shè)置Elasticsearch和Kibana賬號密碼需進入容器修改配置文件,重啟服務(wù)后訪問時輸入憑證,Elasticsearch需設(shè)置elastic等六種賬戶密碼,Kibana通過配置文件啟用安全功能
    2025-07-07
  • 常用的8個應用和中間件的Docker運行示例詳解

    常用的8個應用和中間件的Docker運行示例詳解

    Portainer是一個輕量級的管理 UI ,可讓你輕松管理不同的 Docker 環(huán)境(Docker 主機或 Swarm 群集),這篇文章主要介紹了常用的8個應用和中間件的Docker運行示例,需要的朋友可以參考下
    2024-03-03
  • Windows?Server?2016中文版安裝docker的詳細步驟

    Windows?Server?2016中文版安裝docker的詳細步驟

    因業(yè)務(wù)需要所以需要安裝Docker,但是在途中遇到了一些問題,所以下面這篇文章主要給大家介紹了關(guān)于Windows?Server?2016中文版安裝docker的詳細步驟,需要的朋友可以參考下
    2022-07-07
  • Docker Compose如何編排多個容器

    Docker Compose如何編排多個容器

    使用Docker Compose編排多個容器是一種簡單而強大的方式,可以在單個文件中定義、配置和管理多個容器,本文主要介紹了Docker Compose如何編排多個容器,感興趣的可以了解一下
    2023-11-11
  • 使用Docker完成前端部署詳細圖文教程

    使用Docker完成前端部署詳細圖文教程

    這篇文章主要給大家介紹了關(guān)于使用Docker完成前端部署的相關(guān)資料,Docker變得越來越流行,它可以輕便靈活地隔離環(huán)境,進行擴容,運維管理,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • 解決docker日志掛載的問題

    解決docker日志掛載的問題

    這篇文章主要介紹了解決docker日志掛載的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker安裝MySQL集群全過程(主從復制)

    Docker安裝MySQL集群全過程(主從復制)

    本文介紹通過Docker實現(xiàn)數(shù)據(jù)庫主從集群部署,涵蓋網(wǎng)絡(luò)創(chuàng)建、my.cnf配置、復制設(shè)置及測試,解決防火墻等常見問題,確保數(shù)據(jù)同步可靠
    2025-07-07
  • ubuntu 14.04 64位安裝配置docker教程

    ubuntu 14.04 64位安裝配置docker教程

    這篇文章主要為大家詳細介紹了ubuntu 14.04 64位安裝配置docker教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 使用Docker Swarm 搭建Wordpress的方法

    使用Docker Swarm 搭建Wordpress的方法

    這篇文章主要介紹了使用Docker Swarm 搭建Wordpress的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05

最新評論