从两个基本映像(centos和python)构建新的docker映像

2024-04-23 23:59:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想建立一个基于Centos8的docker映像。在这幅图中,我想安装版本为3.7.7的Python。dockerhub中已经存在这样的Python映像

如何使用这两个基本映像构建新的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映像太大


Tags: andtodockerfrom版本whichnewmy
1条回答
网友
1楼 · 发布于 2024-04-23 23:59:23

TL;您通常无法在一张图像上显示两张图像中的所有内容(原因如下所述)
TL;DR解决方案列表:

  1. 使用已经是CentOS并且安装了Python的基本映像,可能是this映像
  2. 从CentOS映像开始,在Dockerfile中使用包管理器安装Python
  3. 从CentOS映像开始,在Dockerfile中构建Python
  4. 只需在提供的发行版中使用Python即可

长答案:
使用FROM imagename相当于下载预构建的映像,然后在其上添加当前Dockerfile中的指令。 映像基本上是文件系统的快照。
其中之一是容器的快照,该容器可能安装了Linux发行版并安装了Python。
另一个是另一个Linux发行版的文件系统快照,其中包含所有内容。 你不能把它们混在一起,因为图像不仅仅是Python。Python只需要在一个正常工作的Linux内核旁边运行,将它们混合在一起几乎肯定会破坏它们。因为它们有冲突的文件和运行它们的方式。
但是您可以更改一个快照以生成另一个快照,例如,您可以拍摄CentOS的图像并使用package manager安装Python,然后可以从中获取快照并将其用作工作Docker容器

相关问题 更多 >