Jennifer的Docker筆記本
  • Introduction
  • Docker
    • Docker簡介
    • Docker原理
    • Docker指令大全
  • Docker Image
    • 搜尋公開的映像檔
    • 學習撰寫Dockerfile
    • 映像檔分層概念
  • Docker Container
    • 用指令建立容器
    • 用Compose建立容器
    • 與執行中的容器互動
    • 利用互動後的容器建立映像檔
  • DOCKER REGISTRY
    • 上傳到公有倉庫
    • 上傳到私有倉庫
  • Docker Volume
    • 同步容器資料
  • Docker Network
    • 容器的網路設定
  • Docker Installation
    • 安裝Docker/Portainer on Ubuntu
    • 安裝Nginx on Docker
  • DOCKER UNDERLYING TECHNOLOGY
    • Linux Namespaces
    • Linux CGroup (Control Group)
  • Let's Docker
    • Docker實作營
  • Docker Resources
    • Docker官方網站
    • Docker Doc.
    • Docker Hub
    • Play with Docker
    • peihsinsu的Docker學習筆記
    • 珍妮佛的學習筆記#docker
Powered by GitBook
On this page
  • 安裝Docker Compose
  • 撰寫Docker Compose檔
  • 執行Docker Compose

Was this helpful?

  1. Docker Container

用Compose建立容器

Previous用指令建立容器Next與執行中的容器互動

Last updated 4 years ago

Was this helpful?

假設docker run要設定的選項太多,可以寫一個設定檔來啟動,這就是docker compose主要做的事情。

安裝Docker Compose

$ pip install docker-compose
$ docker-compose --version
docker-compose version 1.25.5, build unknown

撰寫Docker Compose檔

以下是單個容器container的yaml檔

version: '3'                                            # yaml的版本
services:     
  app:       
    image: cutejaneii/my_api:june2020                   # 映像檔
    volumes:
      - /var/lib/docker/volumes/volume_nfs/_data:/nfs   # volume
    ports:
      - 8801:8801                                       # PORT MAPPING
    restart: always                                     # 啟動POLICY
    environment:                                        # 環境變數
      - API_CASSANDRA_CONTACT_POINTS=192.168.95.1,192.168.95.2
      - API_CASSANDRA_KEY_SPACE=my_keyspace
      - API_NAME=my_api
volumes:
  volume_nfs:
version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
    environment:
      FLASK_ENV: development
  redis:
    image: "redis:alpine"

執行Docker Compose

依照docker-compose.yml檔,在前景啟動容器

$ docker-compose -f docker-compose.yml up

依照docker-compose.yml檔,在背景啟動容器

$ docker-compose -d docker-compose.yml up

若需要同時啟動多個容器,會長得像以下這樣,同時啟動web, redis 2個容器,以下範例來自

官網