2015-10-11 7 views
5

Cercavo fuori Docker e ho fatto la seguente:Un hub Docker richiede di caricare l'intera immagine ogni volta che apporto una modifica?

  1. Pulled un'immagine chiamata: docker/whalesay
  2. Costruito un'altra immagine con alcune piccole modifiche.
  3. Riportato in un nome diverso al mio repository pubblico (dovuto caricare approssimativamente la stessa dimensione che ho scaricato).
  4. Ho quindi creato un'altra immagine con questa immagine pubblica come punto di partenza.
  5. Aveva solo un singolo comando. Ma di nuovo ho dovuto caricare l'intera immagine indietro.

La mia domanda è, non si suppone che Docker carichi solo le modifiche? L'ho letto da qualche parte. Sembra che sto facendo un errore stupido, non posso credere che dobbiamo caricare l'intera immagine ogni volta dopo piccoli cambiamenti. Mi sto perdendo qualcosa?

Questa è la Dockerfile che sto usando per costruire l'immagine fishsay:

FROM docker/whalesay:latest 
RUN apt-get -y update && apt-get install -y fortunes 
CMD /usr/games/fortune -a | cowsay 

L'immagine whalesay era ~ 180 MB; quindi quando spingo non dovrei semplicemente caricare i livelli modificati?

+0

Come stai costruendo la tua altra immagine? Con un 'Dockerfile' che inizia con' FROM docker/whalesay'? – VonC

+0

Qual è l'uso di cmd per costruire l'immagine? – askb

+0

'docker build -t fishsay .' dalla directory che contiene il' Dockerfile'. –

risposta

1

Eventuali modifiche a un livello dell'immagine richiedono l'aggiornamento nel repository quando si chiama docker push. Questo potrebbe essere un piccolo e banale come includere un nuovo pacchetto (es: vi) nella tua immagine. Tuttavia, ciò provocherebbe la creazione di nuovi layer e la sostituzione dei layer esistenti, con la conseguente creazione di id di layer diversi da quelli già presenti nel registro. docker push carica tutti i nuovi livelli creati nel registro, escludendo l'immagine di base.

+1

Lo capisco; ma non sono gli strati successivi aggiunti come un'aggiunta piuttosto che essere uniti con i livelli precedenti e modificati in qualcos'altro, quindi dover caricare di nuovo tutto? –

0

Me anche affrontando lo stesso problema, che cosa sono venuto a è

https://github.com/docker/docker/issues/18866#issuecomment-192770785 https://github.com/docker/docker/issues/14018

Come accennato nel link sopra questa funzionalità è implementata in Docker Engine 1.10/Registry 2.3.

E dopo e-mail a finestra mobile sostegno che ho ottenuto la seguente risposta

Ciao,

Sfortunatamente, non abbiamo nessun scadenze per quando gli aggiornamenti al Docker Hub accadrà che noi può condividere pubblicamente. Ci scusiamo per qualsiasi problema causato da questo.

/Jeff

Problemi correlati