Iniciar un contenedor de docker automaticamente al reiniciar

Iniciar un contenedor de docker automaticamente al reiniciar

Es posible iniciar imágenes de Docker de una forma muy sencilla con simplemente ejecutar un docker start contenedor, pero al tener un servicio ya en un servidor productivo, al reiniciarse, vamos a querer que este inicie automáticamente.

Para hacer esto con systemd (algunos lo odian, otros lo aman y otros tantos simplemente trabajan con él), es necesario crear un archivo y enviarlo a la carpeta /etc/systemd/system/ y habilitarlo.

Aquí muestro un ejemplo con un contenedor llamado Nexus

Contenido del archivo :

[Unit]
Description=Nexus container  
Requires=docker.service  
After=docker.service

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

[Install]
WantedBy=default.target

Comandos a ejecutar:

Creamos el archivo:

touch docker-nexus.service

Lo abrimos con nano y pegamos el contenido de arriba ya personalizado:

nano docker-nexus.service

copiamos el archivo a la carpeta especial de systemd:

sudo cp docker-nexus.service /etc/systemd/system/

Lo habilitamos:

systemctl enable docker-nexus.service

Al reiniciar nuestor SO debería de levantarse automáticamente nuestro contenedor.

Fuentes: