Fermer

mars 1, 2021

Docker Bootcamp – Terminologie et exemples de conteneurs


Bienvenue dans ma série de blogs Docker Bootcamp. La semaine dernière, j’ai couvert les antécédents de Docker et décrit l’installation de Docker . Dans cet article, je passerai en revue quelques termes courants utilisés pour parler de Docker et des conteneurs. Je vais également montrer quelques-unes des commandes de base nécessaires pour vous permettre d'utiliser Docker ainsi que quelques-uns des indicateurs facultatifs pour les commandes (il y en a d'autres que vous apprendrez plus tard). Je vais vous donner quelques exemples que vous pouvez essayer de vous faire une idée de l'utilisation des commandes par vous-même.

  • Compatibilité des applications – Docker ne peut exécuter que des applications qui sont nativement prises en charge par le système hôte.
  • Container – (prison AKA) – Contient tous les composants nécessaires pour exécuter une application de manière isolée. Limites de l'impact que le logiciel peut avoir sur le système hôte. Facilement démontable. Créé à partir d'une image. Exécute la même chose d'un environnement à un autre.
  • États du conteneur – Un conteneur peut être dans l'un des quatre états suivants: exécution, pause, sortie, redémarrage.
  • Conteneurisation – Utilisation d'un processus au niveau du système d'exploitation isolement. Faible surcharge car un système d'exploitation invité n'est pas requis.
  • Daemon – Un processus qui s'exécute en arrière-plan.
  • Dockerfile – Un script pour créer une image. Peut être distribué via un registre, un contrôle de code source ou un transfert manuel de fichiers.
  • Système hôte – Le système exécutant le démon Docker.
  • Image – Un fichier qui comprend tous les éléments nécessaires pour exécuter une application en tant que conteneur ie – code, fichiers de configuration, variables d'environnement, couches et bibliothèques. Peut être réutilisé pour créer plusieurs conteneurs. Peut être utilisé par différents systèmes d'exploitation et ordinateurs et fonctionne de la même manière dans tous les environnements. Ne change pas une fois construit et distribué. Peut être distribué via un registre, un contrôle de code source (probablement plus facile à utiliser le fichier docker dans ce cas) ou un transfert de fichier manuel.
  • Isolation – Séparation d'un processus de toutes les ressources sauf lorsque cela est explicitement autorisé.
  • Image Linux – Une image construite pour s'exécuter sur un hôte Linux (ou Windows utilisant WSL).
  • Orchestration – (AKA Container Orchestration) – Des outils pour automatiser la maintenance des conteneurs ie Kubernetes ou Swarm. Remplacez les conteneurs défectueux, redémarrez les conteneurs, mettez à l'échelle les conteneurs dans le cloud.
  • Registry – Une infrastructure pour héberger des référentiels et distribuer des images.
  • Repository – Un ensemble d'images nommé pour un utilisateur d'un registre.
  • State: Exited – Un conteneur nouvellement créé avec la commande create. Un conteneur en cours d'exécution qui est arrêté.
  • État: En pause – Un conteneur en cours d'exécution qui est en pause.
  • État: Redémarrage – Un conteneur en cours d'exécution qui est en cours de redémarrage.
  • État: Running – Un conteneur nouvellement créé avec la commande run. Un conteneur arrêté qui est démarré. Un conteneur suspendu qui est repris.
  • Tag – Un moyen d'identifier une image dans un référentiel ie – v1, v2, latest (un synonyme de v2), localconfig, webconfig. Permet aux utilisateurs d'extraire une version spécifique d'une image. Une image peut avoir plusieurs balises pour aider l'utilisateur à trouver l'image correcte.
  • Virtualisation – Utilisation de l'isolation de processus au niveau matériel (c.-à-d. Machine virtuelle). Frais généraux élevés car un système d'exploitation invité complet est requis.
  • Image Windows – Une image conçue pour fonctionner sur un hôte Windows.
  • WSL – Sous-système Windows pour Linux. Un noyau Linux complet fonctionnant à l'intérieur de Windows qui permet aux conteneurs Linux de s'exécuter sans émulation.
  • attach – Attache une entrée et une sortie locales à un conteneur en cours d'exécution
  • container prune – Supprime tous les conteneurs arrêtés
  • create – Créer un nouveau conteneur dans un état arrêté
  • exec – Exécuter une commande dans un conteneur en cours d'exécution
  • help – Liste des commandes docker disponibles
  • help – Liste de la syntaxe et utiliser les détails de la commande donnée
  • images – Afficher les images disponibles localement
  • info – Afficher les informations du docker à l'échelle du système
  • inspect – Afficher toutes les métadonnées sur une image ou un conteneur dans Format JSON
  • login – Se connecter à un registre
  • logs – Voir les logs d'un conteneur
  • logout – Se déconnecter d'un registre
  • port – List port mappages pour un conteneur
  • ps – Liste des conteneurs
  • pull – Télécharger une image à partir d'un registre
  • renommer – Renommer un conteneur
  • restart – Redémarrer un conteneur en cours d'exécution
  • rm – Supprimer un conteneur
  • rmi – Supprimer un image
  • run – Créer et démarrer un nouveau conteneur
  • search – Rechercher une image dans le registre
  • start – Démarrer un conteneur arrêté
  • stats – Afficher statistiques d'utilisation des ressources pour un conteneur
  • stop – Arrête un conteneur en cours d'exécution
  • top – Liste des processus en cours d'exécution à l'intérieur d'un conteneur

