Learning Docker, Partie 5: Commandes

La partie d'aujourd'hui de la série Docker, que nous publions, est dédiée aux équipes Docker. La documentation Docker contient une description détaillée d'un grand nombre de commandes, mais quelqu'un qui commence tout juste à travailler avec cette plate-forme peut s'y perdre, alors voici prÚs de deux douzaines des commandes les plus importantes pour travailler avec Docker. Poursuivant la tradition établie, nous comparerons les équipes avec une dispersion de baies.

→ Partie 1: les bases
→ Partie 2: termes et concepts
→ Partie 3: Fichiers Dockerfile
→ Partie 4: rĂ©duire la taille des images et accĂ©lĂ©rer leur assemblage
→ Partie 5: Ă©quipes
→ Partie 6: travailler avec des donnĂ©es


Revue


Rappelons que les images Docker sont créées Ă  partir de fichiers Dockerfile qui dĂ©crivent tout ce qui est nĂ©cessaire pour crĂ©er des images. De plus, n'oublions pas que le conteneur est une image Docker invoquĂ©e Ă  la vie. Pour utiliser efficacement les commandes Docker, vous devez tout d'abord savoir - Ă  quoi vous avez affaire - avec l'image ou avec le conteneur. Si vous pensez aux images et aux conteneurs, vous pouvez voir qu'une image Docker peut exister ou non. La mĂȘme chose peut ĂȘtre dite pour les conteneurs Docker. Un conteneur Docker existant peut en outre ĂȘtre soit dans un Ă©tat opĂ©rationnel, soit dans un Ă©tat inactif.

Une fois que vous avez déterminé exactement avec quoi vous devez travailler, vous pouvez trouver la bonne équipe.

Présentation de la commande Docker


Voici quelques informations que les personnes qui souhaitent travailler avec Docker doivent savoir:

  • Les commandes de l'interface de ligne de commande Docker utilisĂ©es pour contrĂŽler quelque chose commencent par le mot-clĂ© docker suivi d'un espace, puis il y a une indication de ce Ă  quoi une commande particuliĂšre sera dirigĂ©e, puis d'un autre espace, puis la commande elle-mĂȘme suit. Par exemple, voici comment une telle commande est construite: docker container stop .
  • Si la commande est dirigĂ©e vers une image ou un conteneur spĂ©cifique, le nom ou l'identifiant d'une telle image ou d'un tel conteneur y est utilisĂ©.

Par exemple, la commande docker container run my_app est une commande permettant de créer et d'exécuter un conteneur nommé my_app . Dans les exemples ci-dessous, nous appellerons my_container , images my_image , tags my_tag , etc.

Tout d'abord, nous considĂ©rerons l'Ă©quipe elle-mĂȘme, puis les drapeaux qui peuvent ĂȘtre utilisĂ©s avec elle, si de tels drapeaux existent. Si le drapeau a deux tirets devant, alors c'est sa forme complĂšte, un drapeau avec un tiret est une version abrĂ©gĂ©e d'un certain drapeau. Ils agissent de la mĂȘme maniĂšre. Par exemple, -p est une forme abrĂ©gĂ©e du drapeau --port .

Le but de cet article est de vous donner un aperçu des commandes Docker. Vous pouvez donc, si vous en avez une idĂ©e gĂ©nĂ©rale et connaĂźtre les fonctionnalitĂ©s de la plateforme disponibles grĂące Ă  ces commandes, trouver, si nĂ©cessaire, des informations dĂ©taillĂ©es Ă  leur sujet. Les Ă©quipes en question sont testĂ©es sur le systĂšme d'exploitation de la famille Linux en utilisant la version 18.09.1 ​​du moteur Docker et la version 1.39 de l'API.

Remarque sur les commandes prises en charge par Docker CLI 1.13


L'interface de ligne de commande Docker version 1.13 fournit des commandes mises Ă  jour et regroupĂ©es logiquement. Dans le mĂȘme temps, les anciennes Ă©quipes fonctionnent toujours, mais il est plus facile d'en utiliser de nouvelles, en particulier pour les dĂ©butants. C'est, par exemple, que dans la version 1.12 une commande du formulaire docker create , et dans la version 1.13 la commande docker container create est devenue disponible. Des informations sur la mise en correspondance d'anciennes et de nouvelles Ă©quipes sont disponibles ici

Nous examinons d'abord les commandes de gestion des conteneurs, puis nous discutons de la gestion des images.

