如何将多个图像合并为一个?

问题描述:

我有几个图像(第三方),如设置一个MySQL,建立一个通用的PHP应用程序环境,建立第三方工具。如何将多个图像合并为一个?

我想打一个Dockerfile /泊坞图像,结合这两个影像,然后运行一些命令

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

他们都有相同的父母形象吗?如果不是,那么你所要求的是不可能的 – alkis

+0

有时是的,(父之前的层)和没有 –

+1

我已经发布了一个答案,但正如你所理解的,你不能合并依赖于不同操作系统或不同版本相同的OS – alkis

你可以把它们连。你可以找到更多在这里

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

从上面的链接采取上述SvenDowideit

虽然在一般

## 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 . 

笔者,这是一个不好的做法,有一个以上的在同一个容器上运行进程。

+0

你至少可以指出你所指的评论,那是一条长长的线索 –

+0

这是第二个评论。更新了答案 – alkis

+0

虽然有人应该阅读那里的大部分评论 – alkis

由于从秒和第三图像的依赖性可以从第一图像的依赖性冲突,我不知道认为码头能够支持它。

我想唯一的选择是从他们的1开始你的形象的再装/ 2个其他运行中的所有步骤:

FROM imageA 
RUN .... commands for imageV 
RUN .... commands for imageX