【工程实践】Docker使用记录
前言
服务上线经常需要将服务搬到指定的服务器上,经常需要用到docker,记录工作中使用过dcoker指令。
1.写Dockerfile
1.1 全新镜像
FROM nvidia/cuda:11.7.1-devel-ubuntu22.04ENV WORKDIR=/data/Qwen-14B-Chat
WORKDIR $WORKDIR
ADD . $WORKDIR/RUN apt-get update && apt-get -y --no-install-recommends install vim curl wget build-essential python3.10 python3-pip && update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1 && pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simpleRUN pip install flash_attn-2.3.3+cu117torch1.13cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
#CMD ["sh", "-c", "python3 api.py -c /data/model/Qwen-7B-Chat -p 9092 -n 0.0.0.0"]
entrypoint tail -f /dev/null
1.2 复制镜像
FROM qwen-14b:v1.0#ENTRYPOINT ["tail", "-f", "/dev/null"]
COPY ./api.py /data/Qwen-14B-Chat/api.pyentrypoint tail -f /dev/null
2.建立docker镜像
docker build -f /ssd/dongzhenheng/Qwen-14B-Chat/Dockerfile -t qwen-1b:v1.0 .
3.查看docker 镜像id
docker images
4.根据镜像id 启动docker
使用docker run 启动镜像。设置外挂载模型/ssd/dongzhenheng/LLM/Qwen-14B-Chat/,映射到容器内/data/model/Qwen-14B-Chat路径。
docker run --gpus all -v /ssd/dongzhenheng/LLM/Qwen-14B-Chat/:/data/model/Qwen-14B-Chat -p 9093:9093 -d 695aa69fcf3a /bin
5.使用docker ps查看启动的容器id
docker ps
6.根据容器id进入容器
容器id为2733d1a26fd0
docker exec -it 2733d1a26fd0 bash
7.查看文件容器文件
cat aip.py
8.启动服务
python api.py -c /data/model/Qwen-14B-Chat -p 9093 -n 0.0.0.0
9.退出容器
control+A+D
10.停止容器
docker stop 529d9dee7ed1
11.删除镜像
docker rm 容器id
docker rmi 镜像id
12.docker save
使用 docker save 命令,可以将镜像保存为一个 tar 文件,这个文件中包含了镜像的所有层和元数据。可以将其复制到其他任何安装了 Docker 的机器上,并使用 docker load 命令加载回来。
docker save 695aa69fcf3a -o qwen-14b.tar
13.docker load
docker load 是 Docker 命令行工具中用于加载保存在文件中的 Docker 镜像的命令。它可以将之前使用 docker save 命令保存的 Docker 镜像加载回来。
docker load -I qwen-14b.tar
14.docker tag
docker tag 是 Docker 命令行工具中用于给镜像打标签的命令。它可以将一个镜像标记为新的标签,以便更容易地识别和管理。
docker tag qwen-14b qwen-14b:v1.0
15. docker login
docker login 是 Docker 命令行工具中用于登录到 Docker 镜像仓库的命令。它允许用户使用给定的用户名和密码进行身份验证,以便在 Docker 镜像仓库中执行操作,例如拉取和推送镜像。
在执行 docker login 命令时,需要提供有效的用户名和密码,以通过身份验证并登录到 Docker 镜像仓库。成功登录后,终端会显示一条消息,指示登录成功,并且 Docker 会将所登录的仓库地址和凭证存储在 ~/.docker/config.json 文件中,以便后续使用。
docker login -u myusername -p mypassword docker.io
16.上推镜像
docker push 是 Docker 命令行工具中用于将本地 Docker 镜像上传到 Docker 镜像仓库的命令。在执行 docker push 命令之前,需要先使用 docker login 命令登录到 Docker 镜像仓库。
docker push 用户名/仓库名称/myimage:v1.0
这将上传名为 myimage 的本地镜像到 Docker Hub,并将其标记为 v1.0。请确保将 用户名/仓库名称 和 myimage 替换为实际的用户名和镜像名称。
相关文章:
【工程实践】Docker使用记录
前言 服务上线经常需要将服务搬到指定的服务器上,经常需要用到docker,记录工作中使用过dcoker指令。 1.写Dockerfile 1.1 全新镜像 FROM nvidia/cuda:11.7.1-devel-ubuntu22.04ENV WORKDIR/data/Qwen-14B-Chat WORKDIR $WORKDIR ADD . $WORKDIR/RUN ap…...
FreeSwitch安装视频
文章目录 序言Centos7安装FreeSwitch-1.6 序言 学习资料来源《FreeSWITCH权威指南》-作者杜金房这本书。我是2022年6月毕业的,偶然的机会接触到FreeSWITCH,FreeSWITCH纯属个人爱好,进行笔记整理。也一直希望有机会可以参与FreeSWITCH相关工作…...
SpringBoot3+Vue3+Mysql+Element Plus完成数据库存储blob类型图片,前端渲染后端传来的base64类型图片
前言 如果你的前后端分离项目采用SpringBoot3Vue3Element Plus,且在没有OSS(对象存储)的情况下,使用mysql读写图片(可能不限于图片,待测试)。 耗时三天,在踩了无数雷后,…...
攻略 | 参与Moonbeam Ignite Ecosystem Tour
Moonbeam联合Moonwell和Beamswap一起举办社区链上活动,旨在让社区用户通过任务来探索Moonbeam、Moonwell、Beamswap平台。在了解如何使用的同时,参与任务挑战还有机会分得 1700 USDC 奖池 🎁 的奖励!我已经完成全部任务࿰…...
【python自动化】Playwright基础教程(七)Keyboard键盘
【python自动化】Playwright基础教程(七)Keyboard键盘 playwright模拟键盘操作 键盘事件提供了用于管理虚拟键盘的API,高级API是keyboard.type(),它使用的是原始字符再页面上生成对应的keydown 、 keypress / input 和 keyup 事件。 模拟真实键盘操作进行…...
Java读取文件内容写入新文件
要实现读写文件这个过程我们需要导入以下的包 import java.io.BufferedReader; import java.io.BufferedWriter;BufferedReader 用于逐行读取源文件的内容,BufferedWriter 用于逐行写入目标文件。 下面以示例了解如何操作: import java.io.BufferedRe…...
学习samba
文章目录 一、samba介绍二、samba的主要进程三、配置文件四、例子 一、samba介绍 1、SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System)。 2、是Windows和类Unix系统之间共享文件的…...
【Ansible】Ansible的Ad-hoc命令执行流程
Ansible的Ad-hoc命令执行流程 用了这么久的Ansible,今天想着研究下Ad-hoc命令的执行流程,从最简单的ping开始吧。 测试命令如下: ansible 172.18.2.31 -m ping先看看回显的结果 [rootbigdata-m-002 etc]# ansible 172.18.2.31 -m ping 17…...
Postgresql 常用整理
文章目录 1. 查询1.1数据库表1.1.1 获取指定数据库表1.1.2 获取指定数据库表所有列名 1.2 别名1.2.1 子表指定别名1.2.2 查询结果指定别名 1.3 临时表1.3.1 定义临时表1.3.2 使用临时表 1.4 子表1.5 分组1.5.1 group by1.5.2 partition by 1.6 分组后合并指定列字段:…...
如何在Jupyter Lab中安装不同的Kernel
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
Java钩子函数的使用
目录 1. Java中常见的钩子函数 2. 使用钩子函数实现程序的清理工作 3. 使用钩子函数处理线程中的未捕获异常 4. 使用钩子函数实现窗口关闭时的操作 在Java编程中,钩子函数(Hook Function)是一种能够在特定事件发生时执行的代码块。钩子函…...
C++跨DLL内存所有权问题探幽(一)DLL提供的全局单例模式
最近在开发的时候,特别是遇到关于跨DLL申请对象、指针、内存等问题的时候遇到了这么一个问题。 问题 跨DLL能不能调用到DLL中提供的单例? 问题比较简单,就是我现在有一个进程A,有DLL B DLL C,这两个DLL都依赖DLL D的…...
短时间不点击云服务器,自动化断开连接,怎么设置长时间
在 Linux 系统中,如果你希望在一段时间内没有操作后保持远程连接不断开,可以通过修改 SSH 服务器的配置来实现。具体的步骤如下: 打开 SSH 服务器的配置文件: sudo vi /etc/ssh/sshd_config 找到以下两个参数并进行修改ÿ…...
typhonjs-escomplex 代码可读性 可维护度探索
目前市面上的前端代码质量评分中的代码可维护度是大都是基于 typhonjs-escomplex 这个库扫描而来,但是这个库的官方文档并没有介绍相关指标数据的计算规则,不知道规则如何提升指标数据呢?所以本文对 typhonjs-escomplex 源码进行探索…...
支持向量机基本原理,Libsvm工具箱详细介绍,基于支持向量机SVM的人脸朝向识别
目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 完整代码和数据下载链接: 基于支持向量机SVM人脸朝向识别(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88527821 SVM应用实例, 基…...
密码破解工具的编写
预计更新 网络扫描工具的编写漏洞扫描工具的编写Web渗透测试工具的编写密码破解工具的编写漏洞利用工具的编写拒绝服务攻击工具的编写密码保护工具的编写情报收集工具的编写 密码破解工具是一种常见的安全工具,它可以通过不断尝试不同的密码组合来破解加密的数据或…...
BES2700H开发不完全手册
BES2700H开发不完全手册 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,群赠送语音信号处理降噪算法,ANC AEC ENC EQ BF BES蓝牙耳机音频资料 1 成功编译 2 代码 3 开放文档...
OpenGL的学习之路-3
前面1、2介绍的都是glut编程 下面就进行opengl正是部分啦。 1.绘制点 #include <iostream> #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h>void myMainWinDraw();int main(int argc,char** argv) {glutInit(&argc,argv);glutIni…...
Vue 小黑记事本组件版
渲染功能: 1.提供数据: 提供在公共的父组件 App.vue 2.通过父传子,将数据传递给TodoMain 3.利用 v-for渲染 添加功能: 1.收集表单数据 v-model 2.监听事件(回车点击都要添加) 3.子传父,讲…...
javascript如何清空数组?
可以使用以下方法清空JavaScript数组: 直接赋值为空数组 arr []; let arr [1, 2, 3, 4]; arr []; // 现在arr是空数组使用 splice() 方法删除所有元素 let arr [1, 2, 3, 4]; arr.splice(0, arr.length); // 现在arr是空数组使用 length 属性将数组截断 let ar…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