Commandes de gestion des conteneurs


Le schéma de commande général pour la gestion des conteneurs est le suivant:

 docker container my_command 

Voici les commandes qui peuvent ĂȘtre remplacĂ©es lĂ  oĂč nous avons utilisĂ© my_command :

  • create - crĂ©e un conteneur Ă  partir d'une image.
  • start - dĂ©marre un conteneur existant.
  • run - crĂ©ez un conteneur et lancez-le.
  • ls - liste des conteneurs en cours d'exĂ©cution.
  • inspect - afficher des informations dĂ©taillĂ©es sur le conteneur.
  • logs - journal de sortie.
  • stop - arrĂȘte le conteneur en cours d'exĂ©cution en envoyant le signal SIGTERM au processus de conteneur principal et, aprĂšs un certain temps, SIGKILL .
  • kill - arrĂȘte le conteneur en cours d'exĂ©cution et envoie le signal SIGKILL au processus de conteneur principal.
  • rm - supprime un conteneur arrĂȘtĂ©.

Commandes de gestion des images


Pour la gestion des images, des commandes ressemblant à ceci sont utilisées:

 docker image my_command 

Voici quelques-unes des équipes de ce groupe:

  • build - construire l'image.
  • push - envoyer l'image au registre distant.
  • ls - liste d'images.
  • history - affiche des informations sur les couches d'image.
  • inspect - affiche des informations dĂ©taillĂ©es sur l'image, y compris des informations sur les calques.
  • rm - supprime l'image.

Différentes équipes


  • docker version - docker version informations de docker version pour le client et le serveur Docker.
  • docker login - EntrĂ©e de registre Docker.
  • docker system prune - Supprimez les conteneurs, rĂ©seaux et images inutilisĂ©s auxquels aucun nom et balise n'ont Ă©tĂ© attribuĂ©s.

Examinez maintenant ces commandes plus en détail.

Conteneurs


▍ DĂ©but de l'existence du conteneur


Au stade initial de l'utilisation des conteneurs, les commandes de create , de start et d' run sont utilisées. Ils sont utilisés, respectivement, pour créer un conteneur, pour le lancer, et pour le créer et le lancer.

Voici la commande pour créer un conteneur à partir d'une image:

 docker container create my_repo/my_image:my_tag 

Dans les exemples suivants, la construction my_repo/my_image:my_tag sera raccourcie en my_image .
La commande create accepte de nombreux indicateurs . Par exemple, il peut ĂȘtre Ă©crit sous la forme suivante:

 docker container create -a STDIN my_image 

Le drapeau -a est une forme courte du drapeau --attach . Ce drapeau vous permet de connecter le conteneur Ă  STDIN , STDOUT ou STDERR .

Une fois le conteneur créé, il peut ĂȘtre lancĂ© avec la commande suivante:

 docker container start my_container 

Veuillez noter que vous pouvez faire référence au conteneur dans la commande en utilisant son ID ou son nom.

Jetez maintenant un Ɠil Ă  la commande qui vous permet de crĂ©er et d'exĂ©cuter le conteneur:

 docker container run my_image 

Cette commande est également capable d'accepter de nombreux arguments de ligne de commande. Considérez certains d'entre eux avec un exemple d'une telle construction:

 docker container run -i -t -p 1000:8000 --rm my_image 

L'indicateur -i est l'abrĂ©viation de --interactive . GrĂące Ă  cet indicateur, le flux STDIN reste ouvert mĂȘme si le conteneur n'est pas connectĂ© Ă  STDIN .

L'indicateur -t est l'abréviation de --tty . Grùce à cet indicateur, un pseudo-terminal est mis en surbrillance qui connecte le terminal utilisé aux flux STDIN et STDOUT du conteneur.

Pour pouvoir interagir avec le conteneur via le terminal, vous devez utiliser les indicateurs -i et -t ensemble.

L'indicateur -p est l'abréviation de --port . Un port est une interface à travers laquelle un conteneur interagit avec le monde extérieur. Design 1000:8000 redirige le port Docker 8000 vers le port 1000 ordinateur sur lequel le conteneur s'exécute. Si une certaine application s'exécute dans le conteneur qui peut sortir quelque chose vers le navigateur, alors pour y accéder, dans notre cas, vous pouvez aller dans le navigateur à localhost:1000 .

L'indicateur --rm supprime automatiquement le conteneur aprĂšs son achĂšvement.

