¿Cómo inicio automáticamente el contenedor acoplable al reiniciar el sistema?


47

Como alojé un sitio de WordPress en contenedores acoplables y quiero que estos contenedores se inicien siempre en el momento del arranque, así que necesito hacerlo manualmente.


¿Qué versión de ubuntu usas?
— Maythux

usando ubuntu server 14.04
— nayan tiwari

Esto se ha pedido en ServerFault .
— Dan Dascalescu

Crossposted. Elija un sitio, no muchos, para publicar cosas.
— Thomas Ward

Respuestas:


35

Hasta ahora no creo que haya una manera de hacerlo normalmente. Una solución difícil es usar la política de reinicio

sudo docker run --restart=always -d your_image

Esto significa que cada vez que cierre esto saldrá de su contenedor, de modo que cuando inicie su host, esto conducirá a reiniciar la ventana acoplable.


Al leer sobre ello existen algunas herramientas de automatización como chef pero Dont know cómo usarlos
— Tiwari nayan

Todavía es experimental para Ubuntu github.com/bflad/chef-docker/blob/master/README.md
— Maythux

2
¿Por qué no utilizar las posibilidades del sistema para esto? tanto el sistema de arranque como el sistema pueden lidiar con esto perfectamente
— Reishin

29

Es un caso de uso muy común agregar la política de reinicio en un contenedor existente.

Esto podría hacerse con el siguiente comando: docker update --restart {no,on-failure,unless-stopped,always} container_name

Más detalles: Docker - Iniciar contenedores automáticamente


2
¡Esto resolvió mi problema perfectamente! Tenía un contenedor con mi base de datos y quería que comenzara cuando mi Mac comenzó. Al especificar que su imagen siempre se reiniciaba (a menos que se detuviera), ¡esto funcionó!
— Colin el

21

Como ubuntu 15 ahora es compatible con systemd, muestra para este administrador:

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

Más disponible en el sitio de Docker

PD: configuración bastante linda :)


4

Lo que hice fue usar archivos Upstart.

Puede encontrar algunos ejemplos y otras soluciones en el sitio web de Docker .

Cree un archivo como ese en / 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

Tenga en cuenta que, a partir de Docker 1.2, existen políticas de reinicio que también pueden ayudar a reiniciar automáticamente los contenedores cuando se ejecuta el servicio de docker (después del arranque, por ejemplo).

Personalmente, uso Puppet para aprovisionar mi estación de trabajo y uso este módulo Docker para crear automáticamente los scripts de inicio que están más completos (inicio, detención, reinicio, opciones de limpieza ...)


1
advenedizo está muerto. use systemd.
— AmirHossein
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.