Ogólnie ludzie przechodzący na dockery robią kilka błędów. Jednym z nich jest odwzorowywanie schematów z tradycyjnych setupów i na przykład stawianie 1 kontenera php per wersja i odpalanie za jego pomocą wielu projektów.
Ideą dockera jest hermetyzacja projektu i dostosowanie do niego środowiska (w idealnym świecie tego samego setupu używasz na produkcji).
To co robisz to odpalasz docker-compose i w nim "wpinasz" wszystkie kontenery jakie potrzebujesz. Na początek polecam stosowanie obrazów zawierających apache/nginx. Wtedy w takim docker compose masz zazwyczaj:
- php z apachem
- jakaś baza danych
- dodatkowe kontenery np. adminer (do zarządzania bazą danych), mailhog do testowania maili, elasticsearch, i co tam jeszcze dusza zapragnie.
To co uzyskujesz to po prostu zamknięte środowisko. Jak chcesz odpalić kolejny projekt to po prostu robisz drugi dokcer-compose i budujesz wszelkie potrzebne obrazy.
To przed czym muszę Cię przestrzec, to na początku napotkasz sporo problemów typu prawa do plików, walka z sieciami - jak na przykład zrobisz bazę w sieci wewnętrznej i nie udostępnisz portu to nie połączysz się z nią łatwo za pomocą jakiegoś panelu do baz danych, będziesz miał kłopot aby jednocześnie odpalić 2 projekty (kolizje portów), albo będziesz miał kolizje portów między usługami na hoście i tymi odpalonymi z kontenerów. Ogólnie jest sporo takich "pułapek", z którymi musisz sobie poradzić. Z czasem jednak zdobyta wiedz procentuje, bo otwiera kolejne możliwości typu ogarnianie procesów CI/CD. Z dockerem pracuję już od kilku lat, obecnie robię już całkiem zaawansowane konstrukcje, gdzie mikroserwisy komunikują się między sobą, automatycznie stawiające się środowiska developerskie, zabawy w CI/CD czy nawet Docker na produkcji i nadal mi się zdarza mieć niezłe WTF, ale nie wyobrażam sobie powrotu do tradycyjnych metod.
Jak zaczynałem to trudno było o materiały, ale teraz widzę, że jest tego sporo na sieci. Osobiście zainwestowałbym te 30-40zł i kupił taki kurs: https://www.udemy.com/course/docker-for-php-the-complete-course/ - pewnie w 3 godziny zdobędziesz wiedzę, jaką kiedyś się gromadziło tygodniami. Jak już ogarniesz podstawy stawiania środowisk, to potem już idzie z górki bo to tylko dodawanie kolejnych zabawek do arsenału.
Jak już się trochę wciągniesz to polecam zainteresować się: https://doc.traefik.io/traefik/providers/docker/
Dzięki temu można fajnie ogarnąć bardziej złożone struktury typu wiele serwisów komunikujących się ze sobą po API czy proste używanie dockerów na produkcji, ale na początek sobie tym głowy nie zawracaj.