Regardons quelques autres exemples de la commande run :

 docker container run -it my_image my_command 

Dans une telle conception, la commande sh peut ĂȘtre utilisĂ©e, ce qui crĂ©era une session de terminal dans un conteneur avec lequel vous pourrez interagir via votre terminal. Lorsque vous travaillez avec des images basĂ©es sur Alpine, il est prĂ©fĂ©rable de se concentrer sur l'utilisation de sh plutĂŽt que bash , car dans ces images, par dĂ©faut, le bash pas installĂ©. Pour quitter la session interactive, utilisez la exit .

Notez qu'ici nous avons combiné les drapeaux -i et -t dans -it .

Voici un autre exemple de travail avec la commande run :

 docker container run -d my_image 

L'indicateur -d est l'abréviation de --detach . Cette commande démarre le conteneur en arriÚre-plan. Cela vous permet d'utiliser le terminal à partir duquel le conteneur est lancé pour exécuter d'autres commandes pendant l'exécution du conteneur.

▍Confirmation de l'Ă©tat du conteneur


Si vous avez des conteneurs Docker en cours d'exécution et que vous voulez savoir ce que sont ces conteneurs, vous devrez les répertorier. Vous pouvez le faire avec la commande suivante:

 docker container ls 

Cette commande affiche une liste des conteneurs en cours d'exécution et fournit à cette liste des informations utiles à leur sujet. Voici un autre exemple de cette commande:

 docker container ls -a -s 

Le commutateur -a de cette commande est l'abrĂ©viation de --all . À l'aide de cette clĂ©, vous pouvez afficher des informations sur tous les conteneurs, et pas seulement sur ceux en cours d'exĂ©cution.

Le -s est un raccourci pour --size . Il vous permet d'afficher les dimensions des conteneurs.

Voici une commande qui affiche des informations détaillées sur le conteneur:

 docker container inspect my_container 

Voici la commande qui affiche les journaux du conteneur:

 docker container logs my_container 

▍ ArrĂȘt du conteneur


Parfois, un conteneur qui fonctionne doit ĂȘtre arrĂȘtĂ©. Pour ce faire, utilisez la commande suivante:

 docker container stop my_container 

Il vous permet d'arrĂȘter l'exĂ©cution des conteneurs, leur permettant de s'arrĂȘter correctement. Le conteneur a, par dĂ©faut, 10 secondes pour s'Ă©teindre.

Si le conteneur doit ĂȘtre arrĂȘtĂ© rapidement sans se soucier de la bonne exĂ©cution de son travail, vous pouvez utiliser la commande suivante:

 docker container kill my_container 

La commande kill , si vous comparez le conteneur de travail avec le tĂ©lĂ©viseur allumĂ©, ressemble Ă  Ă©teindre le tĂ©lĂ©viseur en le dĂ©connectant de l'Ă©lectricitĂ©. Par consĂ©quent, dans la plupart des situations, il est recommandĂ© d'utiliser la commande stop pour arrĂȘter les conteneurs.

Voici une commande qui vous permet d'arrĂȘter rapidement tous les conteneurs en cours d'exĂ©cution:

 docker container kill $(docker ps -q) 

Pour supprimer un conteneur arrĂȘtĂ©, vous pouvez utiliser la commande suivante:

 docker container rm my_container 

Voici une commande qui vous permet de supprimer tous les conteneurs qui n'ont pas été exécutés au moment de l'appel de cette commande:

 docker container rm $(docker ps -a -q) 

Pour résumer cette section. Tout d'abord, un conteneur est créé, puis il est lancé, ou ces deux étapes sont combinées à l'aide d'une commande du formulaire docker run my_container . AprÚs cela, l'application conteneurisée est lancée.

Ensuite, le conteneur est arrĂȘtĂ© avec la docker stop my_container . Pour supprimer le conteneur, utilisez la docker rm my_container .

Parlons maintenant des commandes utilisĂ©es pour travailler avec les images, avec les modĂšles mĂȘmes Ă  partir desquels les conteneurs sont créés.

Les images


▍CrĂ©ation d'images


Voici une commande qui vous permet de collecter des images Docker:

 docker image build -t my_repo/my_image:my_tag . 

Dans ce cas, une image est créée avec le nom my_image ; lors de son assemblage, le fichier Dockerfile situé sur le chemin ou l'URL spécifié est utilisé.

