¿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.

nayan tiwari
fuente
¿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.

Maythux
fuente
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

SlimIT
fuente
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 :)

Reishin
fuente
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 ...)

aklmie
fuente
1
advenedizo está muerto. use systemd.
AmirHossein