


Comment utiliser les conteneurs Docker pour s'exécuter sans quitter
Docker est une plate-forme de conteneurisation open source qui fournit un environnement permettant aux développeurs de regrouper des applications et toutes leurs dépendances dans un conteneur portable pour le déploiement et la gestion. Les avantages des conteneurs Docker sont qu’ils sont rapides, légers, dotés d’une forte isolation et portabilité. Cependant, dans les applications réelles, nous avons souvent besoin d'une fonctionnalité qui ne quitte pas le conteneur Docker immédiatement après son exécution pour garantir que nos services fonctionnent normalement et de manière stable.
Dans cet article, nous expliquerons comment utiliser les conteneurs Docker pour s'exécuter sans quitter.
1. Utilisez la méthode Bash pour implémenter le conteneur sans quitter
Utilisez la méthode Bash pour implémenter l'exécution du conteneur Docker sans quitter. Vous devez exécuter la commande suivante :
docker run -it --name=容器名称 --restart=always 镜像名称 /bin/bash
Dans cette commande, nous spécifions le démarrage. mode du conteneur Docker en tant que terminal interactif, le nom est Container Name
et définit Container Name
comme nom de démarrage par défaut après le redémarrage, ce qui garantit que le conteneur ne se fermera pas anormalement et être incapable de se rétablir. Et --restart=always
est utilisé pour spécifier que lorsque le conteneur Docker plante ou s'arrête, le conteneur doit être redémarré et Docker redémarrera automatiquement le conteneur. Le nom de l'image
final fait référence à l'image qui doit être utilisée pour démarrer le conteneur. 容器名称
,并设置了容器名称
为重启之后默认启动的名称,可保证容器不会因异常退出而无法自我恢复。而--restart=always
用于指定当Docker容器崩溃或停止的情况下,该容器应该被重新启动,此时Docker就会自动重启容器了。最后的镜像名称
是指应该使用什么镜像来启动容器。
2. 利用Python脚本实现容器不退出
除了使用Bash方式,我们还可以利用Python脚本实现Docker容器的运行不退出。下面是Python脚本:
import time while True: time.sleep(60)
我们将这段代码保存为run.py
文件,并在Dockerfile中添加以下行:
CMD python /app/run.py
接下来,我们使用docker build
命令将Dockerfile构建为镜像,然后使用以下命令运行容器:
docker run -d --restart=always 镜像名称
该命令中,我们指定了Docker容器会以后台模式启动,镜像名称为之前构建的镜像。--restart=always
同样被用于指定当Docker容器崩溃或停止的情况下,该容器应该被重新启动。
3. 利用Supervisor实现容器不退出
Supervisor是一个进程管理器,可用于监控和控制在Docker容器内运行的进程。Supervisor可让您对容器内的进程进行健康检查,并确保它们保持运行状态,即使该进程崩溃也能够自动重启。
- 首先,我们需要在Dockerfile中添加以下行,以确保Supervisor在容器启动时正常运行:
RUN apt-get update && apt-get install -y supervisor RUN systemctl enable supervisor ADD supervisor.conf /etc/supervisor/conf.d/
- 接下来,我们需要定义supervisor.conf配置文件,该文件定义了应该监控哪些进程以及如何运行它们。以下是一个简单版本的
supervisor.conf
文件:
[supervisord] nodaemon=true [program:your_application_name] command=/bin/bash -c "while true; do echo hello world; sleep 10; done"
该配置文件中,我们定义了一个名为your_application_name
的程序,并指定它以/bin/bash
命令执行,无限循环运行echo hello world; sleep 10;
命令。
- 最后,在容器启动时,需要使用以下命令来启动Supervisor:
/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
该命令中,我们通过-n
参数,将Supervisor进程设置为在前台运行。在启动时,Supervisor会检测/etc/supervisor/conf.d/
rrreee
Nous enregistrons ce code sous un fichierrun.py
et ajoutons la ligne suivante dans le Dockerfile : 🎜rrreee🎜Ensuite, nous utilisons docker build
La commande code> construit le Dockerfile en tant qu'image, puis utilise la commande suivante pour exécuter le conteneur : 🎜rrreee🎜Dans cette commande, nous spécifions que le conteneur Docker sera démarré en mode arrière-plan, et le nom de l'image est celui précédemment image construite. --restart=always
est également utilisé pour spécifier que lorsqu'un conteneur Docker plante ou s'arrête, le conteneur doit être redémarré. 🎜🎜3. Utilisez Supervisor pour empêcher le conteneur de se fermer🎜🎜Supervisor est un gestionnaire de processus qui peut être utilisé pour surveiller et contrôler les processus exécutés dans les conteneurs Docker. Supervisor vous permet d'effectuer des contrôles de santé sur les processus dans les conteneurs et de garantir qu'ils restent en cours d'exécution, en redémarrant automatiquement même en cas de panne du processus. 🎜- Tout d'abord, nous devons ajouter les lignes suivantes au Dockerfile pour garantir que le superviseur fonctionne correctement au démarrage du conteneur :
- Ensuite, nous devons définir le fichier de configuration superviseur.conf, qui définit quels processus doivent être surveillés et comment les exécuter. Ce qui suit est une version simple du fichier
supervisor.conf
:
votre_nom_application
, et spécifiez qu'il doit être exécuté avec la commande /bin/bash
et exécutez la commande echo hello world;
dans une boucle infinie. 🎜- Enfin, lorsque le conteneur démarre, vous devez utiliser la commande suivante pour démarrer le Superviseur :
-n code> paramètre, définit le processus Superviseur pour qu'il s'exécute au premier plan. Au démarrage, Supervisor détectera tous les fichiers de configuration dans le répertoire <code>/etc/supervisor/conf.d/
et les utilisera pour gérer les processus dans le conteneur. 🎜🎜Conclusion🎜🎜Dans cet article, nous avons donné trois méthodes pour implémenter la fonctionnalité d'exécution des conteneurs Docker sans quitter, notamment en utilisant la méthode Bash, le script Python et le gestionnaire de processus Supervisor. Chaque méthode a ses avantages et son champ d'application. Dans les applications pratiques, il est nécessaire de choisir la méthode appropriée en fonction de la situation spécifique. Nous espérons que cet article vous sera utile et vous offrira une meilleure garantie du fonctionnement de votre conteneur Docker. 🎜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

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Docker est une compétence incontournable pour les ingénieurs DevOps. 1.Docker est une plate-forme conteneurisée open source qui atteint l'isolement et la portabilité par les applications d'emballage et leurs dépendances dans les conteneurs. 2. Docker fonctionne avec les espaces de noms, les groupes de contrôle et les systèmes de fichiers fédérés. 3. L'utilisation de base comprend la création, l'exécution et la gestion des conteneurs. 4. L'utilisation avancée comprend l'utilisation de dockercosive pour gérer les applications multi-container. 5. Les erreurs courantes incluent une défaillance des conteneurs, des problèmes de cartographie des ports et des problèmes de persistance des données. Les compétences de débogage incluent la visualisation des journaux, la saisie des conteneurs et la visualisation d'informations détaillées. 6. L'optimisation des performances et les meilleures pratiques incluent l'optimisation de l'image, les contraintes de ressources, l'optimisation du réseau et les meilleures pratiques pour l'utilisation de dockerfile.

