(本人自用)将本地的anaconda环境封装到docker中并导出为压缩包

目录

系统:ubuntu 20.04

安装docker

将本地anaconda的环境复制的docker的容器中去

将镜像导出为压缩包


系统: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博客

【3】10分钟学会Docker的安装和使用!_LYNNzZ361的博客-CSDN博客

 【4】(19条消息) 如何在docker容器中使用GPU以及使用pytorch_六十英里的博客-CSDN博客

  • 7
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值