【问题标题】:How to keep WIndows Container running?如何保持 Windows 容器运行?
【发布时间】:2019-05-25 22:21:36
【问题描述】:

我需要保持我的 Windows Container 正常运行,这样我才能使用 docker exec 在其上运行更多命令。

在 Linux 上,我会启动它以运行 sleep infinitytail -f /dev/null。或者,我可以borrow pause.c from Kubernetes

这在 Windows 上是什么样子的?

【问题讨论】:

  • powershell start-sleep 200000。为什么你想要这个而不是使用你的可执行文件作为入口点
  • 测试我的应用程序。我正在使用 Docker SDK for Python 以交互方式操作容器,就好像它是一个虚拟机一样。在 pytest 测试中,首先我启动它,然后在上面复制我的应用程序,运行 container.exec_run("some command") 几次,断言一切顺利,然后销毁容器。
  • 上面的好东西或者只是ping -t 127.0.0.1会做到这一点
  • K8s 显然使用 ping。如果您将其发布为答案,我会接受。

标签: docker-for-windows windows-container


【解决方案1】:

使用ping -t localhost就可以了

【讨论】:

  • 没有更奇怪的东西吗?这会污染日志。
【解决方案2】:

完整的运行命令是:

docker run -d --name YourContainer mcr.microsoft.com/windows/nanoserver:1809 ping -t localhost

注意:确保 1809 与您自己的 Windows 版本相同,从 [WIN]+[R] -> winver

然后您应该能够以名称YourContainer 进入正在运行的容器实例:

docker exec -it YourContainer cmd

【讨论】:

    【解决方案3】:

    Kubernetes on Windows used to use ping

    cmd /c ping -t localhost
    

    这将print lots of unnecessary output,所以应该是一个很好的改进

    cmd /c ping -t localhost > NUL
    

    Kubernetes 现在做的是run a custom pauseloop.exe binary

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 2019-07-27
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      相关资源
      最近更新 更多