run - sudo docker restart
Cómo reiniciar automáticamente un contenedor Docker después de un reinicio en CoreOS? (6)
CoreOS usa systemd para administrar servicios de larga ejecución:
Suponiendo que el Docker Daemon se reinicia automáticamente por cualquier proceso init.d o systemd como cuando se reinicia el sistema operativo, ¿cuál es la forma preferida de reiniciar uno o más contenedores Docker? Por ejemplo, podría tener una cantidad de servidores web detrás de un proxy inverso o un servidor de base de datos.
La única documentación que he visto es Docker''s Host Integration docs que son un poco ligeros en detalles, etc.
Básicamente, sugiere iniciar el daemon con -r=false
y usar systemd (o upstart si está utilizando algo que no sea CoreOS).
Lo que funcionó para mí es agregar --restart=''always''
al comando container {run -d ...}
Para las personas que desean reiniciar automáticamente un contenedor acoplable, pero no especificó --restart
indicador (predeterminado en ''no'') mientras lo ejecuta, puede usar el comando de update acoplable para agregar una de las siguientes tres opciones adicionales:
- on-failure
- a menos que-parado
- siempre
Ver esta publicación para más detalles. La gente tiene problemas con reiniciar always
indicador, puede considerar usar la opción on-failure
o unless-stopped
.
Utiliza Restart
y RestartSec
para que funcione:
# Restart after crash
Restart=on-failure
# Give the service 10 seconds to recover after the previous restart
RestartSec=10s
Ver la documentación .
si inicia el daemon con docker -d -r
, reiniciará todos los contenedores que se estaban ejecutando antes de que se detenga el daemon. Esto se convertirá en el comportamiento predeterminado en la próxima versión.