gpt4 book ai didi

Docker Windows如何在不登录的情况下保持容器运行?

转载 作者:行者123 更新时间:2023-12-02 18:28:32 24 4
gpt4 key购买 nike

我在带有 Windows Server 2016 的虚拟机中安装了 Docker。

我有一个来自 Python3 的 Linux 容器,带有 NGINX 服务器,使用 --restart=always参数,它在我登录时运行良好,如果我重新启动 VM,容器不再处于事件状态,并且只有在我登录时它才会启动。

此外,如果我注销,容器会停止。

如何使容器在没有登录的情况下作为服务运行并在注销时保持运行?

最佳答案

我从 HERE 得到了更好的答案
总结就是构建一个Task,分配给Task Scheduler在 Windows 启动时运行。
所有脚本都应该在powershell上运行

  • 登录到您希望 Docker 服务自动启动的 Windows 服务器/机器。
  • 在您选择的位置创建一个名为 startDocker.ps1 的文件,并将以下脚本保存在其中:start-service -Name com.docker.servicestart C:\'Program Files'\Docker\Docker\'Docker Desktop.exe'

  • 验证 Docker.exe 在您的机器上的位置是否正确,否则在脚本中相应地对其进行修改。
  • 创建一个名为 registerTask.ps1 的文件并将以下脚本保存在其中。$trigger = New-ScheduledTaskTrigger -AtStartup$action = New-ScheduledTaskAction -Execute "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Argument "-File C:\PowershellScripts\startDocker.ps1"$settings = New-ScheduledTaskSettingsSet -Compatibility Win8 -AllowStartIfOnBatteriesRegister-ScheduledTask -Action $action -Trigger $trigger -TaskName "Start Docker on Start up" -Settings $settings -User "Your user" -Password "Your user password" -RunLevel Highest

  • 这是必需的,以便该用户可以访问 docker 服务
    try 
    {
    Add-LocalGroupMember -Group docker-users -Member "Your user" -ErrorAction Stop
    }
    catch [Microsoft.PowerShell.Commands.MemberExistsException] { }
  • 修改脚本:您必须根据您的计算机/服务器更改上述脚本中的一些内容。

  • $action行,更改 startdocker.ps1的位置脚本文件到您放置此文件的位置。
    Register-ScheduledTask将帐户用户和密码更改为需要在 Windows 启动时启动 Docker 服务的帐户用户。
  • 执行 registerTask.ps1

  • 以管理员身份打开 Windows Powershell 并将当前目录设置为您放置的位置 registerTask.ps1 .例如
    cd C:\PewershellScripts\
    接下来执行这个脚本如下
    .\PowershellScripts\

    关于Docker Windows如何在不登录的情况下保持容器运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55008374/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com