Outils pour utilisateurs

Outils du site


sysadmin:docker:start

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
sysadmin:docker:start [2020/11/28 13:32] yoannsysadmin:docker:start [2021/07/28 12:06] (Version actuelle) 92.154.112.189
Ligne 53: Ligne 53:
 <code bash> <code bash>
 docker version docker version
 +
 +# afficher les paramètres de configuration de docker
 +docker info
 </code> </code>
  
 Créer des images et instancier des conteneurs Créer des images et instancier des conteneurs
  
-On ne peut pas utiliser directement l'image iso d'une cd avec docker. docker n'est pas une vm. Les images sont des images de système de fichiers +On ne peut pas utiliser directement l'image iso d'un cd avec docker. docker n'est pas une vm. Les images sont des systèmes de fichiers intégrant toutes les dépendances nécessaires à l’exécution correcte de la commande ou du programme. Le container utilise l'image pour créer son environnement d'exécution, il  dispose d'un ensemble de propriétés supplémentaires qui peuvent être listée via la commande: 
 + 
 +<code bash> 
 +docker container inspect container_name 
 +</code> 
  
 avoir une image mise a dispo par docker (registry) avoir une image mise a dispo par docker (registry)
Ligne 64: Ligne 72:
 </code> </code>
  
-Un conteneur est une instance d'une image. 
  
 ===== Gestion des images docker ===== ===== Gestion des images docker =====
Ligne 146: Ligne 153:
 Un conteneur ne peut se lancer que s'**il a une commande à exécuter**. Une fois la commande exécutée, le conteneur s' arrête. Un conteneur ne peut se lancer que s'**il a une commande à exécuter**. Une fois la commande exécutée, le conteneur s' arrête.
 </note> </note>
 +
  
 ==== Exécuter un conteneur ==== ==== Exécuter un conteneur ====
  
-Dans sa forme la plus épurée, la commande **docker container run** permet de lancer l'exécution d'un conteneur:+Dans sa forme la plus épurée, la commande **docker container run** permet de lancer l'exécution d'une commande dans un nouveau conteneur:
  
 <code bash> <code bash>
Ligne 156: Ligne 164:
  
 Si l'image n'est pas présente localement, Docker essaye de la télécharger puis crée le conteneur et lance l’exécution de la commande. Si l'image n'est pas présente localement, Docker essaye de la télécharger puis crée le conteneur et lance l’exécution de la commande.
 +
 +La commande run possède de nombreux arguments. Une présentation plus détaillé dans le wiki.
  
 ==== Lister les conteneurs ==== ==== Lister les conteneurs ====
Ligne 175: Ligne 185:
   * Un ID pour le conteneur,   * Un ID pour le conteneur,
   * L'image utilisée,   * L'image utilisée,
-  * La commande executée,+  * La commande exécutée,
   * La date de création,   * La date de création,
   * L'état du conteneur,   * L'état du conteneur,
Ligne 196: Ligne 206:
 <code bash> <code bash>
 docker container restart label_conteneur docker container restart label_conteneur
 +</code>
 +
 +==== Lister les processus d'un conteneur ====
 +
 +Pour visualiser l'ensemble des processus s'exécutant au sein du conteneur:
 +<code bash>
 +docker container top container_name
 </code> </code>
  
Ligne 228: Ligne 245:
 docker container logs --follow label_conteneur docker container logs --follow label_conteneur
 </code> </code>
- 
- 
-une instance (container est créée) 
- 
  
  
 ==== Supprimer un conteneur ==== ==== Supprimer un conteneur ====
- 
  
 <code bash> <code bash>
-docker rm busybox +docker container rm label_container 
 </code> </code>
  
-ou busybox est le container ID. 
 conteneur enveloppe, environnement pour exécuter un programme. conteneur enveloppe, environnement pour exécuter un programme.
  
Ligne 279: Ligne 290:
 sudo docker build -tag toto/monimage sudo docker build -tag toto/monimage
  
-===== relations de dépendance =====+===== Relations de dépendance =====
  
 Variables d'environnement pour passer plein d'infos dans le containers. On les définies lors de l'instanciation du container avec docker run et l'option %%-e%% ou %%--env%% Variables d'environnement pour passer plein d'infos dans le containers. On les définies lors de l'instanciation du container avec docker run et l'option %%-e%% ou %%--env%%
Ligne 291: Ligne 302:
  
 créer un script qui tient compte créer un script qui tient compte
 +
 +===== logs =====
 +
 +Chaque conteneur possède ses propres journaux. Il est possible de préciser le format des journaux, la taille maximale de ceux-ci, les paramètres de rotation etc.
 +
 +Pour déterminer quel mode de journalisation est définit sur un conteneur:
 +<code bash>
 +docker inspect --format '{{.HostConfig.LogConfig.Type}}' container_name
 +</code>
 +
 +La commande **docker info** retourne quel mode de journalisation est actif par défaut.
 +
 +
 +Quelques exemples pour spécifier le comportement des logs sur un conteneur:
 +
 +<code bash>
 +# désactiver la journalisation
 +docker run -it --log-driver none alpine ash
 +
 +# logs dans un fichier au format json
 +docker run -it --log-driver json-file --log-opt max-size=2m,max-file=5 alpine ash
 +</code>
 +
 +De nombreuses options existent, la documentation officielle indique comment paramétrer la méthode de journalisation pour docker ou pour un conteneur [[ https://docs.docker.com/config/containers/logging/configure/ ]]
 +
 +==== Supprimer les logs ====
 +
 +Les fichiers journaux sont stockés par docker dans un dossier dédié au conteneur. La commande %%docker container list%% affiche le début de l'ID de chaque conteneur. Cet ID est utilisé comme nom de dossier dans **/var/lib/docker/containers/**
 +
 +<code bash>
 +# Recherche et affiche les fichiers de logs associés aux conteneurs
 +sudo find /var/lib/docker/containers/ -type f -iname \*.log -exec ls -lh {} \;
 +</code>
 +
  
 ===== Références ===== ===== Références =====
sysadmin/docker/start.1606570355.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)