Een beginnershandleiding voor een meertraps Docker-build

Een Beginnershandleiding Voor Een Meertraps Docker Build



Docker multi-stage build is het proces van het specificeren van een reeks builds in een Dockerfile. Met andere woorden, de Dockerfile bevat meerdere ' VAN ”-statements in één bestand, en het nieuwe from-statement gebruikt andere of eerdere basisinstructies. De multistage build stelt ontwikkelaars in staat om het ontwikkelingsproces op te splitsen in multistage. Bovendien wordt naar de basisinstructie verwezen als installatie- of instellingsinstructies, en andere instructies gebruiken afhankelijkheden van de basisinstructie om correct te functioneren.

Dit artikel biedt een leidraad voor een meertraps Docker-build.

Een beginnershandleiding voor een meertraps Docker-build

Bekijk de vermelde methoden om een ​​Docker-image te maken met eenvoudige Dockerfile en meertraps Dockerfile-builds:







Hoe bouw je een eenvoudige Docker-afbeelding?

Volg de gegeven instructies om een ​​eenvoudige Docker-afbeelding te maken met een eenvoudige Dockerfile.



Stap 1: Terminal openen
Van de ramen ' Beginnen ”-menu, open de Git-terminal:







Stap 2: maak een nieuwe map aan
Maak vervolgens een nieuwe projectdirectory met behulp van de gegeven opdracht:

$ mkdir Meertraps



Open daarna de projectdirectory met behulp van de ' CD ” commando:

$ CD Meertraps

Stap 3: maak een programmabestand aan
Maak en open een nieuw programmabestand om de ' golang ” programma. Zo hebben we bijvoorbeeld een “ hoofd.go ' het dossier:

$ nano hoofd.go

Plak de verstrekte code in de ' hoofd.go ' het dossier. Dit programma print de eenvoudige uitvoer ' Hallo! Welkom bij de LinuxHint-zelfstudie ” op de lokale host:

importeren (
'fmt'
'logboek'
'net/http'
)

func behandelaar ( met http . ReactieSchrijver , r * http. Verzoek indienen ) {
fmt . Fprintf ( in , 'Hallo! Welkom bij LinuxHint Tutorial' )
}
func voornaamst () {
http . HandgreepFunc ( '/' , behandelaar )
loggen . dodelijk ( http . ListenAndServe ( '0.0.0.0:8080' , nihil ))
}

Druk op ' CTRL+O ” om de wijzigingen op te slaan en “ CTRL+X ' verlaten.

Stap 4: maak DockerFile aan
Maak en open een nieuw Dockerfile in de Nano-teksteditor met behulp van de ' nano Dockerfile ” commando:

$ nano Dockerfile

Plak de volgende code in de ' Dockerfile ” die de container zal instrueren hoe het project moet worden geïmplementeerd:

VAN golang: 1.8
WERKDIR / Gaan / src / app
KOPIEER main.go .
RUN ga bouwen -O web Server .

CMD [ './web Server' ]

Druk op ' CTRL+O ' om het bestand op te slaan en ' CTRL+X ” om de editor te verlaten:

Stap 5: Docker-afbeelding maken
Maak met behulp van Dockerfile een nieuwe Docker-image via de ' dokwerker gebouwd ” commando. De ' -t ”-tag wordt gebruikt om de afbeeldingstag/naam te specificeren:

$ dokwerker gebouwd -t nieuwe-web-image .

Stap 6: voer Docker Image uit
Gebruik na het maken van de Docker-image de onderstaande opdracht om de Docker-image uit te voeren. De ' -p ” optie wordt gebruikt om het poortnummer op te geven waar de Docker-container het programma zal uitvoeren:

$ havenarbeider rennen -p 8080 : 8080 nieuwe-web-image

Navigeer daarna naar ' http://localhost:8080 ” om te controleren of de applicatie actief is of niet:

Uit de bovenstaande uitvoer kunt u zien dat we de applicatie met succes op localhost hebben geïmplementeerd:

Stap 7: controleer Docker-afbeeldingen
Voer ten slotte de opdracht ' docker-afbeeldingen ” opdracht om de aanvullende informatie over de nieuw gemaakte Docker-afbeelding te controleren:

$ docker-afbeeldingen nieuwe webafbeelding

Het kan worden opgemerkt dat de grootte van de Docker-afbeelding te groot is om het kleine project uit te voeren. In een dergelijk scenario kan de opbouw in meerdere fasen worden gebruikt om de grootte van de Docker-afbeelding te verkleinen:

Hoe maak je een Docker-image van Multistage Dockerfile?

Om een ​​meertraps Dockerfile te maken om de ontwikkelingsprocessen in fasen op te splitsen en om de afbeeldingsgrootte te verkleinen, bekijk je de gegeven stappen.

Stap 1: Open Dockerfile
Open eerst de Dockerfile in de ' Nano-teksteditor ” via het genoemde commando:

$ nano Dockerfile

Stap 2: Maak een meertraps Dockerfile
Plak de volgende code in Dockerfile. Het kan worden opgemerkt dat het Docker-bestand meer dan één ' VAN ” statement, wat betekent dat we een meertraps Dockerfile maken:

VAN golang: 1.8 ALS basis
WERKDIR / Gaan / src / app
KOPIEER main.go .
RUN ga bouwen -O web Server .

VAN alpine
WERKDIR / app
KOPIËREN --van =basis / Gaan / src / app / app /
CMD [ './web Server' ]

Druk op ' CTRL+O ” om wijzigingen op te slaan en “ CTRL+X ” om de editor te verlaten.

Stap 3: maak een Docker-afbeelding
Bouw nu de nieuwe Docker-image met behulp van een meertraps build. Voer hiervoor het gegeven commando uit:

$ dokwerker gebouwd -t nieuwe-web-image .

Controleer nogmaals de aanvullende informatie over de Docker-afbeelding via de ' docker-afbeeldingen ” commando:

$ docker-afbeeldingen nieuwe webafbeelding

De uitvoer laat zien dat we met succes een docker-bestand hebben gemaakt en dat de grootte van het Docker-bestand is teruggebracht tot slechts ' 12,9 MB ”:

Stap 4: voer Docker Image uit
Voer ten slotte de Docker-afbeelding uit om de container uit te voeren om te controleren of de Docker-afbeelding correct werkt of niet:

$ havenarbeider rennen -p 8080 : 8080 nieuwe-web-image

Open de lokale hostserver door naar de ' http://localhost:8080 ” in de browser:

De uitvoer laat zien dat we het programma met succes hebben geïmplementeerd via een meertrapsversie.

Conclusie

De Docker-build met meerdere fasen specificeert de reeks builds in fasen. Om een ​​meertraps Dockerfile aan te maken, geeft u meer dan één 'FROM'-instructie op en verwijst u naar de eerste ' VAN ”verklaring als de basisversie. Maak daarna een nieuwe Docker-afbeelding met behulp van de ' docker build -t . ” commando. De post heeft een complete gids uitgewerkt voor een meertraps Docker-build.