容器基本概念

1 容器于镜像

操作系统中的进程

  • 进程可见,可以相互通信
  • 共享一份文件系统
  • 高级别进程可以破坏低级别进程
  • 进程资源冲突
  • 应用会抢占资源

  • 资源隔离(视图级别)- namespace。资源隔离
  • 独立的文件系统 chroot
  • 控制资源使用率 - cgroup。限制资源使用

容器

容器是一个视图隔离,资源可控制,独立文件系统的进程集合。

  • 视图隔离:可以看见部分进程;独立主机名
  • 控制资源使用率。如2G内存,CPU使用个数等
  • 容器是进程的集合,可以系统资源隔离。拥有独立视图和文件系统。
  • 只需要容器运行的依赖都具备了,容器就可以运行起来了。这些资源称之为镜像

镜像

运行容器所需要的文件集合-容器镜像

Dockerfile - 描述镜像构建步骤

构建步骤产生的文件系统的变化-changeset

  • 类似于disk snapshot
  • 镜像可以相互复用
  • 提高文件复用率,减少磁盘压力和空间

如何构建镜像

build出来的docker镜像都放在镜像仓库里面。

如何运行容器

1. 从镜像仓库下载

2. 查看本地镜像

3. 选择镜像,并运行

要对镜像指定进程名,例子里是top命令。可以多次docker run来运行多个进程。

小结

容器:和系统其他部分隔离开的进程集合

镜像:容器所需的所有文件集合- 一次构建,多次运行

容器的生命周期

单进程模型

  1. 容器init进程生命周期=容器生命周期
  2. 运行期间课运行docker exec执行运维操作

数据持久化

  1. redis等的数据持久化独立于容器的生命周期。
  2. 数据持久化到数据卷-docker volume 。数据卷的生命周期和容器生命周期是独立的。

容器项目架构 moby容器引擎架构

containerd

  1. 容器运行时管理引擎,独立于moby daemon
  2. containerd-shim管理容器生命周期,可以被containerd动态接管,通过插件的形式管理

容器运行时

  1. 容器虚拟化技术
  2. runC,kata,gVisor

容器 VS VM

  1. VM是通过hypervisor模拟硬件资源,需要guest os。每个os拥有完整的内核
  2. 应用拥有guest os所有资源
  3. 隔离效果很好,但是要消耗很多资源。虚拟化消耗了很多资源。

  1. 容器基于进程。无需guest os,只需独立文件系统。进程级别隔离
  2. 启动时间更快
  3. 隔离消耗资源少 - 隔离效果弱于VM
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值