Inicie Docker Containers al iniciar session en Windows

Acabo de configurar una nueva máquina de desarrollo de Windows 10 y para minimizar la molestia de las instalaciones tengo varias dependencies de desarrollo (Oracle, MongoDB, RabbitMQ, HAProxy, etc.) que se ejecutan bajo Docker usando una secuencia de commands docker-compose.

Me gustaría iniciar automáticamente estos contenedores en el inicio de session de Windows, pero aún no he encontrado una manera de hacerlo; un script simple que ejecute docker-compose up -d en el directory correcto debería hacerlo, pero si se ejecuta inmediatamente en el inicio de session Docker aún no se ha iniciado, por lo que el script falla. ¿Alguien sabe cómo esperar programáticamente hasta que Docker se esté ejecutando?

Para profundizar en mi comentario, he realizado una pequeña testing con un service de server web, pero debería funcionar para cualquier service, siempre que lo configure de la manera que desea que se comporte.

Es bastante fácil configurar esto usando los siguientes commands:

docker swarm init

Entonces, por ejemplo, un server web

docker service create --name webserver --publish 80:80 httpd

O incluso una database

docker service create --replicas 1 --name database --publish 1433:1433 -e "ACCEPT_EULA=y" -e "SA_PASSWORD=test" microsoft/mssql-server-linux

Estos se reiniciarán después de un reinicio y en crashs fatales automáticamente debido a la cantidad solicitada de réplicas (1 por defecto) que el enjambre Docker mantiene vivo para usted.

¡Espero que esto pueda ser de alguna ayuda!

¡Resulta que esto es realmente fácil de lograr a través de docker-componer usando restart ! Ha cambiado el file de composition de la siguiente manera:

 version: '2' services: rabbitmq: image: rabbitmq:3.6-management ports: - "5672:5672" - "15672:15672" volumes: - /var/lib/rabbitmq restart: unless-stopped 

Esta directiva de restart adicional significa que, a less que el contenedor se haya detenido explícitamente, se iniciará con la window acoplable al iniciar session / reiniciar. ¡Probado y funcionando!