‫Ok,
‫quindi quello che sto per fare è, ho intenzione di esaminare ciascuno di questi servizi in
‫base a questa architettura, e creerò questa app al volo. In realtà scriverò i comandi qui nel readme, perché
‫mi sembra un posto logico per me. E poi li taglierò e incollarli nel
‫mio nodo.
‫Se ricordi, ho uno Sciame a 3 nodi qui. Se faccio un nodo docker ls,
‫vedrai che ho tre nodi qui. Sono tutti nodi di gestione.
‫Non ho contenitori in esecuzione e nessun servizio, ovviamente. reti e ho bisogno di un volume.
‫Per prima cosa, so in cima, parla di ho bisogno di
‫Quindi, probabilmente, è possibile rimuovere le reti e probabilmente posso farlo. Posso digitare docker
‫network create d overlay. Ricorda che la rete di overlay è l'unico tipo di rete che possiamo
‫usare in uno Swarm perché l'overlay ci consente di estenderci su tutti i nodi, come se fossero tutti sulla rete locale.
‫E poi voglio chiamarlo backend.
‫E poi, voglio fare la stessa identica cosa, chiamarla solo frontend.
‫Ora, non c'è nulla di intrinsecamente speciale in queste due reti.
‫in uno o l'altro per aiutare a comportarsi come un piccolo firewall che offre una separazione per la protezione.
‫Stiamo solo andando a segmentare i nostri diversi servizi
‫Su questo voto, so
‫che ho bisogno di creare un servizio docker, e devo nominarlo, quindi potrei anche mettere il voto del nome. E poi devo pubblicare la porta 80-80 nel container,
‫e deve essere su una rete specifica. Quindi, frontend di
‫rete. Ho bisogno di due repliche.
‫Quindi, replica due. E poi, potrei anche solo copiare e incollare questo nome. non si chiamerà
‫Ora, ho intenzione di andare avanti e creare tutto questo prima di distribuirli realmente. voto, si chiamerà
‫Ho intenzione di copiare questo qui. Questo sarà chiamato. redis. Non devi preoccuparti di pubblicare alcuna porta su questo.
‫Sarà sulla rete di frontend. vediamo, backend di rete, e
‫Voglio due repliche e poi, lo chiamerò redis tre due è l'immagine. â | Poiché
‫Qui sotto, il servizio docker crea un nome operaio, sta per essere su due reti. Devo Sto scrivendo quello che sto dicendo. quindi solo una replica. una replica
‫fare il frontend della rete e. whoops. è predefinita, in realtà non devo specificare la replica e non specifico nessuna porta.
‫Penso, questo è tutto ciò di cui ho bisogno lì. Ho solo bisogno di copiare l'immagine.
‫Va bene, il servizio finestra mobile crea il nome del backb della rete db.
‫Vedi, una replica.
‫Oh, ho bisogno di fare questo volume.
‫Ecco la cosa sul volume. Il comando -v non è compatibile con i servizi di docker. Perché, per vari motivi, i
‫servizi saranno più complessi di quanto potrebbe accadere con la tipica finestra mobile.
‫E c'erano problemi e limitazioni con il -v nel corso della giornata.
‫Quindi, Docker ha imparato da questo e ha migliorato il formato. Ma sembra essere un po 'più prolisso e forse un po' più difficile ricordare il
‫formato che inizia.
‫Capita anche di non essere ben documentato nella
‫Documentazione Docker perché ha meno di un anno come comando. Quindi, ci limiteremo a copiare e incollare questo. fanno tutti parte di un singolo comando di
‫mount e i minimi sono un tipo, una fonte e una destinazione.
‫Se non ha senso per te, in fondo, è questa lista di valori che
‫Ci sono anche altre cose che puoi aggiungere, ma queste sono le uniche tre di cui abbiamo bisogno in questo scenario.
‫E puoi vedere che la mia fonte è solo un volume chiamato perché non ho nessuna barra in esso.
‫E se avessimo delle barre sarebbe stato un mount bind e avremmo
‫dovuto specificare un tipo diverso.
‫Quindi qui sotto, volume di tipo --mount, dati db di origine, destinazione.
‫Penso sia corretto
‫E poi puoi solo, postgres 9. 4.
‫E poi l'ultima è l'app di risultato.
‫Pertanto, il servizio docker crea il backend della rete dei risultati del nome.
‫Pubblica la porta. Useremo 5001 per port 80 nel container.
‫Posso solo eseguire uno di loro. A proposito, l'unica ragione per cui stiamo eseguendo uno di questi è in realtà un problema poco conosciuto su questa app, è che questo
‫in realtà sta Quindi, nella mesh di routing, in realtà non
‫usando WebSockets, e WebSockets sono qualcosa che richiede una connessione persistente. fa ancora bene WebSockets perché continuerà a passare avanti e indietro tra i contenitori e che WebSocket deve essere costantemente in un contenitore specifico.
‫Quindi, con questa app quello che dovremmo
‫avere davvero, è un proxy di fronte ad esso ma non è ancora in questa app, quindi probabilmente in una versione successiva la aggiorneranno e la sistemeremo in modo da avere un proxy.
‫In questo modo può essere ridondante e
‫sicuro che stai per arrivare al contenitore giusto. Lo copiamo
‫e incolliamo fino alla fine. Ho appena realizzato che mi manca l'ultimo valore su questi.
‫Ok, e poi comincio in alto e copio e incollo. Ha già creato le reti.
‫Sì, questo deve essere repliche. Permettetemi di aggiornarlo qui.
‫Repliche. Ok, creeremo i redis. Eccoci.
‫Bene, l'ho creato. Ora, noterete, a proposito, torno a un ID di servizio ma ciò non significa
‫che il servizio sia effettivamente distribuito correttamente.
‫Lo vedremo tra un minuto.
‫Lasciami prendere il resto di questi là dentro.
‫Tutto ok.
‫Ora che abbiamo questo, dovremmo essere in grado di fare il resto dei nostri comandi qui. Quindi, il servizio docker ls ci
‫mostra tutti e cinque. E noterai che i numeri di replica corrispondono.
‫È un buon segno
‫Ciò significa che uno è stato creato con successo.
‫E se volessi approfondire, potrei fare un servizio di docker su ciascuno di essi.
‫Va bene, in modo che uno è stato in esecuzione 28 secondi.
‫redis è stato in esecuzione un minuto. db è in esecuzione 53 secondi. votazione.
‫lavoratore.
‫E vedrai qui nel worker, che abbiamo un task fallito che si spegne e poi uno in esecuzione.
‫Funziona per 47 secondi.
‫Ok, so davvero perché è successo, ma forse non lo sai, quindi forse dovremmo fare un registro.
‫Ora questo è su node2.
‫configurazione facoltativa in Docker, è in realtà quella di eseguire la nuova funzione sperimentale, i registri del servizio finestra mobile.
‫Una funzionalità sperimentale che è possibile abilitare tramite una Che in realtà tira i registri da molti nodi diversi.
‫Si spera che sarà rilasciato nella prossima versione di Docker entro la fine dell'anno.
‫Ma per ora, è sperimentale. Quindi ho dovuto abilitarlo all'interno del log daemon della docker etc, o daemon.
‫file json. E, solo per quello che sai, questo è il modo in cui abiliti un esperimento. registra il Potete vedere qui questo è uno, e quindi In realtà, si.
‫Questo non fa parte di questo. E questo è acceso, questo particolare, vediamo, questi sono due diversi. il numero cambia. Questo è tutto qui.
‫E 'solo una cosa che ho fatto, solo per mostrarlo velocemente. oops. lavoratore. Non dice tale dispositivo o indirizzo.
‫Potresti vedere questo errore e stai pensando, non so perché sta succedendo? Quindi, cosa significa in pratica,
‫Possiamo guardare quel registro. Quindi, possiamo fare un lavoratore del registro di servizio docker. ho creato un servizio che cercava un record DNS che non esisteva perché non avevo ancora creato l'altro servizio. perché Docker può effettivamente riavviare e ridistribuire le cose correttamente fino a quando le app non si bloccano.
‫E ha fatto ciò che dovrebbe fare in â Dockerlandâ,
‫che è quando ha un errore del genere, l'app dovrebbe bloccarsi E non appena ho avviato tutti i miei servizi,
‫tutto ha smesso di funzionare e tutto ora funziona.
‫E possiamo dirlo semplicemente tornando indietro e guardando la ps worker. Vediamo che è stato eseguito con successo
‫per tre minuti.
‫Diamo un'occhiata alla nostra app.
‫Se tento l'indirizzo IP, dovrei prendere cani e gatti. Vado a votare i gatti.
‫E poi se vado allo stesso IP sulla porta 5001, dovrei vedere l'app dei risultati. l'app.
‫Questa è
‫Ora sappiamo che sta funzionando perché l'unico modo in cui questo può cambiare è se questo arriva fino in
‫fondo quando viene catturato dai redis, e quindi elaborato dall'operatore, e quindi inserito nel database.
‫Quindi sappiamo che ognuno dei nostri servizi di app è in grado di comunicare tra loro. E possiamo guardare
‫i log se lo volessimo.
‫Ma questa è la demo.
‫