2016-04-22 2 views
4

У меня есть несколько изображений (сторонних лиц), которые, например, устанавливают mysql, настраивают общую среду приложений php, настраивают инструменты сторонних разработчиков.Как объединить несколько изображений в один?

Я хочу, чтобы сделать изображение Dockerfile/докер, который сочетает в себе оба эти изображения, а затем запускает еще несколько команд

imageA -- 
      \ 
imageV -- ---> sharedImageA..X 
      /
imageX -- 
+0

Все ли они имеют одно и то же родительское изображение? Если нет, то то, что вы просите, невозможно. – alkis

+0

Иногда да, (родитель для слоя раньше) и нет –

+1

Я отправил ответ, но, как вы понимаете, вы не можете комбинировать изображения, которые зависят от разных ОС или другой версии то же ОС – alkis

ответ

2

Вы можете приковать их. Вы можете найти больше здесь

https://github.com/docker/docker/issues/3378#issuecomment-31314906

Взятые из приведенной выше ссылке

## Dockerfile.genericwebapp might have FROM ubuntu 
cat Dockerfile.genericwebapp | docker build -t genericwebapp - 
## Dockerfile.genericpython-web would have FROM genericwebapp 
cat Dockerfile.genericpython-web | docker build -t genericpython-web - 
## and then this specific app i'm testing might have a docker file that containers FROM genericpython-web 
docker build -t thisapp . 

автор вышеSvenDowideit

В целом, хотя, это плохая практика, чтобы иметь более одного работающих на одном и том же контейнере.

+0

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

+0

Это второй комментарий. Обновлен ответ – alkis

+0

Хотя кто-то должен прочитать большинство комментариев там – alkis

1

Поскольку зависимости от секунд и третьего изображения могут конфликтовать с зависимостями от первого изображения, я не Думаю, докер сможет его поддержать.

Я думаю, единственный вариант, чтобы начать свой образ с 1 из них затем установить/запустить все шаги от 2 других:

FROM imageA 
RUN .... commands for imageV 
RUN .... commands for imageX 
Смежные вопросы