Docker is a software platform that allows you to build, test, deploy, and share applications quickly. It reduces the time spent on complex setups. Combining Docker with the power of MDriven, app development is faster and more focused on the important parts of your applicationâthat is, the business logic or system gist.
Docker reduces deployment time, increasing productivity and efficiency. Apps are packaged into standardized units called containers that have everything the app needs to run, including libraries, system tools, code, and runtime. It is faster to test, deploy, and scale applications into any environment.
Quick Start: Download Your Configuration
Select your environment and architecture to download the latest pre-configured setup.
| Environment | Architecture | Best For | Download Link |
|---|---|---|---|
| Production (Nginx) | AMD64 | Standard Linux Servers (Ubuntu/Debian) | Download (AMD64) |
| Production (Nginx) | ARM64 | AWS Graviton / Oracle ARM Cloud | Download (ARM64) |
| Production (Nginx) | Musl | Alpine Linux / Lightweight Servers | Download (Musl) |
| Local Dev | AMD64 | Windows/Linux PC (Intel/AMD Chips) | Download (AMD64) |
| Local Dev | ARM64 | Apple Silicon (M1/M2/M3) Macs | Download (ARM64) |
| Local Dev | Musl | Alpine Linux Development | Download (Musl) |
(Not sure which architecture you have? Run uname -m in your terminal. x86_64 is AMD64, aarch64 is ARM64.)
Understanding the Ecosystem
Docker Desktop
Docker Desktop enhances your development experience by offering a powerful, user-friendly platform that lets you manage your containers, applications, and images directly from your machine. Versions are available for both Windows and Linux.
Docker Compose
Docker Compose simplifies the process of managing multi-container applications. You can define and run complex setups with a single configuration file, making it easier to deploy and scale applications.
Linux vs. Windows Containers
Different flavours of the Windows and Linux operating systems are available for use in Docker containers. MDriven Turnkey and MDriven Server have Linux distributions and can be run in Linux containersâmaking them more portable, easy to share, and run.
- Lightweight: Linux containers are more lightweight than Windows containers.
- Open Source: Linux containers are free and open source compared to Windows containers that require licenses.
- Compatibility: Linux containers are widely supported and compatible with various tools and platforms.
Linux Distributions for MDriven
When deploying, you can choose one of the Linux distributions:
- Alpine: Extremely lightweight with a minimalist approach. It is ideal for lightweight apps, and environments where efficient resource utilization is critical.
- Debian: Known for unwavering stability and reliability. It serves as the upstream foundation for Ubuntu and offers a balance between size and compatibility, making it a solid choice for production servers.
- Ubuntu: Has a larger footprint with more preinstalled packages and tools, ideal for an environment where a wide range of tools and libraries are needed.
Important: Data Persistence & Volumes
When using MDriven's prepared compose files, be aware that Docker volumes persist data even if you stop or remove containers. This means your application state (logs, app files and any changes made to it) will remain between restarts.
- To reset your data (Fresh Start): You must explicitly remove the volumes. Run this command:
docker compose down --volumes- Alternative: If you want to keep the old data but start fresh, you can rename the volumes in your
compose.yamlfile (e.g., changeMDSDatatoMDSDataV2andMDTDatatoMDTDataV2).
Choose Your Path
1. Local Development
For developers running MDriven on their personal machines.
- Optimized for: Fast iteration and debugging.
- Includes: MDriven Server, Turnkey.
- No SSL/Proxy: Runs directly on localhost ports for simplicity.
- > Go to the Local Development Guide
2. Production Deployment
For deploying to public-facing servers.
- Optimized for: Security and Stability.
- Includes: Nginx Reverse Proxy (pre-configured), MDriven Server, Turnkey.
- Ready for: SSL Certificates and Domain mapping.
- > Go to the Production Nginx Guide
Advanced: Manual Setup Details
If you are not using our pre-configured compose files and are building your own Docker images or files manually, you must handle the following requirements yourself:
1. Alpine Linux Locales
Alpine Linux only comes with essential packages, which attributes to its lightweight nature. You must install locale packages and set the language to prevent locale errors. MDriven Turnkey uses the Operating System locale settings to determine which locale file to use.
Setup for Dockerfile:
RUN apk add musl-locales
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en2. Healthchecks & VistaDB
Perform healthchecks on the MDriven Server to prevent the Server from being unavailable when VistaDB locks itself. A health check ensures the MDriven Server restarts each time it is in an unhealthy state.
3. Networking
For local deployment, the MDriven Server and MDriven Turnkey must be on the same network to communicate effectively.
