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

【dockerpython】亲测有效!适合新手!docker创建conda镜像+容器使用(挂载、端口映射、gpu使用)+云镜像仓库教程

文章目录

  • docker基本概念简介
  • 配置镜像加速源
  • 创建conda镜像
    • 1. 写 Dockerfile文件
    • 2. 创建镜像
    • 3. 创建容器并测试
  • 容器的使用
    • 1. wsl挂载
    • 2. 端口映射
    • 3. 补充-gpu
  • 云镜像仓库使用
    • 1. 登录
    • 2. 将本地镜像上传至云镜像仓库
    • 3. 从云镜像仓库下载镜像到本地

docker基本概念简介

简单来讲,docker可以理解为一个虚拟机,里面用来存放运行程序所需要的环境(各种包)

docker里面有三个基本概念:镜像、容器和仓库:镜像和容器的关系,其实类似于类和对象的关系(镜像就是模板,容器则是从镜像实例化出的一个实例);而云仓库存的是镜像!

  • 先把自己本地环境打包成docker file,然后上传到仓库;
  • 然后再从仓库下载镜像文件到Linux服务器;
  • 将下载下来的镜像文件实例化成容器;
  • 最后,运行容器即可!

配置镜像加速源

如果不配置镜像加速源的话,下载一些基础镜像的时候会失败!所以这步必须配置!

(之前也是尝试了很多的命令行方法都没有成功,猜测因为wsl依赖于docker desktop的配置)

"registry-mirrors": ["https://inhj05a1.mirror.aliyuncs.com"]

在这里插入图片描述

创建conda镜像

1. 写 Dockerfile文件

FROM continuumio/miniconda3 AS base
WORKDIR /yhyENV PATH /opt/conda/envs/yhy/bin:$PATHRUN conda create --name yhy python=3.9 \&& /bin/bash -c "source activate yhy" \&& echo "conda activate yhy" >> ~/.bashrc \&& pip install -i https://pypi.tuna.tsinghua.edu.cn/simple \uvicorn fastapi torch loguru pydantic langchain vllm

2. 创建镜像

docker build -t yhy_conda -f Dockerfile .

镜像创建过程:

  • 激活虚拟环境ing…
    在这里插入图片描述
  • 下载各种包ing…
    在这里插入图片描述

3. 创建容器并测试

如下,执行创建容器并进入容器命令,从yhy_conda镜像中创建了一个名为yhy_conda_test的容器:

docker run -it --name yhy_conda_test yhy_conda:latest /bin/bash

执行pip list,可以发现包都已安装成功。

在这里插入图片描述

容器的使用

1. wsl挂载

以上过程中已经成功创建了conda镜像以及其实例化出的容器,我们可以在容器这个虚拟环境中运行python程序了,但是容器中东西是空的,并没有代码,直接的想法是和宿主机共享代码文件等资源,这里就需要用到挂载了。

挂载即:将宿主机的目录挂载到docker容器指定目录里,这样每次宿主机的目录修改了,这种修改会同步到对应的docker容器指定目录,从而实现文件的共享!

  • 挂载命令:如下,将宿主机上的/mnt/e/job_document/AICode 挂载到docker的/yhy/AICode
docker run -it --privileged=true -v /mnt/e/job_document/AICode:/yhy/AICode yhy_conda 

如下,可以发现已经挂载成功。

在这里插入图片描述

在这里插入图片描述

2. 端口映射

有时我们希望宿主机访问docker容器里的服务,但是docker容器的ip地址是随机分配的、变化的,外界并不能访问到,因此如果想要宿主机和docker容器通信,就要用到端口映射

端口映射即:宿主机和docker共享ip地址,将docker的xx端口映射到宿主机的xx端口,这样在宿主机中通过宿主机ip地址(或127.0.0.1)就能访问到docker容器里的服务!

  • 端口映射命令:将docker的12311端口映射到宿主机的80端口
docker run --gpus all -it --name yhy_container -p 80:12311 --privileged=true -v /mnt/e/job_doc
ument/AICode:/yhy/AICode yhy_conda 
  • docker中为12311端口
    在这里插入图片描述
  • 宿主机用80端口访问成功!
    在这里插入图片描述

