Com generar una imatge Docker des d'un contenidor

Com Generar Una Imatge Docker Des D Un Contenidor



Les imatges de Docker són un dels components clau de la plataforma Docker i tenen un paper essencial en la creació, el desplegament i l'enviament d'aplicacions Docker dins del contenidor. Les imatges de Docker són plantilles o instantànies de contenidors que indiquen al contenidor com s'ha de contenir i desplegar l'aplicació. Hi ha milers d'imatges oficials disponibles al registre de Docker Hub per contenidoritzar l'aplicació. Tanmateix, els usuaris també poden crear aquestes imatges segons els seus requisits mitjançant el servei de composició Dockerfile i Docker.

De vegades, els usuaris fan canvis en la configuració del contenidor i de la configuració, però aquests canvis no es confirmen a la imatge de Docker. Per desar els canvis del contenidor a la imatge o per crear la còpia de seguretat del contenidor, els usuaris han de crear una imatge nova des del contenidor. Amb aquest propòsit específic, el ' docker commit Es pot utilitzar l'ordre.

Aquesta guia mostrarà:







Què és l'ordre 'docker commit'?

El ' docker commit L'ordre ” és una de les utilitats de línia d'ordres de Docker que s'utilitza per confirmar els canvis i la configuració del contenidor a la imatge de Docker. També s'utilitza per crear la còpia de seguretat dels contenidors quan els usuaris han de netejar el Docker eliminant els contenidors del Docker. Tanmateix, l'ordre docker commit només inclou el fitxer del contenidor i els canvis de configuració a la imatge de Docker, mai desarà les dades del volum que es munta amb el contenidor.



Sintaxi



docker commit < OPCIONS > < Nom del contenidor / ID del contenidor > < Imatge-Nom >

Opcions





Les opcions següents s'utilitzen amb el ' docker commit ” ordre per crear una imatge des d'un contenidor de diferents maneres:

< fort > Opció fort > td >
< td >< fort > Descripció fort > td >
tr >
< tr >
< td >< fort > -a, --autor fort > td >
< td > S'utilitza per especificar el nom de l'autor que està confirmant els canvis del contenidor en la imatge. td >
tr >
< tr >
< td >< fort > -c, --canviar fort > td >
< td > Afegiu les instruccions Dockerfile per confirmar els canvis en una imatge. td >
tr >
< tr >
< td >< fort > -m, --missatge fort > td >
< td > Afegeix el missatge o el comentari de confirmació mentre generant una imatge des del contenidor. td >
tr >
< tr >
< td >< fort > -p, --pausa fort > td >
< td > Mentre es compromet el contenidor, de manera predeterminada, el contenidor s'aturarà o s'aturarà. Per evitar que el contenidor s'aturi, el ' < fort > --pausa= fals fort > s'utilitza l'opció.

Com generar una imatge des d'un contenidor Docker?

Quan l'usuari fa canvis al contenidor Docker directament a través de l'intèrpret d'ordres del contenidor o de manera no interactiva, aquests canvis no modifiquen la instantània del contenidor. Per desar o cometre modificacions, l'usuari pot generar una nova imatge des del contenidor mitjançant el ' docker commit ' comandament. Això també és útil per crear la còpia de seguretat del contenidor.



Per crear una imatge mitjançant el contenidor Docker, seguiu la il·lustració següent.

Pas 1: feu Dockerfile

Primer, feu un fitxer nou anomenat ' Dockerfile ” i no afegiu cap extensió de fitxer amb el nom del fitxer. Després d'això, enganxeu les ordres següents al 'Dockerfile'

DES de nginx: última

COPIAR index.html / usr / Compartir / nginx / html / index.html

PUNT D'ENTRADA [ 'nginx' , '-g' , 'dimoni apagat;' ]

Aquí, el ' DE ' s'utilitza per definir la imatge base del contenidor, el ' CÒPIA L'ordre copia el fitxer del programa a la ruta especificada del contenidor i l'ordre ' PUNT D'ENTRADA ” estableix els executables per defecte del contenidor.

Pas 2: Feu un fitxer de programa

A continuació, creeu un altre fitxer ' index.html ” i afegiu el codi HTML següent al fitxer:

< html >

< cap >

< estil >

cos {

color de fons: rgb ( 9 , 4 , 4 ) ;

}

h1 {

color: rgb ( 221 , 219 , 226 ) ;

estil de lletra: cursiva;

}

estil >

cap >

< cos >

< h1 > Aquesta és la primera pàgina HTML h1 >

cos >

html >

Pas 3: creeu la instantània del contenidor

Ara, genereu la instantània del contenidor des del Dockerfile mitjançant l'ordre següent. Aquí, el ' -t ” s'utilitza per definir el nom de la instantània:

construcció docker -t demo-img.

Pas 4: executeu Snapshot per iniciar el contenidor

A continuació, inicieu el contenidor executant la imatge del contenidor. Per a això, utilitzeu el ' docker run ' comandament:

Docker Run -p 80 : 80 --nom demo-cont -d demostració-img

A l'ordre anterior, el ' -p 'opció estableix el port exposant del contenidor,' -nom ” especifica el nom del contenidor i el “ -d ” opció executa el contenidor en mode desconnectat:

Després d'executar el contenidor, navegueu fins a ' http://localhost:80 ” URL i comproveu si el programa en contenidors és accessible al port exposant o no:

La sortida anterior mostra que hem iniciat correctament el contenidor.

Pas 5: creeu un fitxer de programa nou

