Ubuntu上使用Docker打包镜像
关于这个一开始会有点懵,直白一点就是,把本地路径下的代码放到docker里面去,然后在docker这个隔离环境中运行调用我们的程序。专业解释请自行检索学习。
第一步:创建容器
docker run --gpus all -it -v /data/Ariel:/data xlnet/cls:20190902 /bin/bash
有颜色的两部分可以根据实际情况进行修改,这一步执行之后,会生成一个容器id,后面第二步创建镜像就需要用到这个容器id。
/data/Ariel是本地代码路径,里面出需要使用的功能代码之外,还需要包含model_server.py,.thrift文件,以及训练好的权重文件(放在checkpoints里)。其中model_server.py,.thrift文件是自己根据代码针对性的写出来的,并且需要成功运行model_server.py(它就相当于一个测试脚本,把这个测试脚本运行成功无bug,我们后面才能使用这些代码文件)方可打包自己的镜像。
/data是我们自己的本地代码映射到docker中的存放路径,就是说本地路径有什么,docker中的data应该有什么。
xlnet/cls:20190902是自己需要使用的旧的镜像。所以,第一步创建容器之后,新容器里面的model所含内容其实是原来镜像里面的,自己新映射的一系列数据在docker的data目录下,若model非空,需要将model中数据删除,将自己的数据放入model中就ok了。
第二步:创建新的镜像
执行这一步需要首先退出容器。
docker commit -m'xlnet/cls' -a'ariel' ******* xlnet/cls:20200902
星号*******就是经过第一步创建容器之后生成的容器id。
ok,退出容器,使用命令docker images 查看一下自己新创建的镜像。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理