最适合Python开发的Docker镜像

原文:https://snarky.ca/what-are-the-popular-docker-images-for-python/

由于开发一个python程序时需要依赖大量的三方库包,且python2和3本身就有互不兼容的地方,我们往往需要一个隔离的环境,来避免版本影响造成的bug。 传统的做法大多数人可能会选择virtualenv来隔离,但是它有很多明显的缺点:

1)无法提供完全的隔离

2)如果不想在正式环境中使用,它就会造成差异,而使用docker运行则解决了这个问题。

但现在对于python开发运行,最流行的docker镜像是什么呢,我不知道答案,所以我在twitter上 发起了一个调查:https://twitter.com/brettsky/status/925402634378395648

  1. Alpine: 54%
  2. Stretch (full or slim): 20%
  3. Jessie (full or slim): 15%
  4. Windows Server Core: 11%

这个结果令我惊讶,我没想到Alpine排名这么高,因为一是大家其实并不熟悉这个系统,第二是现在Alpine好像并不能兼容其他系统的wheel。

在twitter上也有人说,python在Alpine Linux的运行速度不如Debian,因为python依赖的musl没有被优化过,我不知道这是不是普遍现象,还是仅仅那些人的特殊情况。

有人说我这个投票里面没有放Anaconda ,我就把它放进去重新做了一次,结果如下:

  1. anaconda3:38%
  2. miniconda: 30%
  3. Alpine: 24%
  4. other: 8%

现在结果向Anaconda倾斜了,Anaconda的创始人Peter Wang 转推了这次投票,但是尽管如此,Alpine的比例仍然很高。我也很惊讶miniconda的占比,尽管它比Anaconda image更小,更轻量级,不过除非他有很好的表现,我现在不太鼓励用miniconda。

这个调查并不是很正规,但对于核心开发者,提供一个基于Alpine的buildbot 的确是有用的,而对于python用户,可以考虑下用用Alpine了

 

Written by

说点什么

欢迎讨论

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