Docker Compose

docker-compose Docker Compose

Giới thiệu

Trong các dự án sử dụng Docker, việc quản lý nhiều container có thể trở nên phức tạp. Đây là lúc Docker Compose phát huy tác dụng, giúp bạn dễ dàng cấu hình, triển khai và quản lý các container một cách nhất quán. Với tệp cấu hình docker-compose.yml, bạn có thể định nghĩa và tự động hóa toàn bộ hệ thống chỉ với vài dòng lệnh. Hãy cùng khám phá cách sử dụng Docker Compose để tối ưu hóa quy trình làm việc của bạn!


File docker-compose.yml gần giống ý nghĩa với file Dockerfile đã tìm hiểu trong Sử dụng Dockerfile, là một file text, viết với định dạng YAML (Ain’t Markup Language, đọc nhanh định dạng Định dạng YML) là cấu hình để tử đó lệnh docker compose sinh ra và quản lý các service (container), các network, các ổ đĩa … cho một ứng dụng hoàn chỉnh.

Các lệnh docker compose:

Tạo và chạy các thành phần định nghĩa trong docker-compose.yml (các dịch vụ, image, container, mạng, đĩa …)

docker-compose up

Dừng và xóa: image, container, mạng, đĩa tạo ra bởi docker-compose up

docker-compose down

Theo dõi logs từ các dịch vụ

docker-compose logs [SERVICES]

Tuỳ chọn

docker-compose up -d <ten-dich-vu>

Lệnh này để chạy background

Example

Ở đây tôi sẽ ví dụ với một ứng dụng Zabbix hoàn chỉnh:

version: '3'

services:
  zabbix-server-mysql:
    image: zabbix-server-mysql:2023
    ports:
      - 10051:10051
    networks:
      zabbix-network:
        ipv4_address: 192.168.200.4
    restart: always
    environment:
      - DB_SERVER_HOST=mysql
      - MYSQL_DATABASE=zabbixdb
      - MYSQL_USER=zabbixuser
      - MYSQL_PASSWORD=password
      - MYSQL_ROOT_PASSWORD=password
      - ZBX_JAVAGATEWAY=zabbix-java-gateway
      - StartVMwareCollectors=5

  zabbix-web-nginx-mysql:
    image: zabbix-web-nginx-mysql:2023
    ports:
      - 80:8080
    environment:
      - ZBX_SERVER_HOST="zabbix-server-mysql"
      - DB_SERVER_HOST="mysql"
      - MYSQL_DATABASE="zabbixdb"
      - MYSQL_USER="zabbixuser"
      - MYSQL_PASSWORD="password"
      - MYSQL_ROOT_PASSWORD="password"
    networks:
      zabbix-network:
        ipv4_address: 192.168.200.5
    restart: always
  
  zabbix-java-gateway:
    image: zabbix/zabbix-java-gateway:2023
    networks:
      zabbix-network:
        ipv4_address: 192.168.200.3
    restart: always
  
  zabbix-agent:
    image: zabbix-agent2:2023
    networks:
      zabbix-network:
        ipv4_address: 192.168.200.6
    restart: always

networks:
  zabbix-network:
    driver: bridge
    ipam:
     config:
       - subnet: 192.168.200.0/24
         gateway: 192.168.200.1

Docker Compose là công cụ mạnh mẽ giúp đơn giản hóa việc triển khai và quản lý nhiều container, đặc biệt trong các ứng dụng phức tạp. Bằng cách sử dụng file docker-compose.yml, bạn có thể tiết kiệm thời gian và giảm thiểu lỗi cấu hình. Hãy bắt đầu áp dụng Docker Compose vào dự án của bạn để nâng cao hiệu suất và hiệu quả làm việc ngay hôm nay!

I am gaining experience and developing my skills in the field of information technology. My focus areas include basic network administration, troubleshooting, and supporting IT infrastructure. I am keen on learning and growing in various aspects of IT, from system setup and maintenance to exploring new technologies and methodologies.

Post Comment