


Comment utiliser docker exec pour exécuter les commandes dans un conteneur docker
Comment utiliser docker exec
dans les conteneurs Docker pour exécuter les commandes?
La commande docker exec
vous permet d'exécuter une commande dans un conteneur Docker en cours d'exécution. La syntaxe de base est:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
-
CONTAINER
: L'ID ou le nom du conteneur en cours d'exécution. Vous pouvez le trouver en utilisantdocker ps
. -
COMMAND
: La commande que vous souhaitez exécuter à l'intérieur du conteneur. -
ARG...
: Tous les arguments requis par la commande. -
OPTIONS
: Diverses options Modifient le comportement. Les options clés incluent:-
-d
: mode détaché; Exécute la commande en arrière-plan. -
-i
: garde stdin ouvert même s'il n'est pas attaché. Essentiel pour les commandes interactives. -
-t
: alloue un pseudo-tty connecté au stdin de la commande. Nécessaire pour les commandes interactives qui s'attendent à un terminal. -
-u USER
: Exécutez la commande en tant qu'utilisateur spécifique à l'intérieur du conteneur.
-
Exemple: Disons que vous avez un conteneur nommé "My_App" et vous souhaitez répertorier les fichiers dans le /app
Directory dans le conteneur. Vous utiliseriez:
docker exec -it my_app ls /app
Les options -i
et -t
sont cruciales ici pour une expérience interactive; Ils créent un pseudo-terminal, vous permettant de voir la sortie de ls
. Si vous les omis, la commande s'exécuterait, mais la sortie peut ne pas être affichée correctement.
Si vous souhaitez exécuter une commande en arrière-plan, utilisez l'option -d
:
docker exec -d my_app tail -f /var/log/app.log
Cela démarrerait tail -f
en arrière-plan, affichant en continu les entrées de journal. Vous auriez besoin d'utiliser docker logs my_app
pour afficher la sortie.
Puis-je utiliser docker exec
pour interagir avec le shell d'un conteneur en cours d'exécution?
Oui, absolument. docker exec
est un moyen pratique d'interagir avec le shell d'un conteneur en cours d'exécution. Pour ce faire, vous devez spécifier la commande shell comme la commande COMMAND
dans la commande docker exec
. Les shells les plus courants sont /bin/bash
, /bin/sh
, /bin/zsh
, etc. Le shell exact disponible dépend de l'image de base de votre conteneur.
Exemple: pour obtenir un shell bash dans le conteneur "My_App":
docker exec -it my_app bash
Cela ouvrira une nouvelle séance de shell interactive à l'intérieur du conteneur, vous permettant de naviguer sur le fichier, et d'ouvrir une nouvelle séance de shell avec le contenu, de vous permettre de naviguer sur le fichier, de faire une commande interactive à l'intérieur du conteneur, Environnement du conteneur comme si vous étiez directement à l'intérieur. N'oubliez pas de quitter le shell en utilisant exit
lorsque vous avez terminé. Si Bash n'est pas disponible, essayez à la place. Certains cas d'utilisation courants incluent: /bin/sh
- Commandes d'exécution à l'intérieur d'un conteneur: Il s'agit du cas d'utilisation le plus fondamental, vous permettant d'exécuter n'importe quelle commande dans le conteneur en cours d'exécution sans le redémarrer. Il.
- Accès interactif de la coque: Comme discuté ci-dessus, l'accès interactif de la coque interactive est un avantage clé pour le dépannage et l'administration.
docker exec
- Exécution des processus d'arrière-plan: Démarrage de processus à long terme tels que les outils de surveillance ou les daemons dans un conteneur. Bases de données exécutées à l'intérieur des conteneurs.
- Déploiement du code: Déployer le code modifie une application en cours d'exécution sans redémarrer le conteneur (si l'application est conçue pour cela).
- Effectuer des tâches de maintenance: Script de maintenance exécutée ou quelles sont les limites. Un conteneur en cours d'exécution? Bien que
- soit puissant, il a certaines limites:
- Les modifications ne sont pas persistantes: Toute modification apportée au système de fichiers dans le conteneur à l'aide de peut être perdue si le conteneur est redémarré à moins que ces modifications ne soient rédigées à des volumes persistants. et les privilèges du processus qui exécute la commande. Vous devrez peut-être utiliser l'option pour s'exécuter comme root si nécessaire, mais cela présente un risque de sécurité.
docker exec
État de conteneur:
fonctionne dans le contexte existant du conteneur en cours d'exécution. Si l'état du conteneur est corrompu ou si l'application se bloque, docker exec
peut ne pas être en mesure de résoudre le problème sous-jacent. Vous devrez peut-être redémarrer le conteneur.
- Potentiel pour les conflits: exécuter plusieurs commandes pour les commandes pourrait conduire à des conflits en fonction des commandes et des ressources impliquées.
docker exec
Il est convaincu que toutes - .
-u
En résumé, est un outil précieux pour gérer et interagir avec les conteneurs en cours d'exécution, mais il est important de comprendre ses capacités et ses limites pour l'utiliser efficacement et en toute sécurité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

