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功能,如果没勾选,请勾选上这俩。

然后:
# powershell进去后,输入命令
wsl --update# 安装后查看版本,显示“默认版本:2”
wsl --status
注意:启动成功后,我没有再安装linux发行版。有需要的也可以再装一个。
在 Windows Subsystem for Linux (WSL) 中,当你启用了WSL功能后,你需要从Microsoft Store中下载并安装所需的Linux发行版。WSL并不自带任何Linux发行版,而是提供了一个框架,允许用户选择并安装自己喜欢的发行版。你可以从 Microsoft Store 中搜索并下载你需要的 Linux 发行版,比如 Ubuntu、Debian、OpenSUSE 等。安装完所选发行版后,你就可以通过启动WSL来访问和使用它了,而无需再次安装或配置发行版。
3. 测试docker
# cmd进去后,输入命令,进行测试docker pull hello-worlddocker imagesdocker 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中拉取miniconda,并虚拟环境安装和测试
【windows端】
1. 安装miniconda
docker search minicondadocker pull continuumio/miniconda3docker run -it --name="miniconda" continuumio/miniconda3 /bin/bash
2. 【测试】创建新环境 for test
# 下面就和直接在没有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
【linux端】和windows一样的
1. 安装miniconda和python环境
# step1
docker search minicondadocker pull continuumio/miniconda3docker 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中。具体看下面的步骤三。
三、环境+代码的迁移并运行(以linux _to_win举例)
1、本地miniconda及虚拟环境安装
先在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 listconda deactivate
2、在本地环境中,复制环境+代码到docker的容器中
比较详细的介绍可以参考:
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
**************查看容器*************
至此,环境+代码也已复制成功。
3、将容器保存为镜像,保存成压缩包
# 将容器保存为镜像,并查看
docker commit -a 'author' -m 'instruction' test image_test# cd到一个目录
cd ...# 压缩镜像
docker save -o test_tar.tar image_test
至此,环境+代码也已打包成功。
4、解压镜像、创建容器、测试代码
# 拷贝.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相关文章:
docker + miniconda + python 环境安装与迁移(详细版)
本文主要列出从安装dockerpython环境到迁移环境的整体步骤。windows与linux之间进行测试。 简化版可以参考:docker miniconda python 环境安装与迁移(简化版)-CSDN博客 目录 一、docker 安装和测试 二、docker中拉取minicondaÿ…...
蓝桥杯刷题第八天(dp专题)
这道题有点像小学奥数题,解题的关键主要是: 有2种走法固走到第i级阶梯,可以通过计算走到第i-1级和第i-2级的走法和,可以初始化走到第1级楼梯和走到第2级楼梯。分别为f[1]1;f[2]1(11)1(2)2.然后就可以循环遍历到后面的状态。 f[i…...
【WEEK6】 【DAY1】DQL查询数据-第一部分【中文版】
2024.4.1 Monday 目录 4.DQL查询数据(重点!)4.1.Data Query Language查询数据语言4.2.SELECT4.2.1.语法4.2.2.实践4.2.2.1.查询字段 SELECT 字段/* FROM 表查询全部的某某查询指定字段 4.2.2.2.给查询结果或者查询的这个表起别名(…...
Linux:权限篇
文章目录 前言1.用户2.文件的权限管理2.1 修改文件的权限2.2 修改文件的拥有者2.3 修改文件的所属组 3.file指令4.umask指令4.目录的权限管理总结 前言 Linux权限在两个地方有所体现,一种是使用用户:分为root超级用户员与普通用户。另一个是体现在文件的…...
Lua热更新(xlua)
发现错误时检查是否:冒号调用 只需要导入asset文件夹下的Plugins和Xlua这两个文件即可,别的不用导入 生成代码 和清空代码 C#调用lua using Xlua; 需要引入命名空间 解析器里面执行lua语法 lua解析器 LuaEnv 单引号是为了避免引号冲突 第二个参数是报错时显示什么提示…...
并查集(基础+带权以及可撤销并查集后期更新)
并查集 并查集是一种图形数据结构,用于存储图中结点的连通关系。 每个结点有一个父亲,可以理解为“一只伸出去的手”,会指向另一个点,初始时指向自己。一个点的根节点是该点的父亲的父亲的..的父亲,直到某个点的父亲…...
基于 Java 的数据结构和算法 (不定期更新)
JavaIsBestLang 数据结构 Collection 是 Java 中的接口,被多个泛型容器接口所实现。在这里,Collection 是指代存放对象类型的数据结构。 ArrayList 函数名功能size()返回 this 的长度add(Integer val)在 this 尾部插入一个元素add(int idx, Integer …...
考研回忆录【二本->211】
备考时长差不多快一年半,从22年的11月底开始陆陆续续地准备考研,因为开始的早所以整个备考过程显得压力不是很大,中途还去一些地方旅游,我不喜欢把自己绷得太紧。虽然考的不是很好,考完我甚至都没准备复试,…...
【XCPC笔记】2023 (ICPC) Jiangxi Provincial Contest——ABCIJKL 做题记录
补题 赛后gym练习及补题,gym链接:2023 (ICPC) Jiangxi Provincial Contest – Official Contest 另外,D题我也打算找机会学习写下,C题的博弈论还需要好好理解,感觉都是比较有趣的数学问题 补题顺序如下 补题L [Zhang …...
猫头虎分享已解决Bug || **URLError (URL错误)** 全方位解析
博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …...
如何使用极狐GitLab 启用自动备份功能
本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何极狐GitLab 自…...
HTML/XML转义字符对照
特殊字符转义表 字符十进制转义字符""&&<<<>>>不断开空格(non-breaking space) 最常用的转义字符列表 显示说明实体名称十进制编号半方大的空白 全方大的空白 不断行的空白格 <小于<<>大于&g…...
设计模式:组合模式示例
组合模式的典型例子通常涉及到树形结构的处理,下面是几个形象且易于理解的例子: 文件系统 在文件系统中,目录可以包含文件或者其他目录,但是从用户的角度来看,目录和文件都可以被“打开”或者“获取大小”。这里的目…...
普通情况和高并发时,Redis缓存和数据库怎么保持一致?
普通情况和高并发时,Redis缓存和数据库怎么保持一致? 普通情况思路 高并发时思路 Q:缓存和数据库怎么保持一致? A:绝对不可能保持一致的,在实际业务开发中,有一些方案可以做取舍。 实际业务中&a…...
Django -- 自动化测试
概述 测试是一种例行的、不可缺失的工作,用于检查你的程序是否符合预期。 测试可以划分为不同的级别。一些测试可能专注于小细节(比如某一个模型的方法是否会返回预期的值?), 一些测试则专注于检查软件的整体运行是否…...
NodeJS 在Windows / Mac 上实现多版本控制
NodeJS 的多版本控制 本文介绍一下在 windows/MacOS 上 如何 切换和使用多个版本的 NodeJS。 Windows 本小节介绍一下在windows上管理不同版本的NodeJS。 nvm-windows 工具 nvm-windows 是在 windows 上管理 NodeJS 版本的一个工具。 它可以很方便的 下载、移除、查看、切…...
Web3 游戏周报(3.24-3.30)
【3.24-3.30】Web3 游戏行业动态: Web3 开发平台 Mirror World 在 Solana 上推出首个游戏 rollup 链 NFT 卡牌游戏 Parallel 完成 3,500 万美元融资,Solana Ventures 等参投 加密游戏开发公司 Gunzilla Games 完成 3,000 万美元融资 Telegram 游戏 No…...
算法思想1. 分治法2. 动态规划法3. 贪心算法4. 回溯法
目录 递归和动态的区别:空间和时间复杂度之争 递归空间复杂度低;动态时间复杂度第低...
SpringBoot+ECharts+Html 地图案例详解
1. 技术点 SpringBoot、MyBatis、thymeleaf、MySQL、ECharts 等 此案例使用的地图是在ECharts社区中查找的:makeapie echarts社区图表可视化案例 2. 准备条件 在mysql中创建数据库echartsdb,数据库中创建表t_location_count表,表中设置两个…...
达梦数据库 优化
谁进行优化?优化什么? 优化不能仅从数据库方面考虑,比如,在存储达到数据库极限、应用涉及人员设计的代码稀巴烂的情况下,进行调优就是杯水车薪的效果。 涉及到优化人员: 数据库管理员应用程序架构师应用…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
TJCTF 2025
还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...
基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...

