我们在 Windows Server 2016 Datacenter 机器上安装了 Docker for Windows。
我们使用这个盒子作为我们的 docker 容器的构建代理。
当我们尝试通过守护程序连接到此框以构建容器时,我们收到一条错误消息,指示守护程序未运行(在帖子结束时)。
但是,如果我使用我的 AD 帐户登录到此框,守护程序将启动、运行,然后我可以连接并执行我需要做的一切。
有没有办法让守护程序在启动时启动而不需要用户登录?该服务似乎只有在用户登录时才会运行。
错误信息:
连接时出错:发布 http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.37/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems =&cpushares=0&dockerfile=[NameRemovedForPrivacy]&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=[keyRemovedForPrivacy]&shmsize=0&t=[serverNameRemovedForPrivacy]&target=&ulimits=null: 打开//./pipe/docker_engine: 系统找不到指定的文件。在 Windows 上的默认守护程序配置中,必须运行提升的 docker 客户端才能连接。此错误还可能表明 docker 守护程序未运行。
我尝试过的:
- 经过验证的 Docker 已在 Windows 服务中列出并配置为 自动启动。
- 在 Windows 任务计划程序中创建条目以执行 docker
executable
和com.service.docker
在启动时提升 特权。
最佳答案
windows server 的最佳解决方案是使用 Task Scheduler
创建任务,在系统启动时运行“Docker Desktop”应用程序。
要搜索“任务计划程序”,请单击“创建任务...”。
在新选项卡上指定任务名称并选择“无论用户是否登录都运行”单选按钮和“以最高权限运行”复选框。在页面末尾选择适当的窗口类型。
现在单击触发器选项卡并添加新触发器。在新的触发器页面上,选择“启动时”,然后单击“确定”。
最后,单击操作选项卡并添加一个运行“Docker windows”快捷方式的新操作,该快捷方式在 windows 上运行 docker daemon。
当 docker 启动时,经过 1 分钟,容器启动可能需要一些时间(在我的情况下为 4 分钟)等待几分钟,然后测试您的 docker 是否正在运行。
关于docker - 如何在启动时启动 Docker 守护程序(Windows 服务)而无需登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51252181/