Запустите уже развернутый и прерванный контейнер в экземпляре контейнера Azure.
Как запустить контейнер в ACI Container Group, который уже развернут и находится в завершенном состоянии. Это можно сделать с помощью какой-то автоматизации или из логического приложения? Команды CLI показывают перезапуск контейнера z, но не запуск. Кажется, что коннекторы логических приложений каждый раз вытягивают изображение и запускают его. Нет ли возможности просто запустить существующий завершенный контейнер?
2 ответа
Как только контейнер завершен, вы не можете выполнить начальное действие. Вы можете развернуть новый контейнер, который будет извлекать образ, который вы установили, и запускать любое настроенное приложение.
Если контейнер находится в состоянии сбоя, вы можете выполнить команду перезапуска, но результаты в основном те же. Он повторно инициализирует контейнер, извлекает изображение и развертывает приложение.
Вот как работают контейнеры. Они не являются постоянным элементом, таким как виртуальная машина. Они предназначены для удаления, добавления и обновления по мере необходимости.
Это болевая точка Azure. Хотя экземпляры контейнеров не предназначены для перезапуска после остановки, группы контейнеров, в которых они находятся, должны быть достаточно гибкими для перезапуска. И у них есть такая возможность — в документах Microsoft Azure об этом просто не говорится. Вам осталось разобраться.
Основная проблема заключается в том, что при развертывании обновленного экземпляра контейнера в существующей группе контейнеров в Azure и завершении работы соответствующего экземпляра контейнера в Azure развертывание не запустит автоматически новую версию этого экземпляра контейнера для повторного запуска.
В моем случае я планирую развертывание контейнера из приложения логики с помощью соединителя «Создать или обновить группу контейнеров» (поскольку Microsoft удалила облачный планировщик ранее в этом году, вынуждая людей использовать приложения логики для таких простых задач, как этот). Если я удалю существующую группу контейнеров и запущу приложение логики, оно автоматически запустит экземпляр контейнера Docker, как и ожидалось. Когда я повторно запускаю его в последующие разы, он не может запустить контейнер, потому что предыдущий экземпляр внутри группы контейнеров находится в прекращенном состоянии. Решение состоит в том, чтобы добавить дополнительное действие «Запустить контейнеры в группе контейнеров», которое запустит экземпляры контейнера заново и позволит им работать до завершения (в этот момент мои контейнеры снова завершаются, потому что они являются одноразовыми заданиями ETL).