在Docker中使用conda虚拟环境
Overview
Dockerfile, Conda
使用常规方法创建Conda虚拟环境并激活的过程会遇到很多错误,经过查找资料,总结了可行的方法。本文方法的参考文章。
1. 保存虚拟环境yml文件
- 在本地激活你想放入Docker中的Conda虚拟环境:
conda activate <myenv>
。 - 输出Conda环境配置文件:
conda env export > environment.yml
。 - 删除配置文件中位于
pip
之后的内容。 在我的Docker生成过程中,环境配置文件中若包含pip安装包,则会报错。所以需要删除相关的包,在Dockerfile中,可以在conda环境激活后重新使用pip
手动安装所需的。 下面是一个典型的environment.yml
文件:1name: myenv 2channels: 3 - pytorch 4 - nvidia 5 - ... 6dependencies: 7 - _libgcc_mutex=0.1=main 8 - blas=1.0=mkl 9 - ... 10- pip: # 删除此行及以下的内容并保存文件 11 - addict==2.4.0 12 - aliyun-python-sdk-core==2.14.0 13 - ... 14prefix: /home/*/miniconda3/envs/myenv
2. 编写Dockerfile
在你的Dockerfile中添加如下内容:
1# 使用带有conda的镜像
2FROM continuumio/miniconda3
3
4WORKDIR /app
5
6# 使用上一节的环境文件创建虚拟环境:
7COPY environment.yml .
8RUN conda env create -f environment.yml
9
10# 激活该虚拟环境:
11SHELL ["conda", "run", "-n", "<myenv>", "/bin/bash", "-c"]
12
13# 若需要安装pip包,如下:
14RUN pip install A B C
通过该Dockerfile则可以构建使用Conda虚拟环境的镜像。
comments powered by Disqus