2015-01-06 13 views
7

Ho due host e la finestra mobile è installata in ciascuno.Come condividere le immagini tra più host di docker?

Come sappiamo, ogni finestra mobile memorizza le immagini nella directory locale /var/lib/docker.

Quindi, se desidero utilizzare un'immagine, ad esempio ubuntu, è necessario eseguire lo docker pull per il download da Internet in ciascun host.

Penso che sia lento.

È possibile memorizzare le immagini in un array di dischi condiviso? Quindi fare in modo che un host estragga l'immagine una sola volta, consentendo a ciascun host, con accesso al disco condiviso, di utilizzare direttamente l'immagine.

È possibile o buona pratica? Perché la finestra mobile non è progettata in questo modo?

Potrebbe essere necessario modificare il codice sorgente della finestra mobile per implementarlo.

risposta

0

Hai guardato questo articolo

Dockerizing un apt-Cacher-ng Servizio

http://docs.docker.com/examples/apt-cacher-ng/

estratto

Questo contenitore fa la seconda scaricare di qualsiasi pacchetto quasi istantanea.

Almeno un nodo sarà molto veloce e penso che sia opportuno dire al secondo nodo di utilizzare la cache del primo nodo.

Edit: è possibile eseguire il proprio registro, con un comando simile a

sudo docker run -p 5000:5000 registry

vedere

https://github.com/docker/docker-registry

+1

Penso che questa sia una cache apt, memorizzata nella cache dei file di 'apk'. Come se avessi molte immagini diverse, come ubuntu, debian, redhat, centos, wordpress node.js e così via? Così tante immagini, ho bisogno di tirare l'immagine per la prima volta su ogni host. – NingLee

+1

Grazie per la risposta. Ma penso che sia ancora uno spreco di spazio su disco. Ad esempio, ho 100 host e un registro docker, quindi ogni host e il registro docker devono avere una copia in ciascuno. Ci sono 101 immagini. Se l'immagine è su un array di dischi condivisi, è sufficiente una sola copia. – NingLee

0

Aggiornamento nella finestra mobile 2016/01/25 funzione specchio è deprecato

Pertanto questa risposta non è applicabile oggi, lasciare per riferimento

Old informazioni

Quello che vi serve è la modalità specchio del Registro di finestra mobile, vedere https://docs.docker.com/v1.6/articles/registry_mirror/

E 'supportato direttamente da docker-registry

Sicuramente si può utilizzare il servizio mirror pubblico localmente.

+0

Vedo il "registro docker", penso ci siano ancora due problemi: 1) Può evitare di scaricare immagini da internet, ma è comunque necessario scaricarlo dalla rete locale. 2) Ogni host che esegue il daemon docker, è necessario memorizzare una copia delle immagini. Se è possibile utilizzare array di dischi condivisi, è possibile scaricarli e utilizzarli ovunque e una copia di immagine sul disco condiviso è sufficiente. – NingLee

+0

potrebbe essere utilizzato come dichiarato, quindi si perde la maggior parte della potenza della finestra mobile. Quando si lavora per la finestra mobile di più, si preferirà utilizzare il registro docker. –

+0

anche la finestra mobile è la modalità client/server, è possibile eseguire un server con la cartella condivisa. –

0

Quello che stai cercando di fare non dovrebbe funzionare come spiegato da cpuguy83 a questo github/docker issue.

Infatti:

Il driver di archiviazione sottostante avrebbe bisogno di sincronizzare l'accesso.

Condivisione /var/lib/docker è lontano not enough and won't work!

Secondo il doc.docker.com/registry:

è necessario utilizzare il Registro di sistema se si vuole:

  • controllare saldamente in cui le immagini vengono memorizzate
  • possedere appieno la vostra immagini distribuzione gasdotto
  • integra strettamente lo storage e la distribuzione delle immagini nel flusso di lavoro di sviluppo interno

Quindi immagino che questa sia la (/ tua) migliore opzione per risolvere questo problema (ma I guess that you got that info - lo aggiungo qui per aggiornare i dettagli).

Buona fortuna!

Problemi correlati