Вопрос или проблема
Недавно я столкнулся с проблемой, что не мог увидеть только что загруженное (успешно) изображение в docker images
.
Из tail -n 100 -f ~/AppData/Local/Docker/log/vm/dockerd.log
я смог вывести несколько строк, подобных:
time="2024-10-07T11:25:11.659163232Z" level=debug msg="встретился с неизвестным типом application/vnd.in-toto+json; дочерние элементы могут не быть загружены"
time="2024-10-07T11:25:11.659437548Z" level=debug msg="встретился с неизвестным типом application/vnd.in-toto+json; дочерние элементы могут не быть загружены"
time="2024-10-07T11:25:11.659719397Z" level=debug msg="встретился с неизвестным типом application/vnd.in-toto+json; дочерние элементы могут не быть загружены"
time="2024-10-07T11:25:11.660064740Z" level=debug msg="встретился с неизвестным типом application/vnd.in-toto+json; дочерние элементы могут не быть загружены"
К этому я не смог найти точного объяснения.
Мне удалось изменить тег загруженного изображения, просмотреть его, а также найти его для загрузки – хотя реестр жаловался на EOF.
Не знал, что с этим делать.
Онлайн-поиск не дал много информации, но нашел несколько других проблем с in-toto
и, наконец, этот баг в moby.
Я попробовал отключить хранилище изображений containerd.
Будьте осторожны, вы не сможете получить доступ к ранее доступным изображениям.
После этого пере-загрузка изображения привела к ожидаемому поведению.
Изображение стало видно в docker images
.
Я также смог выполнить push
.
Жду замечаний, если я совершенно не прав.
Не стесняйтесь обращаться.
Ответ или решение
Проблема, с которой вы столкнулись — это ситуация, когда вы не видите свежеподтянутые образы в выводе команды docker images
, несмотря на то что они успешно загружены. Давайте рассмотрим возможные причины и решения для этой ситуации.
Возможные причины:
-
Проблемы с контейнером или образом: Иногда образы могут быть скачаны, но по какой-то причине не отображаются из-за ошибок или несовместимости в системе.
-
in-toto
и другие типы образов: В вашем лог-файле есть сообщения об "неизвестном типе application/vnd.in-toto+json", которые указывают на наличие аспектов безопасности в процессе создания образа. Эти элементы могут вызывать проблемы с отображением образов вdocker images
. -
Проблемы с кэшированием: Docker использует механизмы кэширования, которые иногда могут быть нестабильными и не обновляться должным образом.
Рекомендованные действия:
-
Проверка логов: Вы уже сделали шаг в правильном направлении, просмотрев логи Docker для выявления сообщений об ошибках. Обратите внимание на любые другие предупреждения или ошибки, которые могут указывать на проблемы с загрузкой образов.
-
Отключение хранилища образов containerd: Как вы уже заметили, отключение состояния образов containerd может помочь разрешить проблемы с видимостью образов. Однако имейте в виду, что после этого вы не сможете получить доступ к ранее загруженным образам. Если вы решите попробовать этот метод:
- Откройте Docker Desktop.
- Перейдите к настройкам Docker.
- Найдите опцию, связанную с хранилищем контейнеров и отключите её.
-
Повторная загрузка образа: После выполнения шагов выше попробуйте снова получить образ с помощью команды
docker pull <имя_образа>
. Проверяйте выводdocker images
после этого, чтобы убедиться, что образ стал видимым. -
Тестирование другой версии Docker: Если проблема продолжается, возможно, стоит рассмотреть обновление Docker до последней версии или даже откат к более стабильной, если проблема возникла после обновления.
-
Проверка сетевых подключений к реестру: Если вы столкнулись с ошибкой EOF при попытке отправить образ в реестр, убедитесь, что у вас есть стабильное подключение к интернету. Попробуйте протестировать ваше подключение с помощью других команд Docker или ping.
Заключение:
Если после выполнения всех вышеперечисленных шагов проблема не исчезнет, возможно, стоит обратиться за помощью на официальные форумы или в сообщество Docker. Обязательно предоставьте все подробности о вашей среде и окружении при запросе помощи, чтобы специалистам было проще вас направить. Надеюсь, эти советы помогут вам разобраться с вашей проблемой.