使用 Docker Compose 安裝 PostgreSQL 16

前面是指南,后面是實際工作日志。

1. 創建?docker-compose.yml?文件

yaml

復制

下載

version: '3.9'
services:postgres:image: postgres:16container_name: postgres-16environment:POSTGRES_USER: your_username     # 替換為你的用戶名POSTGRES_PASSWORD: your_password # 替換為你的強密碼POSTGRES_DB: your_database       # 替換為默認數據庫名volumes:- postgres_data:/var/lib/postgresql/dataports:- "5432:5432"restart: alwaysvolumes:postgres_data:

2. 啟動容器

bash

復制

下載

docker-compose up -d

3. 驗證安裝

bash

復制

下載

docker ps -a | grep postgres-16

輸出應顯示容器狀態為?Up


關鍵配置說明

  1. 數據持久化
    volumes?映射確保數據庫數據保存在主機上(即使容器刪除,數據也不會丟失)

  2. 環境變量

    • POSTGRES_USER: 超級用戶賬號

    • POSTGRES_PASSWORD: 數據庫密碼(建議使用強密碼)

    • POSTGRES_DB: 容器啟動時創建的默認數據庫

  3. 端口映射
    5432:5432?將容器端口映射到主機端口


常用管理命令

命令說明
docker-compose stop停止容器
docker-compose start啟動容器
docker-compose down -v刪除容器和數據卷
docker exec -it postgres-16 psql -U your_username進入PSQL命令行
docker logs postgres-16查看數據庫日志

安全增強建議(可選)

yaml

復制

下載

environment:# 禁用默認public模式寫權限POSTGRES_INITDB_ARGS: "--auth-host=scram-sha-256 --no-instance"# 啟用SSLPOSTGRES_SSL: "on"# 禁用超級用戶遠程登錄POSTGRES_HOST_AUTH_METHOD: "scram-sha-256"

💡?生產環境必做

  1. 修改默認的?postgres?用戶名

  2. 使用至少16位復雜密碼

  3. 通過?.env?文件管理敏感信息(避免密碼泄露)


連接示例(Python psycopg2)

python

復制

下載

import psycopg2conn = psycopg2.connect(host="localhost",port=5432,user="your_username",password="your_password",database="your_database"
)

通過以上步驟,您已完成 PostgreSQL 16 的容器化部署!

[root@centos08 work]# cd postgresql/

[root@centos08 postgresql]# ls

[root@centos08 postgresql]# vi docker-compose.yml

[root@centos08 postgresql]# docker-compose up -d

WARN[0000] /work/postgresql/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion

[+] Running 15/15

? postgres Pulled 72.0s

? 61320b01ae5e Pull complete 22.6s

? 2dced227b4f3 Pull complete 23.0s

? f91d7f75e2ed Pull complete 23.8s

? d52fe2b6a589 Pull complete 24.3s

? c66d2dcd9ac2 Pull complete 50.7s

? 5dedf13f853f Pull complete 51.2s

? a1b7b6ac9604 Pull complete 51.4s

? 54e868887d72 Pull complete 51.8s

? 54fbe2476d31 Pull complete 68.3s

? 0d367dbc515a Pull complete 68.6s

? fcdc97c8b0f7 Pull complete 68.9s

? 35ea952ba4d5 Pull complete 69.2s

? 6802029dd7cb Pull complete 69.6s

? 89ac21e5afbc Pull complete 69.9s

[+] Running 3/3

? Network postgresql_default Created 0.3s

? Volume "postgresql_postgres_data" Created 0.1s

? Container postgres-16 Started 1.3s

[root@centos08 postgresql]# docker ps -a | grep postgres-16

52f5cd24ba5c postgres:16 "docker-entrypoint.s…" 14 seconds ago Up 12 seconds 0.0.0.0:5432->5432/tcp postgres-16

[root@centos08 postgresql]#

[root@centos08 postgresql]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

postgres 16 616e340baeac 2 weeks ago 436MB

bitnami/kafka 3.5.2 21bd84c8365d 5 months ago 638MB

redis 7.2.4 9b38108e295d 14 months ago 116MB

zilliz/attu v2.3.3 5c2a0dd36e38 18 months ago 282MB

milvusdb/milvus v2.3.3 7e482a814849 19 months ago 870MB

minio/minio RELEASE.2023-03-20T20-16-18Z 400c20c8aac0 2 years ago 252MB

