Cómo reiniciar Docker
En este artículo, aprenderá a reiniciar el daemon de Docker y los contenedores de Docker mediante la CLI.
Para esta guía, utilizaremos un servidor BlueVPS NVMe-bKVM con 4 GB de RAM.
Suponemos que todos los comandos se ejecutan como usuario root.
¿Debería reiniciar el demonio de Docker o un contenedor de Docker?
Reinicie el demonio de Docker cuando haya actualizado Docker Engine o el kernel del sistema; cuando la CLI de Docker no responda (se haya bloqueado); o cuando haya modificado la configuración de /etc/docker/daemon.json (por ejemplo, controladores de almacenamiento, controladores de registros o registros personalizados).
Reinicie un contenedor de Docker cuando una aplicación dentro del contenedor se haya bloqueado, presente retrasos o se haya colgado; o bien cuando haya modificado un archivo de configuración de la aplicación o los archivos de los volúmenes montados para el contenedor.
Reiniciar el demonio de Docker
Para reiniciar Docker, solo tiene que ejecutar un sencillo comando y ya estará todo listo:
systemctl restart docker
Tenga en cuenta que systemctl restart docker reiniciará todos sus contenedores en ejecución de forma predeterminada. Puede verificarlo mediante este comando:
docker info | grep "Live Restore"
Sin embargo, si la salida muestra Live Restore Enabled: true, lo cual no es la configuración predeterminada, sus contenedores permanecerán activos.
Utilice este comando para habilitar la restauración en vivo (los contenedores permanecerán activos si se reinicia el demonio):
tee /etc/docker/daemon.json <<EOF{"live-restore": true}EOFsystemctl reload docker
Utilice este comando para deshabilitar la restauración en vivo (los contenedores se reiniciarán si se reinicia el demonio):
tee /etc/docker/daemon.json <<EOF{"live-restore": false}EOFsystemctl reload docker
Reiniciar un contenedor de Docker
Antes de reiniciar un contenedor, debe identificar su nombre o su ID. Ejecute el siguiente comando para mostrar sus contenedores:
docker ps

Aquí puede ver tres de nuestros contenedores; puede reiniciarlos utilizando el ID o el nombre del contenedor.
Por ejemplo, reiniciemos httpd primero por su nombre y, a continuación, por su ID de contenedor:
docker restart httpd
docker restart 997f9dd62538
Por el estado, podemos ver que el contenedor se ha reiniciado y lleva ya 1 segundo en ejecución

Reiniciar un contenedor automáticamente
Docker dispone de políticas de reinicio para los contenedores al salir o cuando Docker se reinicia, lo que le permite evitar el uso de gestores de procesos para iniciar contenedores.
Existen cuatro políticas de reinicio:
no: no reiniciar el contenedor.
on-failure[:max-retries]: reiniciar el contenedor en caso de fallo; puede limitar el número de reinicios.
always: reiniciar siempre el contenedor si se detiene.
unless-stopped: reiniciar siempre el contenedor si se detiene, a menos que lo haya detenido manualmente.
A continuación se muestran ejemplos de comandos para las cuatro políticas de reinicio:
docker run -d --restart=no httpddocker run -d --restart=on-failure:3 httpddocker run -d --restart=always httpddocker run -d --restart=unless-stopped httpd
Conclusión
Saber cuándo y cómo reiniciar los contenedores de Docker ahorra tiempo y evita tiempos de inactividad innecesarios:
- Utilice systemctl restart docker para actualizaciones del núcleo y cambios en la configuración.
- Utilice docker restart <name/ID> para recuperar rápidamente una aplicación específica que no responda.
- Establezca las políticas de reinicio adecuadas (--restart) durante la implementación para automatizar la recuperación de los contenedores.
¡No olvide echar un vistazo a nuestros servidores VPS para obtener los mejores precios del mercado!
