Skip to main content

Laradock vs Drupal Docker (DDEV and the official image)

How Drupal is usually run in Docker

Drupal has no single official Docker tool, but the community has clear defaults:

  • DDEV is the de-facto standard the Drupal community recommends: install one binary, run ddev start, and a Drupal-ready environment appears with automatic HTTPS and per-project domains. (Lando is a close cousin, popular for the same reason.)
  • The official drupal Docker image is a bare runtime you pair with a database in a docker-compose.yml you write yourself.

This page compares those with Laradock. For the general, tool-level DDEV comparison see Laradock vs DDEV; here the focus is Drupal specifically.

DDEV/Lando generate and hide the Docker machinery behind a CLI; the official image is a building block you wire yourself; Laradock hands you the machinery pre-wired and readable, for Drupal and every other PHP project. This page sets Drupal up on Laradock.

TL;DR: pick DDEV if you run many Drupal sites and never want to see a Dockerfile. Wire the official image yourself if your needs are tiny. Pick Laradock if you want full control over readable Docker files, services beyond DDEV's add-ons, one environment across frameworks, or a direct path to production.

Setting up Drupal with DDEV

mkdir my-drupal && cd my-drupal
ddev config --project-type=drupal --docroot=web
ddev start
ddev composer create drupal/recommended-project
ddev drush site:install -y
ddev launch

Live at https://my-drupal.ddev.site with trusted HTTPS. The Docker files live in .ddev/, generated and regenerated on every start, so they are DDEV's to manage, not yours to edit directly.

The same thing with Laradock

cd my-drupal
git clone https://github.com/laradock/laradock.git
cd laradock
./laradock start nginx postgres redis workspace
./laradock workspace

Inside the workspace, composer create-project drupal/recommended-project . and drush site:install just work (the workspace ships Composer, Drush, and Drupal Console). Every file involved (nginx/compose.yml, php-fpm/Dockerfile, ...) is readable and yours to edit. Full walkthrough: Run Drupal on Docker.

Side by side

DDEVOfficial imageLaradock
Installddev binaryNothing (write compose)Nothing (git clone)
Docker filesGenerated & hidden in .ddev/Yours (you wrote them)Plain files you own and edit
Commandsddev * vocabularyPlain docker composePlain docker compose (+ optional ./laradock)
HTTPS + .site/.test domains✅ automaticManualVia Caddy/Traefik service
Drush / Drupal ConsoleAdd a service✅ in workspace
Services~50 curated add-onsOnly what you wire100+ shipped
Runs non-Drupal projects✅ (CMS-focused presets)You'd rewrite the compose✅ any PHP project
Skills you buildDDEV-specificTransferable DockerTransferable Docker
Production pathDev-focusedRoll your own./laradock ship → server / Kubernetes / cloud

Choose DDEV (or Lando) if...

  • You run many Drupal sites and want identical, isolated environments with zero Docker exposure.
  • Automatic HTTPS and per-project domains matter more than seeing how they work.

Choose the official image if...

  • Your needs are minimal (Drupal + one database) and you like owning a short compose file.

Choose Laradock if...

  • You want full control: every Dockerfile and config readable and yours to change.
  • Your stack goes beyond DDEV's add-ons (message brokers, search clusters, local LLMs, monitoring).
  • You work across frameworks and want one environment for Drupal, Laravel, WordPress, and the rest.
  • You want the same containers to reach production with ./laradock ship.

Frequently Asked Questions

The Drupal community most often points to DDEV. It is excellent if you want zero Docker exposure; Laradock is the alternative when you want transparent, editable Docker files, a larger service catalog, and one environment across multiple frameworks.

Can Laradock run Drupal with PostgreSQL?

Yes. Start postgres instead of mysql (./laradock start nginx postgres redis workspace) and point Drupal's settings at host postgres. See Run Drupal on Docker.

How is this different from the general DDEV comparison?

This page focuses on Drupal specifically. For the broader, tool-level breakdown of DDEV vs Laradock across any project, see Laradock vs DDEV.

See the full landscape: Laradock vs DDEV and Laradock vs Others. Ready to try it? Run Drupal on Docker takes about five minutes.