- 首先使用anaconda3的基础镜像创建,可能需要检查换源。下面代码块是添加在/etc/docker/daemon.json文件中的内容。值得注意的是,如果当前sudo用户没有写文件的权限,需要改变权限,比如使用chromd 777命令。
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8","8.8.4.4"]
}
2. 第二步是将自己的conda虚拟环境导出成environment.yml文件。这个文件不能跨平台装环境。采用命令:
conda env export > environment.yml
导出之后的文件在与anaconda3相同的目录下。
3. 接着就是创建Dockerfile文件,文件里面的内容写上
FROM continuumio/anaconda3 # 如果没有基础镜像,那么docker会自动pull该基础镜像
WORKDIR /yourworkpath # 指定工作目录
# Create the environment:
COPY environment.yml .
RUN conda env create -f environment.yml
SHELL ["/bin/bash", "-c"]
RUN echo "source activate pytorch-gpu" > ~/.bashrc
ENV PATH /opt/conda/envs/env/bin:$PATH
CMD ["/bin/bash"]
4. 然后使用sudo docker build -t imagename:tag . 命令运行Dockerfile文件。这里imagename是镜像名字,不能出现大写。tag是标签。Dockerfile必须和environment.yml文件在用一个目录下,并且都在WORKDIR工作目录下。
5. 运行完成后,不出意外也就创建了环境并且一旦创建镜像的容器,就会自动进入该虚拟环境。并且容器不会自动退出,而是进入一个bash交互环境。