images - official docker repository




Come condividere la mia Docker-Image senza usare Docker-Hub? (2)

Le immagini Docker sono memorizzate come livelli del filesystem. Ogni comando nel Dockerfile crea un livello. È inoltre possibile creare livelli utilizzando il docker commit dalla riga di comando dopo aver apportato alcune modifiche (tramite la docker run probabilmente).

Questi livelli sono memorizzati di default in /var/lib/docker . Sebbene sia possibile (teoricamente) selezionare i file da lì e installarli in un server docker diverso, è probabilmente una cattiva idea giocare con la rappresentazione interna utilizzata da Docker.

Quando si preme l'immagine, questi livelli vengono inviati al registro (il registro hub docker, per impostazione predefinita ... a meno che non si tagga l'immagine con un altro prefisso del registro) e memorizzati lì. Quando si preme, l'id del livello viene utilizzato per verificare se si dispone già del layer in locale o è necessario scaricarlo. È possibile utilizzare la docker history per controllare quali layer (altre immagini) sono utilizzati (e, in una certa misura, quale comando ha creato il layer).

Per quanto riguarda le opzioni per condividere un'immagine senza premere sul registro hub docker, le opzioni migliori sono:

  • docker save un'immagine o una docker export un container. Questo produrrà un file tar docker save 'dockerizeit/agent' > dk.agent.latest.tar standard output, quindi ti piacerebbe fare qualcosa come docker save 'dockerizeit/agent' > dk.agent.latest.tar . Quindi è possibile utilizzare il docker load docker import o l' docker import in un host diverso.

  • Ospita il tuo registro privato. - Non aggiornato, vedere i commenti Vedere l' immagine del registro docker . Abbiamo creato un registro backed s3 che può essere avviato e fermato secondo le necessità (tutto lo stato è conservato nel bucket s3 di tua scelta), che è banale da configurare. Questo è anche un modo interessante di guardare cosa succede quando si preme su un registro

  • Usa un altro registro come quay.io (non l'ho provato personalmente), anche se probabilmente ci si quay.io anche a ciò che riguarda l'hub della docker.

Mi chiedo dove le immagini di Docker siano esattamente archiviate nella mia macchina host locale. Posso condividere la mia Docker-Image senza usare Docker-Hub o Dockerfile ma la 'vera' immagine Dockerfile ? E cosa sta succedendo esattamente quando spingo la mia Docker-Image in Docker-Hub?






docker-registry