De vegades, és possible que els usuaris hagin d'afegir funcionalitats addicionals a l'aplicació en execució. Per a això, és possible que l'usuari hagi de fer canvis al fitxer del programa o afegir fitxers addicionals a l'aplicació.

Per a això, creem un altre fitxer anomenat ' índex1.html ” i enganxeu el codi següent al fitxer:

< html >

< cap >

< estil >

cos {

color de fons: rgb ( 106 , 103 , 103 ) ;

}

h1 {

color: rgb ( 221 , 219 , 226 ) ;

estil de lletra: cursiva;

}

estil >

cap >

< cos >

< h1 > Aquesta és la segona pàgina HTML h1 >

cos >

html >

Pas 6: copieu el nou fitxer de programa al contenidor

Per copiar el fitxer nou a la ruta del contenidor, utilitzeu el ' docker cp : ' comandament. Aquí, hem copiat el ' índex1.html ' fitxer al ' demo-cont ' camí especificat del contenidor:

docker cp index1.html demo-cont: / usr / Compartir / nginx / html / índex1.html

Pas 7: confirmar els canvis del contenidor a la imatge nova

Després de fer canvis en un contenidor, els usuaris han de confirmar els canvis a una nova imatge de Docker. Aquesta imatge es generarà mitjançant un contenidor Docker. Per a això, executeu el ' docker commit ' comandament:

docker commit demo-cont new-demo-img

Nota: Fer canvis al contenidor de Docker abans de generar la imatge mitjançant ' docker commit ” El comandament no és obligatori. Els usuaris poden utilitzar directament el 'docker commit' per generar la còpia de seguretat del contenidor mitjançant la creació de la imatge.

Pas 8: Confirmació

Per comprovar si la imatge es crea o no a través del contenidor, enumereu les imatges de Docker utilitzant el ' imatges de docker ' comandament:

imatges de docker

La sortida següent mostra que hem generat correctament el ' nova-demo-img ' de ' demo-cont 'contenidor:

Nota: Per enviar la imatge de Docker al registre del concentrador de Docker, l'usuari també pot etiquetar la imatge mitjançant el ' etiqueta docker ' comandament:

etiqueta docker < nom-imatge > < nom-repositori >/< nom-imatge > : < etiqueta / versió >

Pas 9: traieu el contenidor antic

Ara, traieu el contenidor més antic. Per a aquest propòsit, primer, atureu el contenidor Docker utilitzant el ' docker stop ' comandament:

docker stop demo-cont

Després d'aturar el contenidor, utilitzeu el ' docker rm ” ordre per eliminar-lo de Docker:

docker rm demo-cont

Pas 10: executeu un nou contenidor des de la nova imatge compromesa

Ara, inicieu la instància nova o el contenidor de Docker utilitzant la imatge recentment generada a través del ' Docker Run ' comandament:

Docker Run -p 80 : 80 --nom demo-cont -d nova-demo-img

Ara, navegueu a la ' localhost:80 ” i comproveu si l'aplicació HTML s'està executant de manera efectiva o no:

Per comprovar el fitxer recentment copiat que és ' índex1.html ”, utilitza el “ http://localhost/index1.html ” URL:

La sortida anterior mostra que els canvis compromesos s'han desat correctament al ' nova-demo-img ” Imatge Docker i hem executat efectivament el contenidor modificat.

Com definir l'autor d'una imatge?

El ' docker commit L'ordre ” també admet diferents opcions per afegir informació addicional juntament amb els canvis compromesos, com ara l'autor dels nous canvis, el missatge de confirmació, etc.

Per especificar l'autor de la imatge que està confirmant els nous canvis, seguiu els passos indicats.

Pas 1: Definiu l'autor de la imatge

Per especificar l'autor de la imatge que està fent els canvis, utilitzeu el ' -a ' o ' –autor 'opció juntament amb ' docker commit ' comandament:

docker commit -a rafia demo-cont new-demo-img

Pas 2: inspeccioneu la imatge

Per verificar si l'autor de la imatge està definit o no, inspeccioneu la imatge que s'acaba de generar utilitzant el ' docker inspect ' comandament:

docker inspect new-demo-img

La sortida mostra que hem establert de manera efectiva l'autor de la imatge:

Com establir un missatge de compromís d'imatge?

Per establir el missatge de confirmació juntament amb els canvis de confirmació, utilitzeu el ' -m ” opció. Per il·lustrar, seguiu les instruccions següents.

Pas 1: configureu el missatge de confirmació de la imatge

Per configurar el missatge juntament amb els canvis compromesos, utilitzeu el ' docker commit -m <“missatge”> ' comandament:

docker commit -a ràfia -m 'Aquesta imatge és generada per contenidor' demo-cont nou-demo-img

Pas 2: inspeccioneu la imatge

Per comprovar el missatge de confirmació, inspeccioneu la imatge a través del ' docker inspect ' comandament:

docker inspect new-demo-img

Sota la ' Comenta ”, l'usuari pot veure el missatge de confirmació tal com es mostra a continuació:

Es tracta de generar una imatge de Docker des d'un contenidor.

Conclusió

Per generar una imatge de Docker des d'un contenidor, primer, feu els canvis al contenidor de Docker. Després d'això, utilitzeu el ' docker commit ” comanda per generar la imatge des del contenidor. Ara, traieu el contenidor més antic i inicieu la nova instància mitjançant la imatge que s'acaba de generar. Els usuaris també poden establir el nom de l'autor de la imatge utilitzant el ' -a opció i envieu el missatge amb l'opció “ -m ” opció. Aquest bloc ha il·lustrat com generar imatges des d'un contenidor Docker.