Docker Compose là một công cụ dùng để định nghĩa và run multi-container và liên kết chúng lại với nhau. Nó sử dụng file YAML để cấu hình các service cần chạy cho ứng dụng của bạn. Ví dụ bạn cần dựng WordPress để thực hành thì sẽ cần hai container là Databases và container WordPress. Khi đó chỉ cần cấu hình trong file config cả hai services này.
Về cơ bản, việc thiết lập Docker Compose cho nhiều applications là giống nhau, nó sẽ bao gồm những bước cơ bản sau:
- Xác định những services cần sử dụng để khởi chạy ứng dụng.
- Cấu hình các services trong file config có cú pháp định dạng YAML (docker-compose.yml).
- Chạy file config bằng lệnh: docker-compose up -d
1. Cài đặt
Đối với Windows 10, hiện tại đã có WSL2 nên các bạn chỉ cần cài đặt Docker Desktop trước, sau đó cài đặt WSL2 cho windows là đã có thể sử dụng một hệ điều hành Linux trên Windows rồi.
2. Cấu hình file config
Tạo thư mục thực hành, và tạo file docker-compose.yml để chạy
ở bài này chúng ta cần hai container, là databases và wordpress nên trong file docker-compose.yml chúng ta cấu hình như sau:
File docker-compose.yml sử dụng định dạng YAML, vậy nên các bạn phải viết đúng cú pháp, nếu không sẽ bị lỗi, có thể vào trang Online YAML Parser để kiểm tra cú pháp viết đúng hay chưa. (chú ý dòng db và wordpress khai báo services chúng ta chỉ thụt vào 2 dấu cách).
3. Giải thích ý nghĩa file docker-compose.yml
version: '2'
: Chỉ ra phiên bản docker-compose sẽ sử dụng.services
: Trong mục services, chỉ ra những services (containers) mà ta sẽ cài đặt. Ở đây, chúng ta khai báo hai services tương ứng với 2 containers là db và wordpress.- Trong services db:
image
: chỉ ra image sẽ được sử dụng để create containers. Ngoài ra, bạn có thể viết dockerfile và khai báo lệnhbuild
để containers sẽ được create từ dockerfile (cách này ít người làm).volumes
: mount thư mục data trên host (cùng thư mục cha chứa file docker-compose) với thư mục /var/lib/mysql trong container.restart
: always: Tự động khởi chạy khi container bị shutdown.environment
: Khai báo các biến môi trường cho container. Cụ thể là thông tin cơ sở dữ liệu (tài khoản, mật khẩu, tài khoản người dùng).- Trong services wordpress:
depends_on
: db: Chỉ ra sự phụ thuộc của services wordpress với services db. Tức là services db phải chạy và tạo ra trước, thì services wordpress mới chạy.ports
: Expose port 80 của container sang port 8000 trên host machine. (có thể đổi sang port khác, tùy bạn).environment
: Khai báo các biến môi trường. Sau khi tạo ra db ở container trên, thì sẽ lấy thông tin đấy để cung cấp cho container wordpress (chứa source code).
4. Chạy Compose
Sau khi chỉnh sửa file cấu hình hoàn tất, chúng ta đến bước chạy compose.
sử dụng command: docker-compose up -d
Kết quả trên chạy nhanh là vì trước đó mình đã chạy demo một lần rồi, nên nó sẽ không tải lại tài nguyên nữa và chạy rất nhanh, có thể xem ảnh bên dưới để thấy quy trình chạy.
Truy cập vào đường dẫn: http://localhost:8000
ta được kết quả như sau:
Done, chúng ta đã dựng WordPress thành công.
Một số bài viết liên quan:
- Series learn Docker
- Series learn Kafka
- Series interview kĩ sư phần mềm
- Series learn Hazelcast
- Series learn Java
- Series crack Intellij IDEA
- Series learn Git
- Series learn ElasticSearch
- Series learn System Design
- Series learn Microservices
- Series learn Design Pattern
- Series learn Web Service
- Series learn Linux
- Series learn MySQL
- Series learn Soft Skill
- Series learn Testing
- Series review Sách