場景描述
概述
在將開發機制作的環境保存并推送至鏡像倉庫過程中,用戶可能遇到鏡像過大而無法推動的情況。本教程將指導用戶通過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 //jiangsu-10.zos.daliqc.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存放并快速加載專屬開發環境。