GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So teilen Sie Docker-Images mit anderen

Sie haben ein Docker-Image erstellt, das Sie mit einem Kollegen teilen möchten? So können Sie ein Image verteilen, ohne dass der Empfänger docker build ausführen muss selbst.

Teilen eines vorgefertigten Images anstelle eines Dockerfile können Sie sicher sein, dass Ihr Kollege genau dieselbe Software verwendet. Das erneute Ausführen des Builds könnte zu einer geringfügig anderen Umgebung führen. Je nach Situation haben Sie zwei Möglichkeiten, Ihr Bild zu verteilen.

Verwenden Sie eine Docker-Registrierung

Der einfachste Weg, ein Docker-Image freizugeben, besteht darin, es in eine Docker-Registrierung hochzuladen. Diese Funktionalität ist vollständig in die Docker-CLI integriert. Bei dieser Methode müssen Sie keine manuellen Dateiübertragungen vornehmen.

Die Standardregistrierung ist Docker Hub. Auf diese Weise können Sie Bilder öffentlich teilen und erhalten auch ein privates Repository. Erstellen Sie ein Konto auf Docker Hub und führen Sie dann docker login aus in Ihrem Endgerät. Geben Sie Ihre Kontodaten an, um die Docker-CLI mit Ihrem Konto zu verbinden.

Erstellen Sie als Nächstes Ihr Image wie gewohnt mit docker build . Fügen Sie ein Tag hinzu, das mit Ihrem Docker Hub-Benutzernamen beginnt:

docker build -t my-account/my-image:latest .

Verwenden Sie dann den docker push Befehl, um das markierte Image an Docker Hub hochzuladen:

docker push my-account/my-image:latest

Jetzt ist Ihr Image sicher im Docker Hub gespeichert. Andere Benutzer können es mit docker pull herunterziehen oder docker run Befehle. Sie haben Ihr Bild geteilt!

Für den realen Einsatz ist Docker Hub möglicherweise nicht ausreichend. Wenn Sie Teil eines Entwicklungsteams sind, möchten Sie wahrscheinlich Images auf Ihrem eigenen Server statt in der öffentlichen Hub-Registrierung aufbewahren. Sie können stattdessen einen selbst gehosteten Registrierungsserver erstellen, um privaten Speicher zu erhalten, der vollständig mit docker push kompatibel ist und docker pull Befehle. Auf diese Weise können Sie Bilder ganz einfach mit jedem teilen, der auf Ihre private Registrierung zugreifen kann.

Bilder exportieren

Wenn die Verwendung einer Registrierung keine Option ist, können Sie Docker-Image-Archive stattdessen manuell exportieren. Diese Funktionalität ist auch in die Docker-CLI integriert. Erstellen Sie Ihr Image und verwenden Sie dann docker save Befehl, um ein tar zu erhalten Archiv seines Inhalts:

docker save my-image:latest > my-image.tar

Der Export kann einige Augenblicke dauern. Docker enthält alles, was zum Neuerstellen des Images erforderlich ist – das sind alle Ebenen in Ihrem Dockerfile , sowie die von Ihrem Basisimage geerbten Ebenen. Das Archiv enthält auch Informationen zu Tags, die dem Bild zugeordnet sind.

Als Ausgabe dient ein einfaches tar Datei, können Sie sie jetzt frei verteilen, wie Sie möchten. Archive können ziemlich groß sein, daher ist es normalerweise am besten, sie auf einen Dateiserver oder einen Cloud-Speicheranbieter hochzuladen.

Um ein exportiertes Bild zu verwenden, führen Sie docker load aus Befehl. Dies akzeptiert einen tar Archiv erstellt von docker save als Eingangsstrom. Docker lädt den Inhalt des Archivs und fügt ihn Ihrer Liste lokaler Images hinzu.

docker load < my-image.tar

Sie sehen nun das neu importierte Bild in Ihren docker images Ausgang. Sie sind bereit, einen neuen Container mit docker run zu starten .

