根据我对Docker的了解,它是一个用于虚拟环境的工具。在他们的行话中,它被称为“集装箱化”。这或多或少就是Python的虚拟环境所做的事情。但是,可以在Docker中使用virtualenv。那么,它是虚拟环境中的虚拟环境吗?我搞不懂这到底是怎么回事,有人能澄清一下吗?
发布于 2018-06-21 18:12:57
virtualenv只封装Python依赖项。Docker容器封装了整个操作系统。
使用Python,您可以轻松地在Python版本和依赖项之间切换,但是您只能使用主机操作系统。
使用Docker映像,您可以交换整个操作系统--在Ubuntu、Debian、Alpine甚至上安装并运行Python。
这里有Docker 图片,您可以想到各种操作系统和Python版本的组合,随时可以在安装了Docker的任何系统上使用。
发布于 2018-06-21 18:05:10
Python虚拟环境将只包含Python运行时,即python解释器和python库,而Docker则隔离整个系统(整个文件系统、所有用户空间库、网络接口)。因此,与虚拟环境相比,Docker更接近虚拟机。
发布于 2018-11-12 18:52:25
此外,还有一个将docker和venv结合起来的理由:一些装有python的OSs船安装了“OS-近”应用程序,例如,据我所知,它适用于debian (及其衍生产品)。python使开发人员能够发布一个python应用程序,该应用程序需要一个不同的解释器版本,而不会影响随附的操作系统python。现在,由于Docker‘隔离了整个OS’,这同样适用于Docker映像。因此,在我看来,如果需要/需要一个Docker映像,最好的做法是为您的python应用程序在Docker映像中创建一个venv。
https://stackoverflow.com/questions/50974960
复制相似问题