Vous pouvez trouver une liste complète des commandes et tous les indicateurs disponibles sur https://docs.docker.com/engine/reference/commandline/docker/ .

attach

docker attach [options] container

–no-stdin O Ne pas attacher stdin

create

docker create [options] image [command] [args…]
Sorties: ContainerID

–cidfile O Ecrivez l'ID de conteneur du conteneur nouvellement créé dans un nom de fichier connu
–interactive -i O Autoriser l'entrée standard dans le container
–name O Donnez au conteneur un nom convivial
–publish -p O Mapper le port du conteneur vers l'hôte
–Read-only O Créer un système de fichiers en lecture seule
–rm O Supprimer automatiquement le conteneur à sa sortie
–tty -t O Attribuer un terminal virtuel au conteneur
image R Le nom de l'image à exécuter.
commande O La commande à exécuter à l'intérieur de l'image
args O Les arguments de la commande
  • Nom du conteneur
    • Si le paramètre name n'est pas fourni, docker créera le conteneur avec un nom au format x_y (ie boring_pike).
    • Si le conteneur nommé existe déjà, vous obtiendrez un nom déjà utilisé.
  • ID du conteneur
    • Nombre de 1024 bits hexadécimal codé en 64 caractères
    • Souvent raccourci aux 12 premiers caractères
    • Peut être utilisé pour référencer un conteneur au lieu du nom
      • Y compris toutes les commandes qui prennent un nom de conteneur comme argument
    • Utile pour les scripts et l'automatisation
  • Interactif / ATS
    • Requis au moment de la création si vous souhaitez interagir avec le conteneur de quelque manière que ce soit, même si vous commencez à être détaché.

exec

docker exec [options] container command [args…]

–detach – d O Exécuter la commande en arrière-plan
–env -e O Définir les variables d'environnement
–interactive -i O Gardez stdin ouvert même s'il n'est pas connecté
–tty -t O Joindre un terminal
–user -u O Nom d'utilisateur de l'uid pour exécuter la commande sous
–workdir -w O Répertoire de travail dans le conteneur

login

docker login [options] [server]

–username -u R Nom d'utilisateur
–password -p R Password
–password-stdin O Lire le mot de passe de stdin
server O Nom du serveur du registre ry (default index.docker.io/v1)[19659091[/19659091]) Si vous ne fournissez pas d'indicateur de mot de passe, il le demandera de manière interactive

logs

docker logs [options] container

–follow -f O Suivre la sortie du journal
–timestamps -t O Afficher les horodatages
  • Anything le programme écrit sur stdout ou stderr sera enregistré dans le journal
  • Il n'y a pas de rotation ou de troncature automatique du journal

port

docker port container

ps

docker ps [options]

–all -a O Afficher tous les conteneurs
–filter -f O Filtrer la liste des résultats
–dernier -n O Afficher les derniers conteneurs créés (par défaut -1)
–dernier -l O Afficher le dernier conteneur créé
–no-trunc O Ne pas tronquer la sortie
–size -s O Afficher la taille totale du fichier
  • Par défaut, afficher uniquement les conteneurs en cours d'exécution
    • Utilisez l'indicateur -a pour afficher tous les conteneurs dans tous les états
  • Le filtre prend un paramètre au format clé = valeur
    • Effectue une recherche «comme valeur»
    • Clés possibles: nom, id, statut, ancêtre
      • Utilisez l'ancêtre comme clé pour rechercher un conteneur par image, image: balise, identifiant court ou identifiant complet
    • L'utilisation de no-trunc affichera l'ID complet du conteneur

