Docker Compose


Compose เป็น tool สำหรับ สั่ง Running docker container แบบหลายๆตัว
โดยจะเขียน config file เป็นไฟล์ yaml
จากเดิม ที่เวลาจะจัดการ container จะใช้เป็น
docker run | start | stop | rm เช่นกันกับการสร้าง image ที่จะใช้ docker build
โดย ถ้าใช้ Compose config ข้างต้นจะทำถูกกำหนดไว้ในไฟล์ docker-compose.ymal ( Default ) แล้วสั่ง docker-compose up เพื่อทำการ run compose


Docker Compose File

Version

เป็นการระบุว่าจะใช้รูปแบบCompose file เวอร์ชันไหน

Services

เป็น การระบุ container ที่เราต้องการจะจัดการ

image

image จาก Docker Hub registry

ports

เป็นการทำ port binding ระหว่าง host กับ container

build

เป็นการ build image จาก docker file ที่เราสร้าง

volume

เป็นการ mount path ที่เราต้องการเข้ากับ path ใน container

network

เป็นการ กำหนด network ให้ container


ตัวอย่างการเขียน docker-compose.yaml

# example docker-compose.yaml อย่างง่าย

version: '3'
services:
  nginx:
    image : nginx
    ports:
      - "80:80"
  httpd: 
    image: httpd
    ports:
      - 81:80
$ docker-compose up 

files-1590403748246.png

จาก docker-compose.yaml ข้างต้นเป็นการ สั่งสร้าง container สอง ตัว ( nginx , apache )
หากนำมาเปรียบเทียบกับการใช้ docker run

  • docker-compose
version: '3'
services:
  nginx:
    image : nginx
    ports:
      - "80:80"
  apache: 
    image: httpd
    ports:
      - 81:80
  • docker run
$ docker run -p 80:80 --name nginx nginx
$ docker run -p 81:80 --name httpd apache

May 25, 2020