Dockervolumes garantit que les données restent sûres lorsque les conteneurs sont redémarrés, supprimés ou migrés. 1. Créer un volume: dockervolumecreatemydata. 2. Exécutez le conteneur et le volume de montage: dockerrun-it-vmydata: / app / dataubuntubash. 3. L'utilisation avancée comprend le partage de données et la sauvegarde.

Les méthodes d'amélioration de la sécurité Docker incluent: 1. Utilisez le paramètre - Cap-Drop pour limiter les capacités Linux, 2. Créer des conteneurs en lecture seule, 3. Définissez les balises Selinux. Ces stratégies protègent les conteneurs en réduisant l'exposition à la vulnérabilité et en limitant les capacités de l'attaquant.

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Quatre façons de quitter Docker Container: Utilisez Ctrl D dans le terminal de conteneur Entrez la commande d'exit dans le terminal de conteneur Utilisez Docker Stop & lt; contener_name & gt; Commande utilise docker kill & lt; contener_name & gt; commande dans le terminal hôte (sortie de force)

Méthodes de copie de fichiers en hôtes externes dans Docker: Utilisez la commande docker cp: exécuter docker cp [options] & lt; Container Path & gt; & lt; Host Path & gt;. Utilisation de volumes de données: créez un répertoire sur l'hôte et utilisez le paramètre -v pour monter le répertoire dans le conteneur lors de la création du conteneur pour obtenir la synchronisation de fichiers bidirectionnels.

Comment redémarrer le conteneur Docker: Obtenez l'ID de conteneur (Docker PS); Arrêtez le conteneur (docker stop & lt; contener_id & gt;); Démarrer le conteneur (docker start & lt; contener_id & gt;); Vérifiez que le redémarrage réussit (Docker PS). Autres méthodes: Docker Compose (redémarrage Docker-Compose) ou API Docker (voir Docker Documentation).

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).
