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édentes Révision précédente
Prochaine révision
Révision précédente
informatique:docker [2023/11/23 10:42]
benoit [Dockerfile]
informatique:docker [2023/12/07 14:20] (Version actuelle)
benoit
Ligne 8: Ligne 8:
   * [[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 26:
  
  
-===== 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: 2023/11/23 10:42 par benoit