3. 补充-gpu

如果想要在docker中使用宿主主机的GPU,则需要加上–gpus all参数。(如果失败,可能是没有安装nvidia-docker,官网或网上都有教程)

  • 运行容器时,加上–gpus all!
docker run --gpus all -it --privileged=true -v /mnt/e/job_document/AICode:/yhy/AIC
ode yhy_conda

云镜像仓库使用

1. 登录

docker login

然后输入自己的用户名和密码!

2. 将本地镜像上传至云镜像仓库

docker tag yhy_conda cis-hub-dongguan-1.cmecloud.cn/mcloud-ai/yhy_conda
docker push cis-hub-dongguan-1.cmecloud.cn/mcloud-ai/yhy_conda

在这里插入图片描述

3. 从云镜像仓库下载镜像到本地

docker pull cis-hub-dongguan-1.cmecloud.cn/mcloud-ai/yhy_conda

在这里插入图片描述

相关文章:

【dockerpython】亲测有效!适合新手!docker创建conda镜像+容器使用(挂载、端口映射、gpu使用)+云镜像仓库教程

文章目录 docker基本概念简介配置镜像加速源创建conda镜像1. 写 Dockerfile文件2. 创建镜像3. 创建容器并测试 容器的使用1. wsl挂载2. 端口映射3. 补充-gpu 云镜像仓库使用1. 登录2. 将本地镜像上传至云镜像仓库3. 从云镜像仓库下载镜像到本地 docker基本概念简介 简单来讲&a…...

矩阵,求矩阵秩、逆矩阵

求矩阵秩的方法: 高斯消元法:通过行变换将矩阵化为行阶梯形矩阵,然后数非零行的数量。LU分解:通过分解矩阵成上下三角矩阵,计算非零对角元素的数量。SVD分解:通过奇异值分解,计算非零奇异值的数…...

指针和const

const int* ptr,int* const ptr,const int* const ptr 这三种指针定义有什么区别?用法有什么不同? 指向的地址是否可变指向的地址上存储的内容是否可变const属性const int* ptr可改变不可改*ptr具有const属性int* const pts不可改…...

基于C#调用文心一言大模型制作桌面软件(可改装接口)

目录 开发前的准备账号注册应用创建应用接入 开始开发创建项目设计界面使用 AK,SK 生成鉴权签名窗体代码 百度智能云千帆大模型平台什么是百度智能云千帆大模型平台模型更新记录 开发前的准备 账号注册 访问百度智能云平台,通过百度账号登录或手机号验证…...

VScode插件安装

一、常用插件 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code vscode 中文插件 Auto Rename Tag 闭合标签 Path Intellisense 一个非常实用的工具,它提供了文件路径的自动补全功能,可以极大地提高开发效率。路径自动补全、…...

《Milvus Cloud向量数据库指南》——高可用黄金标准:深入解析与业务策略考量

高可用黄金标准:深入解析与业务策略考量 在信息技术飞速发展的今天,高可用性(High Availability, HA)已成为衡量企业IT系统性能与稳定性的关键指标之一。它不仅仅关乎技术层面的优化与配置,更是企业保障业务连续性、提升客户体验、增强市场竞争力的重要基石。尽管高可用性…...

sqli-labs注入练习1,2关

sqli-labs第一关 判断是否存在sql注入 可见,根据输入数字的不同,结果也不同 判断sql语句是否是拼接,且是字符型还是数字型 由上可见,这关指定是字符型且存在sql注入漏洞 使用联合注入 第一步:首先知道表格有几列&…...

B站宋红康JAVA基础视频教程个人笔记chapter04

文章目录 1.IDEA安装好后的一些设置和学习1.1关于IDEA内部jdk版本的设置1.2 一些样式以及快捷键的常用设置(强烈推荐) 2.工程与模块管理3.如何彻底的卸载IDEA 1.IDEA安装好后的一些设置和学习 1.1关于IDEA内部jdk版本的设置 1.File—>Project Struc…...

关于java枚举为什么可以拿来当单例实现这件事看看ikun怎么说

