← Back to Documentation

How to Deploy and Monitor MongoDB Docker Containers

This guide walks through deploying MongoDB containers using ServerBuddy's visual interface, covering both basic deployments and production configurations.

Prerequisites

Your Linux server needs:

  • Docker or Podman installed
  • 512MB+ available RAM
  • 10GB+ free disk space

You can check Docker installation by navigating to the "Containers" tab or by running the following in the Terminal:

docker --version
# or
podman --version

Creating a MongoDB Container with GUI

Step 1: Navigate to Docker Management

  1. Connect to your server via ServerBuddy
  2. Click the "Containers" tab

Docker Containers View

Step 2: Configure Container Parameters

Click the "+ Add" button in the top right to open the container dialog:

Basic Configuration

  • Image: mongo:7.0 (or mongo:latest for newest version)
  • Container Name: production-mongodb (descriptive naming)
  • Command: Leave empty (uses MongoDB default entrypoint)

Port Mappings

Enter the following in the port mappings section:

  • Host Port: 27017Container Port: 27017
  • Alternative: Use 27018 on host if 27017 is occupied

Environment Variables (Critical for MongoDB)

Add these essential MongoDB environment variables:

Variable Value
MONGO_INITDB_ROOT_USERNAME admin
MONGO_INITDB_ROOT_PASSWORD YourSecurePassword123!
MONGO_INITDB_DATABASE application_db

Volume Mappings for Data Persistence

Configure persistent storage to survive container restarts:

  • Mount: mongodb-production-data (Docker volume name)
  • Container Path: /data/db

Additionally, for configuration persistence: - Mount: mongodb-production-config (Docker volume name) - Container Path: /data/configdb

This ensures your database persists even if the container is removed.

Network Configuration

  • Choose custom network for multi-container applications
  • ServerBuddy shows available networks in a dropdown

Runtime Options

  • Restart Policy: Select "Unless Stopped" for production
  • Run in detached mode: Keeps container running in background
  • Remove on exit: Keep unchecked for databases

New MongoDB Container Configuration

Step 3: Deploy the Container

Click "Create Container" to:

  1. Pull the MongoDB image if not present
  2. Create volume directories
  3. Start the container with specified configuration
  4. Display creation status

The container should be running within 15-20 seconds.

Monitoring MongoDB Container Health

Container Status Indicators

The Docker containers view displays:

Container Status Indicators

  • 🟢 Green: Running healthy
  • 🟡 Yellow: Starting/restarting
  • 🔴 Red: Stopped or errored
  • Gray: Paused

Available Container Actions

Hover over the container row to access:

  • Start/Stop/Restart controls

Checking MongoDB Performance

Container Resource Usage

You can view this by double clicking on your container entry in the containers table.

MongoDB Container Resource Monitoring

The container details view shows:

  • Memory consumption vs. limits
  • CPU usage percentage (real-time graph)
  • Network I/O rates (inbound/outbound)
  • Disk read/write operations

MongoDB Internal Metrics

Connect via the Terminal tab:

  1. Click the Terminal tab
  2. Connect to MongoDB container

Connect to MongoDB:

docker exec -it production-mongodb mongosh -u admin -p

Run performance queries:

// Show database statistics
db.stats()

// Check current operations
db.currentOp()

// View server status
db.serverStatus()

// Check connection count
db.serverStatus().connections

// View collection statistics
db.collection.stats()

Log Analysis

You can view the logs for the container in the "Logs" tab by changing the log source to "Containers", and then selecting your container from the dropdown list.

The log viewer offers:

  • Filtering by log level (ERROR, WARNING)
  • Text search across logs
  • Real-time updates

Troubleshooting Connection Issues

If you can't connect to MongoDB: 1. Check port mapping in container details (default: 27017) 2. Review container logs for authentication errors 3. Verify MongoDB authentication is configured correctly 4. Confirm firewall rules allow the connection 5. Check if bind IP is set correctly for external connections

Security Best Practices

  • Always enable authentication with strong passwords
  • Use MongoDB's built-in role-based access control
  • Limit port exposure to specific IPs when possible
  • Enable TLS/SSL for encrypted connections
  • Set resource limits to prevent resource exhaustion
  • Implement regular backup strategy
  • Disable unnecessary MongoDB features

Common Issues and Solutions

Container Won't Start

  • Check logs for error messages
  • Verify port availability
  • Ensure image exists
  • Check volume mount permissions
  • Verify sufficient disk space for MongoDB

Connection Refused

  • Confirm container is running
  • Verify port mapping
  • Check firewall rules
  • Review MongoDB authentication settings
  • Ensure bind IP allows external connections

Authentication Failed

  • Verify username and password
  • Check if authentication is enabled
  • Review user roles and permissions
  • Ensure connection string includes authentication database

Key Takeaways

  • Always use volumes for data persistence at /data/db and /data/configdb
  • Set specific image tags (e.g., mongo:7.0) instead of 'latest'
  • Enable authentication with MONGO_INITDB_ROOT_USERNAME and MONGO_INITDB_ROOT_PASSWORD
  • Configure resource limits to prevent container from consuming all system resources
  • Use restart policies for automatic recovery
  • Monitor replica set health if running in cluster mode