docker (镜像分层、阿里云镜像推送/拉去)-day02

一、镜像概念

Docker 镜像是 Docker 容器的基础,它提供了一种可重复使用的、跨平台的部署方式,使得应用程序的部署和运行变得简单和高效。

把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),打包好的运行环境就是image镜像文件。

 二、分层镜像

2.1 镜像的底层原理(联合文件系统)

Docker 镜像的底层原理是联合文件系统(UnionFS)。联合文件系统是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层一层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。

Docker 镜像实际上由一层一层的文件系统组成,这种层级的文件系统就是联合文件系统。在 Docker 镜像中,最底层是引导文件系统(bootfs),它主要包含引导加载器和内核。当引导加载完成之后,整个内核就都在内存中了,此时内存使用权已由 bootfs 转交给内核,此时系统也会卸载 bootfs。

在 bootfs 之上的层级是 rootfs(root file system),它包含的是典型 Linux 系统中的 /dev、/proc、/bin、/etc 等标准目录和文化。rootfs 就是各种不同的操作系统发行版,比如 Ubuntu、Centos 等。

联合文件系统使得 Docker 镜像可以分层进行继承,基于基础镜像,可以制作各种具体的应用镜像。这种分层的好处是共享资源、方便复制迁移,从而能够提高效率,减少空间占用,方便维护更新。

2.2 为什么docker镜像使用分层结构

Docker镜像层都是只读的,容器层是可写的。当容器启动时,一个新的可写层被加载到镜像的顶部。 这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。

所有对容器的改动 。无论添加、删除、还是修改文件都只会发生在容器层中。只有容器层是可写的,容器层下面的所有镜像层都是只读的。
 

  三、docker镜像commit操作案例(重点)

 由此看出docker镜像分层,支持通过现有的镜像,生成新的镜像,在原有基础上扩展。

docker commit 提交容器副本使之成为一个新的镜像:docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]示范:
docker commit -m="vim install ok" -a="syf" f49f1addd673  syf/mybuntun1.0

 如图:ubuntu 容器中,没有vim 命令

[root@iZuf6hxabqikytnrumsi4gZ ~]# docker run -it --name myubuntu ubuntu /bin/bash
root@f49f1addd673:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@f49f1addd673:/# vim a.txt
bash: vim: command not found

安装vim 

更新ubuntu 包管理工具
apt-get update
安装vim
apt-get -y install vim

 commit 我们安装vim 的ubuntu镜像

