2014-12-30 2 views
0

Наследование изображения обычно выполняется, например, с помощью команды docker.Каковы различные способы реализации Docker FROM?

from centos7:centos7 

В моем случае, у меня есть Dockerfile, который я хочу использовать в качестве строителя базового изображения, и у меня есть два суб dockerfiles которые настроить этот файл.

Я не хотите совершить оригинальный dockerfile в качестве контейнера для dockerhub, так, например, я хотел бы сделать:

Dockerfile 
slave/Dockerfile 
master/Dockerfile 

Где раб/Dockerfile выглядит примерно так:

from ../Dockerfile 

Возможно ли это (или что-то подобное)? Или мне нужно фактически преобразовать файл Docker верхнего уровня в контейнер и зафиксировать его как изображение докер-хаба, прежде чем я смогу использовать его с помощью докера FROM.

ответ

2

Вам не нужно подталкивать изображения к док-автору, чтобы использовать их в качестве базовых изображений. Но вам необходимо создать их локально, чтобы они хранились в вашем локальном хранилище докеров. Вы не можете использовать изображение в качестве базового изображения на основе относительного пути, например, ../Dockerfile - вы должны создавать свои собственные изображения в других файлах изображений, существующих в вашем локальном репозитории.

Допустим, что ваша база изображения использует следующие (в Dockerfile):

FROM  centos7:centos7 
// More stuff... 

И когда вы ее построите вы используете следующее:

docker build -t my/base . 

Что здесь происходит, что изображения centos7:centos7 загружается с dockerhub. Затем ваше изображение my/base будет создано и сохранено (без управления версиями) в вашем локальном репозитории. Вы можете также обеспечить управление версиями для вашего Docker контейнера, просто предоставляя информацию о версии, как это:

docker build -t my/base:2.0 . 

Когда изображение было построено, как в приведенном выше примере может быть использован в качестве FROM -image построить другие суб- изображения, по крайней мере, на одном компьютере (тот же локальный репозиторий). Итак, в вашем суб-изображении вы можете использовать следующее:

FROM  my/base 

В принципе, вам ничего не нужно толкать. Все изображения находятся на вашем компьютере. Однако, если вы попытаетесь создать свой суб-образ без ранее созданного базового изображения, вы получите сообщение об ошибке.

Для получения дополнительной информации о строительстве и мечения, проверить документы:

Смежные вопросы