Как поддерживать работу контейнера Windows?

Мне нужно поддерживать работоспособность моего контейнера Windows, чтобы я мог выполнять на нем дальнейшие команды, используя docker exec.

В Linux я бы запускал либо sleep infinity, либо tail -f /dev/null. В качестве альтернативы я мог бы позаимствовать pause.c у Kubernetes.

Как это выглядит в Windows?


person user7610    schedule 25.05.2019    source источник
comment
powershell start-sleep 200000. Почему вы хотите иметь это вместо использования вашего исполняемого файла в качестве точки входа?   -  person Gregory Suvalian    schedule 26.05.2019
comment
Чтобы протестировать мое приложение. Я использую Docker SDK для Python для интерактивного управления контейнером, как если бы это была виртуальная машина. В тесте pytest я сначала запускаю его, затем копирую на него свое приложение, запускаю container.exec_run("some command") несколько раз, утверждаю, что все прошло хорошо, затем уничтожаю контейнер.   -  person user7610    schedule 26.05.2019
comment
Ну, вышеперечисленное или просто ping -t 127.0.0.1 подойдет   -  person Gregory Suvalian    schedule 26.05.2019
comment
K8s явно использует ping. Если бы вы опубликовали это как ответ, я бы принял его.   -  person user7610    schedule 26.05.2019


Ответы (3)


Используйте ping -t localhost, чтобы сделать это

person Gregory Suvalian    schedule 26.05.2019

Полная команда запуска будет:

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
person FireEmerald    schedule 03.12.2019

Kubernetes в Windows раньше использовала ping

cmd /c ping -t localhost

Это приведет к выводу большого количества ненужного вывода, так что хорошее улучшение должно быть

cmd /c ping -t localhost > NUL

Теперь Kubernetes запускает собственный pauseloop.exe двоичный.

person user7610    schedule 25.05.2019