在Windows下login时启动Docker容器

我刚刚build立了一个新的Windows 10开发机器,以便尽量减less安装的麻烦,我有Docker-compose脚本运行在Docker下的各种开发依赖项(Oracle,MongoDB,RabbitMQ,HAProxy等)。

我想在Windowslogin时自动启动这些容器,但至今我还没有想出办法做到这一点; 在正确的目录中执行docker-compose up -d的简单脚本应该执行此操作,但是如果在login时立即执行Docker尚未启动,脚本将失败。 有谁知道如何编程等待,直到docker运行?

为了进一步详细说明我的评论,我已经做了一个Web服务器testing,但它应该适用于任何服务,只要你按照你想要的方式进行configuration。

使用以下命令很容易设置:

docker swarm init

然后例如一个networking服务器

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

甚至还有一个数据库

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

这些将在重新启动后重新启动,并在由于所请求的副本数量(默认为1)而自动发生致命的崩溃时启动,Docker群体为您保持活力。

希望这可以有一些帮助!

原来这很容易通过docker-compose使用restart来实现! 已经更改了撰写文件如下:

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

这额外的restart指令意味着,除非容器已经明确停止,否则将在dockerlogin/重新启动时启动。 testing和工作!