Lors de l'utilisation récente de Docker, de nombreuses personnes ont rencontré un problème : les commandes Docker sont introuvables dans le conteneur. Cette question peut provoquer une certaine confusion et confusion, c'est pourquoi nous allons aujourd'hui examiner de plus près les causes et les solutions à ce problème.
Docker est une technologie de conteneurisation très puissante qui peut regrouper des applications dans un conteneur portable complet pouvant fonctionner sur n'importe quel système. Docker est généralement utilisé en exécutant le démon Docker, qui gère les conteneurs et les images Docker. Dans le contexte de Docker, il existe deux manières d'utiliser les commandes Docker : en utilisant les commandes Docker sur la machine hôte ou en utilisant les commandes Docker dans un conteneur.
En général, si vous utilisez les commandes Docker sur la machine hôte, vous pouvez utiliser les mêmes commandes dans le conteneur. En effet, à l'intérieur du conteneur, le démon Docker est déjà en cours d'exécution et il expose certaines API qui permettent aux commandes à l'intérieur du conteneur de communiquer avec le démon Docker. Par conséquent, vous pouvez utiliser les commandes Docker à l’intérieur du conteneur pour gérer le conteneur. Par exemple, vous pouvez utiliser les commandes Docker pour exécuter de nouveaux conteneurs, vérifier l'état des conteneurs, suspendre les conteneurs, etc.
Cependant, vous rencontrerez parfois une situation dans laquelle la commande Docker est introuvable dans le conteneur. Cela est généralement dû à l'une des raisons suivantes :
C'est la raison la plus courante : les commandes Docker ne sont généralement pas installées lorsque vous les exécutez à l'intérieur du conteneur. Parce que Docker est un processus exécuté sur l'hôte, pas un processus à l'intérieur du conteneur. Par conséquent, si vous souhaitez utiliser les commandes Docker dans un conteneur, vous devez d'abord installer les commandes Docker dans le conteneur. Généralement, vous installez Docker en exécutant la même commande d'installation Docker à l'intérieur du conteneur que sur l'hôte, par exemple :
apt-get install docker
même si vous avez installé la commande Docker à l'intérieur du conteneur, mais vous ne pouvez toujours pas utiliser les commandes Docker à l'intérieur du conteneur sans monter le socket Docker dans le conteneur. En effet, les sockets Docker sont utilisées pour communiquer avec le démon Docker, via lequel les commandes à l'intérieur du conteneur peuvent être communiquées au démon Docker exécuté sur la machine hôte.
Pour monter un socket Docker dans un conteneur, vous devez utiliser l'option "--volume" lors de l'exécution du conteneur pour mapper le socket Docker dans le conteneur. Par exemple :
docker run -v /var/run/docker.sock:/var/run/docker.sock my_container
Lorsque vous exécutez une commande Docker dans un conteneur, cette commande nécessite des autorisations root. En effet, les commandes Docker sont généralement exécutées sur l'hôte et sur l'hôte, le démon Docker nécessite les privilèges root pour s'exécuter. Par conséquent, lorsque vous exécutez des commandes Docker dans un conteneur, vous devez utiliser les privilèges root. Par exemple :
sudo docker ps
Résumé :
Lorsque vous devez utiliser des commandes Docker dans un conteneur, vous devez faire attention aux trois facteurs ci-dessus : installer les commandes Docker dans le conteneur, monter le socket Docker dans le conteneur et utiliser Docker. dans le conteneur La commande nécessite les privilèges root. Tant que vous les comprenez, vous pouvez résoudre le problème des commandes Docker introuvables dans le conteneur.
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!