pull

docker pull [options] [registryhost/][username/] name [:tag]

–all-tags -a O Téléchargez toutes les images taguées dans le référentiel nommé

rename

docker rename container newname

  • Le changement de nom ne change pas l'ID du conteneur

restart

docker restart [options] container

–time -t O Secondes à attendre avant de redémarrer (par défaut 10)

rm

docker rm [options] container [container…]

–force -f O Forcer le retrait d'un conteneur en cours d'exécution
–link -l O Supprimer le lien spécifié

rmi

] docker rmi [options] image [image…]

–force -f O Forcer la suppression de l'image
–no-prune O Ne pas supprimer les parents non marqués

run

docker run [options] image [command] [args…]

–detach -d O Exécuter le conteneur en mode détaché (pas d'entrée / sortie de console)
  • Voir les détails de la commande «create» pour les autres options disponibles

start

docker start [options] conteneur [container….]

–attach -a O Attach stdout
–interactive -i O Attach stdin

stats

docker stats récipient

stop

docker stop [options] container [container…]

–time -t O Secondes à attendre avant de s'arrêter (par défaut 10)

top

docker top container

Intéragir avec Docker

    • Afficher la liste des commandes disponibles
    • Afficher les détails d'une commande
    • Afficher les détails de l'environnement docker
    • Connectez-vous au registre docker
      • Connexion Docker -u
      • Entrez le mot de passe lorsque vous y êtes invité

Busybox Test

    • Rechercher une image dans le menu fixe
      • Boîte occupée de recherche Docker
        • Notez que l'image officielle fournie par docker est marquée comme [OK] dans la colonne officielle
    • Extraire une image du registre Docker
      • docker pull busybox: dernière
    • Créer un conteneur interactif
      • docker create -it –name bbtest busybox / bin / sh
    • Démarrer un conteneur
    • Exécuter une commande dans un conteneur en cours d’exécution
      • Docker exec bbtest date
      • Docker exec bbtest ps
      • Docker exec bbtest ls
    • Connectez un terminal à un conteneur en cours d'exécution
      • docker attach bbtest
      • Interagissez avec le conteneur en utilisant la ligne de commande Linux
        • Créez un fichier "touch /home/test.txt" (19659093). Utilisez "exit" pour quitter le shell et arrêter le conteneur
    • Créer un conteneur qui n'est pas interactif
      • Docker create –name bbtest2 busybox
      • Docker start bbtest2
        • Le conteneur démarre et s'arrête immédiatement
    • Créer un conteneur interactif, mais sans terminal
      • Docker create -i –name bbtest3 busybox / bin / sh
      • Docker start -a bbtest3
        • Le conteneur démarre et se connecte à la fenêtre de commande, mais le conteneur n'a pas de terminal virtuel défini
    • Créer un conteneur avec un système de fichiers en lecture seule
      • Docker create -it –read-only –name rotest busybox / bin / sh
      • Interagissez avec le conteneur à l'aide de la ligne de commande Linux
        • Créez un fichier "touch /home/test.txt"
    • Créer un conteneur qui exécute une commande et s'arrête
      • docker create –name datetest busybox / bin / date
    • Exécutez un conteneur qui exécute une commande et s'arrête
      • Test de données de démarrage Docker
        • N'affiche pas la sortie sur la console
      • Docker enregistre le test de données
      • Docker start -a datetest
        • Afficher la sortie sur la console
    • Lister tous les conteneurs
    • Supprimer tous les conteneurs arrêtés

Test Nginx

    • Extraire une image, créer et démarrer un conteneur détaché qui expose un port réseau
      • docker run -d -p 80:80 –name ngtest nginx
      • Ouvrez un navigateur et accédez à http: // localhost
    • Afficher les journaux de conteneurs
    • Afficher les mappages de ports
    • Afficher les processus en cours d'exécution
    • Afficher les métadonnées du conteneur
    • Afficher les détails d'utilisation du conteneur
    • Arrêter un conteneur en cours d'exécution
    • Supprimer un conteneur

Comprendre? Dans mon prochain article, je vais aborder le sujet du stockage persistant. Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire ci-dessous.




Source link