загрузка докера: проверьте актуальность

Мое приложение работает в контейнере Docker, и я использую автономное развертывание, в котором я

  1. docker save изображение на моей машине разработки и связать его с приложением
  2. вручную перенести пакет tarfile и мое приложение через USB-накопитель
  3. docker load это на целевой машине (цель не подключена к сети)

Шаги 1 и 3 выполняются сценариями BASH (Linux).

Обновления приложений часто не требуют обновления образа Docker, и поскольку docker save а также docker load являются достаточно медленными и ресурсоемкими, я бы по возможности избегал этих шагов.

Есть ли способ узнать, есть ли tar'ed изображение равно изображению IMAGE:TAG на моем демоне Docker?

я пытался skopeo inspect docker-archive:... vs. docker image inspect ...вывод для сравнения, но, похоже, нет идентификатора изображения для сравнения. Я видел, что уровни RootFS равны, но это надежная гарантия, что я могу пропуститьdocker save / docker load?

1 ответ

Docker до сих пор не поддерживает эту функцию, но я решил аналогичную проблему, используя bash, чтобы "взломать его"

что я сделал:

  1. Я сохранил образ докера, например "mymongo: latests", в файл tar, позвольте ему называть его x.tar

  2. Я автоматически запустил свой скрипт и извлек из tar файл "repositories" 3, который на самом деле содержит json, например

    {"mymongo":{"latest":"someId"}}

  3. проанализируйте это как json, потому что myMongo - это изображение, а последнее - это тег

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