
- Docker 教程
- Docker - 首頁
- Docker - 概述
- Docker - 在Linux上安裝
- Docker - 安裝
- Docker - Hub
- Docker - 映象
- Docker - 容器
- Docker - 倉庫
- Docker - Compose
- Docker - 使用容器
- Docker - 架構
- Docker - 層
- Docker - 容器與主機
- Docker - 配置
- Docker - 容器與Shell
- Docker - Dockerfile
- Docker - 構建檔案
- Docker - 公共倉庫
- Docker - 管理埠
- Docker - Web伺服器
- Docker - 命令
- Docker - 容器連結
- Docker - 資料儲存
- Docker - 卷
- Docker - 網路
- Docker - 安全
- Docker - 工具箱
- Docker - 雲
- Docker - 構建雲
- Docker - 日誌
- Docker - 持續整合
- Docker - Kubernetes架構
- Docker - Kubernetes的工作原理
- Docker - 生成式AI
- Docker - 託管
- Docker - 最佳實踐
- Docker 設定服務
- Docker - 配置Node.js
- Docker - 配置MongoDB
- Docker - 配置NGINX
- Docker - 配置ASP.Net
- Docker - 配置MySQL
- Docker - 配置Go
- Docker - 配置Rust
- Docker - 配置Apache
- Docker - 配置MariaDB
- Docker - 配置Jupyter
- Docker - 配置Portainer
- Docker - 配置Rstudio
- Docker - 配置Plex
- Docker 配置 - Flame
- Docker 配置 - PostgreSql
- Docker 配置 - Mosquitto
- Docker 配置 - Grafana
- Docker 配置 - Nextcloud
- Docker 配置 - Pawns
- Docker 配置 - Ubuntu
- Docker 配置 - RabbitMQ
- Docker - 配置Python
- Docker - 配置Java
- Docker - 配置Redis
- Docker - 配置Alpine
- Docker - 配置BusyBox
- Docker 配置 - Traefik
- Docker 配置 - WordPress
- Docker 有用資源
- Docker - 快速指南
- Docker - 有用資源
- Docker - 討論
Docker - 配置PostgreSql
PostgreSQL,通常被稱為Postgres,是一個現代的、免費的、開源的關係資料庫管理系統(RDBMS)。該軟體專注於可靠性、效能和穩健性。該資料庫系統的獨特之處在於它同時支援SQL查詢和JSON檔案。
Docker 為容器化Postgres資料庫提供了一個強大的解決方案。這有助於管理、部署和擴充套件資料庫。在本章中,我們將學習如何在隔離的環境中將Postgres資料庫進行Docker化。
Docker化PostgreSql的先決條件
在開始將Postgres設定到Docker中之前,需要複習以下概念:
- Docker基礎知識 - 瞭解Docker的概念,例如容器、Dockerfile和映象。
- Postgres基礎知識 - 瞭解Postgres的基本知識以及如何處理使用者和資料庫。
- Docker安裝 - 確保Docker已啟動並正在執行。如果您的系統上尚未安裝,您可以參考Docker官方網站。
- 文字編輯器的存在 - 確保系統上已安裝文字編輯器,例如Vscode、Notepad++或Sublime。
- CLI(命令列介面) - 非常需要熟悉處理CLI命令。
在Docker中配置和連線到PostgreSQL資料庫的步驟
請按照以下步驟在Docker中配置和連線到PostgreSQL:
步驟1:從官方hub拉取Postgres映象
首先,我們需要做的就是從Docker的網站上拉取官方的Postgres映象。這可以透過開啟命令提示符或終端並執行以下命令來完成。
$ docker pull postgres
此命令會將Postgres的最新映象拉取到您的本地環境。

