如何编写 Dockerfile 将两个或多个 docker 映像合并为一个?

Posted

技术标签:

【中文标题】如何编写 Dockerfile 将两个或多个 docker 映像合并为一个?【英文标题】:How can I write a Dockerfile to merge two or more docker images into one? 【发布时间】:2020-11-06 18:29:26 【问题描述】:

我正在尝试将三样东西集成到一个 docker 映像中。

第一张图片是:https://github.com/opencv/gst-video-analytics

第二张图片是:https://github.com/domoritz/streamlit-docker

第三张图片是:http://blog.feabhas.com/2020/02/running-the-eclipse-mosquitto-mqtt-broker-in-a-docker-container/

有人可以指导我如何在 Windows 10 的 docker 上将这三个图像整合为一个吗?

Operating system: Windows 10 

Docker version 19.03.1

【问题讨论】:

参见例如Docker: Combine multiple images或Is there a way to combine Docker images into 1 container?。无法以编程方式将多个图像合并为一个。 【参考方案1】:

我对@9​​87654321@ 做了类似的事情。您基本上只包含所有三个 Dockerfile 文件中的所有行,但只有一个 FROM 行。然后在错误出现时开始纠正错误。您可能会遇到一堆错误,因为 FROM 行不一样(一个是 Ubuntu,一个是 Alpine,所以您必须将 apk add 更改为 apt-get install)。

您也可以考虑不为所有这些使用单个 Docker 容器并使用docker-compose。它可以让您同时启动多个容器并链接它们的网络以便于访问。

【讨论】:

以上是关于如何编写 Dockerfile 将两个或多个 docker 映像合并为一个?的主要内容,如果未能解决你的问题,请参考以下文章

如何安装多个或两个版本的 Terraform?

如何将docker-compose.yml转换为Dockerfile

Dockerfile编写注意事项

如何在 elisp 'if' 语句中编写多个语句?

构建redis-4.0.11-Dockerfile

如何编写最佳的Dockerfile