Docker - ошибка при извлечении в Centos (неверный заголовок tar) - PullRequest
0 голосов
/ 07 октября 2018
Docker version 18.06.1-ce, build e68fc7a
CentOS Linux release 7.5.1804 (Core)

Мой файл Docker

FROM node:8

Когда я выполняю - docker build -t my-image . я получил следующую ошибку

Sending build context to Docker daemon  44.03kB
Step 1/1 : FROM node:8
8: Pulling from library/node
f189db1b88b3: Extracting [==================================================>]  54.25MB/54.25MB
3d06cf2f1b5e: Download complete
687ebdda822c: Download complete
99119ca3f34e: Download complete
e771d6006054: Download complete
b0cc28d0be2c: Download complete
7225c154ac40: Download complete
7659da3c5093: Download complete
failed to register layer: ApplyLayer exit status 1 stdout:  stderr: archive/tar: invalid tar header

Есть подсказка?Любое предложение, что я могу сделать, чтобы это исправить?

У меня та же ошибка при запуске docker run -it ubuntu

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

если при извлечении tar возникает та же ошибка, извлеченное изображение действительно может быть повреждено.

комментирует проблему 15561 подсказка, что локально здание все еще работает.

0 голосов
/ 18 октября 2018

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

  • На удаленном сервере реестра
  • В пути
  • В памяти
  • На диске
  • По приложению

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

Версия docker достаточно недавняя, поэтому любые прошлые проблемы в ней уже давно исправлены.Существует только одна проблема при обработке tar-файла, связанная с очень большими слоями (более 8 ГБ), которая не относится к растягиваемому изображению.Обработка tar встроена непосредственно в docker, поэтому изменение или обновление двоичного файла tar не повлияет на docker.

Потенциально может возникнуть проблема с драйвером хранилища и внутренним устройством хранения.Переход с devicemapper на overlay2, если вы еще этого не сделали, будет хорошим первым шагом, если docker еще не установил по умолчанию (вы можете увидеть текущий драйвер хранилища в docker info и изменить его с помощью записи в / etc / docker /daemon.json).

Мое первое предположение в этом списке - часть "в пути".Так как запрос будет через https, это не будет из плохого пакета.Но виновником может быть прокси в сети, который перехватывает весь веб-трафик.Если у вас есть прокси, убедитесь, что докер настроен для входа и использования вашего прокси.Подробнее об этом см. https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

0 голосов
/ 17 октября 2018

Попробуйте распаковать ваш образ с: tar tvf yourarchive

Если ошибок нет, попробуйте обновить докер (если это возможно). Если есть ошибки, попробуйте восстановить ваш архив.

Похожая проблема описана есть

...