当前位置: 首页 > 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

在这里插入图片描述

http://www.lryc.cn/news/416154.html

相关文章:

  • 矩阵,求矩阵秩、逆矩阵
  • 指针和const
  • 基于C#调用文心一言大模型制作桌面软件(可改装接口)
  • VScode插件安装
  • 《Milvus Cloud向量数据库指南》——高可用黄金标准:深入解析与业务策略考量
  • sqli-labs注入练习1,2关
  • B站宋红康JAVA基础视频教程个人笔记chapter04
  • 关于java枚举为什么可以拿来当单例实现这件事看看ikun怎么说
  • Hugging Face下载模型
  • JVM-垃圾回收
  • 8.C基础_指针基础
  • 安泰功率放大器使用注意事项有哪些内容和要求
  • windows下,使用vs code远程连接云服务器【以CentOS7为例】
  • x264 中像素扩边算法源码分析
  • 数据结构——双链表详解(超详细)
  • 银行项目利润问题(贪心思想)
  • SQLite
  • 浅谈 Mybatis 框架
  • 【星海随笔】OSPF协议
  • Vue 使用elementUI-plus el-calendar加 公历转农历 是否节假日 等
  • SQL-锁
  • 索引小tips
  • 2024年【中级消防设施操作员(考前冲刺)】报名考试及中级消防设施操作员(考前冲刺)免费试题
  • 数据结构:栈(含源码)
  • 如何使用Markdown编辑器
  • 当代最火的哲学家颜廷利:全球公认十个最厉害的思想家之一
  • android13内核增加调试接口给上层使用
  • linux:phpstudy安装及日常命令使用[表格]
  • 【python】Linux升级版本
  • 鸿蒙开发if判断有点坑