Come aderire alla networking ponte di default con docker-compose v2?

Ho provato a configurare un contenitore per il proxy nginx per accedere ai miei altri contenitori tramite sottodomini nella port 80 anziché porti speciali. Come potete immaginare, non ho potuto farlo funzionare.

Sono un po 'di nuovo per farsi carico e ho scoperto che è più comodo per me scrivere i file docker-compose.yml , quindi non devo scrivere costantemente i comandi di docker run ... docker-compose.yml docker run ... . Pensavo che non vi sia alcuna differenza in come avviare i contenitori, sia con docker che docker-compose . Tuttavia, una differenza che ho notato è che l'avvio del contenitore con docker non crea nuove reti, ma con docker-compose ci sarà una networking xxx_default successivamente.

Ho letto che i contenitori su reti differenti non possono accedere a vicenda e forse potrebbe essere la ragione per la quale il procuratore nginx non invia le richieste agli altri contenitori. Tuttavia, non sono riuscito a trovare un modo per configurare il mio file docker-compose.yml per non creare nuove reti, ma aderire alla networking ponte predefinita come il docker run does.

Ho provato quanto segue, ma ha provocato un errore dicendo che non posso aderire a reti di sistema come questo:

 networks: default: external: name: bridge 

Ho anche provato a network_mode: bridge , ma non sembrava fare alcuna differenza.

    Come devo scrivere il file docker-compose.yml per non creare una nuova networking, o che non è affatto ansible?

    Domande bonus: Ci sono altre differenze tra docker e docker-compose che dovrei sapere?

    Aggiunta di network_mode: bridge a ciascun servizio nel tuo docker-compose.yml smetterà di comporre la creazione di una networking.

    Se nessun servizio è configurato con questo ponte (o host), verrà creata una networking.

    Testato e confermato con:

     version: "2.1" services: app: image: ubuntu:latest network_mode: bridge