Подтвердить что ты не робот

Как я могу использовать локальное изображение в качестве базового изображения с файлом docker?

Я работаю над файлом docker. Я просто понял, что использую FROM с индексированными изображениями все время.

Так интересно:

  • Как я могу использовать одно из моих локальных (пользовательских) изображений в качестве моего базового изображения (FROM) без pushing его в индекс?
4b9b3361

Ответ 1

Вы можете использовать его, не делая ничего особенного. Если у вас есть локальное изображение с именем blah, вы можете сделать FROM blah. Если вы делаете FROM blah в своем файле Docker, но не имеете локального образа с именем blah, то Docker попытается извлечь его из реестра.

Другими словами, если файл Docker делает FROM ubuntu, но у вас есть локальное изображение с именем ubuntu, отличное от официального, ваше изображение переопределит его.

Ответ 2

Проверено: он хорошо работает в докер 1.7.0.

Btw, не указывайте --pull=true при запуске команды docker build:

if you want use the local image as the base image, please without the option --pull=true, --pull=true will always attempt to pull a newer version of the image.

https://github.com/docker/docker/issues/14943

Ответ 3

У меня нет репутации, чтобы добавить комментарий (@defreitas), добавив его в качестве ответа. У вас могут быть символы на ваших изображениях. Предположим, у вас есть локальное изображение (а не локальный реестр) с именем centos-base-image с тегом 7.3.1611.

docker version 
      Client:
       Version:         1.12.6
       API version:     1.24
       Package version: docker-common-1.12.6-16.el7.centos.x86_64
       Go version:      go1.7.4

      Server:
       Version:         1.12.6
       API version:     1.24
       Package version: docker-common-1.12.6-16.el7.centos.x86_64
       Go version:      go1.7.4

docker images
 REPOSITORY            TAG
 centos-base-image     7.3.1611

Dockerfile

FROM centos-base-image:7.3.1611
RUN yum -y install epel-release libaio bc flex

Результат

Sending build context to Docker daemon 315.9 MB
Step 1 : FROM centos-base-image:7.3.1611
  ---> c4d84e86782e
Step 2 : RUN yum -y install epel-release libaio bc flex
  ---> Running in 36d8abd0dad9
...

В приведенном выше примере FROM извлекает локальное изображение, вы можете предоставить дополнительные инструкции для извлечения изображения из вашего настраиваемого реестра (например, FROM localhost:5000/my-image:with.tag). См. https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registry и https://docs.docker.com/registry/#tldr

Наконец, если ваше изображение не будет разрешено при предоставлении имени, попробуйте добавить тег к изображению при его создании.

https://docs.docker.com/engine/reference/commandline/commit/

Эта форма описывает аналогичную проблему

https://github.com/moby/moby/issues/8975

Опуская определенный тег, докер будет искать изображение с тегами "последнее", поэтому либо создайте образ с помощью последнего тега, либо измените свой ОТ

Добавлены вышеупомянутые ссылки в виде блоков кода, потому что у меня нет достаточного количества сообщений для размещения более двух ссылок...;)