本文只讨论 Linux x86平台的 python docker 镜像,不讨论 windows、 arm等其他平台。目前 Python 官方 docker 镜像有两个,分别是基于 debian 和 alpine,先说结论,能用 debian,就不要用 Alpine Linux。
Alpine Linux
Alpine Linux 是一个基于 busybox 的轻量级 Linux 发行版,他的口号是 Small、Simple、Secure。也就是小,简单和安全。我在刚开始接触 docker 的时候,Python 镜像用的就是 Alpine ,被他只有 40M 大小的镜像所吸引,时隔两年,现在看来,他仍然有很多的优点。
优点:
-
镜像小,节省空间
-
镜像自带常用命令行工具,比如 vim,file,ps 等命令;
-
文件高亮,目录,可执行文件一目了然
-
tab 补齐
-
安全?简单?其他家好像也不差吧。
但是在面怼的工作越来越复杂之后,就发现 Alpine Linux 不够用了,最重要一点,他是基于 busybox ,而不是常规的 Linux 发行版,导致一些 python 的库安装起来很麻烦。
缺点:
-
对 python 第三方库支持不好,常常需要自己动手打 whl 包;
-
对 C 语言的 Python 库支持不好,需要自己手动编译,比如 gevent, 加密库 Crypt