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
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
# example docker-compose.yaml อย่างง่าย
version: '3'
services:
nginx:
image : nginx
ports:
- "80:80"
httpd:
image: httpd
ports:
- 81:80
$ docker-compose up
จาก docker-compose.yaml ข้างต้นเป็นการ สั่งสร้าง container สอง ตัว ( nginx , apache )
หากนำมาเปรียบเทียบกับการใช้ docker run
version: '3'
services:
nginx:
image : nginx
ports:
- "80:80"
apache:
image: httpd
ports:
- 81:80
$ docker run -p 80:80 --name nginx nginx
$ docker run -p 81:80 --name httpd apache