Para permitir que los contenedores se inicien automáticamente en el punto de inicio, intenté agregar el comando:
cd directory_has_docker-compose.yml && docker-compose up -d
en /etc/rc.local.
pero luego de reiniciar la máquina, los contenedores no funcionan.
¿Cómo se ejecuta docker-compose up -d
al inicio del sistema?
docker
docker-compose
user39544
fuente
fuente
--restart always
o--restart unless-stopped
o en docker-compose.yml userestart: always
-> Ref . ¡Pero quizás no funcionó en algunos contenedores!Respuestas:
Cuando usamos
crontab
o el/etc/rc.local
archivo obsoleto , necesitamos un retraso (por ejemplosleep 10
, dependiendo de la máquina) para asegurarnos de que los servicios del sistema estén disponibles. Por lo general,systemd
(oupstart
) se usa para administrar qué servicios se inician cuando se inicia el sistema. Puede intentar usar una configuración similar para esto:O, si quieres correr sin la
-d
bandera:Cambie el
WorkingDirectory
parámetro con la ruta de su proyecto acoplada. Y habilite el servicio para que se inicie automáticamente:fuente
systemctl start docker-compose-app
y creo quesystemctl status docker-compose-app
son lo que estás buscando.systemctl start docker-compose-app
con esto:Job for docker-compose-app.service failed because the control process exited with error code. See "systemctl status docker-compose-app.service" and "journalctl -xe" for details
service docker-compose-app start
estado conservice docker-compose-app status
, detener conservice docker-compose-app stop
Debería poder agregar:
a cada servicio que desee reiniciar en el archivo docker-compose.yml
fuente
restart: always
tiene algunos errores graves: los montajes de host no se adjuntarán al reiniciar, por ejemplo. En mi opinión, es mejor reinventar la rueda, si la rueda existente es cuadrada.Si está
docker.service
habilitado al iniciar el sistemay tus servicios en tu
docker-compose.yml
hastodos los servicios se ejecutan cuando reinicia su sistema si ejecuta el siguiente comando solo una vez
fuente
Lo intenté
restart: always
, funciona en algunos contenedores (como php-fpm), pero enfrenté el problema de que algunos contenedores (como nginx) todavía no se reinician después del reinicio.Resuelve el problema.
fuente
Use reiniciar: siempre en su docker compose file.
Docker-compose up -d
lanzará el contenedor de imágenes nuevamente. Úselodocker-compose start
para iniciar los contenedores detenidos, nunca lanza nuevos contenedores a partir de imágenes.También puede escribir el código en el archivo de la ventana acoplable para que se cree primero, si tiene la dependencia de otros contenedores.
fuente
always
, pero tal vezunless-stopped
. Otras opciones sonon-failure
yno
. Esto se conoce como política de reinicio .Como adición a
user39544
la respuesta de, un tipo más de sintaxis paracrontab -e
:fuente
crontab -e
como usuario pi, con pi miembro del grupo acoplador ...