Das Exportieren und Importieren von Images fügt einige zusätzliche Schritte gegenüber der Verwendung einer Docker-Registrierung hinzu. Sie müssen die Datei manuell zwischen den Clients übertragen. Daher ist dieser Ansatz für den häufigen Gebrauch weniger geeignet, obwohl er auch seine Vorteile hat.

Konvertieren von Bildern in ein tar Archiv kann für die Langzeitspeicherung nützlich sein. Wenn Ihnen der Speicherplatz auf Ihrem Registrierungsserver ausgeht, archivieren Sie alte Bilder und laden Sie deren tars hoch Die Sicherung des Dateispeichers könnte eine kostengünstige Möglichkeit sein, etwas Kapazität zurückzugewinnen. Sie können das Bild immer noch wiederherstellen, falls dies in Zukunft erforderlich sein sollte.

Was ist mit „Docker-Export“?

Docker hat einen weiteren exportbezogenen Befehl, docker export . Dies sollte nicht mit docker save verwechselt werden . Wobei save funktioniert mit Bildern, export verwaltet tatsächlich einzelne Container .

docker export erzeugt ein tar Archiv des Dateisystems eines Containers. Dies kann verwendet werden, um ein Replikat des Containers auf einem anderen Computer wiederherzustellen. Wenn Sie den Inhalt des Archivs untersuchen, werden Sie feststellen, dass es sich nur um ein normales Linux-Root-Dateisystem mit Verzeichnissen wie /bin handelt , /etc und /usr .

docker export my-container > my-container.tar

docker export ist nützlich, wenn Sie einen Snapshot eines Containers für eine spätere Wiederherstellung erstellen möchten. Containerarchive werden jedoch nicht so importiert, wie Sie es zunächst erwarten würden. Da ein Container eine aktive, laufende Umgebung darstellt, können Sie ihn nicht direkt „importieren“. Stattdessen erstellt der Import eines Containerarchivs ein neues Bild.

docker import my-container.tar my-image:latest

In diesem Beispiel übernimmt Docker das Dateisystem in my-container.tar und automatisch ein neues Bild namens my-image:latest erstellen . Dieser hat dasselbe Dateisystem, aber nicht dasselbe Basis-Image oder dieselbe Docker-Konfiguration wie der ursprüngliche Container, den Sie exportiert haben.

VERBINDUNG: Erste Schritte mit der neuen Docker-Containerregistrierung von Github

Zusammenfassung

Docker macht es einfach, Anwendungs-Images und Entwicklungsumgebungen mit Ihren Mitarbeitern zu teilen. Normalerweise ist es am besten, Bilder in ein zentrales Repository zu verschieben, aus dem alle anderen abrufen können. In einigen Szenarien kann es sinnvoller sein, ein Bild in ein Archiv zu exportieren, das Sie manuell verteilen.

Mit Docker können Sie auch das Dateisystem eines Containers exportieren, um es später in einem Image wiederherzustellen. Seien Sie vorsichtig, wenn Sie dies verwenden, da es sich nicht um eine exakte Rekonstruktion handelt und nicht alle Dateisystemdaten enthalten sind. Alle Volumes, die in den ursprünglichen Container eingebunden sind, werden nicht in das Dateisystemarchiv aufgenommen, daher sollten Sie Schritte unternehmen, um diese separat zu sichern.


Docker
  1. So verschieben Sie Docker-Images zwischen Hosts

  2. So installieren Sie Jenkins mit Docker

  3. So ändern Sie Docker-Images

  4. So übertragen Sie Änderungen an einem Docker-Image

  5. Wie verwende ich lokale Docker-Images mit Minikube?

So aktualisieren Sie Docker-Images auf die neueste Version

Halten Sie Ihre Docker-Images mit Docker Image Prune überschaubar

So verwenden Sie Docker Commit zum Ändern von Container-Images

So erstellen Sie ein benutzerdefiniertes Docker-Image mit Dockerfile

Teilen von Docker-Images auf Docker Hub

So listen / suchen / ziehen Sie Docker-Images unter Linux