quay.io/coreos/etcd v3.5.5 673f29d03de9 2 years ago 182MB

[root@centos08 postgresql]# docker save postgres:16 -o postgres-16.tar

[root@centos08 postgresql]# ls -lh

total 424M

-rw-r--r-- 1 root root 429 Jun 5 09:59 docker-compose.yml

-rw------- 1 root root 424M Jun 5 10:03 postgres-16.tar

[root@centos08 postgresql]#

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86482.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86482.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86482.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從數據報表到決策大腦:AI重構電商決策鏈條

在傳統電商運營中,決策鏈條往往止步于“數據報表層”:BI工具整合歷史數據,生成滯后一周甚至更久的銷售分析,運營團隊憑經驗預判需求。當爆款突然斷貨、促銷庫存積壓時,企業才驚覺標準化BI的決策時差正成為增長瓶頸。 一…

SpringBoot 自動化部署實戰:CI/CD 整合方案與避坑指南

引言 在微服務架構盛行的今天,SpringBoot 憑借其開箱即用的特性成為 Java 后端開發的主流框架。然而,隨著項目規模擴大,手動部署的效率瓶頸逐漸顯現。本文將結合 GitLab CI/CD、Jenkins 等工具,深入探討 SpringBoot 項目的自動化部…

力扣HOT100之二分查找:35. 搜索插入位置

這道題屬于是二分查找的入門題了,我依稀記得一些二分查找的編碼要點,但是最后還是寫出了一個死循環,無語(ˉ▽ˉ;)…又回去看了下自己當時的博客和卡哥的視頻,這才發現自己分情況只分了兩種,最后導致死循環…

VS創建Qt項目,Qt的關鍵字顯示紅色波浪線解決方法

如圖所示,VS2017新創建的Qt項目,編譯正常,關鍵字顯示識別失敗,顯示紅色波浪線,編譯運行沒問題。 解決方法: 如下圖所示,C/C -> 常規 -> 附加包含目錄 ->添加Qt的Include路徑 如下圖…

pikachu靶場通關筆記22-1 SQL注入05-1-insert注入(報錯法)

