Quando esegui la tua applicazione all'interno di Docker, è in esecuzione in un ambiente virtuale; È proprio come un altro computer, ma tutto è virtuale, inclusa la rete.
Per connettere il tuo container all'host, Docker gli fornisce un indirizzo IP speciale e assegna a questo IP un URL con il valore host.docker.internal
.
Quindi, supponendo che mongo sia in esecuzione con binding su ogni interfaccia sulla macchina host, dal contenitore potrebbe essere raggiunto con la stringa di connessione:
mongodb://host.docker.internal:21017/database
Semplificando, Just use host.docker.internal as your mongodb hostname.