docker小白第四天

news2024/11/17 22:40:32

docker小白第一天

什么是镜像

1、是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。
2、只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。

镜像分层

1、UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtualfilesystem)。Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
2、例如docker特性:就是一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

Docker镜像加载原理

1、docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统叫UnionFS。
2、docker底层bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是引导文件系统bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
3、dokcer底层还有rootfs(root file system),在bootfs之上。包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。

docker镜像的理解

docker镜像层都是只读的,只有容器层是可写的。当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。
在这里插入图片描述

docker的commit命令

docker类似于一个最小型的linux机,仅仅保留了内核与极少量的操作命令。

docker commit提交容器副本使之成为一个新的镜像。
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 目标镜像名:[版本名]

例如,docker pull ubuntu下拉一个ubuntu镜像,然后docker run -it ubuntu /bin/bash 以交互式启动一个新的容器,但是该容器因为是极小linux内核,无法识别vim命令。
在这里插入图片描述
此时执行如下两命令

apt-get update
更新包管理工具,注意系统不一样,包管理工具不一样,ubuntu用apt
apt-get install vim
安装需要的vim包

安装完毕后,可以看到已经识别vim命令
在这里插入图片描述
然后commit提交我们的容器副本使之成为一个新镜像。

docker commit -m="add vim cmd" -a="cz" b7448758ee47 testmyubuntu:1.0
注意:镜像名字只支持小写字符。

在这里插入图片描述
可以看到刚刚自己生成的镜像,另外因为加了vim包,在size上,与原始的ubuntu镜像相比,大了100多MB。
在这里插入图片描述
启动新生成的镜像,与原来的做对比。

docker run -it ubuntu /bin/bash 
用原始ubuntu生成容器
docker run -it 镜像ID /bin/bash 
用自己生成的镜像进行新建容器

在这里插入图片描述

在这里插入图片描述
可以看到对比,自己新生成的镜像新建容器后,多了vim功能。

镜像分层

最大的一个好处就是共享资源,方便复制迁移,就是为了复用。比如说有多个镜像都从相同的base原始镜像构建而来,那么Docker Host只需在磁盘上保存一份base镜像;同时内存中也只需加载一份base镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。
Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似Java继承于一个Base基础类,自己再按需扩展。新镜像是从base镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层。

本地镜像发布到阿里云

登录阿里云

进入个人的容器镜像仓库
在这里插入图片描述

创建个人私有容器镜像仓库

创建个人实例后,创建命名空间。
在这里插入图片描述
镜像仓库选中刚才的空间,新建镜像仓库。
在这里插入图片描述
填写完相关信息后进入下一步,选择本地仓库
在这里插入图片描述
即可看到生成了一个仓库,并且自动生成了一些命令。
在这里插入图片描述

尝试推送自己生成的镜像

然后复制此处的代码,进入本地主机。依次完成登录阿里云仓库和推送镜像。
在这里插入图片描述

登录仓库
在这里插入图片描述
打包镜像,记住模板命令中的“中括号”要去掉
在这里插入图片描述
推送镜像包到阿里云容器镜像仓库
在这里插入图片描述

尝试下载自己的镜像

先删掉本地所有的镜像,然后拉取刚刚上传的镜像,生成新容器,执行vim命令进行测试。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Python爬虫-解决使用requests,Pyppeteer,Selenium遇到网站显示“您的连接不是私密连接”的问题|疑难杂症解决(2)

前言 本文是该专栏的第13篇,后面会持续分享python爬虫案例干货,记得关注。 相信很多同学在处理爬虫项目的时候,会遇到一些网站出现如下图所示的情况: 就是当你不论是使用requests进行协议请求,还是使用自动化框架pyppeteer或者selenium都会出现上图中的情况。这相信会或多…

nodejs微信小程序+python+PHP血液中心管理平台的设计与实现-计算机毕业设计推荐

在二十一世纪的今天,我国献血总量已经不容小觑,在全国人民的不懈努力下,贫血、缺血的病人已经有了足够的血液保障。与此同时,采血工作和血液入库、出库等工作也日愈繁重。为进一步提高采血工作和血液中心的工作效率,开…

3小时快速入门自动化测试 —— Selenium测试工具

自动化测试 自动化测试简单来说就是利用自动化测试工具和自动化测试脚本来完成指定的测试任务,测试启动过程无需人工参与,但自动化测试之前的准备工作需要人工手动配置好。它是一种将重复性、繁琐的测试任务交给计算机自动执行的方法,能够显…

vue中哪些数组的方法可以做到响应式

Vue2 中为什么直接通过数组的索引修改元素是不会触发视图更新 vue2 为什么不直接监听数组 Vue2 对于数组提供了一些变异方法 重写数组方法源码分析 定义拦截器将拦截器挂载到数组上面收集依赖 扩展:理解Vue2如何解决数组和对象的响应式问题 对复杂对象的处理 复杂对…

电脑自动关机怎么设置?

电脑自动关机怎么设置?如果你是一名上班族,工作忙起来很多事情都会忘记做,有时候忙到很晚后紧急下班,就会忘记给电脑关机,电脑如果经常不关机,那么电脑就会超负荷的运转,大家都知道电脑的寿命是…

