Docker容器技术基础(理论篇,对不理解docker的很重要!)

docker容器是学习中比较困难的地方,也是小白不容易理解的,我就是看这篇来的,真正的理解到容器。

1.1容器

1.1.1什么是容器

容器是一种沙盒技术,主要目的是为了将应用运行在其中,与外界隔离。这样方便将这个沙盒可以被转移到其它的宿主机器上。本质上,它是一个特殊的进程。通过名称空间(Namespace)控制组(Control groups)切根(chroot)技术把资源、文件、设备、状态和配置划分到一个独立的空间。因此,可以把它当成一个装应用软件的箱子,里面00的含有软件运行所需要的依赖库和配置,可以将这个箱子搬到任何机器上,从而不影响里面的软件的运行。

1.1.2容器原理

为了实现容器进程对外界的隔离,容器的底层主要运用了命名空间控制组UnionFS

  • 命名空间:容器隔离的基础,保证了A容器看不到B容器
  • 控制组:容器的资源统计和隔离
  • UnionFS:联合文件系统,分层镜像实现的基础

1.2镜像仓库

1.2.1什么是镜像文件

镜像文件是一种特殊的文件格式,用于存储操作系统、软件应用程序或整个数据存储设备的完整副本。这种文件通常用于创建系统备份、分发操作系统或软件安装程序,以及在虚拟机环境中模拟硬盘驱动器。

1.2.2什么是镜像仓库

镜像仓库负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库索引。在docker中,镜像仓库是用来存放和共享镜像的地方,类似于代码仓库的作用。

镜像仓库管理多个Repository,Repository通过命名来区分,每个Repository包括一个或者是多个镜像,镜像通过镜像名称和标签来区分。

镜像仓库是要从哪一个镜像仓库拉取镜像,通常通过DNS或IP地址来确定一个镜像仓库;一个仓库中可以存放多个Repository。它可以分为“用户仓库”和“顶层仓库”,用户的仓库名称格式为“用户名/仓库名”。每个仓库可以包含多个Tag(标签),每个标签对应一个镜像。

1.2.3容器镜像的组成

元数据:就是dockerfile构建出来的描述文件,这个描述文件会说这个容器镜像有多少层,每一层有什么内容,它的checksum这些信息都会记下来。

存储:最终的可执行的文件就是在存储数据里面,就是在一个一个的blob里面,真正的占有空间的就是这些blob。

1.2.4镜像仓库的分类

公共仓库:Docker官方提供了一个公共的镜像仓库,称为Docker Hub(https://hub.docker.com)。Docker Hub上存储了大量的公共镜像,用户可以通过搜索镜像名称找到自己需要的镜像,并下载到本地使用。是用Docker Hub时,用户需要创建一个Docker Hub账号,在命令行或Docker客户端中使用自己的账号信息进行登录,并可以上传自己的镜像到Docker Hub上供他人使用。

私有仓库:Docker还支持创建自己的私有镜像仓库,用于存储 和共享自定义的镜像。私有仓库可以满足企业或个人对镜像管理的特殊需求,例如安全性、可控性等。常见的私有仓库有Docker Registry镜像、Harbor、Nexus等。

1.3镜像仓库的工作机制

1.3.1镜像仓库的使用流程

1.通过docker login登录仓库

2.docker pull拉取需要的镜像

3.通过dockerfile或者是commit等方式制作完镜像通过docker push上传到仓库

1.3.2 实际镜像仓库的使用方式

在实际开发中,开发者可以选择从docker hub的共有仓库中拉取镜像,也可以选择自己制作的镜像进行使用。由于开发需要面临不同的环境,所以可以制作出不同的版本镜像供不同开发阶段的环境进行使用。

1.3.3 镜像仓库的拉取机制

启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,将从Registry下载该镜像并保存到本地。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值