Lesson 5 - Docker Compose

15/02/2024 - 3 phút

Follow  on Google News

Docker Compose là một công cụ quản lý dự án Docker cho phép bạn chạy và quản lý nhiều container Docker như một ứng dụng duy nhất. Với Docker Compose, bạn có thể dễ dàng cấu hình, khởi tạo và quản lý tất cả các dịch vụ liên quan đến ứng dụng của mình thông qua một file cấu hình YAML đơn giản.

Bước 1: Cài đặt Docker Compose

  • Trên Docker Desktop for Windows và Mac: Docker Compose đã được tích hợp sẵn, không cần cài đặt thêm.
  • Trên Linux: Bạn cần phải cài đặt Docker Compose bằng cách thực hiện các lệnh được cung cấp trên trang web chính thức của Docker.

Bước 2: Tạo File docker-compose.yml

File docker-compose.yml là trái tim của mọi dự án Docker Compose. File này chứa định nghĩa về cách các container trong dự án của bạn được xây dựng, cách chúng liên kết với nhau, và bất kỳ cấu hình nào khác cần thiết.

Ví dụ:

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
  database:
    image: postgres:latest
    environment:
      POSTGRES_DB: exampledb
      POSTGRES_USER: exampleuser
      POSTGRES_PASSWORD: examplepass

Trong ví dụ trên, chúng ta có 2 dịch vụ: web sử dụng hình ảnh nginx:latestdatabase sử dụng hình ảnh postgres:latest. Dịch vụ web được cấu hình để ánh xạ cổng 8080 trên máy chủ đến cổng 80 trong container, trong khi dịch vụ database được cung cấp một số biến môi trường để cấu hình cơ sở dữ liệu.

Bước 3: Chạy Docker Compose

Để khởi chạy dự án, bạn chỉ cần mở terminal, di chuyển đến thư mục chứa file docker-compose.yml và chạy lệnh:

docker-compose up

Lệnh này sẽ đọc file docker-compose.yml, xây dựng (nếu cần) và khởi chạy tất cả các dịch vụ được định nghĩa. Sử dụng -d để chạy các dịch vụ ở chế độ ngầm.

Bước 4: Quản lý Dịch vụ

  • Xem danh sách các dịch vụ đang chạy:
docker-compose ps
  • Xem nhật ký của dịch vụ:
docker-compose logs [service_name]
  • Dừng tất cả các dịch vụ:
docker-compose down

Tính năng Nâng cao

  • Xây dựng Hình ảnh Tùy chỉnh: Nếu bạn muốn Docker Compose xây dựng một hình ảnh tùy chỉnh cho dịch vụ của mình thay vì sử dụng hình ảnh từ Docker Hub, bạn có thể sử dụng phần build trong file cấu hình.
services:
  myservice:
    build: ./my_service_directory
  • Gắn Volume: Để lưu trữ hoặc chia sẻ dữ liệu giữa container và máy chủ của bạn, bạn có thể sử dụng volumes.
services:
  web:
    image: nginx
    volumes:
      - ./my_local_directory:/usr/share/nginx/html
  • Mạng Tùy chỉnh: Docker Compose

cho phép bạn định nghĩa và sử dụng các mạng tùy chỉnh để tạo ra các mối quan hệ mạng phức tạp giữa các container.

services:
  myservice:
    networks:
      - mycustomnetwork

networks:
  mycustomnetwork:

Kết luận

Docker Compose là công cụ không thể thiếu trong quy trình phát triển ứng dụng container hóa, giúp việc quản lý và triển khai các dịch vụ liên quan trở nên đơn giản và hiệu quả. Đảm bảo rằng bạn luôn tham khảo tài liệu chính thức của Docker Compose để hiểu rõ hơn về các tính năng và cách sử dụng chúng một cách tối ưu nhất.