将Anaconda3创建的虚拟环境打包成Docker环境

转载原文:
https://zhuanlan.zhihu.com/p/145037940

可查看我的博文:【长篇博文】Docker学习笔记(四):镜像的分层、打包、双向绑定、导入导出、Dockerfile的构建、部署与发布
首先使用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"]
}
  1. 第二步是将自己的conda虚拟环境导出成environment.yml文件。这个文件不能跨平台装环境。采用命令:
conda env export > environment.yml

导出之后的文件在与anaconda3相同的目录下。

  1. 接着就是创建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"] 
  1. 然后使用sudo docker build -t imagename:tag . 命令运行Dockerfile文件。这里imagename是镜像名字,不能出现大写。tag是标签。Dockerfile必须和environment.yml文件在用一个目录下,并且都在WORKDIR工作目录下。

  2. 运行完成后,不出意外也就创建了环境并且一旦创建镜像的容器,就会自动进入该虚拟环境。并且容器不会自动退出,而是进入一个bash交互环境。

Dockerfile文件和environment.yml存放在home目录下:

在这里插入图片描述执行如下,测试案例:
在这里插入图片描述
然后镜像的导出可查看上面我的博客文章。

未完待续。。。。
参考资料

参考文献:
https://zhuanlan.zhihu.com/p/145037940
https://blog.csdn.net/u012759006/article/details/107624413
https://www.it610.com/article/1295575955175186432.htm
https://blog.csdn.net/weixin_41270857/article/
https://www.jianshu.com/p/38909ffd763d?utm_campaign=hugo
https://www.pianshen.com/article/73621566567/
https://blog.csdn.net/liyuxing6639801/article/details/65637784

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页