при загрузке докером пользовательских образов создается имя образа «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

person E235    schedule 28.01.2019    source источник


Ответы (1)


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

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

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

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

Более:

person leopal    schedule 28.01.2019