• docker + miniconda + python 环境安装与迁移(详细版)


    本文主要列出从安装docker+python环境到迁移环境的整体步骤。windows与linux之间进行测试。

    简化版可以参考:docker + miniconda + python 环境安装与迁移(简化版)-CSDN博客

    目录

    一、docker 安装和测试

    二、docker中拉取miniconda,并虚拟环境安装和测试

    三、环境+代码的迁移并运行(以linux _to_win举例)

    大概的过程手绘了一下:


    一、docker 安装和测试

    【linux端】

    可以参考其他教程,不在此赘述,以windows端举例。

    【windows端】

    我的是windows10 家庭中文版,docker 安装和测试部分的详情 可以参考:

    【Docker】Windows11操作系统下安装、使用Docker保姆级教程_docker windo11-CSDN博客

    1. ​​​​​​安装docker windows 版本

    下载链接:Docker Desktop: The #1 Containerization Tool for Developers | Docker

    安装后重启登录账号,大概率会报错,报的错是”unexpected wsl error“

    2. 配置本机电脑,解决上述错误

    我的是windows10 家庭中文版,核对:

    控制面板--程序--开启或关闭windows功能,如果没勾选,请勾选上这俩。

    然后:

    1. # powershell进去后,输入命令
    2. wsl --update
    3. # 安装后查看版本,显示“默认版本:2”
    4. wsl --status

    注意:启动成功后,我没有再安装linux发行版。有需要的也可以再装一个。

    1. 在 Windows Subsystem for Linux (WSL) 中,当你启用了WSL功能后,你需要从Microsoft Store中下载并安装所需的Linux发行版。WSL并不自带任何Linux发行版,而是提供了一个框架,允许用户选择并安装自己喜欢的发行版。
    2. 你可以从 Microsoft Store 中搜索并下载你需要的 Linux 发行版,比如 Ubuntu、Debian、OpenSUSE 等。安装完所选发行版后,你就可以通过启动WSL来访问和使用它了,而无需再次安装或配置发行版。

    3. 测试docker

    1. # cmd进去后,输入命令,进行测试
    2. docker pull hello-world
    3. docker images
    4. docker run hello-world
    5. # 列出所有容器
    6. docker ps -a
    7. # 列出正在运行的容器
    8. docker ps -q
    9. # 查看指定容器
    10. docker ps -a|grep xxx
    11. # 暂停/停止/重启 某容器
    12. docker pause/stop/restart 具体的CONTAINER ID
    13. # 删除容器
    14. docker rm 具体的CONTAINER ID
    15. # 删除镜像
    16. docker rmi Image_ID

    如果pull很慢的话,可配置阿里云镜像加速, 记得在false后面加英文","

    1. # 填入内容
    2. "registry-mirrors": ["https://inhj05a1.mirror.aliyuncs.com"]

    二、docker中拉取miniconda,并虚拟环境安装和测试

    【windows端】

    1. 安装miniconda

    1. docker search miniconda
    2. docker pull continuumio/miniconda3
    3. docker run -it --name="miniconda" continuumio/miniconda3 /bin/bash

    2. 【测试】创建新环境 for test

    1. # 下面就和直接在没有docker的环境中一样操作了
    2. (base) root@de9f167d9176:/# conda create -n test python=3.8
    3. (base) root@de9f167d9176:/# conda activate test
    4. (test) root@de9f167d9176:/# conda env list

    可以在这个环境中,继续用conda install 或者pip install安装其他包。

    1. conda install numpy=1.93
    2. pip install numpy==1.93

    【linux端】和windows一样的

    1. 安装miniconda和python环境

    1. # step1
    2. docker search miniconda
    3. docker pull continuumio/miniconda3
    4. docker run -it continuumio/miniconda3 /bin/bash
    5. # step2
    6. conda create -n test_l python=3.8
    7. conda activate test_l
    8. # step3, 退出镜像的conda环境
    9. exit

    **在这步里,只需要拉取了continuumio/miniconda3就可以了,不用创建新环境,如果创建了新环境,在退出continuumio/miniconda3这个容器之前,就需要把创建了新环境之后的continuumio/miniconda3保存成新的镜像,不然下次再进来,这次创建的新环境就不见了。

    **我们更习惯在本地搞一个miniconda,所有环境都在里面,然后当需要打包的时候,在本地将要打包的环境复制到continuumio/miniconda3中。具体看下面的步骤三。

    三、环境+代码的迁移并运行(以linux _to_win举例)

    1、本地miniconda及虚拟环境安装

    先在github上建仓库,然后git clone到linux中后,在本地创建一个环境,然后测试通过。

    1. # 下载project
    2. cd 目标文件夹
    3. git clone 网址
    4. # 安装miniconda,参考官网
    5. mkdir -p ~/miniconda3
    6. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
    7. bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
    8. rm -rf ~/miniconda3/miniconda.sh
    9. ~/miniconda3/bin/conda init bash
    10. # 建立本地环境
    11. conda create -n test python=3.8
    12. conda activate test
    13. conda env list
    14. conda deactivate

    2、在本地环境中,复制环境+代码到docker的容器中

    比较详细的介绍可以参考:

    Docker 封装anaconda环境,生成镜像并打包,纯小白一文读懂(二)_continuumio/anaconda3-CSDN博客

    1. # 创建一个名为test的容器
    2. docker run --name test -idt continuumio/miniconda3
    3. *****************查看容器, 找到conda的路径************
    4. # 进入容器
    5. docker exec -it test /bin/bash
    6. # 查看base所在路径
    7. conda env list
    8. # 快捷键退出容器,不会停止容器
    9. ctrl+d
    10. # 用exec进入容器,在使用快捷键退出容器时,不会停止容器。所以最开始才使用-idt创建
    11. # 因为 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec
    12. *****************查看容器************
    1. # 复制本地的环境到test容器中
    2. docker cp /home/.../miniconda3/envs/test/ test:/opt/conda/envs
    3. # 复制代码
    4. docker cp /home/.../neuron_segment test:/root/
    5. **************查看容器*************
    6. docker exec -it test /bin/bash
    7. conda env list
    8. ls /root/
    9. ctrl+d
    10. **************查看容器*************

    至此,环境+代码也已复制成功。

    3、将容器保存为镜像,保存成压缩包

    1. # 将容器保存为镜像,并查看
    2. docker commit -a 'author' -m 'instruction' test image_test
    3. # cd到一个目录
    4. cd ...
    5. # 压缩镜像
    6. docker save -o test_tar.tar image_test

    至此,环境+代码也已打包成功。

    4、解压镜像、创建容器、测试代码

    1. # 拷贝.tar文件到指定目录
    2. # 在win这边/要运行的机器上cmd后,cd到上面的指定目录
    3. # if win
    4. cd /d 目录
    5. # 解压,查看后发现,已创建了一个新的image_test的镜像
    6. docker load -i test_tar.tar

    1. # 创建容器
    2. docker run --name test_create -idt image_test
    3. **************进入容器*************
    4. docker exec -it test_create /bin/bash
    5. conda env list
    6. ls /root/
    1. # 测试代码
    2. conda activate test
    3. cd /root/文件夹目录
    4. python **.py
  • 相关阅读:
    捋一捋pytorch官方的FasterRCNN代码
    TVM:成为深度学习领域的“Linux”
    网易笔试8.20
    京东云开发者|软件架构可视化及C4模型:架构设计不仅仅是UML
    操作表单(验证)
    【渗透测试】Weblogic系列漏洞
    还记得2048怎么玩吗?快来玩会儿(摸鱼)吧
    Word控件Spire.Doc 【表单域】教程(七):在 C#、VB.NET 中的 Word 中创建对书签的交叉引用
    MATLAB算法实战应用案例精讲-【优化算法】冠状病毒优化算法(COVIDOA)(附MATLAB代码实现)
    Spring框架的两大核心IOC&DI
  • 原文地址:https://blog.csdn.net/weixin_52120741/article/details/137239477