首先配置好环境,接下来以<usr>/conda/envs/<your_env_name>,为例。
your_env_name就是我要进行测试的环境,让别人拿到这个环境后也能顺利的跑完我们写的程序。
如果是服务器集群,那可能需要root权限来制作镜像,联系管理员进入docker,一般一个服务器只有一个docker,如果没下载就参照网络教程下载安装;如果是个人电脑,那就自己下载安装。
1 进入docker,查看当前存在的镜像和容器:
docker image ls ## 查看镜像
docker ps ## 查看容器id
2 如果是新建的,则什么都没有,就需要在docker hub拉一个基础镜像比如:
docker pull continuumio/anaconda3
然后在这个基础镜像里创建一个容器:
docker run --name <容器id> -idt continuumio/anaconda3
3 进入该镜像的容器(要退出的话就ctrl+D):
docker exec -it <容器id> /bin/bash
到这里的时候,你就创建好基本所需了,然后在这个容器里和conda一样操作:
conda info -e
你可以看到一个base环境,路径为/opt/conda
4 退出容器,把我们想要导入的环境(your_env_name)导入容器内:
docker cp <usr>/conda/envs/<your_env_name> <容器id>:/opt/conda/envs
稍微等一等,如果要将代码也打包进去就按照这个格式一样的,把对应文件夹导入到容器里一个你想要的文件夹
5 然后将镜像打包,镜像id自己取
docker commit -a 'author' -m 'instruction' <容器id> <镜像id>
(可选)将镜像打包成压缩包(记得提前cd到你要保存这个文件的路径):
docker save -o <容器id>.tar <镜像id>
6 到这里我们就已经做好镜像了,接下来就是上传到docker hub
自己创建一个账户或者已有账户,登录后创建一个repository
在Repository name设置时要设置为自己的<镜像id>,然后最好调为私密private
然后在服务器docker上登陆:
docker login -u <注册时使用的用户名>
成功显示:Login Succeeded,要退出的话就: docker logout
7 给本地镜像打tag
docker tag <镜像id> <用户名>/<镜像id>:<自己取tag>
8 上传镜像
docker push <用户名>/<镜像id>:<自己取tag>
完成。