55 votes

Comment démarrer automatiquement un conteneur Docker au redémarrage du système ?

Comme j'ai hébergé un site WordPress dans des conteneurs docker et que je veux que ces conteneurs soient toujours démarrés au démarrage, je dois le faire manuellement.

45voto

SlimIT Points 551

L'ajout de la politique de redémarrage sur un conteneur existant est un cas d'utilisation très courant.

Cela peut être fait avec la commande suivante : docker update --restart {no,on-failure,unless-stopped,always} container_name

Plus de détails : Docker - Démarrer les conteneurs automatiquement

38voto

Maythux Points 77506

Jusqu'à présent, je ne pense pas qu'il existe un moyen de faire cela normalement. Une solution délicate consiste à utiliser politique de redémarrage

sudo docker run --restart=always -d your_image

Cela signifie qu'à chaque fois que vous fermez le système, votre conteneur est désactivé et que lorsque vous démarrez votre hôte, cela entraîne le redémarrage du docker.

23voto

Reishin Points 926

Comme ubuntu 15 supporte maintenant systemd, échantillon pour ce gestionnaire :

nomd'unservice.service

[Unit]
Description=Some service
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a container_name
ExecStop=/usr/bin/docker stop -t 2 container_name

[Install]
WantedBy=multi-user.target

Plus disponible sur site docker

P.S. Configuration plutôt mignonne :)

4voto

aklmie Points 976

Ce que j'ai fait, c'est utiliser les fichiers Upstart.

Vous pouvez trouver quelques exemples et d'autres solutions dans le site web de Docker .

Créez un fichier tel que celui-ci dans /etc/init :

Description "My container"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
   /usr/bin/docker start -a mycontainer
end script
pre-stop script
  /usr/bin/docker stop mycontainer
end script

Notez qu'à partir de Docker 1.2, il y a politiques de redémarrage qui peut également aider à redémarrer automatiquement les conteneurs lorsque le service docker est lancé (après le démarrage par exemple).

Personnellement, j'utilise Puppet pour provisionner mon poste de travail et j'utilise cette Module Docker pour créer automatiquement le démarrage des scripts qui sont plus complètes (démarrage, arrêt, redémarrage, nettoyage des options...)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X