‫Per questa lezione, è necessario comprendere alcuni dei concetti precedenti relativi al networking e anche
‫alla creazione di contenitori.
‫Ora che comprendiamo i concetti di networking Docker e di come funzionano tutte le funzionalità di
‫networking e IP virtuali, diamo un'occhiata ad alcune opzioni della riga di comando per gestirlo.
‫Innanzitutto, c'è l'ovvia rete ls. Dal momento che possiamo creare più reti, abbiamo sicuramente
‫un comando ls per elencarle.
‫Abbiamo il solito comando di ispezione che probabilmente sei abituato da tutte le altre ispezioni che
‫stiamo facendo.
‫Questo ci mostrerà i dettagli su una rete specifica.
‫Quindi abbiamo un comando create che ha un driver opzionale che possiamo specificare per l'utilizzo di driver
‫incorporati e di terze parti per creare una nuova rete virtuale.
‫Quindi disponiamo dei comandi connect e disconnect per la modifica di un contenitore di esecuzione live in modo che venga creata
‫una nuova NIC su una rete virtuale per quel contenitore.
‫È un po 'come attaccare una scheda di rete in un computer mentre è in esecuzione.
‫Quindi eccoci qui.
‫Quindi torna alla mia linea di comando. appreso, posso effettivamente fare una rete docker ls.
‫Prendendo i concetti che abbiamo appena Questo mi mostra tutte le reti che sono state create. In questo caso, quando esegui lo
‫stesso comando, probabilmente vedrai gli stessi tre. A seconda del tuo sistema
‫operativo e della versione di Docker, potresti vedere la rete bridge chiamata docker0 o
‫bridge, ma entrambi significano la stessa cosa. Qual è la rete predefinita che collega il firewall NAT alla
‫rete fisica a cui è connesso l'host. Fino ad ora, non ci siamo dovuti preoccupare perché
‫tutti i nostri container si sono appena collegati a quella rete e hanno funzionato.
‫Ora che questo container Nginx è in esecuzione, se eseguo il controllo di una finestra mobile, la rete bridge, vedrai effettivamente che
‫elenca i contenitori collegati a quella rete. abbiamo chiamato webhost, è collegato lì.
‫Vedrai che il nostro Nginx, che
‫Puoi effettivamente vedere il suo indirizzo IP. E qui vedrai che queste reti assegnano automaticamente gli indirizzi IP
‫e ti mostra qui con la configurazione IPAM che la subnet imposta automaticamente 172. 17, che è in genere la
‫rete predefinita per qualsiasi host Docker.
‫Ma può essere modificato e quindi il gateway per questa rete che alla fine si dirigerà verso
‫la rete fisica.
‫Se torniamo alla rete docker ls, possiamo vedere queste altre due reti. abbiamo parlato prima che si tratti di
‫una rete speciale che salta la rete virtuale di Docker e allega il container direttamente all'interfaccia host.
‫La rete host è ciò di cui
‫Come potete immaginare, ci sono pro e contro perché impedisce ai limiti
‫di sicurezza della containerizzazione di proteggere l'interfaccia di quel container.
‫Ma anche, in determinate situazioni, può migliorare le prestazioni del networking ad alto throughput
‫e risolvere alcuni altri problemi con software speciali specifici.
‫Poi abbiamo l'ultimo di nessuno, che è l'equivalente di avere un'interfaccia sul computer crea
‫che non è collegata a nulla, ma possiamo crearne una nostra. Ora faremo di nuovo
‫Creiamo una rete Docker. my_app_net. una rete docker ls. Noterai che ha creato la mia nuova rete virtuale con un driver di bridge.
‫E questo perché è il driver predefinito.
‫È un semplice driver che crea semplicemente una rete virtuale localmente con una propria
‫sottorete da qualche parte attorno al 172. 17 e oltre, perché aumenterà man mano che procede. Quindi, 17, poi 18, 19, 20 e così via.
‫Non ha nessuna delle funzionalità avanzate che potremmo vedere più avanti in questo corso, come reti sovrapposte che consentono il collegamento in rete privata
‫tra host e altri driver di terze parti come Weave.
‫Se si guarda il comando di creazione della
‫rete docker con help, si vedrà che posso specificare non solo il driver che voglio
‫usare, ma molte delle opzioni IP e di rete che potrebbero essere necessarie in uno scenario avanzato.
‫Possiamo fare diverse cose con queste reti e come collegarle ai nostri contenitori.
‫Possiamo usare l'opzione --network quando creiamo un container.
‫Quindi, contenitore docker esegue il nome
‫new nginx, quindi network, quindi la
‫mia app net e quindi l'immagine nginx.
‫Se facessimo un controllo della docker network sulla mia rete di app, vedreste che il nuovo Nginx
‫che ho appena creato è ora su quella rete. Ha un nuovo indirizzo IP di 172. 18.
‫Quindi è la prossima sottorete nell'elenco.
‫Ma in realtà non è necessario avviare nuovi contenitori, perché
‫proprio come nel mondo reale in cui è possibile scollegare e ricollegare i dispositivi
‫Ethernet e riconnettersi alle reti wireless, è possibile fare lo stesso anche con le reti esistenti e i contenitori esistenti.
‫Per questo, utilizziamo le opzioni di connessione e disconnessione della rete mobile e puoi utilizzare --help per vedere
‫tutte le opzioni disponibili per la rete Docker.
‫In questo caso, ciò che vogliamo fare è la rete mobile, e vogliamo prendere il contenitore esistente che abbiamo
‫creato per primo e collegarlo alla nostra nuova rete.
‫Selezionerò la nuova rete della mia app e quindi selezionerò il webhost originale che abbiamo creato.
‫Ora se faccio un container docker per
‫ispezionare il mio webhost originale, vedrete che è attualmente su due reti. La rete bridge originale, e fondamentalmente ho fatto l'equivalente di
‫dargli una nuova interfaccia Ethernet su una rete diversa, con un IP diverso che è
‫stato ricevuto dal DHCP.
‫Quindi siamo ora sulla rete 17 nella rete 18.
‫Se volessi disconnetterlo, potrei fare lo stesso con la sola disconnessione. Poi, se tornassi indietro e facessi di nuovo un'ispezione, vedrai
‫che ora è tornato con una sola rete.
‫singolo server, in questo caso , sei in grado di proteggerli davvero.
‫Come puoi vedere, ci sono molte opzioni interessanti per il networking Docker e l'obiettivo
‫finale qui, e una cosa che mi piace vantare con i container, è che se stai eseguendo tutte le applicazioni su un Perché nel mondo fisico in cui stavamo creando macchine virtuali e host
‫in una rete, spesso sovrastavamo le porte e la rete
‫sui nostri server delle applicazioni.
‫In questi casi, se si prendessero i contenitori dell'app e li si trovassero tutti in una rete insieme in
‫una rete virtuale, si espongono
‫solo le porte sull'host che si utilizza in modo specifico con -p. E tutto il resto è un po 'più
‫sicuro con quel firewall protetto all'interno della loro rete virtuale.
‫Più tardi, quando entreremo in Docker Swarm, impareremo davvero come creare reti multi-host e come migliorare ancora
‫quando iniziamo a scalare e scalare.
‫Per ricapitolare, abbiamo appena trattato un sacco di comandi per la gestione delle reti Docker.
‫Abbiamo giocato con i comandi ls e inspect, creato una
‫rete Docker e utilizzato il driver predefinito di bridge.
‫In realtà non avevamo bisogno di usare un --driver.
‫Infine, abbiamo provato i comandi di connessione
‫in rete e di disconnessione dalla rete per aggiungere e rimuovere una scheda NIC da un contenitore in esecuzione.
‫