DockerRisaplatFormForpackaging, Shipping, andrunningapplicationsInlightweight, isoléContainersthaShaTheTheHostoskernel, contrairement à VirtualMachines.2

Dockerforwindowsusesalinuxvmorwsl2toruncontainers a dit en passant

Pour afficher les journaux de conteneurs Docker, utilisez la commande dockerlogs et combinez les options et le nom ou l'ID du conteneur. Les opérations spécifiques sont les suivantes: 1. Utilisez d'abord Dockerps pour obtenir le nom ou l'ID du conteneur, puis exécutez dockerlogsmy-container pour afficher le journal; 2. Utilisez l'option -f pour suivre la sortie du journal en temps réel, telles que dockerlogs-fmy-container; 3. Afficher les 50 dernières lignes de journaux via --tail50, qui peuvent être utilisées en combinaison avec -f; 4. Ajoutez l'option -T pour afficher l'horodatage de chaque ligne de journaux pour faciliter le dépannage des problèmes liés au temps; 5. Utiliser - Since 10M pour afficher les journaux au cours des 10 dernières minutes, soutenant les unités S, M, H ou le temps de format RFC3339

La clé pour écrire un dockerfile est de comprendre chaque instruction et son mécanisme de mise en cache de couche. 1. Utiliser à partir de pour spécifier l'image de base et préfèrent les images légères et sûres telles que le nœud: 18-alpine; 2. Utilisez WorkDIR pour définir le répertoire de travail dans le conteneur sur / app; 3. Utilisez la copie pour copier le fichier, il est recommandé de copier Package.json étape par étape pour utiliser le cache; 4. Utilisez Run pour installer les dépendances et fusionner les commandes pour réduire les couches, telles que runapt-getUpdate && apt-getinstall-cycurl && rm-rf / var / lib / apt / lists / *; 5. Utilisez CMD pour définir la commande de démarrage par défaut

DockInSpect est la commande principale pour afficher les détails des conteneurs. 1. Utilisez DockerInSpect pour obtenir les informations complètes du conteneur, y compris l'état, le réseau, le montage, les variables d'environnement, etc.; 2. Utilisez le paramètre -F pour extraire des champs spécifiques, tels que l'adresse IP, l'état d'exécution, le nom du miroir, le volume de montage et les variables d'environnement; 3. Utilisez Dockerlogs et Docktop pour afficher les journaux et les processus des conteneurs pour aider au diagnostic; 4. Il est souvent utilisé pour dépanner le réseau, vérifier les montures, vérifier l'état de santé et les scripts automatisés. En combinaison avec Dockerps-A, vous pouvez trouver tous les conteneurs. Cette commande est l'outil de base pour les opérations de débogage approfondies et automatisées.

ByDefault, DockerContainersrunasroot, qui caneverifiedusingwhoamioridcommands.2.TorunacommandasrootinAwContainer, a usingockerrunwithofficialImagesthatDefaultToroot, orexplicitlyspecify-uroottoverrideanyne-rootersetings.3.

Utilisez Dockerrun pour exécuter les commandes dans un nouveau conteneur et utilisez DockEreXec pour exécuter des commandes dans un conteneur en cours d'exécution. Les méthodes spécifiques sont: 1. Utilisez Dockerrun pour démarrer un nouveau conteneur et exécuter des commandes, telles que dockerrun - rmubuntuls / tmp; 2. Utilisez DockeRexec pour exécuter des commandes dans un conteneur en cours d'exécution, telles que Dockerexecmy-Nginx-ServicePSAUX, et les opérations interactives doivent ajouter -it, telles que dockerexec-itmy-contrainer / bin / bash; 3. Écraser les commandes par défaut lors du démarrage du conteneur, tels que dockerrunginx: le derniernginx-t

En utilisant des images de base plus petites, une construction en plusieurs étapes et une superposition raisonnable sont les clés pour réduire la taille des images Docker. 1. La priorité est donnée à des images de base légères telles que Alpine, mince ou distro, ce qui peut considérablement réduire le volume; 2. Adopter la construction en plusieurs étapes pour séparer la dépendance de la construction de l'exécution, en évitant d'apporter le code source, les packages de dépendance et les outils de construction dans l'image finale; 3. Fusionner les instructions d'exécution et nettoyer le cache et les fichiers temporaires dans le même calque, comme utiliser apt-getUpdate et installer et nettoyer les commandes à exécuter dans une chaîne, et utiliser - no-stall-recuend ou apk - pas-cache pour réduire les packages redondants; 4. Configure.Dockingore Files,
