0
0
Lập trình
TT

Hướng dẫn Sử dụng Docker Compose cho Các Loại Cơ Sở Dữ Liệu Phổ Biến

Đăng vào 3 ngày trước

• 4 phút đọc

Docker Compose là một công cụ quan trọng trong việc định nghĩa và quản lý các ứng dụng đa container Docker. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng Docker Compose để triển khai các cơ sở dữ liệu phổ biến như MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server và Elasticsearch. Việc áp dụng các file docker-compose mẫu không chỉ giúp tiết kiệm thời gian mà còn đảm bảo tính nhất quán và khả năng mở rộng cho ứng dụng của bạn.

1. Microsoft SQL Server

yaml Copy
version: "3"
services:
  gateway-mssql:
    image: "mcr.microsoft.com/mssql/server:2017-latest"
    container_name: mssqlserver         # Tên container
    restart: always
    hostname: mssql
    environment:
      SA_PASSWORD: 123456          # Thiết lập password cho tài khoản sa
      ACCEPT_EULA: Y
    volumes:
      - mssqlvolume:/var/opt/mssql/data # Thư mục lưu DB
      - ./logjava:/var/opt/mssql/backup      # Thư mục chứa file backup
    ports:
      - "1433:1433"  # Cổng kết nối
volumes:
    mssqlvolume:

2. MySQL

yaml Copy
version: "3.7"
services:
  mysql:
    container_name: mysql
    image: mysql:8.0
    ports:
      - 3306:3306
    volumes:
      - todo-mysql-data:/var/lib/mysql
    environment: 
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: sample
volumes:
  todo-mysql-data:

3. PostgreSQL

yaml Copy
version: '3.0'
services:
  gateway-postgres:
    container_name: pg-database
    image: 'postgres:latest'
    environment:
      POSTGRES_USER: admin # Thiết lập user
      POSTGRES_PASSWORD: admin@1001 # Thiết lập password
      POSTGRES_DB: logjava # Thiết lập database 
      PGDATA: /var/lib/postgresql/data  # Nơi chứa data
    volumes:
      - './data/db:/data/db'
      - './data/postgresql:/var/lib/postgresql/data'
    ports:
      - '5432:5432'
    networks:
      - logjava
networks:
  logjava:
    name: logjava
    driver: bridge

4. Redis

yaml Copy
version: '3.8'
services:
  redis:
    container_name: redis-01
    image: redis:latest
    command: redis-server --save "" --maxmemory 128mb --maxmemory-policy allkeys-lru  # Giới hạn max 128MB ram cho service redis
    ports:
      - 6379:6379
    networks:
      - logjava
networks:
  logjava:
    name: logjava
    driver: bridge

5. MongoDB

yaml Copy
version: "3.9"
services:
  my-mongodb:
    image: mongo:5.0.6
    container_name: mongo-gateway
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_DATABASE=logjava_test 
      - MONGO_INITDB_ROOT_USERNAME=admin # Thiết lập user root
      - MONGO_INITDB_ROOT_PASSWORD=admin1001
      - TZ=Asia/Ho_Chi_Minh
    volumes:
      # Thư mục lưu data và file config
      - ./mongodb:/data/db
      - ./mongoconfig:/data/configdb
    networks:
      - ten_network
networks:
  ten_network:
    name: ten_network
    driver: bridge

6. Elasticsearch

yaml Copy
version: "3.0"
services:
  elasticsearch:
    container_name: es-container
    image: docker.elastic.co/elasticsearch/elasticsearch:7.11.0
    environment:
      - xpack.security.enabled=false
      - "discovery.type=single-node"
    networks:
      - es-net
    ports:
      - 9200:9200
    deploy:
      resources:
        limits:
            memory: 512M # Giới hạn bộ nhớ ram là 512MB
  kibana:
    container_name: kb-container
    image: docker.elastic.co/kibana/kibana:7.11.0
    environment:
      - ELASTICSEARCH_HOSTS=http://es-container:9200
    networks:
      - es-net
    depends_on:
      - elasticsearch
    ports:
      - 5601:5601
networks:
  es-net:
    driver: bridge

Qua bài viết này, chúng ta đã phân tích các file docker-compose mẫu cho các loại cơ sở dữ liệu phổ biến như MySQL, PostgreSQL, MongoDB, Elasticsearch, Redis và Microsoft SQL Server. Suốt quá trình phát triển ứng dụng, việc sử dụng Docker Compose để quản lý cơ sở dữ liệu không chỉ cải thiện hiệu suất mà còn giúp tối ưu hóa quy trình phát triển. Hãy tham khảo và áp dụng những file cấu hình này để thuận tiện hơn trong việc quản lý hạ tầng ứng dụng của bạn với Docker.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào