Een Docker-image genereren vanuit een container

Een Docker Image Genereren Vanuit Een Container



Docker-images zijn een van de belangrijkste componenten van het Docker-platform en spelen een essentiële rol bij het bouwen, implementeren en verzenden van Docker-applicaties in de container. Docker-installatiekopieën zijn sjablonen of momentopnamen van containers die de container instructies geven over het containeriseren en implementeren van de applicatie. Er zijn duizenden officiële images beschikbaar in het Docker Hub-register om de applicatie in containers te plaatsen. Gebruikers kunnen deze afbeeldingen echter ook naar eigen wens maken met behulp van de Dockerfile- en Docker-opstelservice.

Soms brengen gebruikers wijzigingen aan in de container- en configuratie-instellingen, maar deze wijzigingen worden niet vastgelegd in de Docker-image. Om de containerwijzigingen in de image op te slaan of om de containerback-up te maken, moeten gebruikers een nieuwe image uit de container bouwen. Voor dat specifieke doel is de “ docker commit ' commando kan worden gebruikt.

Deze gids zal aantonen:







Wat is het commando “docker commit”?

De ' docker commit De opdracht is een van de opdrachtregelhulpprogramma's van Docker die wordt gebruikt om de containerwijzigingen en -instellingen in de Docker-image vast te leggen. Het wordt ook gebruikt om de containerback-up te maken wanneer gebruikers de Docker moeten opruimen door de Docker-containers te verwijderen. Het docker commit-commando omvat echter alleen het containerbestand en de configuratiewijzigingen in de Docker-image; het slaat nooit de gegevens op van het volume dat met de container is aangekoppeld.



Syntaxis



docker commit < OPTIES > < Containernaam / Container-ID > < Afbeeldingsnaam >

Opties





De volgende opties worden gebruikt met de “ docker commit 'opdracht om op verschillende manieren een afbeelding van een container te maken:

< sterk > Keuze sterk > td >
< td >< sterk > Beschrijving sterk > td >
tr >
< tr >
< td >< sterk > -A, --auteur sterk > td >
< td > Het wordt gebruikt om de naam op te geven van de auteur die de wijzigingen in de container doorvoert in De afbeelding. td >
tr >
< tr >
< td >< sterk > -C, --wijziging sterk > td >
< td > Voeg de Dockerfile-instructies toe om de wijzigingen door te voeren in een afbeelding. td >
tr >
< tr >
< td >< sterk > -m, --bericht sterk > td >
< td > Voeg het commit-bericht of de opmerking toe terwijl het genereren van een afbeelding uit de container. td >
tr >
< tr >
< td >< sterk > -p, --pauze sterk > td >
< td > Tijdens het vastleggen van de container wordt de container standaard gestopt of gepauzeerd. Om te voorkomen dat de container pauzeert, wordt de “ < sterk > --pauze= vals sterk > ”-optie wordt gebruikt.

Hoe genereer ik een afbeelding vanuit een Docker-container?

Wanneer de gebruiker rechtstreeks via de containershell of niet-interactief wijzigingen in de Docker-container aanbrengt, hebben deze wijzigingen geen invloed op de momentopname van de container. Om wijzigingen op te slaan of door te voeren, kan de gebruiker een nieuwe afbeelding uit de container genereren met behulp van de “ docker commit commando. Dit is ook handig voor het maken van de back-up van de container.



Om een ​​image te maken via de Docker-container, doorloopt u de volgende afbeelding.

Stap 1: Maak Dockerfile

Maak eerst een nieuw bestand met de naam “ Dockerbestand ” en voeg geen bestandsextensie toe aan de bestandsnaam. Plak daarna de volgende opdrachten in het 'Dockerfile'

VAN nginx: nieuwste

KOPIEER index.html / usr / deel / nginx / html / index.html

INGANGSPUNT [ 'nginx' , '-G' , 'daemon uit;' ]

