我想将我的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搜索,但我仍无法弄清楚“伸展”,“苗条”,“苗条”和高山之间的区别。帮帮我?
带有Dockerfiles的Github存储库在这里,但是它非常动态并且不易阅读:
https://github.com/docker-library/python
自述文件也位于此处:
https://github.com/docker- library/docs/tree/master/python
看起来有关的信息stretch确实丢失了。如果它被意外删除,即使在git版本历史中也找不到。
stretch
我创建了一个问题: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的角度来看):
https://www.turnkeylinux.org/blog/alpine-vs-debian
https://nickjanetakis.com/blog/the-3-biggest-wins-when-using-alpine-as-a-base-docker-image
根据我有限的经验,最明显的区别是aptvs. apk和GNU libc6 vs. musl libc。而且Alpine使用busybox而不是许多系统命令的完整版本。
apt
apk
更新:许多带有已编译二进制代码的Python轮子都可以与基于Debian的图像一起使用,但必须pip install针对基于Alpine的图像进行重新编译(由)。在这些情况下,我建议使用基于Debian的图像。
pip install