web-dev-qa-db-fra.com

Comment lancer automatiquement le conteneur de 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, vous devez le faire manuellement.

40
nayan tiwari

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

Sudo docker run --restart=always -d your_image

Cela signifie que chaque fois que vous arrêtez cette opération, vous quittez votre conteneur. Ainsi, lorsque vous démarrez votre hôte, cette opération entraîne le redémarrage du menu fixe.

30
Maythux

Comme ubuntu 15 prend maintenant en charge systemd, exemple pour ce gestionnaire:

someservicename.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 assez mignon :)

21
Reishin

Il est très courant d'ajouter la stratégie de redémarrage sur un conteneur existant.

Cela pourrait ê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

19
SlimIT

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

Vous pouvez trouver des exemples et d’autres solutions dans site Web de Docker .

Créez un fichier comme 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 que depuis Docker 1.2, il existe stratégies de redémarrage , ce qui peut également aider à redémarrer automatiquement les conteneurs lorsque le service Docker est exécuté (après le démarrage, par exemple).

Personnellement, j'utilise marionnette pour approvisionner mon poste de travail et utiliser ce module Docker pour créer automatiquement les scripts de démarrage qui sont plus complets (options de démarrage, d'arrêt, de redémarrage, de nettoyage ...). )

4
aklmie