Hier de ' VAN ”-opdracht wordt gebruikt om de containerbasisafbeelding te definiëren, de “ KOPIËREN 'opdracht kopieert het programmabestand naar het door de container opgegeven pad, en de' INGANGSPUNT 'opdracht stelt de standaard uitvoerbare bestanden van de container in.

Stap 2: Programmabestand maken

Maak vervolgens een ander bestand “ index.html ' en voeg de volgende HTML-code toe aan het bestand:

< html >

< hoofd >

< stijl >

lichaam {

achtergrondkleur: rgb ( 9 , 4 , 4 ) ;

}

h1 {

kleur: rgb ( 221 , 219 , 226 ) ;

lettertype: cursief;

}

stijl >

hoofd >

< lichaam >

< h1 > Dit is de eerste HTML-pagina h1 >

lichaam >

html >

Stap 3: Bouw de momentopname van de container

Genereer nu de momentopname van de container vanuit het Dockerfile met behulp van de onderstaande opdracht. Hier de ' -T De optie wordt gebruikt om de naam van de momentopname in te stellen:

havenarbeider gebouwd -T demo-img .

Stap 4: Voer Snapshot uit om Container te starten

Start vervolgens de container door de containerimage uit te voeren. Gebruik hiervoor de “ docker run ” commando:

havenarbeider uitgevoerd -P 80 : 80 --naam demo-vervolg -D demo-img

In het bovenstaande commando wordt de “ -P ” optie stelt de blootliggende poort van de container in, “ -naam ” specificeert de containernaam en de “ -D 'optie voert de container uit in de vrijstaande modus:

Na het uitvoeren van de container navigeert u naar de “ http://localhost:80 'URL en controleer of het gecontaineriseerde programma toegankelijk is op de blootliggende poort of niet:

Uit de bovenstaande uitvoer blijkt dat we de container met succes hebben gestart.

Stap 5: Maak een nieuw programmabestand

Soms kan het nodig zijn dat gebruikers extra functionaliteiten toevoegen aan de actieve applicatie. Voor dit doel moet de gebruiker mogelijk wijzigingen aanbrengen in het programmabestand of extra bestanden aan de applicatie toevoegen.

Laten we voor dit doel een ander bestand maken met de naam ' index1.html ' en plak de volgende code in het bestand:

< html >

< hoofd >

< stijl >

lichaam {

achtergrondkleur: rgb ( 106 , 103 , 103 ) ;

}

h1 {

kleur: rgb ( 221 , 219 , 226 ) ;

lettertype: cursief;

}

stijl >

hoofd >

< lichaam >

< h1 > Dit is de tweede HTML-pagina h1 >

lichaam >

html >

Stap 6: Kopieer het nieuwe programmabestand naar de container

Om het nieuwe bestand naar het containerpad te kopiëren, gebruikt u de “ docker cp : commando. Hier hebben we de “ index1.html '-bestand naar de' demo-vervolg Het opgegeven pad van de container:

havenarbeider cp index1.html demo-cont: / usr / deel / nginx / html / index1.html

Stap 7: Voer de containerwijzigingen door in een nieuwe afbeelding

Nadat gebruikers wijzigingen in een container hebben aangebracht, moeten ze de wijzigingen doorvoeren in een nieuwe Docker-installatiekopie. Deze afbeelding wordt gegenereerd via een Docker-container. Voer hiervoor de “ docker commit ” commando:

docker commit demo-cont nieuwe-demo-img

Opmerking: Wijzigingen aanbrengen in de Docker-container voordat u de afbeelding genereert via “ docker commit Het commando is niet verplicht. Gebruikers kunnen de “docker commit” direct gebruiken om de back-up van de container te genereren door de image te maken.

Stap 8: Bevestiging

Om te controleren of de afbeelding al dan niet via de container is gemaakt, vermeldt u Docker-afbeeldingen met behulp van de ' docker-afbeeldingen ” commando:

docker-afbeeldingen

Uit de onderstaande uitvoer blijkt dat we met succes de “ nieuwe-demo-img ' van ' demo-vervolg ” container:

Opmerking: Om de Docker-image naar het Docker-hub-register te pushen, kan de gebruiker de image ook taggen met behulp van de “ docker-tag ” commando:

