iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
IT Operation

Docker 新手村:從容器到 PostgreSQL 的實戰之路系列 第 14 篇

Day 14 - 用 Docker 啟動第一個 PostgreSQL Container

  • 分享至 

  • xImage
  •  

學習目標

  • 使用 Docker 建立 PostgreSQL Container
  • 認識 PostgreSQL 官方 Image
  • 了解 POSTGRES_PASSWORD 環境變數
  • 將 PostgreSQL 的 Port 對應到主機
  • 確認 PostgreSQL Container 是否正常執行

開始建立 PostgreSQL Container

Day 13 認識了 PostgreSQL,今天終於要把前面學到的 Docker 知識實際應用在資料庫上。

前面已經下載過 PostgreSQL Image,如果還沒有,可以先輸入:

docker pull postgres

接著使用:

docker images

確認是否有看到 postgres Image。


建立 PostgreSQL Container

接著輸入:

docker run --name my-postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres

第一次看到這行可能有點長,可以把它拆開來理解:

  • docker run:建立並執行 Container
  • --name my-postgres:將 Container 命名為 my-postgres
  • -e:設定環境變數
  • POSTGRES_PASSWORD=123456:設定 PostgreSQL 密碼
  • -p 5432:5432:設定 Port Mapping
  • -d:讓 Container 在背景執行
  • postgres:使用 PostgreSQL Image

123456 只是練習用的密碼,實際專案中應該使用更安全的密碼。


為什麼需要設定密碼?

PostgreSQL 官方 Image 在建立 Container 時,需要設定資料庫使用者的密碼。

這次透過:

-e POSTGRES_PASSWORD=123456

設定預設使用者 postgres 的密碼。

可以簡單理解成:

使用者:postgres
密碼:123456

之後使用其他工具連接 PostgreSQL 時,就會使用到這些登入資訊。


PostgreSQL 的 Port

PostgreSQL 預設使用:

5432

所以這次設定:

-p 5432:5432

還記得 Day 7 的 Port Mapping:

主機 Port 5432
       ↓
Container Port 5432
       ↓
   PostgreSQL

這樣電腦上的其他程式就可以透過 localhost:5432 連接 PostgreSQL。


確認 PostgreSQL 是否啟動

建立完成後,可以輸入:

docker ps

如果看到:

my-postgres

而且狀態顯示為 Up,就代表 PostgreSQL Container 正在執行。

如果沒有看到,可以使用:

docker ps -a

查看 Container 是否因為錯誤而停止。

也可以查看執行紀錄:

docker logs my-postgres

如果看到:

database system is ready to accept connections

代表 PostgreSQL 已經準備好接受連線。


今天完成的架構

到目前為止,我們已經完成:

我的電腦
    │
localhost:5432
    │
    ↓
PostgreSQL Container
    │
    ↓
PostgreSQL

前面學習的 Image、Container、Port 和環境變數,也終於真正應用在資料庫上。


常見錯誤與修正

  • ❌ Container 建立後馬上停止 → ✅ 使用 docker logs my-postgres 查看錯誤
  • ❌ 忘記設定 PostgreSQL 密碼 → ✅ 加入 POSTGRES_PASSWORD
  • ❌ 5432 Port 已經被占用 → ✅ 更換主機端 Port,例如 5433:5432
  • ❌ docker ps 找不到 Container → ✅ 使用 docker ps -a 查看全部 Container

今日小挑戰(可交付)

  • [ ] 下載 PostgreSQL Image
  • [ ] 建立 my-postgres Container
  • [ ] 設定 PostgreSQL 密碼
  • [ ] 設定 5432:5432 Port Mapping
  • [ ] 使用 docker ps 確認 PostgreSQL 正在執行
  • [ ] 使用 docker logs 查看 PostgreSQL 狀態

DAY14 心得

今天終於真正使用 Docker 建立 PostgreSQL Container,也把前面學到的內容實際串在一起。

一開始看到 docker run 後面有很多參數會覺得有點複雜,但拆開來看之後,其實就是設定 Container 名稱、資料庫密碼、Port 和執行方式。

成功看到 PostgreSQL Container 顯示 Up 後,也代表資料庫已經成功在 Docker 中執行。接下來就可以繼續設定 PostgreSQL 的帳號、資料庫名稱,並嘗試真正連進資料庫。


上一篇
Day 13 - PostgreSQL 是什麼?開始進入資料庫世界
系列文
Docker 新手村:從容器到 PostgreSQL 的實戰之路 共 14 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言