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”?
- Hoe genereer ik een afbeelding vanuit een Docker-container?
- Hoe stel ik de auteur van een afbeelding in?
- Hoe stel ik het commit-bericht van de afbeelding in?
- Conclusie
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: nieuwsteKOPIEER 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
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
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
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-afbeeldingenUit 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
Gebruik na het stoppen van de container de “ docker rm
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
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”>
Stap 2: Inspecteer de afbeelding
Om het commit-bericht te controleren, inspecteert u de afbeelding via de “ docker inspecteer
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