1. Kiến thức chính
Docker Compose hỗ trợ:
- Volumes: Lưu trữ dữ liệu persistent (không mất khi container bị xoá).
- Networks: Kết nối các service với nhau một cách an toàn, dễ quản lý.
2. Nội dung file docker-compose.yml mẫu cho Ghost Blog + MySQL
version: "3"
services:
ghost:
container_name: ghost
image: ghost:latest
ports:
- "80:2368"
environment:
database__client: mysql
database__connection__host: mysql
database__connection__user: root
database__connection__password: P4SSw0rd0!
database__connection__database: ghost
volumes:
- ghost-volume:/var/lib/ghost
networks:
- ghost_network
- mysql_network
depends_on:
- mysql
mysql:
container_name: mysql
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: P4SSw0rd0!
volumes:
- mysql-volume:/var/lib/mysql
networks:
- mysql_network
volumes:
ghost-volume:
mysql-volume:
networks:
ghost_network:
mysql_network:
🛠 3. Cách sử dụng
1. Tạo folder & cd vào:
mkdir -p compose/ghost
cd compose/ghost
2. Tạo file docker-compose.yml như trên.
3. Chạy ứng dụng:
docker-compose up -d
4. Kiểm tra container:
docker-compose ps
5. Truy cập blog:
curl localhost
6. Kiểm tra volumes:
docker volume ls
7. Kiểm tra networks:
docker network ls
4. Kiến thức bổ sung
-
depends_on: đảm bảo MySQL chạy trước Ghost Blog. -
volumes:-
Ngắn:
source:target— mặc định là volume. -
Dài:
volumes: - type: volume source: ghost-volume target: /var/lib/ghost
-
-
networks:- Khai báo custom network nếu cần.
- Có thể set
internal: truenếu chỉ muốn service giao tiếp nội bộ.
5. Kết luận
- Docker Compose giúp build, connect nhiều container dễ dàng.
- Quản lý data, network và dependency rõ ràng.
- Thực hành tốt bài này sẽ giúp bạn tự tin hơn khi build production stack cơ bản.