Инструмент Skopeo для docker изображений - переназначение - PullRequest
0 голосов
/ 09 января 2020

Я загружаю docker изображение с помощью инструмента Skopeo на машине linux - Работает успешно

skopeo copy --src-creds uname:pwd docker://url/image:tag dir:/home/image

Я пытаюсь изменить тег этого изображения. В настоящее время тег изображения является «последним», который необходимо изменить как «новый»

. Можно ли использовать skopeo tool , мы можем повторно пометить это изображение, а затем загрузить в реестр с новым tag.

Обратите внимание: Docker не разрешается устанавливать на linux машину, так как для этого нужен root пользователь, который не авторизован для нашего проекта.

Я пытаюсь описать ниже последовательность действий

  1. Скачать изображение из репозитория с тегом «последний» - рабочий
  2. Изменить тег изображения на «новый» и загрузить обратно в репозиторий - рабочий
  3. Скачать изображение с новым тегом «new» - выдает ошибку.

PFB команды в последовательном порядке

skopeo copy --src-creds name:pwd docker://url/alpine:latest dir:/home/alpine

skopeo copy --dest-creds uname:pwd dir:/home/alpine docker://url/alpine:new 

skopeo copy --src-creds uname:pwd docker://url/alpine:new dir:./alpinenew
**FATA[0004] Error initializing source docker://url/alpine:new: Error reading manifest new in url/alpine: manifest unknown: manifest unknown**

Как исправить эту ошибку.

1 Ответ

0 голосов
/ 09 января 2020

Вам не нужно «ставить метку» на изображение. Вы устанавливаете тег при загрузке изображения в удаленный репозиторий. Например, чтобы загрузить изображение как myusername/myimagename:sometag, я мог бы запустить:

skopeo copy dir:/home/image docker://myusername/myimagename:sometag

. Чтобы проиллюстрировать это, я могу загрузить изображение alpine следующим образом:

skopeo copy docker://alpine dir:./alpine

И затем загрузите это в мое собственное пространство имен с другим именем и тегом, подобным следующему:

skopeo copy dir:alpine docker://larsks/alpinetest:foo

То, что , кажется, прекрасно работает .

Затем я могу загрузить новый изображение, чтобы убедиться, что оно работает:

$ skopeo copy docker://larsks/alpinetest:foo dir:./alpinetest
Getting image source signatures
Copying blob e6b0cf9c0882 done
Copying config cc0abc535e done
Writing manifest to image destination
Storing signatures

Это прекрасно работает при использовании одного и того же имени изображения в обоих местах:

skopeo copy docker://larsks/alpinetest:foo dir:./alpinetest
skopeo copy dir:./alpinetest docker://larsks/alpinetest:bar

Этот добавляет новый тег к изображение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...