20 Aug 2026

From Docker-only to Native: when Docker gets in the way

migrate-runtime, Gatekeeper ports, and a one-evening plan without losing www and MySQL.

If every PHP site starts with docker compose up and Docker Desktop eats RAM on your MacBook, Native mode gives you the same MySQL/Redis/nginx/php-fpm without daily containers.

When it’s worth switching

  • Your daily work is PHP + MySQL, not exotic compose recipes.
  • You want HTTPS on .localhost, Mailpit, phpMyAdmin in one app window.
  • You need fast cold start and less heat on Apple Silicon.
  • You keep Docker only for isolation (legacy PHP 7.x, third-party compose).

MacFullStack is not a drop-in DDEV clone — different tool class. See /blog/macfullstack-vs-ddev.

One-evening migration plan

  1. Install MacFullStack, pick Native in Settings (default).
  2. Copy or symlink projects into ~/MacFullStack/www/ — no need to duplicate gigabytes.
  3. Import DB: dump from the container → Tools → Databases or macstack db import.
  4. Fix .env: DB_HOST=127.0.0.1, ports from the Stack tab (not docker network mysql).
  5. Sync vhosts after docroot/aliases — nginx does not read .htaccess.

Native ↔ Docker in one app

You do not have to pick forever:

  • Switch mode in Settings; service data is kept per mode.
  • Move MySQL/MariaDB between modes: migration dialog or macstack db migrate-runtime --to native|docker --json.
  • Redis is not migrated — rebuild sessions/cache after switching.

Details: /help/migrate-runtime, /help/runtime-modes.

Port conflicts

If Docker Desktop still binds 3306/8080 — see Gatekeeper and /help/gatekeeper-ports. Often stopping compose or changing publish ports is enough.

What to keep in Docker

  • A project hard-wired to compose and CI = Docker.
  • Experiments with Postgres or services outside the Native catalog.
  • DDEV for one Drupal site, MacFullStack for everything else in www/.

Free tier: one PHP project and full Native core — free start. Node/Python proxy and unlimited projects — Pro.

MacFullStack

Try it on your Mac

Free — one PHP project and core stack. Pro unlocks Next/Django, Postgres, Share, and unlimited projects.

Download Pro Teams