Перейти к содержимому

Docker Compose: chạy cả stack app + database bằng 1 lệnh

VietDevOps

0:00 / 0:00

Docker Compose: chạy cả stack app + database bằng 1 lệnh

99 просмотров · 6 дней назад
VietDevOps
1 подписчик
99 просмотров · 6 дней назад
Chạy app + Postgres + Redis bằng tay nghĩa là cả chục lệnh docker run dài ngoằng — quên một cờ là toang. Video này hướng dẫn Docker Compose: khai báo toàn bộ stack trong một file docker-compose.yml duy nhất, rồi chạy tất cả bằng một lệnh docker compose up. Trong video: vì sao chạy nhiều container bằng tay là cực hình, cấu trúc file docker-compose.yml (services, networks, volumes), file thật cho stack app Node + Postgres + Redis, 6 lệnh Compose phải thuộc (up, ps, logs, exec, down, up --build), demo chạy thật và giải thích vì sao các service tự thấy nhau qua tên, volume giữ dữ liệu khi down, biến môi trường với file .env, file override cho dev/production, và cái bẫy depends_on không chờ database sẵn sàng. ⏱ Mục lục: 00:00 – Mở đầu: chạy nhiều container bằng tay là cực hình 01:50 – docker-compose.yml: cấu trúc cơ bản 03:34 – File thật: app + Postgres + Redis 05:31 – 6 lệnh Compose phải thuộc 07:27 – Chạy thật: service tự thấy nhau 09:16 – Volume, .env và file override 11:09 – Tóm tắt + video tiếp theo 💻 Lệnh và file trong video (copy dùng ngay): -- File docker-compose.yml hoàn chỉnh (stack app + Postgres + Redis): services: app: build: . ports: "3000:3000" environment: DATABASE_URL: postgres://db:5432/appdb REDIS_URL: redis://cache:6379 depends_on: db cache db: image: postgres:16-alpine environment: POSTGRES_USER: appuser POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: appdb volumes: pgdata:/var/lib/postgresql/data cache: image: redis:7-alpine volumes: pgdata: -- File .env (đặt cùng thư mục, cho vào .gitignore, không commit): POSTGRES_PASSWORD=mat-khau-manh-123 -- Khởi động cả stack (build lại image app): docker compose up -d --build -- Xem trạng thái các container của project: docker compose ps -- Xem log (theo dõi liên tục): docker compose logs -f app -- Chạy lệnh trong container đang chạy (ví dụ vào Postgres): docker compose exec db psql -U appuser -d appdb -- Dừng và xóa container + network (GIỮ volume, dữ liệu còn): docker compose down -- Xóa sạch cả volume (reset database, cẩn thận với dữ liệu thật): docker compose down -v -- Kiểm tra file sau khi merge biến môi trường và override: docker compose config -- Chạy với file override cho production: docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d -- Chạy một lệnh một lần rồi thoát (ví dụ migration): docker compose run app npm run migrate -- Scale service app lên 3 bản copy: docker compose up -d --scale app=3 📌 Video tiếp theo (video số 7): Multi-stage build — đi sâu kỹ thuật tách giai đoạn build và chạy để giảm một nửa dung lượng image, đo dung lượng trước sau cho bạn thấy con số. Đăng ký kênh VietDevOps để không bỏ lỡ series Docker từ con số 0! Kênh VietDevOps — DevOps • Cloud • AI, song ngữ Việt–Anh. Video nói tiếng Việt, có phụ đề tiếng Việt & tiếng Anh. #docker #dockercompose #devops #vietdevops #hocdocker #postgres #redis #cloud