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