Вам не нужно использовать ссылки на современном Docker.Но вам определенно не следует жестко кодировать имена хостов или порты.(См., Например, каждый вопрос SO, в котором отмечается, что вы можете взаимодействовать со службами как localhost
при запуске непосредственно в системе разработчика, но для работы в Docker требуется другое имя хоста.).Файл docker-compose.yml
- это конфигурация времени развертывания, и он является хорошим местом для установки переменных среды, которые указывают от одного сервиса к другому.
Как вы отметили в предложенном вами файле docker-compose.yml
, сети Docker и связанные с нимСервис DNS в основном полностью заменяет ссылки.Сначала ссылки существовали, но уже не так полезны.
Также обратите внимание, что Docker Compose создаст для вас сеть по умолчанию и что имена служебных блоков в файле docker-compose.yml
допустимы в качестве имен хостов.Вы можете уменьшить этот файл до:
version: '3'
services:
app1:
image: app1img
ports:
- '8300:8200'
app2:
image: app2img
ports:
- '9300:9200'
env:
APP1_URL: 'http://app1:8200'
depends_on:
- app1