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.