"Docker load" на пользовательских изображениях создает <none> имя изображения

Когда я использую docker load Команда создала изображение с <none> тег.
Сейчас я покажу, как его воспроизвести.

Я создал Dockerfile:

cat > chacha <<EOF
FROM alpine:latest
ENTRYPOINT sh;
WORKDIR /home
EOF  

Построить это:

docker build -t chacha -f chacha .

Экспортировал его в файл:

image_id=`docker images chacha -q`
docker save $image_id -o myimage.tar

Удалить старое изображение:

docker rmi chacha

Когда я загружаю экспортированное изображение:

docker load --input myimage.tar

Название изображения выглядит как <none>:

# docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
<none>                                                 <none>              ff35873eb8df        4 minutes ago       4.41 MB

1 ответ

Решение

Это поведение по умолчанию, когда вы сохраняете изображение, используя его идентификатор изображения. Идентификатор изображения может иметь несколько тегов.

Например, в вашем случае выполнение docker tag $image_id chacha2 создаст новый образ chacha2 с тем же идентификатором изображения, что и исходное изображение.

Таким образом, при сохранении изображения на основе его идентификатора изображения Docker-демон не знает, какие данные изображения вы хотите экспортировать, и, наконец, сохраняет изображение без каких-либо сведений о репозитории / тегах.

Что вам, возможно, нужно docker save chacha > myimage.tar, Когда вы загружаете этот tar, импортированное изображение будет содержать информацию о хранилище / теге вашего исходного изображения.

Больше:

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