Docker Compose 建置Web service 起步走入門教學 | ubuntu docker-compose
身為一個開發者最惱人的莫過於環境建置和部屬應用程式。隨著Docker容器和虛擬化技術進步以及DevOps、InfrastructureasCode文化的推廣,讓我們可以更容易在不同環境開發部屬並調度(Orchestration)我們的專案應用程式。在Docker中,除了Docker指令和DockerEngine背後的技術外,最重要的莫過於DockerMachine、DockerCompose和DockerSwarm三劍客了。接下來我們將透過DockerCompose來啟動並執行PythonFlask+Redis網頁人數統計的專案,讓讀者能夠理解DockerCompose的優勢和使用方式。那就讓我們開始吧!一開始我們先了解DockerCompose是一...
身為一個開發者最惱人的莫過於環境建置和部屬應用程式。隨著 Docker 容器和虛擬化技術進步以及 DevOps、Infrastructure as Code 文化的推廣,讓我們可以更容易在不同環境開發部屬並調度(Orchestration)我們的專案應用程式。在 Docker 中,除了 Docker 指令和 Docker Engine 背後的技術外,最重要的莫過於 Docker Machine、Docker Compose 和 Docker Swarm 三劍客了。接下來我們將透過 Docker Compose 來啟動並執行 Python Flask + Redis 網頁人數統計的專案,讓讀者能夠理解 Docker Compose 的優勢和使用方式。那就讓我們開始吧!
一開始我們先了解 Docker Compose 是一個工具可以讓你可以透過一個指令就可以控制所有專案(project)中所需要的 services。Docker Compose 是用 YAML 檔案格式來描述和定義 project 中 services 運作關係,白話來說就是用來管理 Container 的文件檔。
什麼意思呢?
試想一下,我們在開發一個典型的 Web project 時通常不是只有一個 service,有可能需要 app server、database、cache,甚至是 reverse proxy 等 service 才能構成一個可以上線運行的專案,這些 service 往往會需要多個 container 來運行。此時若是使用 Docker CLI 需要手動輸入多少行才能正式啟動一個 project?這時候就是 Docker Compose 發揮功能的時候啦!
我們先來看看,一個基本的 docker-compose.yml 檔案長這樣(YAML 檔案格式,使用空格來縮排,附檔名為 .yml):
version: 3 # 目前使用的版本,可以參考官網: services: # services 關鍵字後面列出 web, redis 兩項專案中的服務 web: build: . # Build 在同一資料夾的 Dockerfile(描述 Image 要組成的 yaml 檔...