Рейтинг:1

Как узнать, когда Docker Desktop запустился в сценарии PowerShell?

флаг je

Я хочу написать сценарий PowerShell, который создаст несколько запущенных контейнеров докеров при загрузке машины. Проблема, с которой я сталкиваюсь, заключается в том, что, несмотря на com.docker.service служба запущена, серверная часть для Docker Desktop (я полагаю, WSL2) все еще готовится.

Я могу вручную воссоздать это поведение, запустив докер версия или подобное при запуске системы. Он покажет:

ошибка во время подключения: в конфигурации демона по умолчанию в Windows клиент Docker должен запускаться с повышенными привилегиями для подключения.: Получите «http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json»: open //./pipe/docker_engine: Система не может найти указанный файл.

Однако через пару минут (после запуска бэкенда) команда начнет работать:

Клиент:
 Облачная интеграция: v1.0.22
 Версия: 20.10.11
 Версия API: 1.41
 Версия Go: go1.16.10
 Коммит Git: dea9396
 Построен: Чт 18 Ноя 00:42:51 2021
 ОС/архив: windows/amd64
 Контекст: по умолчанию
 Экспериментальный: правда

Как я могу надежно дождаться готовности Docker Desktop, прежде чем пытаться запускать контейнеры? Я подозреваю, что решение может заключаться в ожидании файла канала или аналогичного, а не службы.

флаг cn
Вы можете проверить код возврата команды докера в цикле (со сном), пока не получите 0 обратно
флаг je
@M_dk Я гораздо лучше знаком с Bash, правильно ли я предполагаю, что команды Windows имеют коды выхода, такие как команды Bash?
флаг cn
Да, посмотрите https://stackoverflow.com/questions/50200325/returning-an-exit-code-from-a-powershell-script

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.