Moby: Команда Docker, чтобы проверить, устарел ли локальный образ контейнера?

Созданный на 10 февр. 2017  ·  3Комментарии  ·  Источник: moby/moby

Скажем, сравнил с удаленным образом на dockerhub. Я искал канонический способ сделать это, но все, что мне удалось найти, - это скрипты нестабильного bash и тому подобное. Нет официального рекомендованного способа выполнения такой проверки. Вопрос о переполнении стека также пока не дал окончательных ответов. Ни у кого нет подобного вопроса .

Возможность проверить, устарел ли локальный образ по сравнению с его удаленным, очень полезен для сред разработки и промежуточных сред (docker-cloud даже позволяет вам настроить для этого контейнеры автоматического обновления). Я знаю, что существует возможность использования веб-перехватчика для запуска повторного извлечения после успешной сборки изображения, но, допустим, я хочу иметь возможность инициировать проверку с моего сервера, а не заставлять его слушать.

Правильно ли я предполагаю, что в настоящее время недоступна команда docker для выполнения этой проверки, или я пропустил очевидное, собственное решение этой проблемы для докеров?

aredistribution areimages kinquestion

Самый полезный комментарий

Однако есть разница между «слепым обновлением» и простым получением уведомления об изменении удаленного образа (с использованием того же тега), чтобы вы могли начать сборку и процесс контроля качества.

Все 3 Комментарий

Нет, в настоящее время нет встроенной опции, позволяющей проверить, не устарело ли изображение. Автоматическое обновление контейнеров - это то, что действительно различается в зависимости от варианта использования; «слепое» обновление до последней версии нетривиально. Например, some-image:latest может привести к _ полностью_ другому изображению (например, ubuntu:latest относится к последней версии "LTS", которая в какой-то момент переключилась с 14.04 на 16.04), в то же время some-image:1.2.3 "выглядит" как тег SemVer (ish), но нет никакой гарантии, потому что автор изображения должен решить как схему "тега", так и то, что она означает (в основном, теги - это просто бесплатные форма «этикетка»).

По этой причине рекомендуется использовать неизменяемый идентификатор для ваших контейнеров (например, ubuntu<strong i="9">@sha256</strong>:aabbbcccddd ); это позволяет вам _тестировать_ именно ту версию образа, которую вы используете, и иметь гарантию, что это _ та же_ версия, которая была протестирована в вашем процессе контроля качества.

Сказав вышесказанное, есть несколько вариантов;

  • при использовании docker compose , вы можете docker-compose pull получить последнюю версию всех изображений, используемых в вашем стеке компоновки
  • когда _building_ images, вы можете docker build --pull ..... принудительно извлечь изображение, определенное в FROM перед запуском сборки
  • при использовании услуг; docker service update --force --image foo:bar <servicename> разрешает последнюю версию указанного изображения foo:bar и "прикрепляет" все экземпляры службы к этой версии.

Надеюсь, это ответит на ваш вопрос. Помните, что трекер проблем GitHub предназначен не для использования в качестве форума общей поддержки, а для сообщений об ошибках и запросов функций. Для других типов вопросов рассмотрите возможность использования одного из;

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

Однако есть разница между «слепым обновлением» и простым получением уведомления об изменении удаленного образа (с использованием того же тега), чтобы вы могли начать сборку и процесс контроля качества.

Конечно. Стабильный механизм, с помощью которого можно обнаруживать обновления контейнера _ без повторной загрузки всего контейнера каждый день_, был бы потрясающим.

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги