Cấu hình File Docker Compose
Dưới đây là một số ví dụ để minh họa cấu trúc file YAML.
Lưu ý: Ví dụ này không phải là một file Docker Compose hoàn chỉnh.
version: '3'
services: netinv_db:
build: context: .
dockerfile: "Dockerfile_db"
ports: - "5432:5432"
environment: POSTGRES_DB: 'net_inventory'
POSTGRES_USER: 'root'
POSTGRES_PASSWORD: 'Cisco123'
networks: backend_network:
driver: "bridge"
frontend_network:
driver: "bridge"
netinv_frontend:
build: context: .
dockerfile: "Dockerfile_frontend"
ports: - "5000:5000"
restart: always
environment: ENV: 'FRONTEND'
URL: 'http://netinv_backend:5001'
volumes: - .:/app
depends_on: - netinv_backend
Trong Docker Compose file, có nhiều lệnh quan trọng, ví dụ: build, ports, environment, env_file, depends_on, volumes. Tham khảo danh sách đầy đủ tại Docker Compose docs.
Câu hỏi ôn tập:
Khi chạy docker-compose up -d, thành phần nào sẽ bị xóa tự động khi chạy docker-compose down? (Chọn 2)
Dưới đây là một số ví dụ để minh họa cấu trúc file YAML.
Lưu ý: Ví dụ này không phải là một file Docker Compose hoàn chỉnh.
version: '3'
services: netinv_db:
build: context: .
dockerfile: "Dockerfile_db"
ports: - "5432:5432"
environment: POSTGRES_DB: 'net_inventory'
POSTGRES_USER: 'root'
POSTGRES_PASSWORD: 'Cisco123'
networks: backend_network:
driver: "bridge"
frontend_network:
driver: "bridge"
netinv_frontend:
build: context: .
dockerfile: "Dockerfile_frontend"
ports: - "5000:5000"
restart: always
environment: ENV: 'FRONTEND'
URL: 'http://netinv_backend:5001'
volumes: - .:/app
depends_on: - netinv_backend
Trong Docker Compose file, có nhiều lệnh quan trọng, ví dụ: build, ports, environment, env_file, depends_on, volumes. Tham khảo danh sách đầy đủ tại Docker Compose docs.
- build: định nghĩa các tùy chọn để build container (context, dockerfile, args, labels, target).
- ports: ánh xạ port giữa host và container (không áp dụng cho network host).
- env_file: khuyến nghị dùng thay vì đặt thông tin bí mật trực tiếp trong file YAML (tránh lộ secret khi đưa lên source control).
- depends_on: đảm bảo container phụ thuộc sẽ được chạy trước (ví dụ: database chạy trước app, app chạy trước frontend).
- volumes: mount thư mục/volume từ host vào container. Ngoài ra, volumes có thể khai báo ở mức top-level để dùng chung cho nhiều service.
Câu hỏi ôn tập:
Khi chạy docker-compose up -d, thành phần nào sẽ bị xóa tự động khi chạy docker-compose down? (Chọn 2)
- volumes
- networks ✅
- containers ✅
- images
- folders