🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
Docker on MacOS- Installing MDriven Server and MDriven Turnkey on Ubuntu Containers
This page was created by Lydia on 2025-11-21. Last edited by Wikiadmin on 2026-07-29.

You can run MDriven Server and MDriven Turnkey locally on macOS in Ubuntu-based Docker containers for development and testing.

This guide uses MDriven's prepared local Docker setup. Docker runs the Linux applications inside containers, so you do not install the MDriven applications or a separate web server directly on macOS.

Choose the correct setup package

Download the Ubuntu local Docker package that matches your Mac processor:

Mac processor Check in Terminal Package to use
Intel Mac uname -m returns x86_64 Ubuntu AMD64
Apple Silicon Mac (M1, M2, or M3) uname -m returns arm64 or aarch64 Ubuntu ARM64

Using an AMD64 package on an Apple Silicon Mac can cause the containers to stop with an exec format error.

For the available local packages and the general local-Docker workflow, see Documentation:Running MDriven Locally with Docker. For a Docker setup that includes production-oriented components such as Nginx and a database service, see Documentation:Deploying MDriven Server and Turnkey with Docker.

Prerequisites

Before starting, install and start Docker Desktop.

  1. Install Docker Desktop for your Mac and open it.
  2. Wait until Docker Desktop indicates that the Docker daemon is running.
  3. Open Terminal and verify that Docker can communicate with the daemon:
docker --version
docker info

If either command cannot connect to Docker, start Docker Desktop and wait for it to finish starting. For Docker Desktop installation options on Intel Macs, see Documentation:Deployment: Two Ways To Install Docker Desktop on MacOS Intel.

Start MDriven in Ubuntu containers

  1. Extract the downloaded Ubuntu Docker package to a working folder. For example:
mkdir -p ~/mdriven-local
== Extract the downloaded package into ~/mdriven-local ==
cd ~/mdriven-local
  1. Confirm that the extracted folder contains the supplied Compose configuration, normally named compose.yaml or docker-compose.yml.
  2. From that folder, start the services in the background:
docker compose up -d
  1. Check that the containers are running:
docker compose ps

A Docker image is the packaged application template. A Docker container is a running instance of that image. The supplied Compose configuration defines the MDriven Server and Turnkey containers together, including their connection and host-port mappings.

Rebuild when you changed Docker build files

Use the following command only when your extracted setup includes Dockerfiles that you have changed, or when you need to rebuild the local images without Docker's build cache:

docker compose build --no-cache
docker compose up -d

For normal use of a prepared MDriven Compose setup, start with docker compose up -d.

Verify the services

The prepared local setup exposes these default endpoints. Check the actual port mappings in your Compose configuration if your package differs.

Service Default local URL What to check
MDriven Server http://localhost:5011 The server responds in the browser.
MDriven Turnkey http://localhost:5012 The Turnkey application responds in the browser.
  1. Open http://localhost:5011 in a browser to verify MDriven Server.
  2. Open http://localhost:5012 in a browser to verify MDriven Turnkey.
  3. If a page does not respond, inspect the service logs:
docker compose logs
docker compose logs --follow

You can also select a container in Docker Desktop to view its logs, status, port mappings, and resource usage.

Upload a model

After both containers are running, use MDriven Designer to upload a model to the local environment. A Turnkey process can be running correctly but continue loading until a model has been uploaded.

Use the Turnkey endpoint from your Compose configuration. In the prepared local setup, the browser endpoint is normally http://localhost:5012.

Change ports when a port is already in use

If Docker reports an error such as Bind for 0.0.0.0:5011 failed, another process is already using that host port.

  1. Open compose.yaml or docker-compose.yml in a text editor.
  2. Find the mapping for the conflicting port.
  3. Change the host-side port while retaining the container-side port. For example, change 5011:5011 to 5013:5011.
  4. Restart the setup:
docker compose up -d
  1. Browse to the new host port; in this example, http://localhost:5013.

Stop, restart, and preserve data

Use these commands from the folder containing the Compose configuration:

Task Command
Stop services docker compose stop
Start stopped services docker compose start
Stop and remove containers docker compose down
View running containers docker compose ps

The supplied Docker setup uses persistent storage. Stopping or removing containers does not necessarily remove application data, logs, or settings because Docker volumes and host bind mounts remain. This is intentional: for example, the MDriven Server administrative VistaDB file can be stored under settings/mdriven-server on the host and mounted into the container.

Do not remove volumes when you want to retain your local application state. If you need a clean environment, follow the data-reset guidance in Documentation:Deploying MDriven Server and Turnkey with Docker.

Configuration and troubleshooting

The Compose configuration is the place to change container settings and mounts. MDriven's prepared configurations support settings such as application version selection through UPDATE_APP, lowered container permissions through PUID and PGID, and a password reset file for the MDriven Server connection user. Follow Documentation:Deploying MDriven Server and Turnkey with Docker before changing these settings.

For a larger Compose deployment and an explanation of startup ordering, health checks, and the supplied container entry points, see Documentation:Advanced Docker Compose Configuration for MDriven.

If you do not need containers, use the native macOS installation procedure instead: Documentation:MDriven Server & MDriven Turnkey On Native MacOs.

See also