前面有特別講解一下Docker Compose的基本概念,那今天我們來講講我們要如何使用 Docker Compose,來完成我們想要做的事
Docker Compose最重要的是 Yaml檔,必須透過我們在 Yaml 檔所設計的內容,去啟動自己想要的Docker Image 及 Container
Yaml 使用講解
version: "3.8"
services: # 容器
servicename: # 服務名字,這個名字也是內部Bridge網絡可以使用的DNS name
build: #我們可以透過這個參數來指定這個 container 所要使用的 Dockerfile
image: # 鏡像的名字
command: # 可選,如果設置,則會覆蓋默認image裡的CMD命令
environment: # 可選,相當於docker run裡的 --env
depends_on: # 這邊設定先啟動好哪個Service,再啟動自己的Service
volumes: # 可選,相當於 docker run裡的 -v
networks: # 可選,相當於 docker run裡的 --network
ports: - # 可選,相當於 docker run裡的 -p
servicename2:
.......
volumes: # 可選,相當於 docker volume create
networks: # 可選,相當於 docker network create
version: "3.8"
services:
flask:
build:
context: ./flask
dockerfile: Dockerfile
image: flask-demo:latest
environment:
- REDIS_HOST=redis-server
- REDIS_PASS=${REDIS_PASSWORD}
depends_on:
- redis-server
networks:
- backend
- frontend
redis-server:
image: redis:latest
command: redis-server --requirepass ${REDIS_PASSWORD}
networks:
- backend
networks:
backend:
frontend:
build
image
如果 build 跟 image 同時使用時, image 是,Compose 將首先使用指定的映像,然後應用 build 中的任何設置
environment
depends_on
networks
command
networks(這邊事主層)
這邊有大概仔細講解一下Yaml檔的設計概念,這樣就會越來越清楚在做什麼,或許可能沒辦法完全理解,沒關係後面會一一實作,就會更了解了