Voraussetzung
Docker Desktop (und docker-compose) müssen auf Deinem System schon installiert sein.
Wie gehts
starte Deine Kommandozeile und erzeuge ein Verzeichnis auf Deinem PC (in Deinem User Verzeichnis) und wechsle in dieses Verzeichnis:
mkdir Docker\phpMyAdmin
cd Docker\phpMyAdmin
Nun bearbeite eine Datei docker-compose.yml und paste folgendes in diese Datei:
version : '3'
services:
    mysql:
        image: mysql:5.7
        # or mysql:latest
        container_name: dev_mysql
        environment:
          MYSQL_USER: user
          MYSQL_PASSWORD: user
          MYSQL_ROOT_PASSWORD: password
          MYSQL_DATABASE: default_schema
        restart: always        
        ports:
          - '3306:3306'
        volumes:
          - my-db:/var/lib/mysql
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: dev_pma
        links:
          - mysql
        environment:
          PMA_HOST: mysql
          PMA_PORT: 3306
          PMA_ARBITRARY: 1
        restart: always
        ports:
          - 8183:80
    mailhog:
        image: mailhog/mailhog
        container_name: dev_mailhog
        ports:
        - 1025:1025 # smtp server
        - 8025:8025 # web ui
# Names our volume
volumes:
  my-db:
Nun starte den Downloadprozess und auch gleich die images:
docker-compose up -d
Jetzt öffnest Du das Dashboard von Docker Desktop und klickst auf „Images“. Du siehst, dass drei images:
- mysql
 - phpmyadmin/phpmyadmin
 - mailhog/mailhog
 
geladen wurden. Alle drei sollten jetzt schon „in use“ sein.
Zugriff auf phpMyAdmin:
http://localhost:8183
- Server: mysql
 - Username: root
 - Password: password
 
Zugriff auf Mailhog
Einstellung im .env file in Deinem Laravel Projekt:
MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Nun werden Deine Mails nicht „wirklich“ abgeschickt sondern schon vom Mailhog abgefangen. DU kannst alle neu abgeschickten Mails folgendermassen erreichen:
http://localhost:8025