一行指令跑起來!用 Docker 建立 PostgreSQL 本地環境

不想在機器上裝 PostgreSQL,但又需要一個測試環境?

用 Docker 是最乾淨的方式。跑起來、測完、砍掉——完全不汙染本機環境。


Step 1. 啟動 PostgreSQL 容器

開啟 PowerShell,貼上這行指令:

docker run -d \
  --name iot-postgres \
  -e POSTGRES_PASSWORD=iot1234 \
  -e POSTGRES_DB=iot_dashboard \
  -p 5432:5432 \
  postgres:16

💡 這行指令做了什麼:

  • --name iot-postgres:幫容器取名,之後停止或刪除時好操作
  • -e POSTGRES_PASSWORD=iot1234:設定 postgres 帳號的密碼
  • -e POSTGRES_DB=iot_dashboard:順便自動建立一個資料庫
  • -p 5432:5432:把容器的 5432 port 對應到本機的 5432
  • postgres:16:使用 PostgreSQL 16 版的官方映像檔(本文以 16 版實測;目前最新版為 PostgreSQL 18,把 16 換成 18 即可使用最新版)

postgres-docker-shell-01.png


Step 2. 確認容器有沒有跑起來

docker ps

看到 iot-postgres 出現在清單裡、STATUS 是 Up,就代表成功了。

postgres-docker-shell-02.png

postgres-docker-shell-03.png


Step 3. 清理:停止並刪除容器

測完不想留著?一行搞定:

docker stop iot-postgres && docker rm iot-postgres

postgres-docker-shell-04.png

postgres-docker-shell-05.png

⚠️ 容器刪掉,裡面的資料也跟著消失。
   如果需要保留資料,建立容器時要加 -v 掛載本機目錄。

我的看法

這個方式最適合快速驗證或開發測試,特別是需要頻繁重置資料庫的場景(跑測試、試 migration、練習 SQL)。

正式環境或需要長期保留資料的話,記得補上 -v volume 掛載,不然容器一砍資料就沒了。


常見問題

Q:PostgreSQL 的預設帳號是什麼?
A:預設帳號是 postgres,密碼是你在 -e POSTGRES_PASSWORD= 填的那個值,這個範例是 iot1234

Q:容器刪掉之後,資料還在嗎?
A:不在了。容器一刪,裡面的資料跟著消失。需要持久化的話,建立容器時加 -v /你的本機路徑:/var/lib/postgresql/data

Q:Port 5432 被佔用了怎麼辦?
A:把 -p 5432:5432 改成 -p 5433:5432,用本機 5433 port 連進去就好,容器內部還是跑 5432。


有踩到其他坑?底下留言告訴我。

留言區

載入中...

發表留言