conda 在容器内的目的是什么?
what is the purpose of conda inside a container?
我见过许多 docker文件中包含 conda 命令的示例。还有预构建的 anaconda 和 miniconda 容器。我肯定错过了什么。
docker 不替换 virtualenv 和 conda 吗?我不应该在我的 docker 文件中拥有我所有的依赖项吗?我不明白在这里添加 anaconda 有什么好处。事实上,如果我不使用 miniconda 的所有包含模块,我必须拉一个 miniconda 容器,这似乎会使我的容器不必要地变大。
Docker 不会替换任何东西。这只是一种做事的方式。
不,您不应该在 Docker 文件中拥有所有依赖项。一方面,我将 运行 pip install
来自 virtualenv,而不会触及 Docker/*conda 除非我有充分的理由。你缺少 requirements.txt 不是一个很好的理由 :)
Conda 于 2012 年问世 - 早于 Docker。由于 Python 在非程序员社区中拥有如此强大的追随者,我很少期望代码清晰易懂,更不用说某种类型的 DevOps 能力了。 Conda 是该组的完美解决方案。
使用 Docker,您可以拥有一个具有 FROM python:xx
、COPY . /workdir
和 RUN pip install -r requirements.txt
的功能性 Docker 环境(假设您正在使用该文件*咳咳),但您的开发人员可能需要一个卷以便他们可以工作(因此他们需要知道 --volume
。另外,如果您是 运行 Django,您将需要配置端口(现在他们需要--port
并且你需要 EXPOSE
)。哦,Django 可能还需要一个数据库。现在你需要另一个容器,并且你正在编写一个 docker-compose 文件。
但是请考虑以下内容,如果您只包括 requirements.txt-
,那么根据我几乎所有的专业 (DevOps) 经验
- 我可以在我的 Docker 容器中使用该文件
- 要求都在一处
- 如果我愿意,我可以在本地使用 venv 进行开发
- Travis 可以从 requirements.txt 安装并在不使用 Tox 的情况下测试多个版本
- Setuptools 会自动处理,所以我的东西适用于 pip
- 我可以将这些 Docker 文件(或部分)重新用于 ECS、Kubernetes 等
- 我可以在不使用 Docker
的情况下部署到 EC2
- 我可以通过 pip 在本地安装软件包
HTH - 不要太拘泥于一项技术!
我见过许多 docker文件中包含 conda 命令的示例。还有预构建的 anaconda 和 miniconda 容器。我肯定错过了什么。
docker 不替换 virtualenv 和 conda 吗?我不应该在我的 docker 文件中拥有我所有的依赖项吗?我不明白在这里添加 anaconda 有什么好处。事实上,如果我不使用 miniconda 的所有包含模块,我必须拉一个 miniconda 容器,这似乎会使我的容器不必要地变大。
Docker 不会替换任何东西。这只是一种做事的方式。
不,您不应该在 Docker 文件中拥有所有依赖项。一方面,我将 运行 pip install
来自 virtualenv,而不会触及 Docker/*conda 除非我有充分的理由。你缺少 requirements.txt 不是一个很好的理由 :)
Conda 于 2012 年问世 - 早于 Docker。由于 Python 在非程序员社区中拥有如此强大的追随者,我很少期望代码清晰易懂,更不用说某种类型的 DevOps 能力了。 Conda 是该组的完美解决方案。
使用 Docker,您可以拥有一个具有 FROM python:xx
、COPY . /workdir
和 RUN pip install -r requirements.txt
的功能性 Docker 环境(假设您正在使用该文件*咳咳),但您的开发人员可能需要一个卷以便他们可以工作(因此他们需要知道 --volume
。另外,如果您是 运行 Django,您将需要配置端口(现在他们需要--port
并且你需要 EXPOSE
)。哦,Django 可能还需要一个数据库。现在你需要另一个容器,并且你正在编写一个 docker-compose 文件。
但是请考虑以下内容,如果您只包括 requirements.txt-
,那么根据我几乎所有的专业 (DevOps) 经验- 我可以在我的 Docker 容器中使用该文件
- 要求都在一处
- 如果我愿意,我可以在本地使用 venv 进行开发
- Travis 可以从 requirements.txt 安装并在不使用 Tox 的情况下测试多个版本
- Setuptools 会自动处理,所以我的东西适用于 pip
- 我可以将这些 Docker 文件(或部分)重新用于 ECS、Kubernetes 等
- 我可以在不使用 Docker 的情况下部署到 EC2
- 我可以通过 pip 在本地安装软件包
HTH - 不要太拘泥于一项技术!