L'indicateur -t est l'abréviation de --tag . Il indique à Docker que l'image à créer doit recevoir la balise fournie dans la commande. Dans ce cas, c'est my_tag .

Le point Ă  la fin de la commande indique que l'image doit ĂȘtre collectĂ©e Ă  l'aide du fichier Dockerfile situĂ© dans le rĂ©pertoire de travail actuel.

Une fois l'image assemblĂ©e, elle peut ĂȘtre envoyĂ©e au registre distant. GrĂące Ă  cela, d'autres personnes pourront l'utiliser, il pourra ĂȘtre tĂ©lĂ©chargĂ© et exĂ©cutĂ© sur un autre ordinateur. Supposons que vous souhaitiez utiliser le Docker Hub . Si oui, vous devrez y crĂ©er un compte. L'utilisation de cette ressource est gratuite.

AprĂšs vous ĂȘtre inscrit au Docker Hub, vous devez vous connecter. Et bien que la commande utilisĂ©e pour cela ne s'applique pas directement aux commandes destinĂ©es Ă  travailler avec des images, il sera utile de la considĂ©rer ici. Il s'agit de la commande suivante:

 docker login 

Il vous permet de vous connecter Ă  votre compte Docker Hub. Pour vous connecter, vous devrez saisir un nom d'utilisateur et un mot de passe.

AprĂšs vous ĂȘtre connectĂ©, vous pouvez envoyer des images au registre. C'est fait comme ceci:

 docker image push my_repo/my_image:my_tag 

Maintenant que vous disposez de plusieurs types d'images, vous pouvez les explorer à l'aide de commandes spéciales.

▍ Recherche d'images


Voici la commande qui affiche une liste d'images, y compris, y compris des informations sur leur taille:

 docker image ls 

La commande suivante vous permet d'afficher des informations sur les images intermédiaires qui composent l'image, en particulier des données sur leurs tailles et comment elles ont été créées:

 docker image history my_image 

Voici la commande qui affiche des informations détaillées sur l'image, y compris des données sur les couches qui composent l'image:

 docker image inspect my_image 

Si vous crĂ©ez autant d'images, il peut arriver que certaines d'entre elles doivent ĂȘtre supprimĂ©es.

▍Effacer les images


Voici la commande qui vous permet de supprimer l'image spécifiée:

 docker image rm my_image 

Si l'image est stockée dans un référentiel distant, elle n'en sera pas supprimée.

Voici une commande qui vous permet de supprimer toutes les images locales:

 docker image rm $(docker images -a -q) 

Utilisez cette commande avec prudence, mais il convient de noter que lorsqu'elle est utilisée, les images stockées dans le référentiel distant ne seront pas supprimées. C'est l'un des avantages du stockage d'images dans des référentiels.

Nous avons examiné les commandes de base utilisées pour gérer les conteneurs et les images. Parlons maintenant de quelques autres équipes.

Différentes équipes


Voici la commande qui affiche les informations de version pour le client et le serveur Docker:

 docker version 

Cette commande, déjà connue de vous, est utilisée pour entrer dans le registre Docker:

 docker login 

Cette commande vous permet de supprimer les conteneurs, réseaux et images inutilisés auxquels aucun nom et balise ne sont attribués :

 docker system prune 

Voici un exemple de son utilisation:

 docker system prune -a --volumes 

Le commutateur -a est un raccourci pour --all , vous permet de supprimer les images inutilisées, et pas seulement celles auxquelles aucun nom et balise ne sont attribués.

Le --volumes permet de supprimer les volumes inutilisés.

Résumé


Dans cet article, nous avons couvert les commandes Docker utiles. Si vous commencez tout juste Ă  travailler avec Docker, vous devez faire attention aux trois commandes les plus importantes suivantes:

Créez et exécutez un conteneur:

 docker container run my_image 

Construire l'image:

 docker image build -t my_repo/my_image:my_tag . 

Téléchargement de l'image dans un référentiel distant:

 docker image push my_repo/my_image:my_tag 

Pour voir l'aide sur les commandes Docker, vous pouvez exécuter la commande Docker dans le terminal. Vous trouverez ici de l'aide sur l'interface de ligne de commande Docker.

La prochaine fois, nous parlerons de l'utilisation des données dans Docker.

Chers lecteurs! Si vous travaillez avec Docker, vous disposez probablement de votre propre liste de commandes couramment utilisées. Si oui, veuillez partager cette liste.

Source: https://habr.com/ru/post/fr440660/


All Articles