Quali sono i vantaggi di eseguire un registro docker locale?

4

Non ho esperienza di produzione con la finestra mobile e ho diverse domande riguardanti un registro locale:

A dockerfile è la descrizione (= ricetta) di come viene costruita image (= cotto, ad esempio FROM alpine:3.5 )

Se l'immagine sul mio Docker Host non è presente, viene estratta da un registro docker. Per quanto ne so, Dockerhub riguarda le immagini "ufficiali" delle distribuzioni "sicure":

  • dì, posso tirare tranquillamente l'immagine alpina e ottenere effettivamente l'immagine ufficiale? O metti in un altro modo:

  • Finché le mie immagini si basano solo sulle immagini "ufficiali", non ho bisogno di un registro locale?

Inoltre:

  • Qual è il vantaggio di avere un registro (locale) con immagini pronte in uno scenario di distribuzione su come costruire l'immagine sull'host da baseimage (es. alpino) e crearne una nuova sull'host con qualche git aggiuntivo checkout di codice da distribuire? o

  • Quando ha senso tirare le immagini complete da un registro (locale) invece di costruire sull'host? E poi: perché non usare i repository privati di dockerhub per quello?

Un registro locale è solo una questione di affidabilità / fallback o c'è anche un guadagno di "fiducia"?

Modifica

Forse una risposta divisa ha senso per quanto riguarda le "piccole configurazioni" (poche immagini in parallelo su un singolo host, "rilasci" una volta alla settimana) rispetto a "scala del cloud" (molte immagini in parallelo, molti host, diverse uscite al giorno) dove le ragioni sono più ovvie.

    
posta Thomas Junk 18.04.2018 - 18:07
fonte

1 risposta

3

Un'immagine Docker è identificata da:

[owner]/[name]:[tag]

Quando ottieni un'immagine ufficiale da Docker Hub, il proprietario non è richiesto.

Esempio:

alpine:latest

Quindi

Posso tirare tranquillamente l'immagine alpina e ottenere effettivamente l'immagine ufficiale?

Quando tiri dall'hub Docker (repository ufficiale) otterrai l'immagine ufficiale alpina.

Le mie immagini sono basate solo sulle immagini "ufficiali", non ho bisogno di un registro locale?

Le immagini sono solo dei livelli. Se tutte le immagini sono basate su immagini pubbliche ufficiali non è necessario utilizzare un repository (Docker Hub o on-premise). Ma, una buona pratica è creare un'immagine base . Questa immagine è creata da un'immagine ufficiale più le personalizzazioni aziendali.

Esempio:

mycompany/alpine-custom:latest

In questo caso particolare, se vuoi mantenere la tua immagine privata e on-premise. È possibile utilizzare un registro interno. Se si desidera mantenere l'immagine privata, ma sul cloud, Docker Hub privato è anche un'opzione.

Qual è il vantaggio di avere un registro (locale) con immagini pronte in uno scenario di distribuzione su come costruire l'immagine sull'host da baseimage (es. alpino) e crearne una nuova sull'host con pochi ulteriori git checkout di codice distribuire?

Quando un'applicazione è pronta per la distribuzione, si crea un pacchetto con tutte le dipendenze. Costruisci l'applicazione prima di rilasciarla. È lo stesso principio È meglio avere un'immagine statica pronta per la produzione. Distribuisce più rapidamente e ha meno possibilità di scaricare una versione di dipendenza incompatibile o ha un errore di rete.

Quando ha senso tirare le immagini complete da un registro (locale) invece di costruire sull'host? E poi: perché non utilizzare i repository privati di dockerhub per questo?

La scelta tra repository cloud o on-premise evolve aspetti quali: sicurezza, prestazioni, affidabilità, costi, disponibilità della rete, ecc. Ogni scenario ha le sue particolarità. Di solito uso DockerHub privato è OK per la maggior parte degli scenari.

Ad esempio:

  • Devi seguire i regolamenti che impongono di non utilizzare le piattaforme cloud.
  • Si utilizza Docker per l'elaborazione privata e la rete non ha accesso a Internet.

È positivo per il flusso di lavoro del contenitore:

Livello uno:

  • Tirare la base
  • Crea immagine-a
  • Inserisci immagine-a

Livello due:

  • Estrai immagine-a
  • Crea immagine-b
  • Premi image-b

Distribuzione:

  • Estrai immagine-b
  • Esegui image-b
risposta data 18.04.2018 - 19:32
fonte

Leggi altre domande sui tag