(本人自用)将本地的anaconda环境封装到docker中并导出为压缩包
目录系统:ubuntu 20.04安装docker将本地anaconda的环境复制的docker的容器中去将镜像导出为压缩包系统:ubuntu 20.04安装docker一开始尝试用yum还有离线解压所apm(网上乱七八糟的博客)都不行,发现这个方法是最快捷的sudo apt-get updatesudo apt-get install -y docker.io安装完成后,启动dockersudo
目录
系统:ubuntu 20.04
安装docker
- 一开始尝试用yum还有离线解压apm(网上乱七八糟的博客)都不行,发现这个方法是最快捷的
sudo apt-get update
sudo apt-get install -y docker.io
- 安装完成后,启动docker
sudo systemctl enable docker
- 查看docker是否安装成功
sudo docker version
- 由于我们安装的时候是用的sudo安装,在这里没有权限连接到docker的服务器,因此需要把当前用户加入到docker组里面去。这里可参考博客【1】
将本地anaconda的环境复制的docker的容器中去
(参考博客【2】)
- 搜取anaconda镜像
docker search anaconda
- 拉取star数最多的镜像
sudo docker pull continuumio/anaconda3
- 查看现有的镜像
sudo docker image ls
- 为镜像image_name创建一个名为contain_name的容器
sudo docker run --name contain_name -idt image_name
- 查看容器
docker ps #查看现在正在运行的容器
docker ps -a #查看所有的容器
- 启动名为contain_name的容器
docker start contain_name
- 进入test容器docker命令
docker exec -it test /bin/bash
- 查看anaconda的位置
whereis anaconda
ctrl+d #退出docker环境
- 本地环境中,将本地环境复制到docker中(注意修改自己的路径)
sudo docker cp /home/ye/anaconda3/envs/pytorch_wj test:/anaconda3/envs
- 最后,可以在docker环境中输入命令:source activate env_name #查看自己是否复制成功
将镜像导出为压缩包
- 将docker容器保存为镜像
sudo docker run --name test -idt continuumio/anaconda3
- 查看新镜像
docker image ls
- 导出为压缩包
docker save image_name -o compressed_package_name
TIPS:
本博主是使用学校的服务器,发现用anaconda导出的镜像没有办法再服务器上跑网络,因此制作了自己的pytorch镜像。此处参考了博客【3】
如何制作自己的pytorch环境:
1.先在docker hub上pull一个自己所需要的pytorch镜像
例如:这里我们拉取pytorch:1.6.0cuda版本的的镜像。
*注意:runtime版本和devel版本是不一样的,仔细查看会发现他们的大小有两个G之差,这里是因为devel版本的镜像里面有cuda包,如果需要cuda编译的就需要拉取devel版本的。例如,博主是需要编译DcnV2的,如果用runtime版本就一直编译不成功(这个问题我改了好久才发现)
docker pull pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel
2.然后在自己的pytorch环境中(本地环境)运行以下命令,得到requirement.txt
pip freeze > requirements.txt
3.本地环境中,将本地环境复制到docker中(注意修改自己的路径)
sudo docker cp /home/ye/anaconda3/envs/pytorch_wj test:/anaconda3/envs
4.通过上述命令(将本地anaconda的环境..../进入test容器.....),进入容器中(docker环境),通过以下命令安装所需要的包至此,该容器的镜像就拥有自己所需要的所有包了。
pip install -r requirments.txt
*注:制作好我们的docker镜像后,可以在属于该镜像的容器中进行测试一下,查看是否能正常导入我们的包,以免将环境上传上去后出错。
如图所示:
- 我的容器中,torch和cv2都可以成功导入,但是cuda有问题,博主正在找错.....
- 经过繁琐的网上各种查资料,终于成功。主要参考博客【4】
5.接下来退出容器,提交我们的新镜像(可参考博客【3】)
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[tag]
6.导出镜像压缩包,并上传到服务器中,就可以了。(压缩包名以.tar结尾)
docker save image_name -o compressed_package_name.tar
在使用docker时所碰到的一些问题(自看):
failed to start daemon: error while opening volume store metadata database: timeout Code Example
参考博客:
【1】Linux Ubuntu apt-get安装docker_水煮蜗牛-CSDN博客
【2】docker封装本地anaconda环境_往尘的博客-CSDN博客
更多推荐
所有评论(0)