场景描述
概述
在将开发机制作的环境保存并推送至镜像仓库过程中,用户可能遇到镜像过大而无法推动的情况。本教程将指导用户通过conda把环境保存到科研文件中,用户即可在新开发机中快速拉起专属开发环境,减少保存镜像的体积。
Conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。
Conda-pack是一个用于打包和传递Conda环境的工具,它可以帮助用户将一个Conda环境打包成一个可移植的文件,使得用户可以在不同的机器或操作系统上轻松迁移和部署该环境。
步骤简介
教程包括如下步骤:
- 创建科研文件:科研文件是科研助手提供的文件管理服务,需要依赖科研文件将数据挂载到不同开发机中
- 创建开发机A:购买开发机A,并将开发机A中的环境保存
- 创建开发机B:购买开发机B,在开发机B中拉起并验证镜像环境(开发机A已保存的环境)
- 进阶:通过conda-pack打包环境并使用
使用限制
- 科研文件保存的环境只能在同一个可用区内共享,如需跨可用区请查看下文中的进阶指南。
- 多人使用同一个环境,新增或修改时会同步受到影响,请谨慎操作。
环境准备并保存镜像
创建科研文件
【科研文件】是科研助手提供的文件管理服务模块,您可以通过【科研文件】来管理自己的数据。本教程需要依赖【科研文件】提供环境数据,因此需要提前创建科研文件。
步骤1:进入科研助手,选择【数据存储】>【科研文件管理】,点击【创建科研文件】按钮
步骤2:此教程以【福州6】为例,在【huanan001-371】资源池中选择【福州6】,科研文件默认最小容量为10G,您可以按需调整所需容量。此处命名为research-storage-test。
配置后,点击【确认订单】,等待科研文件状态变为【创建成功】
创建开发机A并挂载科研文件
步骤1:进入科研助手控制台,进入【开发机】界面,进入开发机购买页面,此处以【科研版】为例:
步骤2:在购买过程中,
【可用区】需选择和上一步【科研文件】相同的可用区,此处以【福州6】为例,
【主机规格】请按需选择
【存储配置】-【科研文件】处需要挂载上一步【科研文件】,此处挂在的是上一步创建的research-storage-test
【镜像框架】选择任意公共框架,Jupyter和VNC镜像都可以使用
登录开发机A并保存环境
购买开发机
步骤1:购买完成后,可以看见开发机状态显示为【启动中】,等待新创建的开发机状态进入到【运行中】,然后点击右侧操作栏【打开】;
步骤2:点击【打开】跳转到开发机
在Linux终端中如果bash左侧有显示(base)说明已经进入conda环境,如果未进入则输入conda init并打开新的bash
注意:如您购买的开发机VNC环境中没有conda环境,可以按照如下步骤进行安装,如已有conda环境则跳过:
1、安装conda
输入:
wget https://jiangsu-10.zos.ctyun.cn/bucket-7262/Miniconda3-latest-Linux-x86_64-BC.sh
sh Miniconda3-latest-Linux-x86_64-BC.sh
等待执行完成
2、初始化conda
/home/batchcom/miniconda3/bin/conda init
3、重新启动一个终端,可以看到(base)
保存环境
步骤1:修改conda环境路径并创建专属conda环境
在科研文件中创建一个conda环境目录,并配置conda指向该目录
输入:
mkdir /home/dataset-assist-0/conda-env
mkdir /home/dataset-assist-0/conda-pkg
conda config --add envs_dirs /home/dataset-assist-0/conda-env/
conda config --add pkgs_dirs /home/dataset-assist-0/conda-pkg/
步骤2:使用conda创建一个专属环境,例如需要python3.11
输入:
conda create -n myenv python=3.11
输入y执行安装
步骤3:创建完毕后,确认myenv环境是否存储在科研文件的路径中(/home/dataset-assist-0/conda-env)
输入:
conda env list
下图显示输出/home/dataset-assist-0/conda-env/myenv
步骤4:进入conda环境测试python3.11是否安装
输入:
conda activate myenv
python --version
可以看到输出为python 3.11.11
新环境镜像验证
接下来的步骤,请登录新的开发机B并验证环境
步骤1:请参照本教程中【创建开发机A并挂载科研文件】步骤,重新购买一台开发机B,同时注意,需要在【同一可用区】,此处为【福州6】,并挂在【相同的科研文件】,此处为research-storage-test
步骤2:点击【打开】跳转到开发机,此处我们以选择VNC镜像的开发机为例。
注意:原镜像没有conda环境,您可以按照【登录开发机A并保存环境】中的方式安装conda,安装完成后,重新启动一个终端,可以看到(base)
步骤3:配置科研文件中的conda环境
输入:
conda config --add envs_dirs /home/dataset-assist-0/conda-env/
conda config --add pkgs_dirs /home/dataset-assist-0/conda-pkg/
配置完成后,可通过如下命令查看之前已创建的conda环境
输入:
conda env list
此处同样输出为/home/dataset-assist-0/conda-env/myenv
步骤4:进入myenv环境,测试python3.11是否可用
输入:
conda activate myenv
python --version
您也可以将此开发机保存为镜像,方便下次其他开发机使用,则不再需要配置conda环境。
进阶:conda-pack打包环境并使用
conda-pack可以将当前环境打包为压缩包,通过网络传输等方式复制给其他开发机使用,快速拉起专属开发环境。
您可以在所需要打包的环境中安装conda-pack,此处我们在开发机B中打包环境,再去新的开发机C或原来的开发机A中使用。
登录开发机B并打包环境
在开发机B要打包的环境下,安装conda-pack
步骤1:安装conda-pack
在开发机B中myenv虚拟环境中,输入:
conda install conda-pack
步骤2:在要打包的环境下执行conda-pack
同样在开发机B中myenv虚拟环境中,输入:
conda-pack
此步骤将生成环境打包文件myenv.tar.gz,实际生成的名称与您创建的conda名称关联,请以实际为准。
步骤3:将生成的myenv.tar.gz文件复制到科研文件中,科研文件的目录为/home/dataset-assist-0
输入:
mv myenv.tar.gz /home/dataset-assist-0
输入:
ls /home/dataset-assist-0
可以看到打包文件已在科研文件中。
登录开发机C并验证环境
您可以选择在新的开发机C中去验证,也可以在已有的开发机A中验证(因为这里验证的都是python3.11环境,您可以尝试打包其他环境进行验证)
步骤1:在开发机C中,将上一步科研文件的压缩包复制到任意位置并解压
输入:
cd ~
cp /home/dataset-assist-0/myenv.tar.gz .
解压文件
输入:
tar zxvf myenv.tar.gz
步骤3:进入conda环境,注意此处命令需要在解压的目录中执行
输入:这里的解压路径请按实际情况输入
source 解压路径/bin/activate
或者可以通过注册到conda中来使用,使用
conda config --add envs_dirs 解压位置的上一级目录
步骤4:查看打包环境
输入:
python --version
可以看到回显的python环境为3.11.11
至此,我们通过两种方式实现了通过科研文件和Conda存放并快速加载专属开发环境。