为什么枚举可以保证单例 枚举可以保证单例的原因主要可以归结为以下几个方面: 1. 枚举的实例化过程 线程安全:枚举的实例化过程是由JVM控制的,在类加载时就完成了枚举常量的初始化。由于这个初始化过程是线程安全的(JVM在加载枚…...

Hugging Face下载模型

1、安装 huggingface-cli pip install -U huggingface_hub 2、设置环境变量(如果你打算使用 HF_ENDPOINT 环境变量来指定下载镜像站点): export HF_ENDPOINThttps://hf-mirror.com 3、使用 huggingface-cli 下载模型: 使用下面的命令来下…...

JVM-垃圾回收

什么是JVM的垃圾回收? 垃圾回收(Garbage Collection, GC)是Java虚拟机(JVM)自动管理内存的一种机制,其目的是自动回收不再使用的对象所占用的内存空间,以防止内存泄漏和提升内存利用效率。 运…...

8.C基础_指针基础

指针概述 1、定义与初始化 形式&#xff1a;<数据类型>* <变量名> <地址>; int a 10; int *p &a; 指针的类型不同&#xff0c;p时的偏移地址量不同&#xff0c;偏移地址 sizeof(类型)Byte 注意点&#xff1a; 指针的类型要与数据的类型保持一…...

安泰功率放大器使用注意事项有哪些内容和要求

功率放大器是一种广泛应用于音频系统、通信系统和实验室等领域的设备&#xff0c;其作用是将输入信号放大到足够大的功率输出。为了安全使用功率放大器并保证其性能和寿命&#xff0c;以下是一些使用功率放大器时需要注意的事项和要求。 一、选择适当的功率放大器&#xff1a; …...

windows下,使用vs code远程连接云服务器【以CentOS7为例】

windows下&#xff0c;使用vs code远程连接云服务器 1. 下载VS code并准备相关插件2. 使用Remote - SSH远程控制Linux 1. 下载VS code并准备相关插件 1. VS code官网&#xff1a; 下载地址&#xff1a;https://code.visualstudio.com/Download下载合适版本的vs code。 2. 推荐…...

x264 中像素扩边算法源码分析

介绍 在视频编码中,特别是在使用x264这样的H.264/MPEG-4 AVC编码器时,像素扩边(或称为边缘扩展)是一项重要的预处理步骤。像素扩边的目的是在帧的边缘添加额外的像素,这样在编码过程中可以应用滤波器,如去块滤波器(deblocking filter)和水平/垂直滤波器,而不会受到帧…...

数据结构——双链表详解(超详细)

前言&#xff1a; 小编在之前已经写过单链表的创建了&#xff0c;接下来要开始双链表的讲解了&#xff0c;双链表比单链表要复杂一些&#xff0c;不过确实要比单链表更好进行实现&#xff01;下面紧跟小编的步伐&#xff0c;开启今天的双链表之旅&#xff01; 目录 1.概念和结构…...

银行项目利润问题(贪心思想)

import java.util.Comparator; import java.util.PriorityQueue;public class test32 {//输入正数数组costs、正数数组profits、正数K、正数M//costs[i]表示i号项目花费&#xff0c;profits[i]表示i号项目在扣除花费后还挣的钱//K表示有多少项目//M表示初始资金//每做完一个项目…...

SQLite

SQLite Insert 插入 语句 方式1&#xff1a; INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN); 方式2&#xff1a; INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN); &#xff08;如果要…...

浅谈 Mybatis 框架

文章目录 一、什么是MyBatis?1.2、JDBC 二、使用Mybatis2.1、配置MyBatis开发环境2.1.1、配置连接字符串2.1.2、配置MyBatis中的XML路径 2.2、使用MyBatis模式和语法操作数据库 三、使用 Mybatis 进行增删改查操作的要点3.1、ResultMap的用法 四、Mybatis操作难点4.1、#{ } 和…...

【星海随笔】OSPF协议

OSPF OSPF 可在单一自治系统&#xff08;Autonomous System, AS&#xff09;内决策路由。OSPF 是目前内部网关协议中使用最为广泛、性能最优的一个动态路由协议。 (1) OSPF 的特点。可适应大规模的网&#xff0c;路由变化收敛速度块&#xff0c;无路由自环&#xff0c;支持变…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...