当前位置: 首页 > news >正文

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&#xff…...

蓝桥杯刷题第八天(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.给查询结果或者查询的这个表起别名&#xff08…...

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转义字符对照

特殊字符转义表 字符十进制转义字符"&quot;&&amp;<<<>>>不断开空格(non-breaking space) 最常用的转义字符列表 显示说明实体名称十进制编号半方大的空白&ensp;全方大的空白&emsp;不断行的空白格 <小于<<>大于&g…...

设计模式:组合模式示例

组合模式的典型例子通常涉及到树形结构的处理&#xff0c;下面是几个形象且易于理解的例子&#xff1a; 文件系统 在文件系统中&#xff0c;目录可以包含文件或者其他目录&#xff0c;但是从用户的角度来看&#xff0c;目录和文件都可以被“打开”或者“获取大小”。这里的目…...

普通情况和高并发时,Redis缓存和数据库怎么保持一致?

普通情况和高并发时&#xff0c;Redis缓存和数据库怎么保持一致&#xff1f; 普通情况思路 高并发时思路 Q&#xff1a;缓存和数据库怎么保持一致&#xff1f; A&#xff1a;绝对不可能保持一致的&#xff0c;在实际业务开发中&#xff0c;有一些方案可以做取舍。 实际业务中&a…...

Django -- 自动化测试

概述 测试是一种例行的、不可缺失的工作&#xff0c;用于检查你的程序是否符合预期。 测试可以划分为不同的级别。一些测试可能专注于小细节&#xff08;比如某一个模型的方法是否会返回预期的值&#xff1f;&#xff09;&#xff0c; 一些测试则专注于检查软件的整体运行是否…...

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 游戏行业动态&#xff1a; Web3 开发平台 Mirror World 在 Solana 上推出首个游戏 rollup 链 NFT 卡牌游戏 Parallel 完成 3,500 万美元融资&#xff0c;Solana Ventures 等参投 加密游戏开发公司 Gunzilla Games 完成 3,000 万美元融资 Telegram 游戏 No…...

算法思想1. 分治法2. 动态规划法3. 贪心算法4. 回溯法

目录 递归和动态的区别:空间和时间复杂度之争 递归空间复杂度低;动态时间复杂度第低...

SpringBoot+ECharts+Html 地图案例详解

1. 技术点 SpringBoot、MyBatis、thymeleaf、MySQL、ECharts 等 此案例使用的地图是在ECharts社区中查找的&#xff1a;makeapie echarts社区图表可视化案例 2. 准备条件 在mysql中创建数据库echartsdb&#xff0c;数据库中创建表t_location_count表&#xff0c;表中设置两个…...

达梦数据库 优化

谁进行优化&#xff1f;优化什么&#xff1f; 优化不能仅从数据库方面考虑&#xff0c;比如&#xff0c;在存储达到数据库极限、应用涉及人员设计的代码稀巴烂的情况下&#xff0c;进行调优就是杯水车薪的效果。 涉及到优化人员&#xff1a; 数据库管理员应用程序架构师应用…...

数据如何才能供得出、流得动、用得好、还安全

众所周知&#xff0c;数据要素已经列入基本生产要素&#xff0c;同时成立国家数据局进行工作统筹。目前数据要素如何发挥其价值&#xff0c;全国掀起了一浪一浪的热潮。 随着国外大语言模型的袭来&#xff0c;国内在大语言模型领域的应用也大放异彩&#xff0c;与此同时&#x…...

idea开发 java web 酒店推荐系统bootstrap框架开发协同过滤算法web结构java编程计算机网页

一、源码特点 java 酒店推荐推荐系统是一套完善的完整信息系统&#xff0c;结合java web开发和bootstrap UI框架完成本系统 采用协同过滤算法进行推荐 &#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式…...

Linux——线程控制

目录 前言 一、线程创建 1.创建线程 2.线程传递结构体 3.创建多线程 4.收到信号的线程 二、线程终止 三、线程等待 四、线程分离 五、取消线程 六、线程库管理的原理 七、站在语言角度理解pthread库 八、线程的局部存储 前言 前面我们学习了线程概念和线程创建&…...

【Leetcode 347】,前k个高频元素,小根堆的调整

参考题解 题目&#xff1a;给定一个数组&#xff0c;输出 前k个高频元素。 思路&#xff1a; 遍历数组&#xff0c;建立小根堆&#xff08;小根堆的元素是元组&#xff08;num,freq&#xff09;&#xff0c;排序规则是每个元素的频率&#xff09;。 下面使用数组‘heap’&…...

【图论】【分类讨论】LeetCode3017按距离统计房屋对数目

本文涉及的知识点 图论 分类讨论 本题同解 【差分数组】【图论】【分类讨论】【整除以2】3017按距离统计房屋对数目 LeetCode3017按距离统计房屋对数目 给你三个 正整数 n 、x 和 y 。 在城市中&#xff0c;存在编号从 1 到 n 的房屋&#xff0c;由 n 条街道相连。对所有 …...

浅谈Yum 安装和 源码安装

浅谈Yum 安装和 源码安装 本文所叙述的Linux系统是基于RedHat发行版的CentOS7 yum安装 1. 前言 我们知道在Windows上下载的安装包后缀是 .exe &#xff0c;与之对应的 在 Linux下的安装包的后缀是 .rpm rpm (Red Hat Package Manager) 是红帽软件包管理器 我们在Windows电脑…...

JavaEE初阶Day 3:多线程(1)

目录 Day 3&#xff1a;多线程&#xff08;1&#xff09;1. 线程1.1 引入线程的原因1.2 线程的定义1.3 为何线程更轻量1.4 问题 2. 多线程代码2.1 继承Thread重写run2.2 通过实现Runnable接口创建线程2.3 针对2.1的变形使用匿名内部类2.4 针对Runnable创建匿名内部类2.5 使用la…...

gutil140.dll是什么?gutil140.dll无法继续执行的解决方法

gutil140.dll文件是一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;通常与Microsoft Visual Studio 2015相关联。 gutil140.dll是开发过程中使用的工具函数集合&#xff0c;它辅助开发人员执行常见的编程任务&#xff0c;如文件操作、内存分配和字符串处理等。这个…...

在CentOS 7上安装Python 3.7.7

文章目录 一、实战步骤1. 安装编译工具2. 下载Python 3.7.7安装包3. 上传Python 3.7.7安装包4. 解压缩安装包5. 切换目录并编译安装6. 配置Python环境变量7. 使配置生效8. 验证安装是否成功 二、实战总结 一、实战步骤 1. 安装编译工具 在终端中执行以下命令 yum -y groupin…...

基于SpringBoot Vue宠物领养系统

一、&#x1f4dd;功能介绍 基于SpringBoot Vue宠物领养系统 角色&#xff1a;管理员、用户 当游客打开系统的网址后&#xff0c;首先看到的就是首页界面。在这里&#xff0c;游客能够看到宠物领养救助平台的导航条显示首页、宠物招领、宠物认领、 宠物论坛、宠物资讯、后台管…...

成人学设计应该去哪里学/优化seo方法

我们将要做一个用于展示手机官方站点的简单手机webapp程序。这个App包括一个主页&#xff0c;联系页面和一个博客页面。博客页面列出官方最近发表的一些文章并且可以通过手机设备进行查看文章信息。 这里展示一下实际要完成的效果图&#xff1a; 程序启动 第一件事情就是启动我…...

长沙建设网站/企业seo如何优化

摘要&#xff1a;刚刚使用centos7的时候,多数朋友会用的不是很顺手,尽管多了许多神乎其神的功能,但是对于基础的服务管理与网络管理方面的变化,还是让人褒贬不一。在centos7中,chkconfig与service命令没有之前那么好用,取而代之的是systemctl命令,这个强大的命令是一个系统管理…...

三明网站制作/seo优化软件免费

安装1、手动下载MyBatisGenerator插件提取码&#xff1a;u2gs2、在Myclispse安装目录\MyEclipse 2017 CI\dropins下创建myBatisgenerator文件夹3、将插件压缩包中的两个文件夹移动到mybatisgenerator文件夹中4、启动MyElicpse&#xff0c;选择File-New-Other&#xff0c;出现下…...

博客网站 做淘宝客/百度快照手机入口

linux下防御arp攻击的策略(转帖) linux下防御arp攻击的策略 1./*找出ARP攻击的机器*/ 获取同一网段下所有机器MAC地址的办法 机房有机器中毒&#xff0c;发arp包&#xff0c;通过arpspoof虽然可以解决&#xff0c;也可以找到中毒机器的mac地址&#xff0c;但在机房设备…...

自助建网站系统/网站排名软件包年

软件{rpm{rpm -ivh lynx # rpm安装rpm -e lynx # 卸载包rpm -e lynx --nodeps # 强制卸载rpm -qa # 查看所有安装的rpm包rpm -qa | grep lynx # 查找包是否安装rpm -ql # 软件包路径rpm -Uvh # 升级包rp…...

女主网站和男主做/销售策略和营销策略

2014年已尘埃落定&#xff0c;720万大学毕业生身在何处&#xff0c;其中100万计算机相关专业毕业生就业情况又如何&#xff1f;小编由于自身的职业特殊性&#xff0c;有机会接触大量高校毕业生&#xff0c;通过对这些高校毕业生的走访与调查&#xff0c;随机抽样了1000份继续选…...