‫Ora che dire di Docker Registry in uno sciame?
‫In realtà non è molto diverso.
‫La cosa bella è che non dobbiamo eseguire un comando di esecuzione docker, possiamo effettivamente utilizzare un comando di servizio docker come se fossimo
‫abituati o un file stack come abbiamo già detto in una sezione precedente. Funzionerà allo stesso modo che abbiamo fatto
‫sull'host locale perché in realtà possiamo solo dire allo sciame di parlare con
‫se stesso per il registro.
‫Quindi useremo lo stesso indirizzo 127 e non dobbiamo abilitare il registro non
‫sicuro perché è già consentito dal Docker Engine. come se fosse locale, giusto, perché è una specie di magia della rete di routing.
‫La rete di routing
‫consente sostanzialmente a tutti i nodi di comunicare con il registro
‫Voglio solo ricordarti che questo è un contenitore di dati persistente.
‫Memorizza i dati che devono durare nel tempo.
‫Quindi dovrai affrontare un tipo di scenario di produzione del mondo reale. Avrai a che fare con un driver
‫di volume e come trattare, e fondamentalmente prendere una decisione su come archiviare i
‫dati.
‫Ma non lo faremo qui.
‫Per questo esempio con Swarm, in realtà sto per cambiarlo un po 'e non usare il cluster a tre
‫nodi che avevo usato in una sezione precedente.
‫Questa volta useremo Play With Docker. Se vai a giocare con la finestra mobile. com, proveremo davvero
‫che non siamo un robot e poi mi faranno delle domande
‫casuali, potrebbe chiederti, potrebbe non farlo.
‫Quindi siamo dentro
‫Recentemente, Play With Docker ha abilitato una nuova funzione che rende ancora più facile per
‫noi impostare un modulo di prova e questo è sotto l'oggetto chiave inglese.
‫Immagino che sia una chiave inglese. Vedete che qui ci sono delle opzioni che sono
‫fondamentalmente dei modelli per creare uno sciame, quindi invece di mostrarvi questo insieme come abbiamo già fatto, ho intenzione
‫di creare cinque manager, nessun lavoratore, dargli un secondo imposterà tutto questo. Fondamentalmente quello con cui iniziamo è
‫uno sciame di cinque nodi. Stiamo solo andando ad eseguire un registro molto
‫velocemente per mostrare come è praticamente la stessa cosa di prima.
‫Tutto ok. Ora ho cinque nodi manager e se ho fatto il nodo docker ls, puoi vedere che ne ho
‫cinque.
‫Quindi, sì. Abbiamo uno sciame. il servizio crea e lo chiameremo registro.
‫In realtà,
‫eseguiamo semplicemente il registro ma questa volta utilizzeremo
‫Lo pubblicheremo di nuovo come l'ultima volta, la porta 5000 e
‫andremo al registro delle immagini.
‫Ecco qua.
‫Possiamo fare un registro ps del servizio docker e dice che è in esecuzione. In Play With Docker, otteniamo questo piccolo
‫pulsante che appare ogni volta che pubblichiamo un'applicazione web.
‫e fornisce un piccolo e simpatico URL che possiamo testare su quell'app Web o su un endpoint web.
‫Espone effettivamente la porta
‫Ma tu sai con Registry, alla radice di
‫esso, non è nulla, non c'è nulla che viene restituito diverso da un HTTP 200.
‫Quello che possiamo fare è con qualsiasi registro in cui possiamo effettivamente andare a dare un'occhiata al catalogo e
‫questo restituirà un semplice array JSON.
‫Noterai che il suo repository è vuoto.
‫Avremmo potuto farlo nella lezione precedente con quella locale, ma giochiamo un po 'qui, visto
‫che siamo in questa soluzione facile con Play With Docker.
‫Lasciami fare la stessa cosa quando eseguo una finestra mobile come prima del mondo Hello. Ora farò di nuovo il tag per ricordarlo,
‫quindi diremo tag Hello World e poi lo rinominerò o lo re-tag in un
‫nuovo repository 127. 0. 0. 1 5000, ho intenzione
‫di fare una spinta docker.
‫Consentitemi di eseguire lo zoom in modo che ci possa essere un po 'più facile da vedere.
‫spinta docker.
‫Quindi faremo il 127. 0. 0. 1
‫OK. Ora lo ha spinto fino al nostro deposito. mostrano il nome del repository disponibile.
‫Il modo in cui possiamo effettivamente controllare, molto velocemente, è se andate a questa altra scheda e io aggiornerò, noterete che i repository ora
‫A mano a mano che ne aggiungiamo di più, questo in realtà espanderebbe l'array e li vedremo tutti lì.
‫A questo punto, potrei semplicemente fare come prima, eseguire quell'immagine, funzionerebbe esattamente come ci aspettavamo
‫e lo scalavamo. Per dimostrare solo
‫quel punto, posso fare un docker tirare nginx.
‫semplice server Web nginx, tag
‫nginx docker e quindi push docker,
‫spingerlo di nuovo nel nostro registro.
‫Siamo in grado di eseguire un
‫Allora vedrai qui, che ne ho due ora. Ho due repository lì. Quindi se creo
‫un servizio di docker,
‫come facciamo
‫normalmente,
‫abbiamo intenzione di fare
‫il nginx 80 80, ma questa volta specificherò l'immagine in questo modo.
‫giusto, per avviare il servizio e vogliamo usarlo.
‫Diciamo
‫che non vogliamo usare l'immagine Docker Hub,
‫Ora aggiungeremo un paio di opzioni.
‫Effettuerò effettivamente le repliche 5, in modo che un nginx inizi su ogni nodo, e quindi faremo
‫una nuova opzione che ha iniziato a comparire nel 17. 04 Credo che staccare sia falso e questo ci permetterà di vedere effettivamente
‫il comando in esecuzione in tempo reale.
‫Vedrai che si sta preparando, il che significa che fondamentalmente sta scaricando quell'immagine dal
‫registro ai nodi, e quindi si prepara e poi è in esecuzione.
‫Eccoci, abbiamo finito.
‫Se tiro, noterai dall'alto, ora mostra la porta 80 perché è un nuovo servizio,
‫e vedrai che ce l'ho qui e funziona.
‫La cosa interessante di questo è che quando sei in uno sciame, non puoi usare un'immagine che è solo su
‫un nodo,
‫giusto?
‫Uno sciame deve essere in grado di estrarre le immagini su tutti i nodi da qualche
‫repository in un registro che possono tutti raggiungere. di andare a manager1 e prenderlo, giusto?
‫Non l'ho menzionato nella sezione sciame, ma è un punto importante perché ciò significa che non puoi semplicemente creare un'immagine tua su
‫un locale, come diciamo in questo caso manager1, e manager2 non ha intenzione di essere in
‫grado
‫Tutti devono fare push e pull da un repository centrale da qualche parte.
‫Ma poiché ho eseguito il registro come servizio qui, tutti possono sapere come accedere a 127 zero zero uno, e quindi
‫la mesh di routing li dirige effettivamente verso il contenitore corretto, ovunque quel registro sia in esecuzione
‫su uno dei nodi, e poi tirerà quell'immagine di nginx a tutti i nodi in quanto devono Se hai fatto un servizio docker in ps gginx, vedrai che ce n'è uno in esecuzione su ogni nodo, e vedrai che l'immagine che sta usando è quella
‫essere lì. del nostro registro.
‫OK, questo è solo per mostrare come Swarm è molto simile con Docker Registry.
‫Alla fine abbiamo menzionato, quel nuovo tidbit, che è necessario assicurarsi che le immagini che si
‫usano in uno sciame siano accessibili in qualsiasi registro in cui si troveranno.
‫Devono essere accessibili da tutti i nodi. Questo dovrebbe essere ovvio, giusto, perché i nodi
‫non possono condividere le immagini tra loro. In realtà tutti devono estrarli da un registro e quindi tutti
‫devono essere in grado di raggiungerlo.
‫Succede solo che una mesh di routing rende molto più semplice l'esecuzione.
‫usare uno di quelli ospitati su Internet. Sono ridondanti.
‫Proprio come un ultimo piccolo ProTip, se non devi eseguire il tuo registro personale, per quanto possa essere figo farlo, basta Hanno il monitoraggio e tutto il materiale necessario per gestire lo storage.
‫Di solito sono, soprattutto se stai facendo open source,
‫la maggior parte sono gratuiti.
‫Se lo fai per motivi privati
‫​​e hai bisogno di archiviare immagini private, la maggior parte di esse ha un costo molto ragionevole, intendo un costo molto basso per memorizzare le tue immagini.
‫delle opzioni disponibili, direi di provare prima quelle e
‫utilizzare solo il tuo registro personale
‫se hai davvero qualche tipo di, forse, requisito offline dove deve essere disponibile senza Internet, o se ci sono solo alcune restrizioni di sicurezza che non puoi davvero usare nessuna piattaforma ospitata.
‫Quindi, se utilizzi un AWS o Quay o Docker Hub o molte Perché in realtà è solo una di quelle cose
‫in cui è un'utilità ed è fantastico quando puoi semplicemente affidarti a qualcun altro per risolvere il tuo problema.
‫Quindi spero che tu ci giocherai e ti divertirai un po '.
‫Ora che non fai questa lezione, ricorda di ripulire in modo da poter iniziare
‫con una nuova lavagna nella prossima lezione.
‫