Outils pour utilisateurs

Outils du site


informatique:docker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
informatique:docker [2023/11/23 09:42] – [Dockerfile] benoitinformatique:docker [2026/01/15 05:45] (Version actuelle) – benoit
Ligne 6: Ligne 6:
   * [[informatique:docker:netdocker|Les réseaux sous Docker]]   * [[informatique:docker:netdocker|Les réseaux sous Docker]]
   * [[informatique:docker:userdocker|Les utilisateurs sous Docker]]   * [[informatique:docker:userdocker|Les utilisateurs sous Docker]]
 +  * [[informatique:docker:dockercompose|Docker Compose pour créer une description du déploiement]]
   * [[informatique:docker:commitdocker|Créer des images à la volée sous Docker (Commit)]]   * [[informatique:docker:commitdocker|Créer des images à la volée sous Docker (Commit)]]
   * [[informatique:docker:dockerfile|Créer des images à partir du Dockerfile]]   * [[informatique:docker:dockerfile|Créer des images à partir du Dockerfile]]
 +  * [[informatique:docker:registrydocker|Les registry sous Docker]]
 +  * [[informatique:docker:confclientdocker|Configuration du client Docker]]
  
  
Ligne 24: Ligne 27:
  
  
-===== Création d'image sous Docker ===== 
  
-==== Docker commit ==== 
  
-Permet de créer des images à partir d'un conteneur. Il est recommandé de l'utiliser que dans des cas spécifiques. 
-Par exemple dans les cas suivants :  
-  * Snapshot ponctuel du conteneur 
-  * Faire un fix rapide dans le conteneur mais non durable 
-  * Tester et debugguer 
- 
-Pour des modifications plus durable, il vaut mieux s'appuyer sur un Dockerfile. 
- 
-Pour commencer démarrer un conteneur **debian** qui lance la commande ''sleep infinity'' : 
-  docker run -d --name c1 debian sleep infinity 
- 
-On peut se connecter au conteneur, y apporter les modifications que l'on souhaite et le quitter, par exemple : 
-  docker exec -ti c1 bash 
-  echo "toto" > /var/lib/toto.txt 
-  ... 
-  exit 
- 
-On peut donc créer une image de l'état du conteneur ainsi :  
-  docker commit c1 myimage-c1:v1.0 
- 
-Avec la commande... 
-  docker image ls 
- 
-...On peut voir  
-  REPOSITORY   TAG       IMAGE ID       CREATED          SIZE 
-  myimage-c1   v1.0      0b486f336e68   6 minutes ago    117MB 
-  debian       latest    0ce03c8a15ec   42 minutes ago   117MB 
- 
-On peut de nouveau créer un nouveau conteneur à partir de cette image ainsi : 
-  docker run -d --name c2 myimage-c1:v1.0 
- 
-En listant les processus Docker en fonctionnement... 
-  docker ps 
- 
-...On constate que les 2 conteneurs sont en fonctionnement avec la commande ''sleep infinity'' : 
-  CONTAINER ID   IMAGE             COMMAND            CREATED              STATUS              PORTS     NAMES 
-  a9b8064f9bcb   myimage-c1:v1.0   "sleep infinity"   About a minute ago   Up About a minute             c2 
-  1600fa08b0a1   debian            "sleep infinity"   12 minutes ago       Up 12 minutes                 c1 
- 
-:!: Pourtant le conteneur c2 n'a pas été lancé avec la commande ''sleep infinity''. Ceci montre que la création de l'image prend en compte les processus actifs. Ces mêmes processus seront actif lorsqu'un conteneur est créé à partir de l'image "commitée". 
- 
-On peut ajouter d'autres options pour créer l'image, comme un commentaire et ajouter l'auteur de l'image :  
-  docker commit --message "mes commentaires" --author "Benoit" c1 myimage-c1:v1.1 
- 
-On peut retrouver ces informations ainsi dans l'image :  
-  docker inspect -f "{{.Author}} {{.Comment}}" myimage-c1:v1.1 
- 
-On peut lister l'historique des commit d'une image ainsi : 
-  docker history myimage-c1:v1.1 
-   
-Exemple de résultat :  
-  IMAGE          CREATED             CREATED BY                                      SIZE      COMMENT 
-  a1b6eff85cc8   8 minutes ago       sleep infinity                                  76B       mes commentaires 
-  0ce03c8a15ec   About an hour ago   /bin/sh -c #(nop)  CMD ["bash"]                 0B 
-  <missing>      About an hour ago   /bin/sh -c #(nop) ADD file:39d17d28c5de0bd62…   117MB 
- 
-On peut ajouter des modifications/instructions à lancer pour notre image. Par exemple on ajoute un variable d'environnement ''MYVAR=Benoit'' :  
-  docker commit --change "ENV MYVAR=Benoit" c1 myimage-c1:v1.2 
- 
-Lorsque l'on créé un conteneur à partir de cette nouvelle image on constate que la variable est bien active :  
-  docker run -d --name c3 myimage-c1:v1.2 
-  docker exec c3 env 
- 
-Résultat :  
-  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
-  HOSTNAME=1f8770a8bb5b 
-  MYVAR=Benoit 
-  HOME=/root 
  
  
informatique/docker.1700732534.txt.gz · Dernière modification : de benoit