一尘不染

使用docker时virtualenv是否达到目的(在生产中)?

docker

对于开发,当涉及到依赖项时,我们使用virtualenv进行隔离开发。从这个问题来看,似乎建议在virtualenv中部署Python应用程序。

现在,我们开始使用docker进行部署。这提供了一个更隔离的环境,因此我质疑docker容器内virtualenv的使用。对于单个应用程序,我不认为virtualenv有目的,因为docker已经提供了隔离。在将多个应用程序部署在单个docker容器上的情况下,我确实认为virtualenv具有用途,因为这些应用程序可能具有冲突的依赖关系。

在Docker容器中部署单个应用程序时应使用virtualenv吗?

docker应该包含多个应用程序还是每个容器仅包含一个应用程序?

如果是这样,那么在部署具有多个应用程序的容器时是否应该使用virtualenv?


阅读 421

收藏
2020-06-17

共1个答案

一尘不染

Virtualenv是在docker之前创建的。今天,由于以下原因,我倾向于docker而不是virtualenv:

  • Virtualenv仍然意味着消费您产品的人们需要下载鸡蛋。有了docker,他们得到了“已知有效”的东西。没有任何附加条件。
  • Docker的功能远不止virtualenv(例如,当您拥有需要不同Python版本的产品时,创建一个干净的环境)。

Docker的主要缺点是对Windows的支持不佳。对于Windows 10版本,情况发生了变化。

至于“每个容器有多少个应用程序”,通常的策略是1。

2020-06-17