我想基于Centos8构建一个docker镜像。在此图像中,我想安装版本3.7.7的Python。这样的Python映像已经存在于dockerhub中。
如何使用两个基本映像来构建新的docker映像?
From python:3.7.7
# which files and foldes do I have to copy to my new docker image?
From centos:8
LABEL maintainer myself@test.com
如果不可能,那是从头开始构建python版本的最佳方法Link-此解决方案的问题是docker映像很大。
答案 0 :(得分:0)
TL; DR通常不能在一个图像上同时包含两个图像(原因说明如下)
TL; DR解决方案列表:
长回答:
使用FROM imagename
等同于下载一个预先构建的映像,然后在其上添加当前Dockerfile中的指令。
图像基本上是文件系统的快照。
其中之一是容器的快照,该容器可能已经安装了Linux发行版并安装了Python。
另一个是另一个Linux发行版的文件系统的快照,其中包含所有内容。
您只是不能混合它们,因为图像不仅是Python。 Python需要在运行的Linux内核旁边运行,将它们混合在一起几乎可以肯定会破坏它们。因为它们具有冲突的文件以及在适当位置运行它们的方式。
但是您可以更改一个快照以从中创建另一个快照,例如,可以获取CentOS映像并使用程序包管理器安装Python,然后可以从其获取快照并将其用作工作Docker容器。