目錄 一、SQL注入 二、insert注入 三、報錯型注入 四、updatexml函數 五、源碼審計 六、insert滲透實戰 1、滲透準備 2、獲取數據庫名database 3、獲取表名table 4、獲取列名column 5、獲取字段 本系列為通過《pikachu靶場通關筆記》的SQL注入關卡(共10關&#xff0…

k8s從入門到放棄之HPA控制器

k8s從入門到放棄之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一種用于自動擴展部署、副本集或復制控制器中Pod數量的機制。它可以根據觀察到的CPU利用率(或其他自定義指標)來調整這些對象的規模,從而幫助應用程序在負…

人機融合智能 | “人智交互”跨學科新領域

本文系統地提出基于“以人為中心AI(HCAI)”理念的人-人工智能交互(人智交互)這一跨學科新領域及框架,定義人智交互領域的理念、基本理論和關鍵問題、方法、開發流程和參與團隊等,闡述提出人智交互新領域的意義。然后,提出人智交互研究的三種新范式取向以及它們的意義。最后,總結…

ccf中學生計算機程序設計入門篇課后題p164頁test(1)-2 輸入一個數,統計這個數二進制中1的個數

include <iostream> using namespace std;int main() {int x;int n 0;// 輸入數據cin >> x;// 統計x二進制中1的個數for (n 0; x ! 0; x & x - 1) {n;}// 輸出結果cout << n << endl;return 0; }程序解釋&#xff1a; 輸入&#xff1a;程序從標…

無人機偵測與反制技術的進展與應用

國家電網無人機偵測與反制技術的進展與應用 引言 隨著無人機&#xff08;無人駕駛飛行器&#xff0c;UAV&#xff09;技術的快速發展&#xff0c;其在商業、娛樂和軍事領域的廣泛應用帶來了新的安全挑戰。特別是對于關鍵基礎設施如電力系統&#xff0c;無人機的“黑飛”&…

【Go語言基礎【18】】Map基礎

文章目錄 零、概述一、Map基礎1、Map的基本概念與特性2、Map的聲明與初始化3、Map的基本操作 二、Map的底層實現三、Map的注意事項 零、概述 Map與其他語言的對比 特性Go mapJava HashMapPython dict并發安全非線程安全&#xff0c;需手動加鎖非線程安全&#xff08;Concurre…

Qt客戶端技巧 -- 窗口美化 -- 窗口陰影

不解析&#xff0c;直接給示例 窗口設為不邊框且背景透明,好用來承載陰影 窗口一個Widget用來作真實窗口的作用&#xff0c;在真實窗口上加上陰影特效 上下兩層Widget方式 main.cpp #include <QtCore/qglobal.h> #if QT_VERSION > 0x050000 #include <QtWidget…

優選算法第十二講:隊列 + 寬搜 優先級隊列

優選算法第十二講&#xff1a;隊列 寬搜 && 優先級隊列 1.N叉樹的層序遍歷2.二叉樹的鋸齒型層序遍歷3.二叉樹最大寬度4.在每個樹行中找最大值5.優先級隊列 -- 最后一塊石頭的重量6.數據流中的第K大元素7.前K個高頻單詞8.數據流的中位數 1.N叉樹的層序遍歷 2.二叉樹的鋸…

華為OD最新機試真題-流水線-OD統一考試(B卷)

題目描述: 有個工廠有m條 流水線,來并行完成n個獨立的作業,該工廠設置了一個調度系統,在安排作業時,總是優先執行處理時間最短的作業。 現給定流水線個數m,需要完成的作業數n,每個作業的處理時間分別為t1,.2..n。請你編程計算處理完所有作業的耗時為多少? 當n>m時

區塊鏈技術概述

區塊鏈技術是一種去中心化、分布式賬本技術&#xff0c;通過密碼學、共識機制和智能合約等核心組件&#xff0c;實現數據不可篡改、透明可追溯的系統。 一、核心技術 1. 去中心化 特點&#xff1a;數據存儲在網絡中的多個節點&#xff08;計算機&#xff09;&#xff0c;而非…

項目css / js的兼容性next項目實踐處理

之前寫過一篇&#xff0c;但是沒有css的處理&#xff0c;但是那一篇有幾個文章蠻好的https://blog.csdn.net/SaRAku/article/details/144704916 css兼容性和js兼容性 1. 確定需要兼容的版本 先確定你們的兼容性版本&#xff0c;我們的兼容性以APP H5的兼容版本為最低兼容性&…

Vue3 + Vite 中使用 Lodash-es 的防抖 debounce 詳解

Vue3 Vite 中使用 Lodash-es 的防抖(debounce)詳解 在 Vue3 Vite 項目中&#xff0c;debounce 是 lodash-es 中最常用的功能之一&#xff0c;它可以幫助我們優化高頻事件的處理。下面我將詳細講解 debounce 的使用方法&#xff0c;并提供一個完整的示例。 Debounce 核心概念…

MySQL--慢查詢日志、日志分析工具mysqldumpslow

mysqldumpslow 常用參數&#xff1a; -s&#xff0c;是order的順序----- al 平均鎖定時間-----ar 平均返回記錄時間-----at 平均查詢時間&#xff08;默認&#xff09;-----c 計數-----l 鎖定時間-----r 返回記錄-----t 查詢時間-t&#xff0c;是top n的意思&#xff0c;即為返…

C++課設:實現圖書館借閱記錄系統(支持書籍管理、借閱功能、超期檢測提醒)

名人說&#xff1a;路漫漫其修遠兮&#xff0c;吾將上下而求索。—— 屈原《離騷》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 專欄介紹&#xff1a;《編程項目實戰》 目錄 一、系統概述與設計思路1. 系統核心功能…

矩陣和向量范數的區別分析

文章目錄 1. 研究對象本質差異2. 運算和作用方式不同3. 應用需求不同4. 數學性質和理論體系不同5. 幾何直觀不同6. 范數定義區別7. 范數計算方式區別8. 范數幾何意義區別9. 范數相容性區別總結 1. 研究對象本質差異 向量本質&#xff1a;向量是具有大小和方向的一維有序數組&a…

HTMLCSS 學習總結

目錄 ???一、HTML核心概念?? ??三大前端技術作用?? ??HTML基礎結構?? 開發工具&#xff1a;VS Code 專業配置????安裝步驟??&#xff1a; ??二、HTML標簽大全&#xff08;含表格&#xff09;?? ??三、CSS核心技術?? 1. 三種引入方式對比 2.…