对于开发,当涉及到依赖项时,我们使用virtualenv进行隔离开发。从这个问题来看,似乎建议在virtualenv中部署Python应用程序。
现在,我们开始使用docker进行部署。这提供了一个更隔离的环境,因此我质疑docker容器内virtualenv的使用。对于单个应用程序,我不认为virtualenv有目的,因为docker已经提供了隔离。在将多个应用程序部署在单个docker容器上的情况下,我确实认为virtualenv具有用途,因为这些应用程序可能具有冲突的依赖关系。
在Docker容器中部署单个应用程序时应使用virtualenv吗?
docker应该包含多个应用程序还是每个容器仅包含一个应用程序?
如果是这样,那么在部署具有多个应用程序的容器时是否应该使用virtualenv?
Virtualenv是在docker之前创建的。今天,由于以下原因,我倾向于docker而不是virtualenv:
Docker的主要缺点是对Windows的支持不佳。对于Windows 10版本,情况发生了变化。
至于“每个容器有多少个应用程序”,通常的策略是1。