合并两个泊坞窗图像

时间:2016-09-26 20:36:04

标签: docker dockerfile

我希望用docker建立一些生物信息学分析。

我找到了两个我想使用的码头图片:

  1. jupyter /数据科学笔记本
  2. Bioconductor的/ devel_base
  3. 我已成功独立运行这些图像,但我不知道如何将它们合并在一起。

    是否可以合并两个泊坞容器?或者你从一个开始,然后手动安装另一个的功能?

3 个答案:

答案 0 :(得分:7)

您不能只合并图像。您必须根据所需的每个图像中的内容重新创建自己的图像。您可以下载这两个图像并为每个图像重新创建Docker文件:

docker history --no-trunc=true image1 > image1-dockerfile
docker history --no-trunc=true image2 > image2-dockerfile

将image1和image2替换为您要查看其历史记录的图像。在此之后,您可以使用这些dockerfiles来构建您自己的图像,这是两者的组合。

美中不足的是,任何ADD或COPY命令都不会显示复制的内容,因为您无权访问创建原始图像的本地文件系统。如果运气没有必要,或者您可以从图像本身中获取任何缺失的部分。

答案 1 :(得分:0)

从一个开始,然后手动安装另一个的功能。合并将是复杂的,太多的未知数。

答案 2 :(得分:0)

如果要从两个映像之一中挑选特定的文件或目录,则可以创建一个新的Dockerfile,该文件构建其中的FROM并使用以下命令从另一个复制特定路径COPY's --from option。例如:

FROM bioconductor/devel_base
COPY --from=jupyter/datascience-notebook /path/to/something-you-want /path

但是,对这些图像的快速调查显示,在这种特定情况下,没有很多东西可以轻易被挑选出来。

或者,您可以只查看原始Dockerfile并将其自己组合:

幸运的是,它们都基于一个基于APT的发行版:Ubuntu和Debian。因此,如果您选择任一基本映像,大多数apt-get install命令应该可以正常工作。