Conda 与 Mamba 的困惑 - 构建自定义 docker 镜像时应该使用什么

2024-04-01

我正在尝试使用构建自定义 Docker 映像jupyter/datascience-notebook这是基于jupyter/base-notebook

我可以看到 mamba 用于为 jupyter 安装/配置 conda 环境。

下面是我的 Dockerfile(问题所在的部分)

#REF: https://stackoverflow.com/q/66547389

RUN /opt/conda/bin/conda create -n pypy pypy ipykernel -y
RUN /opt/conda/envs/pypy/bin/pypy -m ipykernel install --prefix=/opt/conda/ --name pypy3 --display-name="pypy3"

#-- INSTALL JUPYTERLAB PLUGINS --#
RUN /opt/conda/bin/conda install -c conda-forge jupyterlab-git
RUN /opt/conda/bin/conda install -c conda-forge jupyter-resource-usage

我的问题 - 我真的应该使用mamba代替/opt/conda/bin/conda既然 Mamba 是 conda 的包装器?或者说,我做的事情是对的吗?

Regards,


从功能上来说,无论是conda or mamba应该管用。我一般会选择mamba over conda as mambaconda,但有些人可能更喜欢conda因为这是一个比较成熟的项目。

conda是用 python 实现的,因此不是最快的实现。mamba不是 conda 的包装,而是专注于性能的部分重新实现。mamba用 C++ 编写,使用多线程并行下载存储库数据和包文件,并利用 libsolv 更快地解决依赖关系。mamba公用事业 一些conda对性能不重要的任务的代码库,因此mamba依赖于python.

另一种选择是micromamba,这是一个纯粹的 C++ 重新实现conda并且不依赖于python。如果您从头开始创建新映像并且不需要python在你的图像中,那么你应该使用micromamba以保持生成的图像较小。图片曼巴奥格/微曼巴 https://hub.docker.com/r/mambaorg/micromamba是一个很好的起点(完全披露,我是该图像的主要维护者)。

自 2022 年 3 月 16 日起,可以从 conda 中使用 mamba 的求解器 https://conda.github.io/conda-libmamba-solver/getting-started/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Conda 与 Mamba 的困惑 - 构建自定义 docker 镜像时应该使用什么 的相关文章

随机推荐