建立一個簡單的應用程
這個例子來自官方檔案。假設你有一個使用 redis 作為後端的 python 應用程式。寫完 Dockerfile
之後,建立一個 docker-compose.yml
檔案,如下所示:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
然後執行 docker-compose up
將設定整個應用程式包括:python app 和 redis。
version: '2'
是版本泊塢窗,撰寫檔案語法services:
是描述要執行的服務的部分web:
和redis:
是要啟動的服務的名稱,它們的內容描述了 docker 應該如何為這些服務啟動容器depends_on
意味著 web 與 redis 的依賴關係,因此 docker-compose 首先啟動redis
容器,然後啟動 web 容器。然而,在啟動web
容器之前,docker-compose
不要等到redis
容器準備就緒。要實現這一點,你必須使用一個指令碼來延遲應用程式伺服器的啟動或任何直到redis
容器可以執行請求的指令碼。
還可以新增捲和網路部分。使用卷部分允許斷開連線的卷,它可以獨立於 docker compose 服務部分生存。網路部分有類似的結果。
服務的 redis 部分必須調整如下:
redis:
image: redis
volumes:
- redis-data:/code
networks:
-back-tier
接下來,將以下部分新增到 docker compose 版本 2 檔案的底部。
volumes:
# Named volume
redis-data:
driver: local
networks:
back-tier:
driver: bridge
redis-data
提供服務部分的可訪問標籤。driver:local
將卷設定為本地檔案系統。
back-tier
將網段標籤設定為可在服務部分中作為橋接訪問。