POSTGRES_PASSWORD 環境變數Day 13 認識了 PostgreSQL,今天終於要把前面學到的 Docker 知識實際應用在資料庫上。
前面已經下載過 PostgreSQL Image,如果還沒有,可以先輸入:
docker pull postgres
接著使用:
docker images
確認是否有看到 postgres Image。
接著輸入:
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 預設使用:
5432
所以這次設定:
-p 5432:5432
還記得 Day 7 的 Port Mapping:
主機 Port 5432
↓
Container Port 5432
↓
PostgreSQL
這樣電腦上的其他程式就可以透過 localhost:5432 連接 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 和環境變數,也終於真正應用在資料庫上。
docker logs my-postgres 查看錯誤POSTGRES_PASSWORD
5433:5432
docker ps 找不到 Container → ✅ 使用 docker ps -a 查看全部 Containermy-postgres Container5432:5432 Port Mappingdocker ps 確認 PostgreSQL 正在執行docker logs 查看 PostgreSQL 狀態今天終於真正使用 Docker 建立 PostgreSQL Container,也把前面學到的內容實際串在一起。
一開始看到 docker run 後面有很多參數會覺得有點複雜,但拆開來看之後,其實就是設定 Container 名稱、資料庫密碼、Port 和執行方式。
成功看到 PostgreSQL Container 顯示 Up 後,也代表資料庫已經成功在 Docker 中執行。接下來就可以繼續設定 PostgreSQL 的帳號、資料庫名稱,並嘗試真正連進資料庫。