+7

Docker Compose cho các loại Database phổ biến

Docker Compose là một công cụ mạnh mẽ cho phép định nghĩa và khởi chạy các ứng dụng đa container Docker. Trong bài viết này, chúng ta sẽ cùng tìm hiểu các file docker-compose mẫu cho các loại Database phổ biến như MySQL, PostgreSQL, MongoDB, và Redis. Việc sử dụng các file docker-compose này sẽ giúp dễ dàng triển khai và quản lý các Database trong môi trường Docker Container, đồng thời đảm bảo tính nhất quán và khả năng mở rộng cho ứng dụng .

Và dưới đây là các file docker-compose mẫu cho các loại database :

1.MSSQL Server

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
      # Express:

    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

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.Posgres SQL

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

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 ran cho service redis
    ports:
      - 6379:6379
    networks:
      - logjava
networks:
  logjava:
    name: logjava
    driver: bridge

5.MongoDB

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.Elastic Search

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 đã tìm hiểu các file docker-compose mẫu cho các loại Database phổ biến như MySQL, PostgreSQL, MongoDB, Elasticsearch và Redis. Việc sử dụng các file docker-compose này sẽ giúp dễ dàng triển khai và quản lý các Database trong môi trường Docker Container, đồng thời đảm bảo tính nhất quán và khả năng mở rộng cho ứng dụng. Đây là một bước quan trọng trong quá trình hiện đại hóa cơ sở hạ tầng và ứng dụng với Docker.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí