Docker 容器原理

目录

1、原理简介

2、仓库(Docker Registry)

3、Docker容器的核心理念

4、Linux的Ubuntu的支持

4.1 Linux的支持

4.2 Ubuntu的支持


1、原理简介

镜像( Image )和容器( Container )的关系,就像是面向对象程序设计中的 类 和 实一样,镜像是静态的定义,容器是镜像运行时的实体,有自己的生命周期。容器可以被创建、启动、停止、删 除、暂停等。

 容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命 名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚 至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一 个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安 全。也因为这种隔离的特性,很多人初学 Docker 时常常会混淆容器和虚拟机。

每一个容器运行时,是以镜像为基础层, 在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容 器存储层。 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存 于容器存储层的信息都会随容器删除而丢失。

按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。

数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器删除或者重新运行之后,数据却不会丢失。

容易就是在隔离的环境里运行的一个进程,这个隔离的环境有自己的目录文件,有自己的IP地址、主机名等,进程结束了容易也就死了。

2、仓库(Docker Registry)

镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。

一个 Docker Registry 中可以包含多个仓库( Repository );每个仓库可以包含多个标签( Tag );每个标签对应一个镜像。

  • 有Docker Registry

比如 时速云镜像仓库、网易云 镜像服务、DaoCloud 镜像市场、阿里云镜像库 等。

  • 私有 Docker Registry

用户还可以在本地搭建私有 Docker Registry

3、Docker容器的核心理念

Docker的本质是:在隔离的环境运行的一个进程

所以:docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出的状态。

4、Linux的Ubuntu的支持

4.1 Linux的支持

namespace

系统调用参数

隔离内容

内核版本

Mount

CLONE_NEWNS

挂载点(文件系统)

2.4.19

UTC

CLONE_NEWUTS

主机名和域名

2.6.19

IPC

CLONE_NEWIPC

信号量、消息队列、共享内存

2.6.19

PID

CLONE_NEWPID

进程编号

2.6.24

Network

CLONE_NEWNET

网络设置、网络栈、端口等

2.6.29

User

CLONE_NEWUSER

用户和用户组

3.8

说明:在2.4.19版本的Linux只支持Mount的隔离,像其他的网络、用户都隔离不了,2.6.19、2.6.24、2.6.29、3.8等都是一样的。

Linux版本的docker支持性最好的是3.8版本以后

4.2 Ubuntu的支持

Ubuntu的内核版本一向都很高,早就到了5.0版本以上了,所以在Ubuntu上部署docker的有很多,为什么Ubuntu内核升级那么快,Centos的内核升级那么慢?

Ubuntu则适用于个人桌面,对新技术支持度更好,追求最新功能,内核版本版本较新,新的功能能及时推出同步,CentOS适用于服务器,更稳定些,支持时间也比较长,比较适合稳定线上环境,由于追求稳定性,所以内核版本往往比较旧,一些新功能的支持也跟不上。centos对运维更加友好一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44250083

微信号:c_x_y_000

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值