一行指令跑起來!用 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 對應到本機的 5432postgres:16:使用 PostgreSQL 16 版的官方映像檔(本文以 16 版實測;目前最新版為 PostgreSQL 18,把16換成18即可使用最新版)

Step 2. 確認容器有沒有跑起來
docker ps
看到 iot-postgres 出現在清單裡、STATUS 是 Up,就代表成功了。


Step 3. 清理:停止並刪除容器
測完不想留著?一行搞定:
docker stop iot-postgres && docker rm iot-postgres


⚠️ 容器刪掉,裡面的資料也跟著消失。
如果需要保留資料,建立容器時要加 -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。
有踩到其他坑?底下留言告訴我。
半桶水的
留言區
載入中...
發表留言