1. Cấu trúc file docker-compose.yml
4 top-level keys chính:
version: version file format, ví dụ:
version: "3"
services: khai báo danh sách container cần chạy.networks: khai báo mạng custom (chưa học sâu bài này).volumes: khai báo volume (chưa học sâu bài này).
2. Ví dụ file docker-compose.yml mẫu
version: "3"
services:
weather-app:
build:
context: .
dockerfile: Dockerfile
args:
- VERSION=v2.0
ports:
- "8081:3000"
environment:
- NODE_ENV=production
container_name: weather1
3. Các lệnh thao tác
| Lệnh | Ý nghĩa |
|---|---|
docker-compose up -d | Build (nếu chưa có) + run container |
docker-compose ps | Liệt kê container được compose tạo |
docker-compose build | Build lại image từ Dockerfile |
docker-compose build --no-cache | Build lại, bỏ qua cache |
curl localhost:8081 | Kiểm tra app đã chạy chưa |
4. Các khái niệm mới
- build.context: chỉ định thư mục chứa Dockerfile.
- build.dockerfile: nếu Dockerfile không phải tên mặc định thì chỉ rõ.
- build.args: truyền biến ARG từ ngoài vào Dockerfile.
- container_name: đặt tên container cụ thể, tránh tên mặc định kiểu:
foldername_servicename_index.
5. Thực hành
1. Clone repo:
git clone <repo-url> weather-app
cd weather-app
git checkout compose
2. Viết file docker-compose.yml như trên.
3. Build & run:
docker-compose up -d
4. Kiểm tra:
docker-compose ps
curl localhost:8081
5. Rebuild khi Dockerfile đổi:
docker-compose build
## hoặc
docker-compose build --no-cache
Kết luận
- Viết file docker-compose cơ bản.
- Build image bằng compose.
- Quản lý container qua compose.
- Cách rebuild lại image khi thay đổi Dockerfile.