iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
Cloud Native

docker系列 第 17

Day17 Docker-Compose 2

  • 分享至 

  • xImage
  •  

昨天介紹了 Docker-Compose 的基本使用方式,讓我們輕鬆管理多個服務。今天我們將深入了解昨天的 docker-compose.yml 檔案,看看它都做了哪些事情。

首先,讓我們回顧一下昨天的 docker-compose.yml:

version: '3.8'

services:
  backend:
    build: .
    container_name: backend_flask
    networks:
      - net
    ports:
      - 5000:5000
    environment:
      - REDIS_URL=redis://cache:6379/0
    volumes:
      - .:/project:ro
    command: "python3 app.py"
  cache:
    image: redis
    container_name: database_redis
    networks:
      - net
    ports:
      - 6379:6379

networks:
  net:
    name: frnet
    driver: bridge

現在,讓我們一一解釋每個部分:

  1. version: '3.8': 這是 Docker-Compose 文件的版本。在此版本中,version 的指定方式已被棄用,建議參考 Compose文件版本進行指定。

  2. networks: 這個部分定義了我們的 Docker 網路。在這裡,我們使用了 bridge 驅動程式,並且給它取了一個名稱 frnet。

  3. services: 這是我們要啟動的各種服務的區塊。在這裡,我們有兩個服務:backend 和 cache。

    • backend: 這是我們的 Flask 後端服務。以下是它的一些設定:

      • build: .: 使用當前目錄的 Dockerfile 進行建置。
      • container_name: backend_flask: 為容器指定名稱。
      • networks: 連接到 net 網路。
      • ports: 將容器的 5000 port 對應到主機的 5000 port。
      • environment: 設定環境變數,這裡使用了 REDIS_URL 作為連接到 Redis 的 URL。
      • volumes: 將主機的目錄掛載到容器內,這樣可以實現代碼熱重載。
      • command: 在容器啟動時運行的命令,這裡是啟動 Flask 應用。
    • cache: 這是一個使用 Redis 的快取服務。以下是它的一些設定:

      • image: redis: 直接使用 Redis 官方映像。
      • container_name: database_redis: 為容器指定名稱。
      • networks: 連接到 net 網路。
      • ports: 將容器的 6379 port 對應到主機的 6379 port。

這樣,我們可以透過 docker-compose up 一次性啟動這兩個服務。
如果需要停止並刪除 Container 可以用下面這個指令。

docker-compose down

上一篇
Day16 Docker-Compose 1
下一篇
Day18 Kubernetes
系列文
docker30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言