docker compose 語法

全網第一菜雞發表於2022-07-23

docker compose檔案的語法說明 docs.docker.com/compose/compose-fi...

基本語法結構

version: "3.8"

services: # 容器
  servicename: # 服務名字,這個名字也是內部 bridge網路可以使用的 DNS name
    image: # 映象的名字
    command: # 可選,如果設定,則會覆蓋預設映象裡的 CMD命令
    environment: # 可選,相當於 docker run裡的 --env
    volumes: # 可選,相當於docker run裡的 -v
    networks: # 可選,相當於 docker run裡的 --network
    ports: # 可選,相當於 docker run裡的 -p
  servicename2:

volumes: # 可選,相當於 docker volume create

networks: # 可選,相當於 docker network create

以 Python Flask + Redis練習:為例子,改造成一個docker-compose檔案

docker image pull redis
docker image build -t flask-demo .

# create network
docker network create -d bridge demo-network

# create container
docker container run -d --name redis-server --network demo-network redis
docker container run -d --network demo-network --name flask-demo --env REDIS_HOST=redis-server -p 5000:5000 flask-demo

docker-compose.yml 檔案如下

version: "3.8"

services:
  flask-demo:
    image: flask-demo:latest
    environment:
      - REDIS_HOST=redis-server
    networks:
      - demo-network
    ports:
      - 8080:5000

  redis-server:
    image: redis:latest
    networks:
     - demo-network

networks:
  demo-network:

docker-compose 語法版本

向後相容

docs.docker.com/compose/compose-fi...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章