t
«Преобразованием» (резрешением, резолвом, resolve) домена в ip адрес занимается DNS.
DNS штука иерархическая и она начинает резолвить с самого хоста (твоей машины или с контейнера) и если не находит на своём уровне идёт дальше по сети.
Саму тонкость почему внутри контейнера docker не резолвится localhost я не скажу, но проблема в том, что внутри контейнера не срабатывает связка localhost->127.0.0.1
1. Обращаться по внутренним портам, а в качестве хоста использовать наименование целевого сервиса. Но это будет работать лишь в рамках одной докер сети
2. Использовать внешний порт и хост машины, в которой развернут контейнер