Ein Leitfaden für Anfänger zu einem mehrstufigen Docker-Build

Ein Leitfaden Fur Anfanger Zu Einem Mehrstufigen Docker Build



Docker Multi-Stage Build ist der Prozess der Angabe einer Reihe von Builds in einer Dockerfile. Mit anderen Worten, das Dockerfile enthält mehrere „ VON ”-Anweisungen in einer einzigen Datei, und die new from-Anweisung verwendet andere oder frühere Basisanweisungen. Der mehrstufige Build ermöglicht es Entwicklern, den Entwicklungsprozess in mehrere Stufen aufzuteilen. Darüber hinaus wird die Basisanweisung als Installations- oder Setup-Anweisung bezeichnet, und andere Anweisungen verwenden Abhängigkeiten der Basisanweisung, um richtig zu funktionieren.

Dieser Artikel stellt einen Leitfaden für einen mehrstufigen Docker-Build bereit.

Ein Leitfaden für Anfänger zu einem mehrstufigen Docker-Build

Um ein Docker-Image durch einfache Dockerfile- und mehrstufige Dockerfile-Builds zu erstellen, werfen Sie einen Blick auf die aufgelisteten Methoden:







Wie erstelle ich ein einfaches Docker-Image?

Um ein einfaches Docker-Image mit einer einfachen Docker-Datei zu erstellen, gehen Sie die angegebenen Anweisungen durch.



Schritt 1: Terminal öffnen
Aus dem Fenster „ Anfang ”-Menü öffnen Sie das Git-Terminal:







Schritt 2: Neues Verzeichnis erstellen
Erstellen Sie als Nächstes ein neues Projektverzeichnis mit dem angegebenen Befehl:

$ mkdir Mehrstufig



Öffnen Sie danach das Projektverzeichnis mit Hilfe des „ CD ' Befehl:

$ CD Mehrstufig

Schritt 3: Programmdatei erstellen
Erstellen und öffnen Sie eine neue Programmdatei, um die „ gehen ' Programm. Beispielsweise haben wir ein „ main.go ' Datei:

$ nano main.go

Fügen Sie den bereitgestellten Code in das „ main.go ' Datei. Dieses Programm druckt die einfache Ausgabe „ Hallo! Willkommen beim LinuxHint-Tutorial “ auf dem lokalen Host:

importieren (
'fmt'
'Protokoll'
'net/http'
)

Funk Handler ( mit http . ResponseWriter , r * http. Anfrage ) {
fmt . Fprintf ( in , 'Hallo! Willkommen zum LinuxHint-Tutorial' )
}
Funk hauptsächlich () {
http . HandleFunc ( '/' , Handler )
Protokoll . Tödlich ( http . ListenAndServe ( '0.0.0.0:8080' , Null ))
}

Drücken Sie ' STRG+O ” um die Änderungen zu speichern und “ STRG+X ' beenden.

Schritt 4: DockerFile erstellen
Erstellen und öffnen Sie eine neue Dockerdatei im Nano-Texteditor mit dem „ Nano-Dockerfile ' Befehl:

$ nano Dockerfile

Fügen Sie den folgenden Code in das „ Dockerfile “, die den Container anweist, wie das Projekt bereitgestellt werden soll:

VON golang: 1.8
ARBEITSVERZ / gehen / Quelle / App
KOPIEREN main.go .
LAUFEN, los bauen Webserver .

CMD [ './webserver' ]

Drücken Sie ' STRG+O ” um die Datei zu speichern und “ STRG+X ” um den Editor zu verlassen:

Schritt 5: Docker-Image erstellen
Erstellen Sie mit Hilfe von Dockerfile ein neues Docker-Image über das „ Docker-Build ' Befehl. Das ' -t ”-Tag wird verwendet, um den Bild-Tag/Namen anzugeben:

$ Docker-Build -t Neues-Web-Bild .

