Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Docker Documentation25টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • Containerization
  • Architecture
  • Installation
  • Images
  • Containers
  • Dockerfile
  • Volumes
  • Networks
  • Docker Compose
  • Environment Variables
  • Node.js + Docker
  • Next.js + Docker
  • Express.js + Docker
  • NestJS + Docker
  • Databases + Docker
  • Development Workflow
  • Production
  • Multi-stage Builds
  • Security
  • Optimization
  • CI/CD
  • Deployment
  • Real-world Project
  • Interview Questions
  1. Docs
  2. Docker
  3. MongoDB, PostgreSQL ও Redis Docker-এ
DockerIntermediate

MongoDB, PostgreSQL ও Redis Docker-এ

অফিসিয়াল DB images, volume-সহ persistent setup, healthcheck — বাংলায়।

13টি অংশবাংলা ভাষায়

ডাটাবেস লোকালি install করার বদলে Docker-এ চালানো এখন সাধারণ অভ্যাস — সুবিধা: version switching সহজ, পরিষ্কার remove, production-এ অনুরূপ environment।

MongoDB

compose.yml (mongo)yaml
yaml
services:
  mongodb:
    image: mongo:7
    restart: unless-stopped
    ports:
      - "27017:27017"
    environment:
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=secret
    volumes:
      - mongo-data:/data/db

volumes:
  mongo-data:
Mongoose connection (inside app)js
js
const URI = process.env.MONGODB_URI
  // container-এ: mongodb://admin:secret@mongodb:27017/blog?authSource=admin

await mongoose.connect(URI, {
  serverSelectionTimeoutMS: 5000,
});

PostgreSQL

compose.yml (postgres)yaml
yaml
services:
  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=app
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=mydb
    volumes:
      - pg-data:/var/lib/postgresql/data

volumes:
  pg-data:
pg connectionjs
js
import pg from "pg";

const client = new pg.Client({
  connectionString: process.env.DATABASE_URL,
  // postgres://app:pass@postgres:5432/mydb
});

Redis

compose.yml (redis)yaml
yaml
services:
  redis:
    image: redis:7-alpine
    restart: unless-stopped
    ports:
      - "6379:6379"
    # password দিতে চাইলে:
    command: ["redis-server", "--requirepass", "secret"]
    volumes:
      - redis-data:/data

volumes:
  redis-data:
ioredis connectionjs
js
import Redis from "ioredis";

const redis = new Redis({
  host: process.env.REDIS_HOST || "redis",
  port: Number(process.env.REDIS_PORT) || 6379,
  password: process.env.REDIS_PASSWORD,
});

Healthcheck যোগ করা

compose.ymlyaml
yaml
services:
  postgres:
    image: postgres:16-alpine
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U app -d mydb"]
      interval: 5s
      timeout: 3s
      retries: 10
সবসময় volume দিন

ডাটাবেস container চালানোর সময় সবসময় volume mount করুন — নাহলে container remove করলে ডেটা পুরো হারিয়ে যায়। ব্যাকআপও নিন (docker exec + mongodump / pg_dump)।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরNestJS অ্যাপ Docker-এপরেরDocker দিয়ে Development Workflow
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com