Docker Compose 基礎部署筆記:把服務整理成可重啟的系統

一、前言

在伺服器上部署服務時,如果每個服務都用手動指令啟動,日後維護會變得很麻煩。 Docker Compose 可以將多個服務寫在同一份設定檔中,讓服務啟動、停止、重建與管理變得更清楚。

這篇文章整理 Docker Compose 的基本使用概念,以及在部署 WordPress、資料庫或其他服務時需要注意的地方。

二、Docker Compose 是什麼?

Docker Compose 是用來管理多個 Docker container 的工具。透過一份 docker-compose.yml,可以描述服務名稱、映像檔、環境變數、volume、port 與重啟策略。

例如一個 WordPress 網站通常至少需要:

  • WordPress 容器
  • MariaDB 或 MySQL 資料庫容器

使用 Compose 後,可以用一個指令啟動整組服務:

docker compose up -d

三、常見設定項目

1. services

services 用來定義要啟動的服務,每個服務通常會對應一個 container。

2. image

image 表示要使用哪個 Docker image,例如 wordpressmariadbnginx

3. volumes

volumes 用來保存資料。如果沒有設定 volume,container 被刪除後資料可能也會消失。

例如 WordPress 的網站檔案和資料庫資料都應該使用 volume 保存。

4. ports

ports 用來設定主機與 container 的連接埠對應。

127.0.0.1:8081:80

這代表只有本機可以透過 8081 存取 container 的 80 port,外部無法直接連入。 如果要對外提供服務,可以再由 Nginx 反向代理。

5. restart

restart: unless-stopped 可以讓服務在主機重開機後自動啟動,除非使用者手動停止它。

四、常用指令

啟動服務:

docker compose up -d

停止服務:

docker compose down

查看容器狀態:

docker ps

查看 log:

docker logs container_name --tail=80

五、部署時的注意事項

  • 資料庫密碼不要寫得太簡單。
  • 重要資料要使用 volume 保存。
  • 不需要對外開放的 port 應綁定在 127.0.0.1。
  • 服務名稱要清楚,方便日後維護。
  • 修改 Compose 檔案後,要重新啟動服務。

六、實際應用

這次 WordPress 架設就使用 Docker Compose 建立兩套 WordPress 與兩套資料庫。 每個網站都有自己的 WordPress container 和 database container,這樣可以讓網站彼此隔離,避免其中一個網站出問題時影響另一個。

這種方式很適合小型伺服器或個人專案使用,因為它兼顧了部署方便與基本隔離。

七、心得

Docker Compose 的重點不是讓服務變得更複雜,而是讓部署流程變得可重複、可管理。

當服務越來越多時,如果沒有統一管理方式,伺服器會很快變得混亂。 使用 Compose 可以讓每個服務的設定被明確記錄下來,也方便之後備份、遷移或重建。

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *