Python 3.7 Docker映像

Dav*_*arb 15 python docker

我想将我的python应用程序码头化。我去了Docker中心,发现那里有很多听起来很不错的基本映像。

3.7.0-stretch, 3.7-stretch, 3-stretch, stretch (3.7/stretch/Dockerfile) 3.7.0-slim-stretch, 3.7-slim-stretch, 3-slim-stretch, slim-stretch, 3.7.0-slim, 3.7-slim, 3-slim, slim (3.7/stretch/slim/Dockerfile) 3.7.0-alpine3.8, 3.7-alpine3.8, 3-alpine3.8, alpine3.8, 3.7.0-alpine, 3.7-alpine, 3-alpine, alpine (3.7/alpine3.8/Dockerfile) 3.7.0-alpine3.7, 3.7-alpine3.7, 3-alpine3.7, alpine3.7 (3.7/alpine3.7/Dockerfile)

尽管我尝试了Google搜索,但我仍无法弄清楚“伸展”,“苗条”,“苗条”和高山之间的区别。救命?

Mes*_*ssa 14

带有Dockerfiles的Github存储库在这里,但是它非常动态并且不易阅读:

https://github.com/docker-library/python

自述文件也位于此处:

https://github.com/docker-library/docs/tree/master/python

看起来有关的信息stretch确实丢失了。如果它被意外删除,即使在git版本历史中也找不到。

我创建了一个问题:https : //github.com/docker-library/python/issues/343

Stretch是Debian 9的代号-当前是稳定版本(直到2019-07-06,当Debian 10 Buster发行时)。“ oldstable” Debian 8的代号为Jessie

https://wiki.debian.org/Debian发布

我个人的建议是使用简约的Alpine图像,如果某些方法不起作用,则退回Debian图像:)

Debian与Alpine的比较(如果可能,从Docker的角度来看):

根据我有限的经验,最明显的区别是aptvs. apk和GNU libc6 vs. musl libc。而且Alpine使用busybox而不是许多系统命令的完整版本。

更新:许多带有已编译二进制代码的Python轮子都可以与基于Debian的图像一起使用,但是必须pip install针对基于Alpine的图像进行重新编译(由)。在这些情况下,我建议使用基于Debian的图像。

  • 截至 2019 年 7 月,稳定的 Debian 版本是 Debian 10 代号“buster”。因此,就兼容性和稳定性而言,最好的选择是“python:3.7-buster”。对于 Python 3.8,只有破坏图像,而不再有拉伸图像。 (3认同)
  • 所以如果我是从python:3.7做的,我是否正在使用ubuntu?高山?哪个操作系统? (2认同)
  • 在https://hub.docker.com/_/python上的@ Mr-Programs中,您会看到`3.7`是带有“ 3.7.3-stretch”和`3.7.3-windowsservercore-1809`的“共享标签”(和2个其他windowsservercore)。因此,在Linux上的Docker中,“ python:3.7”将使用“ 3.7.3-stretch”-这是Debian当前的稳定版本(其代号为“ Stretch”)。 (2认同)