Comment démarrer automatiquement les conteneurs docker lors du démarrage du système?

Quel est le bon moyen de démarrer automatiquement les conteneurs docker lorsque le système démarre?

Existe-t-il une façon privilégiée de le faire sur Ubuntu 14.04?

J'ai utilisé le supervisord par le passé pour démarrer automatiquement les applications Web. Mais cela ne ressemble pas à la bonne chose pour Docker.

3 Solutions collect form web for “Comment démarrer automatiquement les conteneurs docker lors du démarrage du système?”

Apparemment, la méthode actuelle pour démarrer automatiquement les conteneurs Docker (à partir de Docker 1.2 ) consiste à utiliser les stratégies de redémarrage . Cela contrôlera comment Docker doit gérer le démarrage du conteneur lors du démarrage et le redémarrage du conteneur lorsqu'il sort. J'ai utilisé l'option "toujours" jusqu'à présent et je peux confirmer qu'elle rend le démarrage automatique du conteneur lors du démarrage du système Docker:

 sudo docker run --restart=always -d myimage 

Extrait de la documentation

Politiques de redémarrage À l'aide de l'indicateur –restart sur Docker, vous pouvez spécifier une stratégie de redémarrage pour savoir comment un conteneur devrait ou ne doit pas être redémarré à la sortie.

non – Ne redémarrez pas le conteneur lorsqu'il sort.

en cas d'échec – Redémarrez le conteneur uniquement s'il sort avec un état de sortie non nul.

toujours – Redémarrez toujours le conteneur indépendamment de l'état de sortie.

Vous pouvez également spécifier le nombre maximal de fois que Docker essaiera de redémarrer le conteneur lors de l'utilisation de la politique de défaillance. Par défaut, Docker essaie à jamais de redémarrer le conteneur.

 $ sudo docker run --restart=always redis 

Cela exécutera le conteneur redis avec une politique de redémarrage de toujours afin que, si le conteneur est sorti, Docker le redémarrera.

 $ sudo docker run --restart=on-failure:10 redis 

Cela entraînera le récipient redis avec une politique de redémarrage d'une défaillance et un nombre de redémarrage maximum de 10. Si le conteneur redis sort avec un état de sortie non nul plus de 10 fois dans une rangée, Docker annulera la tentative de redémarrage du conteneur. Fournir une limite de redémarrage maximum n'est valable que pour la politique de défaillance.

Docker a cette page qui explique comment le faire avec upstart et systemd. Je suis d'accord pour dire que cela ne semble pas être le bon pour Docker. Leur solution consiste à exécuter le docker start , ce qui suppose que vous avez déjà créé votre conteneur. Je penserais que vous feriez le docker run --rm dans le script upstart (en le traitant comme un nouveau process et un conteneur à partir d'une image) ou laissez simplement le daemon docker redémarrer les conteneurs eux-mêmes lors du démarrage (comme il le fera par défaut si vous ne faites rien d'autre). Upstart a l'avantage de permettre un démarrage / arrêt facile des process, mais vous obtenez cela avec le démarrage / arrêt du docker aussi!

Je pense qu'il est étrange de forcer l'user à créer manuellement un conteneur (avec toutes les bindings de port / volume correctes) avant que le script démarre.

Mais cela ne ressemble pas à la bonne chose pour Docker.

Pourquoi pas?

J'utilise le superviseur pour cela avec beaucoup de succès.

Utilisez ce que vous savez, utilisez ce qui fonctionne, utilisez quelque chose que vous pouvez facilement entretenir et comprendre.

  • Obtention d'un locking de file dans Ubuntu Server
  • rsync chgrp Failing on NFS
  • Pourquoi Ubuntu 14.04.2 possède-t-il les packages bind9-host lors de l'installation?
  • Comment configurer le server web Apache pour pouvoir save un file dans le dossier racine Ubuntu
  • Ubuntu ProFTP supprime le file partiellement téléchargé après la connection échouée côté client
  • Le server Ubuntu étend le disque racine
  • Ubuntu, déterminer l'urgence des correctifs du kernel pour mieux contrôler quand les systèmes doivent être redémarrés
  • Ce qui ne va pas avec ma configuration proxy nginx reverse, avec un server unique (et plus tard)
  • Le server dédié se bloque à 80 fois / s - MaxRequestWorkers est-il la cause?
  • Apache 2.4 et Ubuntu 14.04 erreur sur Vagrant: "Vous n'avez pas la permission d'accéder / sur ce server".
  • 421 Requête mal orientée utilisant HTTP / 2 et SAN SSL
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.