第一课 docker 容器基础

第一课 docker 容器基础

虚拟化类型:

  • 主机级虚拟化:程序的运行要经过两层内核,资源开销太大。
  • 容器级虚拟化 :在宿主机内核上运行一个管理程序,划分出多个相互隔离的用户空间,程序则运行在这个隔离的空间中。

追求的目标:资源的最大化利用;资源的隔离。

需要隔离的资源:

  • UTS(主机名和域名)
  • Mount(文件系统,也叫挂载点)
  • IPC(进程间通信,包括信号量、消息队列、共享内存)
  • PID(进程树)
  • User(用户和用户组)
  • Net(网络设备、网络栈、端口等)

以上资源的隔离由 Linux 内核级的命名空间(namespace)和 chroot 支持。

除此之外,内核还必须提供机制来限制每一个用户空间的可用资源总量。这可以通过 Linux 的 cgroups (control groups)来实现。将用户空间划分成不同的组,在组内进行资源的分配。

综上,容器依托的三种内核提供的关键技术为:namespace,chroot,cgroups。

在隔离性方面,容器的隔离性不如主机级虚拟化。

容器技术解决方案

  • LXC(Linux Container):通过模板创建容器。
  • Docker:通过镜像来创建容器,简化了容器的使用。早期基于 LXC 进行二次封装与改进,后期开发了自己的容器引擎 libcontainer。后来形成了开放标准 runC 容器引擎。

dockers 推荐一个容器只运行一个程序
好处在于:

  • 每个程序运行在独立的用户空间中。
  • 分发与部署更容易。

坏处在于:

  • 不同容器存在重复的文件,占用空间更大。
  • 程序的调试和管理更难,增加了运维管理复杂度。

docker镜像:分层构建,联合挂载。

容器编排工具:

  • machine+swarm+compose
  • mesos+marathon
  • kubernetes(占据主导)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值