我刚刚设置了一个新的Windows 10开发机器,以便最大限度地减少安装的麻烦我已经使用docker在Docker下运行各种dev依赖项(Oracle,MongoDB,RabbitMQ,HAProxy等) - 撰写剧本。
我想在Windows登录时自动启动这些容器,但到目前为止我还没有想出办法来做到这一点;在正确的目录中执行docker-compose up -d
的简单脚本应该这样做,但如果它在登录时立即执行,则Docker尚未启动,因此脚本失败。有没有人知道如何以编程方式等待直到docker运行?
答案 0 :(得分:1)
为了进一步阐述我的评论,我已经对网络服务器服务进行了一些测试,但它应该适用于任何服务,只要你按照你希望它的行为进行配置。
使用以下命令很容易设置它:
<asp:Gridview runat=server showHeader=false etc>
然后例如一个网络服务器
docker swarm init
甚至是数据库
docker service create --name webserver --publish 80:80 httpd
这些将在重新启动后重新启动,并且由于Docker swarm为您保留活动所请求的副本数量(默认值为1),会自动导致致命崩溃。
希望这可以提供一些帮助!
答案 1 :(得分:0)
事实证明,使用restart
通过docker-compose很容易实现!更改了撰写文件如下:
version: '2'
services:
rabbitmq:
image: rabbitmq:3.6-management
ports:
- "5672:5672"
- "15672:15672"
volumes:
- /var/lib/rabbitmq
restart: unless-stopped
这个额外的restart
指令意味着除非已明确停止容器,否则它将在登录/重启时启动docker。经过测试和工作!