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