docker打包介绍

最近在做一个开源项目,遇到开发者问各种问题,发现都是系统和软件版本的差异引起的。于是了解了一下docker的使用,发现docker真是个好东东,基本解决了各种版本差异的问题,真正做到了一键部署使用。

先熟悉一下docker里的概念,docker分为镜像和容器,镜像是一个静态的文件,用于分发部署。容器是镜像运行起来后的运行时对象,可以在容器里安装软件、添加文件等,修改后可以用docker commit将容器打成一个新的镜像。 说的通俗一点,镜像就是一份安装光盘,容器是安装在主机上的操作系统环境。

整体流程如下图所示

1,最基本的镜像有ubuntu20.04等,但这种只有基础的操作系统。如果用于深度学习,最好已经安装了显卡驱动和cuda等工具,可以上这里CUDA | NVIDIA NGC挑选合适的镜像版本。

用docker pull xxx 拉取镜像到本地,然后可以用docker images查看本地镜像列表。

如果需要删除镜像,用docker rmi <image_id>

2,运行镜像生成一个容器,docker run -it --gpus all <image_id>,其中-it表示启动时进入一个交互命令行,后面可以在这个命令行安装软件等各种操作;--gpus all表示容器需要用到宿主机的显卡,如果不需要用显卡不要加这个。如果中途退出了命令行,可以用docker ps -a 找到这个容器,用docker start <container_id>启动容器,然后用docker exec -it <container_id> /bin/bash 重新进入命令行。 如果需要删除容器,用docker rm <container_id>

正式用docker时用命令docker run --rm --gpus all <image_id>,这时不需要进入交互命令行,--rm表示退出docker时会自动清除容器,这时用docker ps -a也找不到这个容器了。

3,在docker的交互命令行可以进行各种操作,跟在宿主机上操作一样。如果需要从宿主机拷贝文件到容器中,在宿主机上运行命令docker cp <path1> <container_id>:<path2>,其中path1为宿主机上文件路径,path2为容器中文件路径。

可以修改容器里的~/.bashrc,添加自启动命令,这样启动容器后,会自动执行这些命令

4,容器运行环境搭好后,用docker commit <container_id> <image_name>:<tag> 将容器打包成一个新的镜像,打包完成后用docker images可以看到这个新的镜像。

5,发布镜像到阿里云,先上阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台创建一个命名空间,

docker login --username=xxx registry.cn-hangzhou.aliyuncs.com  #登录阿里云
docker tag <image_name>:<tag> registry.cn-hangzhou.aliyuncs.com/<命名空间>/<image_name>:<tag>
docker push registry.cn-hangzhou.aliyuncs.com/<命名空间>/<image_name>:<tag>

如果不想发布到网上,只想本地存成一个文件,可以用命令docker export <container_id> > xxx.tar,将容器打包成一个文件,然后将这个文件拷到其他电脑上,用docker import xxx.tar <image_name>:<tag> 来导入成镜像 

docker运行中缓存清除,可以用命令docker builder prune,docker system prune

题外话

其实我们在阿里云上的云服务器就是阿里基于物理主机给我们开了一个容器而已,我们又在这个容器里用docker新开了更多容器,有点像俄罗斯套娃。我们的现实世界又何尝不是套娃呢。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用迭代优化递归程

王有志&#xff0c;一个分享硬核Java技术的互金摸鱼侠加入Java人的提桶跑路群&#xff1a;共同富裕的Java人 今天我们将会分析上篇文章中递归算法存在的问题&#xff0c;并通过迭代去优化。 递归存在的问题 上一篇中&#xff0c;我们计算了序号10以内的斐波那契数。今天为了清…

解析IT运维领域ITSS和ITIL证书

&#x1f33b;IT运维领域ITSS和ITIL证书是两种广泛认可的专业认证。 &#x1f4d7;ITSS认证证书 ITSS是中国电子技术标准化研究院推出的&#xff0c;&#x1f449;包含“IT 服务工程师”和“IT 服务经理”的系列培训。有效满足GB/T 28827.1 的符合性评估要求和ITSS服务资质升级…

软件测试|MySQL ORDER BY详解:排序查询的利器

简介 在数据库中&#xff0c;我们经常需要对查询结果进行排序&#xff0c;以便更好地展示数据或满足特定的业务需求。MySQL提供了ORDER BY子句&#xff0c;使我们能够轻松地对查询结果进行排序。本文将详细介绍MySQL ORDER BY的用法和示例&#xff0c;帮助大家更好地理解和应用…

74应急响应-winlinux分析后门勒索病毒攻击

#操作系统(windows,linux)应急响应&#xff1a; 1.常见危害&#xff1a;暴力破解&#xff0c;漏洞利用&#xff0c;流量攻击&#xff0c;木马控制(Webshell,PC 木马等)&#xff0c;病毒感染(挖矿&#xff0c;蠕虫&#xff0c;勒索等)。 2.常见分析&#xff1a;计算机账户&…

有趣的前端知识(二)

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 文章目录 推荐阅读HTML元素元素属性头部元素列表元素区块元素表单元素 颜色字符实体 HTML元素 …

从零学算法17

17.给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits “23” 输出&#xff1a;[…

加速科技ST2500 数模混合信号测试设备累计装机量突破500台!

国产数字机&#xff0c;测试中国芯&#xff01;新年伊始&#xff0c;国产半导体测试设备领军企业加速科技迎来了振奋人心的一刻&#xff0c;ST2500 数模混合信号测试设备累计装机量突破500台&#xff01;加速科技凭借其持续的创新能力、完善的解决方案能力、专业热忱的本地化服…

论文阅读:Making Large Language Models A Better Foundation For Dense Retrieval

论文链接 Abstract 密集检索需要学习区分性文本嵌入来表示查询和文档之间的语义关系。考虑到大型语言模型在语义理解方面的强大能力&#xff0c;它可能受益于大型语言模型的使用。然而&#xff0c;LLM是由文本生成任务预先训练的&#xff0c;其工作模式与将文本表示为嵌入完全…

Git将本地项目上传到Gitee仓库

1.右键点击文件&#xff0c;点击Git Bash Here,进入git窗口 2.初始化本地仓库 git init3.将本地仓库与远程仓库建立连接 git remote add origin 远程仓库地址远程仓库地址在gitee仓库复制即可 4.将远程仓库的文件拉到本地仓库中 git pull origin master5.将本地文件全部上传…

RocketMQ5-03RocketMQ-Dashboard和Java客户端访问示例

接上篇02快速部署RocketMQ5.x(手动和容器部署) 已经完成 RocketMQ5.0 环境的部署&#xff0c;就需要对这个环境进行测试&#xff0c;查看集群、写入消息、读取消息等 本篇教你如何使用和查看部署的服务&#xff1a; Docker部署 Dashboard 获取镜像并下载部署服务 客户端连接 …

python画房子

前言 今天&#xff0c;我们来用Python画房子。 一、第一种 第一种比较简单。 代码&#xff1a; import turtle as t import timedef go(x, y):t.penup()t.goto(x, y)t.pendown() def rangle(h,w):t.left(180)t.forward(h)t.right(90)t.forward(w)t.left(-90)t.forward(h) de…

Stable Diffusion 系列教程 - 6 Dreambooth及训练

Stable-Diffusion、Imagen等文生图大模型已经具备了强大的生成能力&#xff0c;假设我们的Prompt为 [Cyberpunk Style]&#xff0c;SD或许能很快画出赛博朋克风格的一幅画。但你作为一个不知名的人&#xff0c;不能奢求SD在训练的时候把你自己想要的风格也加进去吧&#xff1f;…