Maison >Opération et maintenance >Docker >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.
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就会自动重启容器了。最后的镜像名称
是指应该使用什么镜像来启动容器。
除了使用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容器崩溃或停止的情况下,该容器应该被重新启动。
Supervisor是一个进程管理器,可用于监控和控制在Docker容器内运行的进程。Supervisor可让您对容器内的进程进行健康检查,并确保它们保持运行状态,即使该进程崩溃也能够自动重启。
RUN apt-get update && apt-get install -y supervisor RUN systemctl enable supervisor ADD supervisor.conf /etc/supervisor/conf.d/
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;
命令。
/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. 🎜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. 🎜 -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!