[root@iZuf6hxabqikytnrumsi4gZ ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS         PORTS     NAMES
f49f1addd673   ubuntu    "/bin/bash"   44 minutes ago   Up 5 minutes             myubuntu
[root@iZuf6hxabqikytnrumsi4gZ ~]# docker commit -m="vim install ok" -a="syf" f49f1addd673  syf/mybuntun1.0

查看结果

[root@iZuf6hxabqikytnrumsi4gZ ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED              SIZE
syf/mybuntun1.0   latest    5166bfe283d8   About a minute ago   189MB
tomcat            latest    fb5657adc892   23 months ago        680MB
redis             latest    7614ae9453d1   23 months ago        113MB
ubuntu            latest    ba6acccedd29   2 years ago          72.8MB

 四、阿里云镜像仓库创建

4.1今日阿里云,左上角菜单栏鼠标放上去展开,搜索容器镜像服务

 4.2创建个人实例

4.3   创建命名空间

4.4在创建好的空间下,新建仓库 

4.5 选择本地仓库

最后阿里云会生成一堆命令,copy使用就行。

五、阿里云镜像推送和拉去(重点)

5.1 先登录:docker login --username=测试账号 registry.cn-shanghai.aliyuncs.com

[root@iZuf6hxabqikytnrumsi4gZ ~]# docker login --username=测试账号 registry.cn-shanghai.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

5.2  打个tag

docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/ceshi_resposity/myubuntu:[镜像版本号]

[root@iZuf6hxabqikytnrumsi4gZ ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
syf/mybuntun1.0   latest    5166bfe283d8   2 hours ago     189MB
tomcat            latest    fb5657adc892   23 months ago   680MB
redis             latest    7614ae9453d1   23 months ago   113MB
ubuntu            latest    ba6acccedd29   2 years ago     72.8MB
[root@iZuf6hxabqikytnrumsi4gZ ~]# docker tag 5166bfe283d8 registry.cn-shanghai.aliyuncs.com/ceshi_resposity/myubuntu:1.0

 5.3  推送到阿里云仓库

docker push registry.cn-shanghai.aliyuncs.com/ceshi_resposity/myubuntu:[镜像版本号]

[root@iZuf6hxabqikytnrumsi4gZ ~]# docker push registry.cn-shanghai.aliyuncs.com/ceshi_resposity/myubuntu:1.0

5.4从阿里云上拉去镜像 

docker pull registry.cn-shanghai.aliyuncs.com/ceshi_resposity/myubuntu:[镜像版本号]

[root@iZuf6hxabqikytnrumsi4gZ ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
tomcat       latest    fb5657adc892   23 months ago   680MB
redis        latest    7614ae9453d1   23 months ago   113MB
ubuntu       latest    ba6acccedd29   2 years ago     72.8MB
[root@iZuf6hxabqikytnrumsi4gZ ~]# docker pull registry.cn-shanghai.aliyuncs.com/ceshi_resposity/myubuntu:1.0
1.0: Pulling from syf_resposity/myubuntu
7b1a6ab2e44d: Already exists 
1ec782c8d5e1: Pull complete 
Digest: sha256:c6d759583840a80c82c0704858b8c0f84e1daf5883db9521446f6cc8c1cc9ec0
Status: Downloaded newer image for registry.cn-shanghai.aliyuncs.com/syf_resposity/myubuntu:1.0
registry.cn-shanghai.aliyuncs.com/ceshi_resposity/myubuntu:1.0
[root@iZuf6hxabqikytnrumsi4gZ ~]# docker images
REPOSITORY                                                 TAG       IMAGE ID       CREATED         SIZE
registry.cn-shanghai.aliyuncs.com/syf_resposity/myubuntu   1.0       5166bfe283d8   2 hours ago     189MB
tomcat                                                     latest    fb5657adc892   23 months ago   680MB
redis                                                      latest    7614ae9453d1   23 months ago   113MB
ubuntu                                                     latest    ba6acccedd29   2 years ago     72.8MB
[root@iZuf6hxabqikytnrumsi4gZ ~]# 

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

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

相关文章

C语言练习记录(蓝桥杯练习)(小蓝数点)

目录 小蓝数点 第一题程序的输出结果是?: 第二题下面代码的执行结果是什么?: 第三题下面代码的执行结果是什么?: 第四题关于关系操作符说法错误的是?: 第五题对于下面代码段,y的值为? 第六题sum 21 …

Java 数据结构篇-用链表、数组实现栈

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 栈的说明 2.0 用链表来实现栈 2.1 实现栈 - 入栈方法(push) 2.2 实现栈 - 出栈(pop) 2.3 实现栈 - 查看栈顶元素…

国产linux单用户模式破解无密码登陆 (麒麟系统用户登录密码遗忘解决办法)

笔者手里有一批国产linu系统,目前开始用在日常的工作生产环境中,我这个老程序猿勉为其难的充当运维的或网管的角色。 国产linux系统常见的为麒麟Linux,统信UOS等,基本都是基于debian再开发的linux。 问题描述: 因为…

基于AT89C51单片机的倒数计时器设计

1.设计任务 利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表,设计的系统实用性强、操作简单,实现了智能化、数字化。 本设计采用单片机为主控芯片,结合周边电路组成LED彩灯的闪烁控制系统器,用来控制红色…

用于缓存一些固定名称的小组件

项目中,用于缓存姓名、地名、单位名称等一些较固定名称的id-name小组件。用于减少一些表的关连操作和冗余字段。优化代码结构。扩展也方便,写不同的枚举就行了。 具体用法: {NameCacheUser.USER.getName(userId);NameCacheUser.ACCOUNT.getN…

excel合并单元格教程

在表格里,总是会遇到一级表格、二级表格的区别,这时候一级表格会需要合并成一个大格子,那么excel如何合并单元格呢,其实使用快捷键或者功能键就可以了。 excel如何合并单元格: 1、首先我们用鼠标选中所有要合并的单元…

最大公约数的C语言实现xdoj31

时间限制: 1 S 内存限制: 1000 Kb 问题描述: 最大公约数(GCD)指某几个整数共有因子中最大的一个,最大公约数具有如下性质, gcd(a,0)a gcd(a,1)1 因此当两个数中有一个为0时,gcd是不为0的那个整数&#xff…

XXL-Job详解(一):组件架构

目录 XXL-Job特性系统组成架构图调度模块剖析任务 “运行模式” 剖析执行器 XXL-Job XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 特性 1、简单&#…

java+springboot实验室管理系统的设计与实现ssm+jsp

课题研究内容: (1) 系统需求分析(构成模块,系统流程,功能结构图,系统需求) (2) 实验室课程安排功能模块(课程的录入和调补) &#xff…

wyler水平仪维修WYLER倾角仪维修CH-8405

瑞士WYLER电子水平仪维修;BIueCLINO倾斜度测量仪维修;wyler电子倾角仪维修。 水平仪常见故障及处理方法 1、 仪表通电不工作。 A、检查仪表220V电源端子接线是否正确 B、检查仪表电容是否熔断; C、拧下仪表后的固定螺钉,将表…

王道数据结构课后代码题p40 4.在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小值唯一) (c语言代码实现)

本题代码为 void deletemin(linklist* L)//找到最小值并删除 {lnode* p (*L)->next, * pre *L;lnode* s p,*sprepre;while (p ! NULL)//找到最小值{if (p->data < s->data){s p;spre pre;}p p->next;pre pre->next;}p s->next;spre->next p;…

有IP没有域名可以申请证书吗?

一、IP证书是什么&#xff1f; ip证书是用于公网ip地址的SSL证书&#xff0c;与我们通常所讲的SSL证书并无本质上的区别&#xff0c;但由于SSL证书通常颁发给域名&#xff0c;而组织机构需要公共ip地址的SSL证书&#xff0c;这类SSL证书就是我们所说的ip证书。ip证书具有安全、…

仅仅通过提示词,GPT-4可以被引导成为多个领域的特定专家

The Power of Prompting&#xff1a;提示的力量&#xff0c;仅通过提示&#xff0c;GPT-4可以被引导成为多个领域的特定专家。微软研究院发布了一项研究&#xff0c;展示了在仅使用提策略的情况下让GPT 4在医学基准测试中表现得像一个专家。研究显示&#xff0c;GPT-4在相同的基…

上海毅速丨新材料将推动3D打印在压铸行业的应用

压铸是一种应用广泛的制造工艺&#xff0c;它的制造原理是将液态或半液态金属&#xff0c;在高压作用下&#xff0c;以高速度填充压铸模具型腔&#xff0c;并在压力下快速凝固而获得铸件的一种方法。压铸模的设计和制造需要考虑到多方面的因素&#xff0c;如模具材料、结构、冷…

设计模式详解(二):抽象工厂——Abstract Factory

目录导航 抽象工厂及其作用工厂方法的好处工厂方法的实现关系图实现步骤 工厂方法的适用场景工厂方法举例 抽象工厂及其作用 工厂方法是一种创建型设计模式。所谓创建型设计模式是说针对创建对象方面的设计模式。在面向对象的编程语言里&#xff0c;我们通过对象间的相互协作&…

SAP SD 创建交货单 报错 VL461 VL248

因为生产环境已经被改好了&#xff0c;无法跟踪 所以换到测试环境重现一把&#xff0c;如何追根究底 对比正常订单发现 计划行 VBEP-LMENG,VBEP-BMENG这两个字段上的值跟 订单数量不一致。 尝试修改2者的数据跟订单数据一致&#xff0c;则可以正常创建交货单 实际原因是&a…

【每日一坑】KiCAD导Gerber 文件

第一&#xff0c;软件版本 第二、操作选择注意点 第三&#xff0c;那个坑。。。 不知道什么原因&#xff0c;这第二个框里会选其他不必要得一些东西&#xff0c;导致最终光绘是废的&#xff1b; 一定切记只选edge.cut就好了。 最后&#xff0c;上Gerber图&#xff0c;还有一点…

机器学习入门(第六天)——支持向量机(升维打击)

Support vector machines 知识树 Knowledge tree 苹果表示重点 间隔&#xff1a;使用了几何间隔&#xff0c;保证w b的度量&#xff0c;感知机则是函数间隔 间隔最大化思想&#xff1a;则是支持向量机的独有&#xff0c;这使得它找到最优超平面 核函数&#xff1a;面试当中可…

防火墙补充NAT

目录 1.iptables保存规则 2.自定义链 3.NAT NAT的实现分为下面类型&#xff1a; SNAT实验操作 DNAT实验操作 1.iptables保存规则 永久保存方法一&#xff1a; iptables -save > /data/iptables_rule //输出重定向备份 iptables -restore < /data/iptables_r…

Windows安装Kafka3.6,单机

Kafka版本&#xff1a;kafka_2.13-3.6.0 Windows10系统 安装与配置 下载 kafka_2.13-3.6.0.tgz 下载并解压Kafka 3.6.0的压缩包到你选择的目录。 Kafka3.6.0下载链接https://kafka.apache.org/downloads 说明&#xff1a;Kafka3.6内置了Zookeeper&#xff0c;使用内置的Zo…