docker-tag < afbeeldingsnaam > < repositorynaam >>< afbeeldingsnaam > : < label / versie >

Stap 9: Verwijder de oude container

Verwijder nu de oudere container. Stop hiervoor eerst de Docker-container met behulp van de “ docker stop ” commando:

docker stop demo-vervolg

Gebruik na het stoppen van de container de “ docker rm 'opdracht om het uit Docker te verwijderen:

havenarbeider rm demo-vervolg

Stap 10: Voer een nieuwe container uit vanaf een nieuwe vastgelegde image

Start nu de nieuwe instantie of Docker-container met behulp van de nieuw gegenereerde afbeelding via de “ havenarbeider uitgevoerd ” commando:

havenarbeider uitgevoerd -P 80 : 80 --naam demo-vervolg -D nieuwe-demo-img

Navigeer nu naar de “ lokalehost:80 'poort en controleer of de HTML-applicatie effectief werkt of niet:

Om het nieuw gekopieerde bestand te controleren dat “ index1.html ”, maak gebruik van de “ http://localhost/index1.html ”URL:

De bovenstaande uitvoer laat zien dat de vastgelegde wijzigingen met succes zijn opgeslagen in de “ nieuwe-demo-img ' Docker-image en we hebben de aangepaste container effectief uitgevoerd.

Hoe stel ik de auteur van een afbeelding in?

De ' docker commit De opdracht ondersteunt ook verschillende opties om aanvullende informatie toe te voegen samen met vastgelegde wijzigingen, zoals de auteur van de nieuwe wijzigingen, een commit-bericht, enzovoort.

Om de auteur van de afbeelding die de nieuwe wijzigingen doorvoert te specificeren, doorloopt u de gegeven stappen.

Stap 1: Stel de auteur van de afbeelding in

Om de auteur van de afbeelding te specificeren die de wijzigingen aanbrengt, gebruikt u de “ -A ' of ' -auteur ' optie samen met ' docker commit ” commando:

docker commit -A rafia demo-cont nieuwe-demo-img

Stap 2: Inspecteer de afbeelding

Om te verifiëren of de auteur van de afbeelding al dan niet is ingesteld, inspecteert u de nieuw gegenereerde afbeelding met behulp van de “ docker inspecteer ” commando:

docker inspecteer nieuwe-demo-img

Uit de uitvoer blijkt dat we de auteur van de afbeelding effectief hebben ingesteld:

Hoe stel ik een commitbericht voor een afbeelding in?

Om het commit-bericht samen met de commit-wijzigingen in te stellen, gebruik je de “ -M ' keuze. Volg ter illustratie de onderstaande instructies.

Stap 1: Stel het commit-bericht van de afbeelding in

Om de boodschap samen met toegewijde wijzigingen te plaatsen, gebruikt u de “ docker commit -m <“bericht”> ” commando:

docker commit -A raffia -M 'Deze afbeelding is gegenereerd door een container' demo-cont nieuwe-demo-img

Stap 2: Inspecteer de afbeelding

Om het commit-bericht te controleren, inspecteert u de afbeelding via de “ docker inspecteer ” commando:

docker inspecteer nieuwe-demo-img

Onder de ' Opmerking ”-toets, kan de gebruiker het commit-bericht zien zoals hieronder weergegeven:

Dat gaat allemaal over het genereren van een Docker-image uit een container.

Conclusie

Om een ​​Docker-installatiekopie uit een container te genereren, brengt u eerst de wijzigingen aan in de Docker-container. Gebruik daarna de “ docker commit ”-opdracht om de afbeelding uit de container te genereren. Verwijder nu de oudere container en start het nieuwe exemplaar via de nieuw gegenereerde afbeelding. Gebruikers kunnen ook de auteursnaam van de afbeelding instellen met behulp van de “ -A ' optie en voer het bericht door met behulp van de ' -M ' keuze. In deze blog wordt geïllustreerd hoe u afbeeldingen kunt genereren vanuit een Docker-container.