首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker和有什么区别?

Docker和有什么区别?
EN

Stack Overflow用户
提问于 2018-06-21 18:00:30
回答 4查看 50.2K关注 0票数 177

根据我对Docker的了解,它是一个用于虚拟环境的工具。在他们的行话中,它被称为“集装箱化”。这或多或少就是Python的虚拟环境所做的事情。但是,可以在Docker中使用virtualenv。那么,它是虚拟环境中的虚拟环境吗?我搞不懂这到底是怎么回事,有人能澄清一下吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-06-21 18:12:57

virtualenv只封装Python依赖项。Docker容器封装了整个操作系统。

使用Python,您可以轻松地在Python版本和依赖项之间切换,但是您只能使用主机操作系统。

使用Docker映像,您可以交换整个操作系统--在Ubuntu、Debian、Alpine甚至上安装并运行Python。

这里有Docker 图片,您可以想到各种操作系统和Python版本的组合,随时可以在安装了Docker的任何系统上使用。

票数 201
EN

Stack Overflow用户

发布于 2018-06-21 18:05:10

Python虚拟环境将只包含Python运行时,即python解释器和python库,而Docker则隔离整个系统(整个文件系统、所有用户空间库、网络接口)。因此,与虚拟环境相比,Docker更接近虚拟机。

票数 37
EN

Stack Overflow用户

发布于 2018-11-12 18:52:25

此外,还有一个将docker和venv结合起来的理由:一些装有python的OSs船安装了“OS-近”应用程序,例如,据我所知,它适用于debian (及其衍生产品)。python使开发人员能够发布一个python应用程序,该应用程序需要一个不同的解释器版本,而不会影响随附的操作系统python。现在,由于Docker‘隔离了整个OS’,这同样适用于Docker映像。因此,在我看来,如果需要/需要一个Docker映像,最好的做法是为您的python应用程序在Docker映像中创建一个venv。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50974960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档