云端赋能大湾区:华为云照亮数字化转型之路

编辑:阿冒 设计:沐由 在中国的经济版图上,大湾区是极其重要的增长引擎。这块富有活力和创新力的经济区域里,荟聚了大量的高新技术企业,以及一批创新孵化器和科研机构,产业升级和技术创新的氛围格外浓烈。 1…

OpenCV中的格式转换

目录 1. 前言2. 采集到播放数据流的走向3. OpenCV中的格式转换3.1 RGB3.2 YUV3.2.1 YUV420{P}3.2.2 YUV420SP 4 简单应用5. 关联文章 1. 前言 实际音视频开发过程芯片是做了硬件加速的,主要涉及到视频编解码。二次开发过程中需要对SDK做一定的封装使用才行。 写这…

2021年数维杯国际大学生数学建模A题新冠肺炎背景下港口资源优化配置策略求解全过程文档及程序

2021年数维杯国际大学生数学建模 A题 新冠肺炎背景下港口资源优化配置策略 原题再现: 2020年初,新型冠状病毒(COVID-19)在全球迅速蔓延。根据世界卫生组织2021年7月31日的报告,新冠病毒疫情对人类的影响可能比原先预…

nginx反向代理实践指南:访问Tomcat

目录 前言1 实现的效果2 访问流程分析3 安装tomcat并测试4 配置4.1 在Windows系统的hosts文件进行域名和IP对应关系的配置4.2 在NGINX进行请求转发的配置(反向代理配置) 5 最终测试结论 前言 从Windows系统访问Tomcat Web应用程序,设置和配置…

对BIOS进行简单快速的设置更改,就能启用安全引导来安装Windows 11

本文介绍如何在UEFI/BIOS中启用安全引导,以便继续安装Windows 11。 如何启用安全引导 启用安全引导最简单的方法是通过UEFI/BIOS进行。它通常被列为BIOS中的众多选项之一,因此你只需打开它即可启用它。 1、启动,或重新启动你的电脑或笔记本…

深入理解 hash 和 history:网页导航的基础(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

插头是什么

插头 电工电气百科 文章目录 插头前言一、插头是什么二、插头的类别三、插头的作用原理总结前言 插头的设计和结构会根据不同的国家和地区的标准和电源类型而有所不同。所以,在使用插头时,需要注意使用符合当地标准和规定的插头,以确保电气安全以及插入正确的电源插座 一、…

香槟过了保质期还能喝吗?

香槟是起泡酒的高级代表,是浪漫和喜庆的化身,它浑身上下都散发着无穷的魅力。那么,这么精贵的葡萄酒有没有保质期,会不会变质呢?云仓酒庄的品牌雷盛红酒分享当然会。一瓶酒的生命离不开它的保存期限,酒的质…

GPT-AI导航

1. https://ai-bot.cn/ https://ai-bot.cn/

股票交易信息实时大屏(Kafka+storm+Redis+DataV)

目录 引言 需求分析: 思路 数据源: 数据传输: 数据处理: 数据统计: 数据可视化: 数据提取: 技术栈 技术实现 前端界面搭建 布局: ​ 组件: 通信&#x…

Google Gemini Pro:AI模型的新里程碑,开放API访问;Octo: 一个开源通用的机器人策略

🦉 AI新闻 🚀 Google Gemini Pro:AI模型的新里程碑,开放API访问 摘要:Google宣布推出了名为Gemini的AI模型,旨在使AI更加有用。Gemini分为Ultra、Pro和Nano三个版本,并已开始在产品中使用。Ge…

node.js 启一个前端代理服务

文章目录 前言一、分析技术二、操作步骤2.1、下载依赖2.2、创建一个 serve.js 文件2.3、js 文件中写入以下代码 三、运行: node serve四、结果展示五、总结六、感谢 前言 有时候我们需要做一些基础的页面时,在研发过程中需要代理调用接口避免浏览器跨域…

Gartner发布2024年网络安全预测一:人工智能与网络安全将颠覆转化为机遇

Gartner 预测人工智能将以积极的方式持久地破坏网络安全,但也会造成许多短期的幻灭。安全和风险管理领导者需要接受 2023 年只是生成式 AI 的开始,并为其演变做好准备。 主要发现 生成式人工智能 (GenAI) 是一系列公认的颠覆性技术中的最新技术&#xff…

MaxCompute获取当前季度的第一天日期(odps sql)

工作中遇到获取当前季度的第一天,如下所示 SELECT CASE WHEN QUARTER(GETDATE()) 1 THEN DATETRUNC(GETDATE(),yyyy) WHEN QUARTER(GETDATE()) 2 THEN DATEADD(DATETRUNC(GETDATE(),yyyy),3,mm) WHEN QUARTER(GETDATE()) 3 THEN DATEADD(DATETRUNC(GETDATE(),…

学习Django从零开始之三

搭建虚拟python环境 搭建开发环境有多种方式,其中包括本地直接安装Python的可执行文件,使用virtualenv,以及使用Anaconda和Miniconda等工具。这些工具在创建Python虚拟环境方面各有特点。具体不同之处感兴趣的同学可以自行查阅相关资料。 简…