Posts

Showing posts with the label docker-compose

Docker compose demo

  --- version : "3.8" services : nodejs-app : build : ./frontend depends_on : - backend ports : - protocol : tcp published : 80 target : 8000 restart : always volumes : - /app/frontend:/app - /app/node_modules networks : - front-internal command : npm run start python-app : build : ./backend depends_on : - database restart : always ports : - protocol : udp published : 8001 target : 8001 mysql : image : mysql:5.7 ports : - 3306:3306 command : mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp volumes : - ./database:/var/lib/mysql environment : MYSQL_ROOT_PASSWORD : changeme MYSQL_ROOT_USER : changeme networks : front-internal : driver : bridge

Docker and Docker-compose

 Docker compose: Hiểu nôm na nó là một bản soạn thảo Nó soạn thảo cái gì? -> Nó soạn thảo một danh mục các Docker image cần khởi tạo thành container Ví dụ bình thường bạn có 1 restful service, service dùng redis để cache và dùng mysql để lưu dữ liệu, và dùng kafka hoặc rabbitMQ để dùng Message Như vậy bạn hoàn toàn có thể tạo docker file cho service rồi build thành image và chạy manual thành container Bạn cũng có thể kéo Redis image về và chạy thành docker container Tương tự Mysql, hoặc Kafka hoặc rabbitMQ --> Việc cài đặt bằng tay thủ công cho các thành phần trên là khá ok, nhưng đó k phải là 1 cách hoàn hảo để deploy trên docker --> dẫn đến khái niệm docker-compose  Nó là 1 file định nghĩa các image cùng nhau được khởi tạo thành các docker trong một mạng network riêng --> với cách này bạn chỉ cần soạn thảo file docker-compose  cho các docker đó rôì dùng lệnh docker-compose up -d để build và run containers  Với cách này chỉ cần cài đặt docker trên môi t...