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 Console✅Add 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.