我按照https://docs.docker.com/engine/installation/windows/上的说明操作,当我使用$docker-machine create启动docker VM但是如何将其作为Windows服务或类似设备运行时,一切都运行了?
目标是能够使用构建Docker镜像,作为容器启动并对它们运行e2e测试.由于我们正在使用TeamCity来构建有关使用TeamCity解决此问题的任何想法,我猜也是如此.
我正在使用Windows进行开发,并在其docker容器中运行此webapp.
所以我遇到了同样的问题,“如何在系统启动时启动它”?
docker-machine start default docker run -d -p 8080:8080 -v //c/Users/%USERNAME%/somepath:/c/Users/%USERNAME%/somepath my/image --some.webapp.param=some-webapp-param-value
第一个调用启动“默认”虚拟机,但您应该能够在那里指定不同的虚拟机.
第二个调用运行“my / image”docker容器,将端口8080暴露给主机系统并从我的用户主目录安装“somepath”.
一定要指定“-d”参数,因为它在“后台”运行容器(选中“docker run –help”)
之后我的webapp可以通过“默认VM”的IP地址到达
(在我的情况下,这可能是192.168.99.100,这可能在您的系统上有所不同,您可以在首次启动此“docker quickstart terminal”时检查输出,因为IP地址将记录到控制台.)
有了这个我能像往常一样使用我的浏览器,将它指向“http://192.168.99.100:8080”并可以使用我的webapp.
希望有帮助=)
编辑
现在手头有批处理文件,有3个选项:
>将批处理文件放在自动启动目录中(需要交互式用户会话,因此可能不适合服务器实例..)
>通过Windows的任务调度程序安排批处理文件的执行.在那里你可以设置“在计算机启动时运行”作为任务的触发器.无论交互式会话(登录用户……)是否可用,任务都会运行
>使用像NSSM这样的服务包装器将批处理文件安装为Windows服务