iT邦幫忙

2026 iThome 鐵人賽

DAY 29
0
IT Operation

從零開始的 Linux 維運與 Bash 自動化實戰 30 天系列 第 29 篇

Day 29:Docker Compose — 多容器應用程式的一鍵編排

  • 分享至 

  • xImage
  •  

在 Day 26–28 中,學了打包自訂 Image、掛載 Volume 持久化資料,以及建立自訂 Network 讓容器間互相通訊。但如果一個專案包含前端、後端與資料庫,每次都要手動執行無數條 docker run、-v 與 --network 指令,維運將會變得非常繁瑣。
今天要學習 DevOps 核心工具 Docker Compose,透過一個 YAML 設定檔,將所有服務、網路與資料卷整合在一起,實現一鍵啟動整個多容器架構

Docker Compose 核心觀念

  • docker-compose.yml:宣告式(Declarative)設定檔,用來定義所有服務(Services)、網路(Networks)與資料卷(Volumes)。
  • 一鍵管理:只需要一行 docker-compose up -d 即可自動建立網路、掛載 Volume 並依序啟動所有容器。

實作
https://ithelp.ithome.com.tw/upload/images/20260925/20183847S3Bau2dwIt.png

  • 發現容器未啟動
    • 除錯發現:一開始執行指令時,系統回報 service "web" is not running,且 curl 出現 Could not connect to server,確認背景的 Nginx 服務目前處於停止狀態。
  • 一鍵啟動 Compose 服務
    • 一鍵喚醒 (docker-compose up -d):
    • 建立網路:自動建立專屬橋接網路 day29-compose_app-net。
    • 啟動容器:自動建立並啟動 day29-compose-web-1 的 Nginx 服務([+] up 2/2 顯示綠色勾勾)。
  • 容器內寫入網頁與 HTTP 測試
    • 動態寫入資料:透過 docker-compose exec web 進入運作中的 web 容器,將 HTML 內容 Hello from Day 29 Docker Compose! 寫入網頁目錄。

https://ithelp.ithome.com.tw/upload/images/20260925/20183847xUH78Fqvdt.png

  • 連線驗證成功:最後單獨執行 curl http://localhost:8084,終端機順利印出 Hello from Day 29 Docker Compose!

上一篇
Day 28:Docker Network — 容器間的網路通訊與隔離
下一篇
Day 30:30 天 DevOps & Linux 鐵人賽挑戰總結與成果回顧
系列文
從零開始的 Linux 維運與 Bash 自動化實戰 30 天 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言