Những Lệnh và Flag Phổ Biến
Docker Compose là một công cụ mạnh mẽ giúp quản lý và triển khai các ứng dụng đa container dễ dàng.
Với Docker Compose, bạn có thể định nghĩa, xây dựng và chạy các ứng dụng phức tạp chỉ bằng một file YAML đơn giản. Trong bài viết này, chúng ta sẽ cùng điểm qua những lệnh, flag phổ biến và một ví dụ thực tế về file docker-compose.yml
hoàn chỉnh.
1. Cấu Trúc Docker Compose Cơ Bản
File docker-compose.yml
là nơi bạn định nghĩa các service của ứng dụng. Ví dụ dưới đây mô tả một ứng dụng web đơn giản có sử dụng Redis:
Trong cấu trúc trên:
build: Định nghĩa việc build image từ Dockerfile.
context: Thư mục chứa Dockerfile.
dockerfile: Tên của Dockerfile nếu không phải là mặc định.
ports: Định nghĩa các cổng được ánh xạ giữa host và container.
volumes: Gắn kết thư mục từ host vào container.
2. Các Lệnh Docker Compose Phổ Biến
Dưới đây là các lệnh bạn sẽ thường xuyên sử dụng khi làm việc với Docker Compose:
docker compose start
: Khởi động các service đã được định nghĩa.docker compose stop
: Dừng các service đang chạy.docker compose pause
: Tạm dừng các container.docker compose unpause
: Tiếp tục các container đã tạm dừng.docker compose ps
: Liệt kê các container và trạng thái của chúng.docker compose up
: Khởi động các service và tạo các container mới nếu cần.docker compose down
: Dừng và xóa tất cả các container, network, volumes.
3. Xây Dựng và Quản Lý Image
Docker Compose hỗ trợ nhiều cách để xây dựng image. Bạn có thể build trực tiếp từ Dockerfile hoặc sử dụng các image có sẵn từ Docker Hub.
4. Khai Báo Cổng (Ports)
Bạn có thể ánh xạ các cổng giữa host và container hoặc chỉ expose các cổng trong network nội bộ của các container.
5. Lệnh và EntryPoint
Bạn có thể tùy chỉnh command để chạy các lệnh cụ thể trong container hoặc thay đổi entrypoint
của container.
6. Biến Môi Trường (Environment Variables)
Biến môi trường giúp bạn tùy chỉnh cấu hình khi chạy các container.
7. Quản Lý Phụ Thuộc (Dependencies)
Docker Compose giúp bạn quản lý các phụ thuộc giữa các service. Ví dụ, bạn có thể chắc chắn rằng service db
được khởi động trước khi service web
bắt đầu:
8. Tính Năng Nâng Cao
Extends (Kế thừa cấu hình)
Docker Compose cho phép bạn mở rộng (extends) một service khác để tái sử dụng cấu hình.
Volumes
Bạn có thể gắn kết các thư mục hoặc volume từ host vào container.
Labels
Labels giúp bạn quản lý các metadata cho service của mình.
DNS Servers
Bạn có thể tùy chỉnh DNS cho từng service:
Devices
Cấu hình để kết nối các thiết bị từ host vào container.
External Links và Hosts
Bạn có thể liên kết tới các container ngoài hay thêm các mục vào file /etc/hosts
.
9. Ví Dụ Hoàn Chỉnh về File Docker Compose
Dưới đây là một ví dụ hoàn chỉnh về file docker-compose.yml
, mô tả một ứng dụng web đơn giản sử dụng Nginx, Flask, và PostgreSQL.
Cấu Trúc Thư Mục
File Dockerfile
cho Flask
Dockerfile
cho FlaskTrong thư mục web
, bạn cần một file Dockerfile
để build ứng dụng Flask:
File app.py
cho Flask
app.py
cho FlaskMột file Python đơn giản để chạy ứng dụng Flask:
File nginx.conf
cho Nginx
nginx.conf
cho NginxFile cấu hình Nginx để phục vụ ứng dụng Flask:
Kết Luận
Bài viết này đã điểm qua các lệnh và tính năng chính của Docker Compose. Với những thông tin trên, bạn có thể dễ dàng bắt đầu quản lý và triển khai ứng dụng của mình một cách hiệu quả hơn. Hãy giữ bài cheatsheet này gần bạn mỗi khi làm việc với Docker Compose!
Bạn có thể thử ngay những lệnh và cấu hình trên để làm quen và tận dụng tối đa Docker Compose trong dự án của mình.
Last updated