Frequently-Asked Questions (FAQ)

  • What operating systems does DDEV-Local work on? DDEV-Local works nearly anywhere Docker will run, including macOS, Windows 10 Pro/Enterprise, Windows 10 Home, and every Linux variant we've ever tried. It also runs in many Linux-like environments, for example ChromeOS (in Linux machine) and Windows 10's WSL2. In general, ddev works the same on each of these platforms, as all the important work is done inside identical Docker containers.
  • Do I lose my data when I do a ddev poweroff or ddev stop or ddev restart? No, you don't lose data in your database or code with any of these commands. Your database is safely stored on a docker volume.
  • How does my project connect to the database? ddev describe gives full details of how to connect to the database. Inside the container the hostname is 'db' (NOT 127.0.0.1). User/password/database are all 'db'. For connection from the host, see ddev describe.
  • How can I troubleshoot what's going wrong? See the troubleshooting and Docker troubleshooting sections of the docs.
  • Do I need to install PHP or Composer or Nginx or MySQL on my computer? Absolutely not. All of these tools live inside ddev's docker containers, so you need only Docker and ddev. This is especially handy for Windows users where there's a bit more friction installing those tools.
  • How do I get support? See the (many) support options, including Slack, Gitter, Stack Overflow and others.
  • How can I get the best performance? Docker's normal mounting can be slow, especially on macOS. See the Performance section for speed-up options including NFS mounting.
  • How can I check that Docker is working? The Docker Installation docs have a full Docker troubleshooting section, including a single docker run command that will verify whether everything is set up.
  • Can I run ddev and also other Docker or non-Docker development environments at the same time? Yes, you can, as long as they're configured with different ports. But it's easiest to shut down one before using the other. For example, if you use Lando for one project, do a lando poweroff before using ddev, and then do a ddev poweroff before using Lando again. If you run nginx or apache locally, just stop them before using ddev. More information is in the troubleshooting section.
  • How can I contribute to DDEV-Local? We love contributions of knowledge, support, docs, and code, and invite you to all of them. Make an issue or PR to the main repo. Add your external resource to awesome-ddev. Add your recipe or HOWTO to ddev-contrib. Help others in Stack Overflow or Slack or gitter.
  • How can I show my local project to someone else? It's often the case that we want a customer or coworker to be able to view our local environment, even if they're on a different machine, network, etc. ddev share (requires ngrok) provides a link that anyone can view and so they can interact with your local project while you allow it. See ddev share -h for more information.
  • Can I use additional databases with ddev? Yes, you can create additional databases and manually do whatever you need on them. echo "CREATE DATABASE seconddb; GRANT ALL on seconddb.* TO 'db'@'%';" | ddev mysql -uroot -proot. You can use ddev mysql for random queries, or also use the mysql client within either ddev ssh or ddev ssh -s db as well.
  • Can different projects communicate with each other? Yes, this is commonly required for situations like Drupal migrations. For the web container to access the db container of another project, use ddev-<projectname>-db as the hostname of the other project. For example, in project1, use mysql ddev-project2-db to access the db server of project2. For HTTP/S communication you can 1) access the web container of project2 directly with the hostname ddev-<project2>-web and port 80 or 443: curl https://ddev-project2-web or 2) Access via the ddev router with the official hostname: curl https://ddev-router -H Host:d7git.ddev.site.
  • How do I make ddev match my production webserver environment? You can change the PHP major version (currently 5.6 through 7.4) and choose between nginx+fpm (default and apache+fpm and choose the MariaDB version add extra services like solr and memcached. You will not be able to make every detail match your production server, but with PHP version and webserver type you'll be close.
  • How do I completely destroy a project? Use ddev delete <project> to destroy a project. (Also, ddev stop --remove-data will do the same thing.) By default, a ddev snapshot of your database is taken, but you can skip this, see ddev delete -h for options.