步驟2:建立Postgres容器並執行它
現在是時候使用Docker的Postgres映象建立一個容器了。要實現這一點,請使用以下命令:
$ docker run -d —name my-postgres-container -p 5432:5432 -e POSTGRES_PASSWORD=password postgres
讓我們詳細瞭解一下該命令:
- Docker run - 此命令用於啟動Docker容器。
- -d - 此標誌表示分離模式。這意味著容器在後臺執行,不會干擾其他程序。
- –name - 此標誌用於命名容器。您可以根據自己的喜好命名容器。
- -p 5432:5432 - 這是埠標誌。它將主機埠和容器埠繫結在一起,以便它們可以輕鬆地相互通訊。5432是Postgres的預設埠。
- -e POSTGRES_PASSWORD="your password" - 此標誌用於設定環境變數。在本例中,我們在容器內將名為“POSTGRES_PASSWORD”的環境變數設定為“your password”指示的密碼值。
- postgres - 這是您本地機器中用於容器的Docker映象的名稱。

步驟3:驗證容器是否正常執行
要檢查容器是否正常執行,我們可以使用以下命令:
$ docker ps
這將列出Docker容器或程序。“ps”代表程序的狀態。
上述命令的輸出將是一個表格,提供有關容器ID、映象、命令、建立時間、狀態、埠和名稱的資訊。

步驟4:連線到Postgres資料庫
現在Postgres容器已啟動並正在執行,讓我們連線到資料庫。這可以透過在容器內執行以下psql命令來實現。
$ docker exec -it my-postgres-container psql -U postgres
讓我們分解上述命令以更好地理解:
- docker exec - 用於在Docker環境中執行命令。
- -it - 此標誌用於在Docker容器內開啟互動式終端。
- Postgres - 這是正在執行的Docker的名稱。
- psql - 這是Postgres的客戶端,可幫助您與資料庫系統互動。
- -U postgres - 這定義了容器連線到的Postgres伺服器的使用者。

步驟5:在Postgres環境中建立資料庫
一旦我們成功連線到Postgres伺服器,讓我們繼續在其中建立資料庫。要建立新的資料庫,可以使用以下SQL命令:
CREATE DATABASE <database name>
在上述命令中,<database name> 可以替換為使用者定義的任何合適的資料庫名稱。

要列出所有存在的資料庫,我們可以使用以下命令:
\l

要退出顯示模式並退出,我們可以使用以下命令:
\q
要連線到任何資料庫,可以使用以下命令:
\c postgres
連線到資料庫後,我們可以執行SQL查詢並在資料庫中建立表以獲得所需的輸出。
步驟6. 在資料庫中建立表
現在我們的資料庫已準備就緒,讓我們在其中建立一個表並向其中插入一些示例資料行:
CREATE TABLE people_details ( id SERIAL PRIMARY KEY, name VARCHAR(50), email VARCHAR(80) ); INSERT INTO people (name, email) VALUES (‘myname’, ‘myemail@email.com’);

步驟7:查詢資料
為了確保資料已成功插入到表中,我們可以使用以下SQL命令:
SELECT * FROM <table name>
讓我們將<table name>替換為“people_details”。這應該列出表“people_details”中存在的所有行,如下所示:

結論
在本章中,我們解釋瞭如何將Postgres伺服器Docker化,以及如何在容器內輕鬆構建和執行它。此環境一致、可移植且易於部署。此設定可以輕鬆地與其他使用者共享並與任何其他大型與Docker相關的基礎設施整合。
關於Docker化Postgres伺服器的常見問題
在本節中,我們收集了一些關於如何Docker化Postgres伺服器的常見問題,以及它們的答案。
1. 如何升級Docker中的Postgres版本?
我們可以透過使用Docker exec命令連線到容器的shell並手動更新版本來升級Docker中的Postgres版本。
我們還可以使用命令“docker pull postgres”拉取Docker的最新映象。您也可以在Dockerfile中指定要升級到的版本並重新構建映象。
2. 如何在Docker中排除Postgres相關的錯誤?
我們可以透過使用命令“docker logs”檢查容器日誌來排除Docker中Postgres相關的錯誤。確保容器有足夠的CPU和儲存記憶體可用。重要的是要檢查您的機器上是否有其他服務正在執行埠5432。