建立一個簡單的應用程

這個例子來自官方檔案。假設你有一個使用 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 將網段標籤設定為可在服務部分中作為橋接訪問。