赞
踩
简化版可以参考:docker + miniconda + python 环境安装与迁移(简化版)-CSDN博客
目录
二、docker中拉取miniconda,并虚拟环境安装和测试
三、环境+代码的迁移并运行(以linux _to_win举例)
大概的过程手绘了一下:
【linux端】
可以参考其他教程,不在此赘述,以windows端举例。
【windows端】
我的是windows10 家庭中文版,docker 安装和测试部分的详情 可以参考:
【Docker】Windows11操作系统下安装、使用Docker保姆级教程_docker windo11-CSDN博客
下载链接:Docker Desktop: The #1 Containerization Tool for Developers | Docker
安装后重启,登录账号,大概率会报错,报的错是”unexpected wsl error“
我的是windows10 家庭中文版,核对:
控制面板--程序--开启或关闭windows功能,如果没勾选,请勾选上这俩。
然后:
- # powershell进去后,输入命令
- wsl --update
-
- # 安装后查看版本,显示“默认版本:2”
- wsl --status
- 在 Windows Subsystem for Linux (WSL) 中,当你启用了WSL功能后,你需要从Microsoft Store中下载并安装所需的Linux发行版。WSL并不自带任何Linux发行版,而是提供了一个框架,允许用户选择并安装自己喜欢的发行版。
-
- 你可以从 Microsoft Store 中搜索并下载你需要的 Linux 发行版,比如 Ubuntu、Debian、OpenSUSE 等。安装完所选发行版后,你就可以通过启动WSL来访问和使用它了,而无需再次安装或配置发行版。
- # cmd进去后,输入命令,进行测试
-
- docker pull hello-world
-
- docker images
-
- docker run hello-world
-
- # 列出所有容器
- docker ps -a
-
- # 列出正在运行的容器
- docker ps -q
-
- # 查看指定容器
- docker ps -a|grep xxx
-
- # 暂停/停止/重启 某容器
- docker pause/stop/restart 具体的CONTAINER ID
-
- # 删除容器
- docker rm 具体的CONTAINER ID
-
- # 删除镜像
- docker rmi Image_ID
如果pull很慢的话,可配置阿里云镜像加速, 记得在false后面加英文","
- # 填入内容
- "registry-mirrors": ["https://inhj05a1.mirror.aliyuncs.com"]
- docker search miniconda
-
- docker pull continuumio/miniconda3
-
- docker run -it --name="miniconda" continuumio/miniconda3 /bin/bash
- # 下面就和直接在没有docker的环境中一样操作了
- (base) root@de9f167d9176:/# conda create -n test python=3.8
-
- (base) root@de9f167d9176:/# conda activate test
- (test) root@de9f167d9176:/# conda env list
可以在这个环境中,继续用conda install 或者pip install安装其他包。
- conda install numpy=1.93
- pip install numpy==1.93
- # step1
- docker search miniconda
-
- docker pull continuumio/miniconda3
-
- docker run -it continuumio/miniconda3 /bin/bash
-
- # step2
- conda create -n test_l python=3.8
- conda activate test_l
-
- # step3, 退出镜像的conda环境
- exit
**在这步里,只需要拉取了continuumio/miniconda3就可以了,不用创建新环境,如果创建了新环境,在退出continuumio/miniconda3这个容器之前,就需要把创建了新环境之后的continuumio/miniconda3保存成新的镜像,不然下次再进来,这次创建的新环境就不见了。
**我们更习惯在本地搞一个miniconda,所有环境都在里面,然后当需要打包的时候,在本地将要打包的环境复制到continuumio/miniconda3中。具体看下面的步骤三。
先在github上建仓库,然后git clone到linux中后,在本地创建一个环境,然后测试通过。
- # 下载project
- cd 目标文件夹
- git clone 网址
-
- # 安装miniconda,参考官网
- mkdir -p ~/miniconda3
- wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
- bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
- rm -rf ~/miniconda3/miniconda.sh
-
- ~/miniconda3/bin/conda init bash
-
- # 建立本地环境
- conda create -n test python=3.8
- conda activate test
- conda env list
-
- conda deactivate
比较详细的介绍可以参考:
Docker 封装anaconda环境,生成镜像并打包,纯小白一文读懂(二)_continuumio/anaconda3-CSDN博客
- # 创建一个名为test的容器
- docker run --name test -idt continuumio/miniconda3
-
-
- *****************查看容器, 找到conda的路径************
- # 进入容器
- docker exec -it test /bin/bash
-
- # 查看base所在路径
- conda env list
-
- # 快捷键退出容器,不会停止容器
- ctrl+d
-
- # 用exec进入容器,在使用快捷键退出容器时,不会停止容器。所以最开始才使用-idt创建
- # 因为 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec
-
- *****************查看容器************
- # 复制本地的环境到test容器中
- docker cp /home/.../miniconda3/envs/test/ test:/opt/conda/envs
-
- # 复制代码
- docker cp /home/.../neuron_segment test:/root/
-
-
- **************查看容器*************
- docker exec -it test /bin/bash
- conda env list
- ls /root/
- ctrl+d
- **************查看容器*************
至此,环境+代码也已复制成功。
- # 将容器保存为镜像,并查看
- docker commit -a 'author' -m 'instruction' test image_test
-
- # cd到一个目录
- cd ...
-
- # 压缩镜像
- docker save -o test_tar.tar image_test
至此,环境+代码也已打包成功。
- # 拷贝.tar文件到指定目录
-
- # 在win这边/要运行的机器上cmd后,cd到上面的指定目录
- # if win
- cd /d 目录
-
- # 解压,查看后发现,已创建了一个新的image_test的镜像
- docker load -i test_tar.tar
- # 创建容器
- docker run --name test_create -idt image_test
-
- **************进入容器*************
- docker exec -it test_create /bin/bash
- conda env list
- ls /root/
- # 测试代码
- conda activate test
- cd /root/文件夹目录
- python **.py
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。