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

news2024/9/21 3:35:37

文章目录

  • 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 /yhy

ENV PATH /opt/conda/envs/yhy/bin:$PATH

RUN 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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年“华数杯”数学竞赛A题完整解析 | 代码分享

机器臂关节角路径的优化设计 问题一 代码 Matlab clc clear % 参数定义 a [0, 300, 1200, 300, 0, 0]; alpha [0, -90, 0, -90, -90, -90]; d [600, 0, 0, 1200, 0, 0]; theta_min [-160, -150, -200, -180, -120, -180]; theta_max [160, 15, 80, 180, 120, 180]; P_t…

计算机网络(网络层)

网络层概述 网络层是干什么的? 网络层的主要任务是实现不同异构网络互连,进而实现数据包在各网络之间的传输相比于数据链路层的以太网通信,网络层则是将一个个数据链路层连接的以太网通过路由器连接起来。从而实现不同数据链路层的互联。 这…

【Linux】网络基础_3

文章目录 十、网络基础5. socket编程socket 常见APIsockaddr结构简单的UDP网络程序 未完待续 十、网络基础 5. socket编程 socket 常见API // 创建 socket 文件描述符 (TCP/UDP, 客户端 服务器) int socket(int domain, int type, int protocol);// 绑定端口号 (TCP/UDP, 服…

Ubuntu窗口如何自适应VM虚拟机

修改VM的显示设置 1:右击ubuntu计算机,点击设置按钮,进入到设置界面。 2:点击拉伸模式,选择自由拉伸。 以上操作结束之后打开ubuntu虚拟机。 ubuntu屏幕显示设置 进入到ubuntu系统之后,在桌面右击&…

网关与auth微服务缓存打通

文章目录 🌞 Sun Frame:SpringBoot 的轻量级开发框架(个人开源项目推荐)🌟 亮点功能📦 spring cloud模块概览常用工具 🔗 更多信息1.缓存一致性问题1、更新了数据库,再更新缓存2、更…

大数据-68 Kafka 高级特性 物理存储 日志存储概述

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

文献翻译软件哪个好?6个工具让你轻松看懂外语文献

在医学研究领域,文献翻译软件扮演着至关重要的角色。 医学论文、研究报告和临床指南等,往往包含了大量的专业术语和复杂的句子结构,对于非母语者来说,理解这些内容无疑是一项挑战。 幸运的是,随着技术的发展&#xf…

巴黎奥运会8K转播科技为国产品牌自主研发设计

这个夏天,顶流是属于巴黎奥运会中国队的。 20枚金牌、15枚银牌、12枚铜牌......这个数字正随着赛事推进而不停在增加。赛场之上,中国健儿奋力拼搏、捷报频传,令人热血沸腾;赛场之外,另一支来自中国企业的“奥运选手”…

Linux OS:基于阻塞队列的生产者消费者模型

Linux OS:基于阻塞队列的生产者消费者模型 前言一、阻塞队列的大致框架二、生产者向阻塞队列中生产数据三、消费者获取阻塞队列中数据四、总体生产和消费思路及测试代码4.1 单生产单消费4.2 多生产多消费 五、所以代码 前言 阻塞队列是一种常用于实现生产者消费者模…

大模型微调技术PEFT

1. 横向对比 总体概览: 方法Transformer 中如何应用特点Prompt Tuning在输入到Transformer的input文本中添加Prompthard 模式prompt CO-STARP-tuning在输入到Transformer的embedding 层添加Promptsoft 模式 promptAdapter Tuning在 Transformer 中间层插入 Adapt…

MATLAB代码|蚁群算法|计算二元函数最大值

总述 蚁群方法求解二元函数的最大值。蚂蚁群先随机分布在定义域内,如下: 计算结束后,得到如下的分布,再计算分布均值,得到此时的自变量取值,因为是二元函数,所以有两个自变量,带入…

Qt 实战(9)窗体 | 9.1、QWidget

文章目录 一、QWidget1、定义与概念2、继承体系3、常用特性3.1、事件处理3.2、布局管理3.3、子控件与父子关系3.4、右键菜单 4、注意事项5、总结 前言: 在Qt这一强大的跨平台C图形用户界面应用程序开发框架中,QWidget扮演着至关重要的角色。作为所有用户…

【日记】为啥家族原发性高血压的人还喜欢喝酒啊……(442 字)

正文 今天跟人吵了一下午架,因为有一张报表换了新表,所有人都不知道怎么报。上级行一个想法,我一个想法。吵完都发现对方说得有道理,于是决定明天问省分行。难绷。草台班子。 鱼儿说他最近喜欢上了喝酒。我们劝他的同时&#xff0…

太阳光度计CE-318数据处理

太阳光度计CE-318数据处理 备注:处理公式 在我国近海,α的值在0到3之间,所以他们相对误差最大不超过25%,而通过查阅相关资料,北京地区α的值可以近似的取1.665。 大气是不断运动的,气溶胶在短时间内也可…

【网络安全】https协议的加密方案避免中间人攻击(MITM攻击)导致的数据泄露风险

目录 引言 概念准备 中间人 加密 数据摘要 && 数据指纹 数字签名 密钥加密 中间人攻击 CA证书 https加密的解决方案 个人主页:东洛的克莱斯韦克-CSDN博客 引言 http在应用层协议中是明文传输协议,它是通信双方传输数据时的一种约定。【…

超声波便携式气象站:精准监测,随身携带

在追求高效与便捷的今天,超声波便携式气象站以其独特魅力脱颖而出,成为众多行业及户外爱好者的理想选择。超声波便携式气象站采用多采集装置一体式设计,不仅实现了体积的小型化与重量的轻量化,更便于用户随身携带,随时…

期权杠杆与期货杠杆的区别是什么?

期权与股指期货在杠杆性上展现出截然不同的特性,这些特性对投资者的策略选择具有深远影响。首先,股指期货采用保证金制度,其杠杆比例是恒定的,无论市场如何波动,投资者在月初设定的十倍杠杆到月尾仍保持不变。相比之下…

STM32常见的下载方式有三种

经过对比,推荐使用 SWD下载,只需要一个仿真器(如jLINK、ST LINK、 CMSIS DAP 等),比较方便。 不推荐使用串口下载(速度慢、无法仿真和调试)和 JTAG 下载(占用 IO 多)。

Java语言程序设计基础篇_编程练习题*16.7 (设置时钟的时间)

*16.7 (设置时钟的时间) 编写一个程序,显示一个时钟,并通过在三个文本域中输入小时、分钟和秒 钟来设置时钟的时间,如图16-38b 所示。使用程序清单14-21的ClockPane改变时钟大小使其居于面板中央 习题思路 实例化一个ClockPane(在程序清单1…

【网络安全渗透测试零基础入门必知必会】之什么是文件包含漏洞分类(非常详细)零基础入门到精通,收藏这一篇就够了

一、前言 这是大白给粉丝盆友们整理的网络安全渗透测试入门阶段文件包含渗透与防御第1篇。 本文主要讲解什么是文件包含漏洞、本地文件包含漏洞 喜欢的朋友们,记得给大白点赞支持和收藏一下,关注我,学习黑客技术。 一、什么是文件包含漏洞…