Нет места для вытягивания изображения докера с такой же меткой в ​​GCP

Мы используем группу экземпляров для запуска Docker-контейнеров и настраиваем шаблон экземпляра для использования изображения как

us.gcr.io/my-project/my-image:latest,

Когда мы вносим какие-либо изменения в изображение докера, мы помечаем его latest и запустить:

gcloud compute instance-groups managed rolling-action restart my-instance-group --region us-central1,

Это работало нормально для начальных изменений изображения, группа экземпляров vms будет извлекать новые изображения и переопределять предыдущие изображения. Но после внесения дополнительных изменений начинает выдавать ошибку:

no space left on device

По сути, GCP не обрабатывает устаревшие изображения, он будет хранить копию старого изображения. Но в случае "непрерывного обновления для vms, оптимизированных для контейнеров", можем ли мы получить лучшую обработку для этих вариантов использования? Мы действительно не хотим ssh в хост и запустить docker image prune -a очень часто вручную.

1 ответ

Решение

Вы можете добавить эту строку в начале вашего скрипта запуска [1].

docker image prune -a

Это удалит все неиспользуемые изображения, прежде чем вытащить новое изображение позже в вашем скрипте запуска. Обратите внимание, что перезагрузка необходима для запуска сценария запуска.

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

[1] https://cloud.google.com/compute/docs/startupscript

Другие вопросы по тегам