Очистка старых образов Docker в кластере Service Fabric - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть кластер Service Fabric с 5 виртуальными машинами Windows.Я разворачиваю приложение, которое представляет собой набор из 10 разностных контейнеров.Каждый раз, когда я внедряю, я увеличиваю тег контейнеров с номером сборки.Например:

foo.azurecr.io/api:50
foo.azurecr.io/web:50

Наша система сборки непрерывно создает каждый сервис, отмечает его, передает его в Azure, увеличивает все образы в файле ApplicationManifest.xml и затем развертывает приложение в Azure.Вероятно, мы создаем новую версию несколько раз в день.

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

Мой вопрос: Существует ли стандартный способ очистки образов Docker?Прямо сейчас, единственная идея, которую я имею, - это создать какую-то задачу Windows Scheduler, которая запускает docker image prune --all каждый день или что-то в этом роде.Однако в какой-то момент мы хотим иметь возможность создавать новые виртуальные машины по мере необходимости, поэтому я бы предпочел, чтобы каждая виртуальная машина была «стандартным» образом.Другая идея заключается в том, чтобы каждый раз использовать один и тот же тег, такой как api:latest и web:latest.Однако тогда мне нужно было бы найти способ заставить каждую виртуальную машину выдать команду docker pull для получения последней версии образа.

Кто-нибудь раньше решал эту проблему?

1 Ответ

0 голосов
/ 15 ноября 2018

Вы можете настроить PruneContainerImages на True. Это позволит среде выполнения Service Fabric удалить неиспользуемые образы контейнеров. См. это руководство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...