Schritt 6: Führen Sie das Docker-Image aus
Verwenden Sie nach dem Erstellen des Docker-Images den unten genannten Befehl, um das Docker-Image auszuführen. Das ' -p ” wird verwendet, um die Portnummer anzugeben, an der der Docker-Container das Programm ausführen wird:

$ Docker laufen -p 8080 : 8080 neues Webbild

Navigieren Sie danach zu „ http://localhost:8080 “, um zu überprüfen, ob die Anwendung ausgeführt wird oder nicht:

Aus der obigen Ausgabe können Sie ersehen, dass wir die Anwendung erfolgreich auf localhost bereitgestellt haben:

Schritt 7: Überprüfen Sie Docker-Images
Führen Sie zuletzt das „ Docker-Bilder “, um die zusätzlichen Informationen zum neu erstellten Docker-Image zu überprüfen:

$ Docker-Bilder Neues-Web-Image

Es kann beobachtet werden, dass die Größe des Docker-Images zu groß ist, um das kleine Projekt auszuführen. In einem solchen Szenario kann der mehrstufige Build verwendet werden, um die Docker-Image-Größe zu reduzieren:

Wie erstelle ich ein Docker-Image aus einer mehrstufigen Docker-Datei?

Um ein mehrstufiges Dockerfile zu erstellen, um die Entwicklungsprozesse in Stufen zu unterteilen und die Bildgröße zu reduzieren, werfen Sie einen Blick auf die bereitgestellten Schritte.

Schritt 1: Dockerfile öffnen
Öffnen Sie zunächst das Dockerfile im „ Nano-Texteditor “ durch den erwähnten Befehl:

$ nano Dockerfile

Schritt 2: Mehrstufiges Dockerfile erstellen
Fügen Sie den folgenden Code in Dockerfile ein. Es kann festgestellt werden, dass die Docker-Datei mehr als eine „ VON ”-Anweisung, was bedeutet, dass wir ein mehrstufiges Dockerfile erstellen:

VON golang: 1.8 AS-Basis
ARBEITSVERZ / gehen / Quelle / App
KOPIEREN main.go .
LAUFEN, los bauen Webserver .

VON alpin
ARBEITSVERZ / App
KOPIEREN --von =Basis / gehen / Quelle / App / App /
CMD [ './webserver' ]

Drücken Sie ' STRG+O ” um die Änderungen zu speichern und “ STRG+X ” um den Editor zu verlassen.

Schritt 3: Docker-Image erstellen
Erstellen Sie nun das neue Docker-Image mithilfe eines mehrstufigen Builds. Führen Sie dazu den angegebenen Befehl aus:

$ Docker-Build -t Neues-Web-Bild .

Überprüfen Sie erneut die zusätzlichen Informationen zum Docker-Image über das „ Docker-Bilder ' Befehl:

$ Docker-Bilder Neues-Web-Image

Die Ausgabe zeigt, dass wir erfolgreich eine Docker-Datei erstellt haben und die Größe der Docker-Datei auf nur „ 12,9 MB “:

Schritt 4: Führen Sie das Docker-Image aus
Führen Sie zuletzt das Docker-Image aus, um den Container auszuführen und zu überprüfen, ob das Docker-Image ordnungsgemäß funktioniert oder nicht:

$ Docker laufen -p 8080 : 8080 neues Webbild

Öffnen Sie den lokalen Hostserver, indem Sie zum „ http://localhost:8080 “ im Browser:

Die Ausgabe zeigt, dass wir das Programm erfolgreich über einen mehrstufigen Build bereitgestellt haben.

Fazit

Der mehrstufige Docker-Build spezifiziert die Reihe von Builds in Phasen. Um ein mehrstufiges Dockerfile zu erstellen, geben Sie mehr als eine „FROM“-Anweisung an und beziehen Sie sich auf die erste „ VON ”-Anweisung als Basis-Build. Erstellen Sie danach ein neues Docker-Image mit dem „ docker build -t . ' Befehl. Der Beitrag hat eine vollständige Anleitung für einen mehrstufigen Docker-Build ausgearbeitet.