康达在容器内的用途是什么?

我见过许多DockerFile的例子,其中包含conda命令。还有预制的蟒蛇和迷你蟒蛇容器。我一定错过了什么

docker不是取代了virtualenv和conda吗?我的dockerfile中不应该有我所有的依赖项吗?我不明白在这里添加水蟒有什么好处。事实上,如果我没有使用miniconda包含的所有模块,就必须拉一个miniconda容器,那么它似乎会使我的容器变得不必要的大

Docker不能代替任何东西。这只是做事的一种方式

不,您不应该将所有依赖项都放在Dockerfile中。一、 例如,将从virtualenv运行pip安装,而从未接触Docker/*conda,除非我有充分的理由。您缺少requirements.txt不是一个很好的理由:)

康达于2012年面世,远远早于多克。由于Python在非程序员社区中拥有如此强大的追随者,我很少期望有可理解的代码,更不用说某种类型的DevOps功能了。康达是这个群体的完美解决方案

有了Docker,您就可以拥有一个功能强大的Docker环境,其中包含来自python:xx的COPY/workdir,并运行pip安装-r requirements.txt(假设您使用的是该文件*ahem),但是您的开发人员可能需要一个卷才能工作(因此他们需要知道--卷。此外,如果您运行的是Django,您需要配置端口(现在他们需要--端口,您需要公开).噢,Django可能还需要一个数据库。现在您需要另一个容器,并且正在编写docker compose文件

但是请考虑下面的内容,从我的专业(DeVOPS)经验来看,如果你只包含需求。

  • 我可以在Docker容器中使用该文件
  • 这些要求都在一个地方
  • 如果我愿意,我可以用venv在我的本地电脑上开发
  • Travis可以从requirements.txt安装并在多个版本上进行测试,而无需使用Tox
  • Setuptools会自动处理,所以我的东西可以与pip一起使用
  • 我可以将这些DockerFile(或部件)与ECS、Kubernetes等一起重用
  • 我可以在不使用Docker的情况下部署到EC2
  • 我可以通过pip在本地安装该软件包

HTH-不要太拘泥于一项技术

发表评论