在現代開發環境中,能夠快速部署和管理資料庫系統對於開發者來說是至關重要的。本文將介紹如何使用 Docker Compose 快速安裝和配置 PostgreSQL 和 pgAdmin 環境。Docker Compose 是 Docker 的一個輔助工具,用於定義和運行多容器的 Docker 應用程式。透過 YAML 文件,開發者可以簡單地定義應用程式需要的服務、網路和儲存卷,然後只需一個命令即可啟動和停止整個應用程式的所有服務。它主要功能包含定義多個服務、自動化管理以及提供環境隔離。PostgreSQL 是一個強大、開源的關聯式資料庫管理系統(RDBMS),以其高擴展性、靈活性和可靠性著稱。它支援多種資料類型和先進的查詢功能,適用於各種不同規模和需求的應用程式。其特點包含高性能、擴展性和安全性。pgAdmin 是 PostgreSQL 的官方管理工具,提供了一個功能豐富的圖形化界面,使得資料庫的管理和操作更加直觀和便捷。通過 pgAdmin,開發者可以輕鬆地進行資料庫的設置、管理和查詢操作。其主要功能包含資料庫管理、查詢編輯和資料可視化。
🔗 GitHub 儲存庫:https://github.com/qwe987299/postgresql_and_pgadmin
📝 docker-compose.yml
services:
postgres:
image: postgres:latest
container_name: postgres
restart: always
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
PGDATA: /var/lib/postgresql/data
volumes:
- ./db-data:/var/lib/postgresql/data
ports:
- "5432:5432"
pgadmin:
image: dpage/pgadmin4:latest
container_name: pgadmin
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: example@gmail.com
PGADMIN_DEFAULT_PASSWORD: password
PGADMIN_LISTEN_PORT: 80
ports:
- "8888:80"
volumes:
- ./pgadmin-data:/var/lib/pgadmin
links:
- "postgres:pgsql-server"
這個 Docker Compose 配置檔案定義了兩個服務,分別是 `postgres` 和 `pgadmin`。這兩個服務共同協作,提供了一個完整的 PostgreSQL 資料庫管理解決方案。首先,`postgres` 服務是基於官方的 PostgreSQL 映像檔,它負責運行 PostgreSQL 資料庫伺服器。配置檔中指定了使用最新版本的映像檔,並且將容器命名為 `postgres`。這個容器設定為無論何時停止都會自動重新啟動。環境變數部分設置了資料庫名稱、使用者和密碼。將本地的 `./db-data` 資料夾映射到容器內的 `/var/lib/postgresql/data`,確保資料持久化。最終,將主機的 `5432` Port 映射到容器的 `5432` Port,使外部應用可以透過該 Port 訪問資料庫。接著是 `pgadmin` 服務,它使用的是官方的 pgAdmin 4 映像檔,負責提供一個網頁介面來管理 PostgreSQL 資料庫。這個服務也設定為使用最新版本的映像檔,容器命名為 `pgadmin`,並設定為自動重啟。環境變數包括 pgAdmin 的預設管理員信箱和密碼,以及在容器內監聽的 Port `80`。主機的 `8888` Port 被映射到容器的 `80` Port,使得使用者可以透過 `8888` Port 訪問 pgAdmin 的網頁介面。此外,將本地的 `./pgadmin-data` 資料夾映射到容器內的 `/var/lib/pgadmin` 路徑,以確保配置和資料的持久化。最後,pgAdmin 服務與 `postgres` 服務建立鏈接,使 pgAdmin 可以透過名稱 `postgres` 訪問 PostgreSQL 資料庫。
📝 chown.sh
sudo chown -R 5050:5050 pgadmin-data
執行該指令的用意是改變 pgadmin-data 目錄及其所有子目錄和文件的擁有者和群組,使它們的擁有者和群組都設定為 UID 和 GID 5050。在這個情境下,5050:5050 對應於 pgAdmin 容器內部使用的使用者和群組 ID。這樣做的目的是確保容器內的 pgAdmin 進程對 pgadmin-data 目錄及其內容具有適當的讀寫權限,避免因權限問題導致應用程式無法正常運行。
▲ 為了方便快速建立環境,可以將本文提供的 Git 儲存庫 clone 到自訂的路徑,接著 cd postgresql_and_pgadmin
,最後執行 docker compose up -d
及 sh chown.sh
。
▲ 透過 localhost:8888 進入 pgAdmin 網頁介面,輸入 pgAdmin 預設管理員信箱和密碼即可登入,另外有提供簡體中文介面。
▲ 成功登入後先點「添加服務器」。
▲ 先輸入「名稱」再切換至「連接」頁籤。
▲ 將主機名稱、使用者名稱及密碼等基本資訊輸入上去,這些資訊都可以在一開始的 docker-compose.yml 中找到,最後按「保存」。
▲ 接著 pgAdmin 就會自動連上我們指定的 PostgreSQL 資料庫啦!
留言區 / Comments
萌芽論壇