首先,你的Anaconda以及你所要打包的虚拟环境都已经创建好了,其次Win11下的Docker依赖安装完毕。
首先查看已经存在的Docker镜像:
docker image ls
拉取Anaconda镜像,创建Anaconda环境:
docker pull continuumio/anaconda3
run Anaconda镜像:
docker run --name test -idt continuumio/anaconda3
查看Anaconda镜像是否正常运行:
docker ps -a
进入镜像中的Anaconda虚拟环境:
docker exec -it test /bin/bash
查看你要打包的虚拟环境的路径,一般在C盘User下<你的用户名>文件夹中,.conda\envs\文件夹下,会有你Anaconda创建的所有虚拟环境的文件夹。
将文件夹复制到镜像的路径中:
docker cp C:\Users\zc\.conda\envs\sensevoice test:/opt/conda/envs
将命令中C盘的路径更换为你自己虚拟环境的路径,复制到了test的/opt/conda/envs中。
将你的程序文件复制到镜像的路径中:
docker cp F:\Downloads\FunASR-main\ test:/root/
将F盘的路径更换为你自己程序文件的路径。
Ctrl+D退出。
创建新的Docker镜像:
docker commit -a 'author' -m 'instruction' test funasr
test是现在镜像的名称,funasr是新镜像的名称。
打包为压缩包:
docker save -o funasr_test.tar funasr
funasr_test是你保存压缩包的名称,funasr是要压缩的镜像名称。
在终端所在的路径下会生成镜像压缩包。
在新的宿主机拉取压缩包为镜像:
docker load -i funasr_test.tar
等待一定时间后,会生成新的镜像,与压缩前的镜像名称相同。
目前还存在问题,加载的压缩包的镜像会丢失原先虚拟环境中的库,尤其是torch库,所以重新加载后需要再次安装对应版本的torch,或者在本机重新加载压缩包,然后在镜像中安装torch,最后再保存为新的镜像。(如果大家有好办法,可以分享一下)