Конкретно про ларадок не скажу, но объясню как оно вообще работает.
Когда контейнеры запускаются в одной сети, они доступны друг другу по доменам, которые равны названию контейнера. При запуске через docker-compose немного не так. Контейнеры видят друг друга по именам сервисов.
Т.е. если у вас вот такой docker-compose.yml
services:
front:
image: ....
back:
image: ....
то фронт сможет обратиться к бэку по домену back, примерно вот так:
file_get_contents("http://back:8080/path/to/file.txt");
Ещё, если вы хотите чтобы сервисы обращались друг к другу по публичным доменам, а не по внутренним, можете задать в docker-compose.yml у контейнеров hostname.
но в docker-compose.yml у контейнера можно задать его hostname,
вот так:
services:
front:
hostname: site1.ru
image: ....
back:
hostname: site2.ru
image: ....