Table des matières
1. Utilisez la méthode Bash pour implémenter le conteneur sans quitter
2. 利用Python脚本实现容器不退出
3. 利用Supervisor实现容器不退出
Maison Opération et maintenance Docker Comment utiliser les conteneurs Docker pour s'exécuter sans quitter

Comment utiliser les conteneurs Docker pour s'exécuter sans quitter

Apr 20, 2023 am 10:09 AM

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
Copier après la connexion

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)
Copier après la connexion

我们将这段代码保存为run.py文件,并在Dockerfile中添加以下行:

CMD python /app/run.py
Copier après la connexion

接下来,我们使用docker build命令将Dockerfile构建为镜像,然后使用以下命令运行容器:

docker run -d --restart=always 镜像名称
Copier après la connexion

该命令中,我们指定了Docker容器会以后台模式启动,镜像名称为之前构建的镜像。--restart=always同样被用于指定当Docker容器崩溃或停止的情况下,该容器应该被重新启动。

3. 利用Supervisor实现容器不退出

Supervisor是一个进程管理器,可用于监控和控制在Docker容器内运行的进程。Supervisor可让您对容器内的进程进行健康检查,并确保它们保持运行状态,即使该进程崩溃也能够自动重启。

  1. 首先,我们需要在Dockerfile中添加以下行,以确保Supervisor在容器启动时正常运行:
RUN apt-get update && apt-get install -y supervisor
RUN systemctl enable supervisor
ADD supervisor.conf /etc/supervisor/conf.d/
Copier après la connexion
  1. 接下来,我们需要定义supervisor.conf配置文件,该文件定义了应该监控哪些进程以及如何运行它们。以下是一个简单版本的supervisor.conf文件:
[supervisord]
nodaemon=true

[program:your_application_name]
command=/bin/bash -c "while true; do echo hello world; sleep 10; done"
Copier après la connexion

该配置文件中,我们定义了一个名为your_application_name的程序,并指定它以/bin/bash命令执行,无限循环运行echo hello world; sleep 10;命令。

  1. 最后,在容器启动时,需要使用以下命令来启动Supervisor:
/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
Copier après la connexion

该命令中,我们通过-n参数,将Supervisor进程设置为在前台运行。在启动时,Supervisor会检测/etc/supervisor/conf.d/

2. Utilisez des scripts Python pour empêcher le conteneur de se fermer

En plus d'utiliser la méthode Bash, nous pouvons également utiliser des scripts Python pour implémenter le conteneur Docker sans quitter. Voici le script Python :

rrreee

Nous enregistrons ce code sous un fichier run.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. 🎜
  1. Tout d'abord, nous devons ajouter les lignes suivantes au Dockerfile pour garantir que le superviseur fonctionne correctement au démarrage du conteneur :
rrreee
  1. 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 :
rrreee🎜Dans ce fichier de configuration, nous définissons un programme nommé 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. 🎜
  1. Enfin, lorsque le conteneur démarre, vous devez utiliser la commande suivante pour démarrer le Superviseur :
rrreee🎜Dans cette commande, on passe -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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Questions d'entrevue Docker: Ace Your DevOps Engineering Interview Questions d'entrevue Docker: Ace Your DevOps Engineering Interview Apr 06, 2025 am 12:01 AM

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.

Volumes de docker: gérer les données persistantes dans les conteneurs Volumes de docker: gérer les données persistantes dans les conteneurs Apr 04, 2025 am 12:19 AM

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.

Decker Security Durcision: protéger vos conteneurs contre les vulnérabilités Decker Security Durcision: protéger vos conteneurs contre les vulnérabilités Apr 05, 2025 am 12:08 AM

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.

Comment mettre à jour l'image de Docker Comment mettre à jour l'image de Docker Apr 15, 2025 pm 12:03 PM

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)

Comment sortir du conteneur par Docker Comment sortir du conteneur par Docker Apr 15, 2025 pm 12:15 PM

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)

Comment copier des fichiers dans Docker à l'extérieur Comment copier des fichiers dans Docker à l'extérieur Apr 15, 2025 pm 12:12 PM

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 Docker Comment redémarrer Docker Apr 15, 2025 pm 12:06 PM

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 Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

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).

See all articles