‫OK faisons des choses amusantes. Dans cette conférence, nous allons parler rapidement de la différence
‫entre les images et les conteneurs. Ensuite, nous allons directement jouer
‫avec un conteneur. Nous allons le démarrer,
‫nous allons l'arrêter, le supprimer et effectuer certaines tâches administratives communes. Ensuite, nous allons vérifier les journaux des conteneurs
‫et les processus en cours d'exécution dans notre conteneur.
‫Avant d’intervenir rapidement, il est bon de connaître la différence entre une image et un conteneur. Une image est constituée des fichiers
‫binaires, des bibliothèques et du code source qui composent votre application. Le conteneur est une instance en cours d'exécution
‫de cette image.
‫Maintenant, vous pouvez avoir plusieurs conteneurs basés sur la même image. Dans cette conférence, nous allons utiliser le
‫serveur Web Open Source Nginx. Nous allons donc commencer nos
‫conteneurs à partir de cette image Nginx. Nous obtenons toutes nos images des registres. Les registres ressemblent un peu
‫à ce que GitHub est au code source. Les registres d’images concernent les images de conteneur et celui par défaut de Docker
‫est Docker Hub, que vous pouvez consulter sur le
‫hub. docker. com.
‫Nous jouerons plus avec ça plus tard.
‫Mais pour l’instant, sachez que ces deux choses sont très différentes et que, dans la section suivante, nous
‫allons passer aux images.
‫Mais pour l'instant, concentrons-nous sur les conteneurs.
‫OK, nous allons maintenant créer un nouveau conteneur et utiliser certaines commandes Docker pour gérer ce conteneur.
‫conteneur docker
‫exécuter publier 80:80 nginx.
‫Ne vous inquiétez pas si vous ne savez pas ce que tout cela signifie. Nous allons parcourir tout cela dans une minute.
‫Je vais frapper entrer ...
‫Basculez sur mon navigateur et tapez localhost.
‫Nous y voilà.
‫Notre serveur Nginx est à l'écoute. Je peux appuyer sur l'actualisation plusieurs fois et vous verrez les entrées du
‫journal se passer dans notre ligne de commande ici.
‫Maintenant qu'est-ce qu'on vient de faire? En arrière-plan, le
‫moteur Docker recherchait en fait une image appelée nginx et extrayait la dernière
‫image de nginx dans Docker Hub. Ensuite, il a démarré comme un nouveau processus dans un nouveau conteneur que nous pouvons utiliser.
‫La partie publiée de la commande expose mon port local 80 sur ma machine locale et
‫envoie tout son trafic à l'exécutable exécuté dans ce conteneur sur le port 80.
‫Et comme Nginx est un serveur Web, le port 80 est utilisé par défaut et le trafic est simplement transféré automatiquement
‫via mon navigateur à mon hôte local et à ce conteneur.
‫Mais nous ne voulons pas toujours que cette chose soit exécutée au premier plan dans notre ligne de commande.
‫Alors frappons Control c et je vais appuyer sur la flèche vers le haut et je vais revenir un peu en arrière et taper en
‫détachement.
‫Détache maintenant dit à Docker de l'exécuter en arrière-plan.
‫Et nous récupérons l'identifiant de conteneur unique de notre conteneur.
‫Et chaque fois que vous exécutez un nouveau conteneur, vous obtenez un nouvel identifiant unique.
‫Donc, si nous revenons dans notre navigateur et cliquez sur Actualiser à quelques reprises, vous pouvez voir qu'il est toujours en cours d'exécution.
‫Faisons donc une commande pour lister nos conteneurs. docker container ls Et vous verrez
‫celui
‫qui fonctionne toujours ici.
‫Cela correspond à l'ID de conteneur de la commande que nous venons d'exécuter. Vous verrez le conteneur en cours d'exécution que nous
‫venons de démarrer.
‫Alors arrêtons ce conteneur très rapidement.
‫arrêt du conteneur docker. Puis l'identifiant du conteneur. Pour l'ID de conteneur, il me suffit
‫de saisir les quelques premiers chiffres, suffisamment pour qu'il soit unique, et je l'ai arrêté.
‫Maintenant, si je fais un conteneur docker ls, vous remarquerez que rien ne se présente.
‫Ainsi, la commande ls n'affiche que par défaut les conteneurs en cours d'exécution.
‫Si je fais un ls -a, j'en récupère deux. Maintenant, pourquoi est-ce que j'en ai deux?
‫À chaque exécution de la commande d'exécution du conteneur docker, nous avons lancé un nouveau conteneur à
‫partir de cette image Nginx. Vous remarquerez à droite ici qu'il y a ces noms aléatoires. Nous n'avons pas utilisé ceux-ci.
‫Comment avons-nous eu cela?
‫Ainsi, l'ID de conteneur est toujours créé pour nous.
‫Et le nom doit également être unique.
‫Et si nous ne le précisons pas, il sera créé pour nous. Nous pouvons toujours nommer nous-mêmes quelque chose,
‫mais si nous la laissons choisir elle-même, il est intéressant de noter que l'histoire de
‫Docker est qu'il existe depuis des années que ce nom est généré aléatoirement à partir d'une liste d'adjectifs
‫open source. et les noms de famille de pirates informatiques ou de scientifiques.
‫Et c'est assez drôle, parfois, vous y trouverez des noms vraiment particuliers.
‫Alors créons-en un nouveau. conteneur docker exécuter. Mettez dans
‫notre publication et notre détachement.
‫Mais cette fois, nous allons spécifier un nom. Je vais l'appeler l'hôte Web Nginx.
‫Et maintenant, si je fais mon conteneur docker ls -a, vous verrez trois conteneurs.
‫Celui que nous venons de commencer. Il porte le nom d’hébergeur Web, puis les deux que
‫nous avons commencés puis arrêtés.
‫Puisque nous n'exécutons plus cela au premier plan, nous ne pouvons pas voir les journaux.
‫Revenons donc à notre navigateur et je vais cliquer sur Actualiser à quelques reprises pour générer des journaux.
‫Puis retour à notre terminal et je ferai docker conteneur se connecte Webhost. Et il va cracher les derniers journaux dans l'hôte
‫Web.
‫Vous avez quelques options à utiliser avec la commande logs pour que celle-ci suive les journaux automatiquement
‫ou qu'elle puisse simplement capturer les derniers événements de journal afin que le fichier de journal entier ne soit
‫pas vidé sur votre écran. .
‫Nous pouvons également utiliser d'autres commandes de conteneur docker pour vérifier ce conteneur en cours d'exécution. Nous pouvons essayer docker
‫conteneur top. Vous pouvez voir l'aide là-bas.
‫Cela nous indique que nous devons spécifier le nom du conteneur webhost. Vous pouvez voir que ceci est le processus en cours d'exécution à
‫l'intérieur du conteneur.
‫Maintenant, pour Nginx, nous n’avons pas besoin de savoir tout cela, mais il est intéressant de
‫noter qu’avec
‫Nginx, il existe en fait un processus principal qui génère ensuite des processus de travail en fonction de la configuration.
‫Encore une fois, nous pouvons toujours taper docker container et --help pour obtenir une liste de toutes les commandes que nous
‫pourrions essayer sur ce conteneur.
‫Maintenant, nettoyons ce que nous venons de faire.
‫Faisons donc un conteneur docker.
‫ls -a, et cela va lister mes trois conteneurs.
‫Maintenant, je vais en fait enlever tous les trois en même temps.
‫Parfois, les sous-commandes de Docker peuvent en réalité prendre plusieurs valeurs.
‫Donc, dans ce cas, je peux créer un conteneur Docker et ensuite spécifier 63f 690 et ode.
‫oups 0de.
‫Donc j'ai une erreur. Qu'est-ce qui vient de se passer ici?
‫D'accord. Les deux premiers ont été supprimés en toute sécurité.
‫Le troisième me dit que je ne peux pas retirer un conteneur en cours d'exécution car c'est une mesure de sécurité.
‫Cela garantit que vous ne supprimez pas accidentellement le processus en cours d'exécution. Si vous faites un conteneur docker, vous
‫verrez que nous en avons toujours un en cours d'exécution.
‫Maintenant, je pourrais réellement faire un conteneur docker arrêter pour l’arrêter d’abord, puis le supprimer.
‫Mais je vais en fait faire un conteneur docker rm -f for force et 63f. Et c'est parti.
‫Maintenant, si je fais un conteneur docker ls -a, vous verrez que rien n’est là.
‫Alors maintenant, nous avons nettoyé nos dégâts.
‫D'ACCORD.
‫Ainsi, en quelques minutes à peine, nous avons pu utiliser une seule commande pour télécharger et exécuter un serveur
‫Web Nginx avec une configuration par défaut à l’écoute sur le port 80. Nous avons ensuite pu en créer plusieurs, jouer avec
‫les journaux, puis supprimer le des conteneurs pour nettoyer ce que nous avions fait.